Exemplo n.º 1
0
            private void AnalyserPercages()
            {
                // On recupère les faces issues des fonctions modifiant le corps
                List <Face2> ListeFaceSection = Corps.eListeDesFaces();

                // Supprimer les faces de la section ext
                foreach (var f in FaceSectionExt.ListeFaceSw())
                {
                    ListeFaceSection.Remove(f);
                }

                // Supprimer les faces des sections int
                foreach (var l in ListeFaceSectionInt)
                {
                    foreach (var f in l.ListeFaceSw())
                    {
                        ListeFaceSection.Remove(f);
                    }
                }

                // On tri les faces connectées
                ListeFaceUsinageSection = TrierFacesConnectees(ListeFaceSection);

                // Recherche des usinages d'extrémité et calcul des caractéristiques des usinages
                // On calcul les distances des faces au points extremes
                foreach (var l in ListeFaceUsinageSection)
                {
                    l.CalculerUsinage(FaceSectionExt);
                    l.CalculerDistance(ExtremPoint1, ExtremPoint2);
                }

                // Recherche de la face la plus proche du point extreme 1
                var Extrem = ListeFaceUsinageSection[0];

                foreach (var l in ListeFaceUsinageSection)
                {
                    if (Extrem.DistToExtremPoint1 > l.DistToExtremPoint1)
                    {
                        Extrem = l;
                    }
                }

                // On l'ajoute à la liste
                ListeFaceUsinageExtremite.Add(Extrem);

                // On recherche la face la plus proche du point extrème 2
                // Elle peut être la même que la précédente
                Extrem = ListeFaceUsinageSection[0];
                foreach (var l in ListeFaceUsinageSection)
                {
                    if (Extrem.DistToExtremPoint2 > l.DistToExtremPoint2)
                    {
                        Extrem = l;
                    }
                }

                // On l'ajoute
                ListeFaceUsinageExtremite.AddIfNotExist(Extrem);

                // On les supprime de la liste des faces de la section
                foreach (var l in ListeFaceUsinageExtremite)
                {
                    ListeFaceUsinageSection.Remove(l);
                }
            }