Beispiel #1
0
            // Recherche de l'arrete de devant sur laquelle est contrainte la platine.
            private Edge ArreteDevant(List <Mate2> listeContraintes, Face2 faceDessus)
            {
                Mate2 Ct = null;

                // On rechercher la contrainte avec un point
                foreach (Mate2 Contrainte in listeContraintes)
                {
                    foreach (MateEntity2 Ent in Contrainte.eListeDesEntitesDeContrainte())
                    {
                        if (Ent.ReferenceType2 == (int)swSelectType_e.swSelEXTSKETCHPOINTS)
                        {
                            Ct = Contrainte;
                            break;
                        }
                    }
                    if (Ct.IsRef())
                    {
                        break;
                    }
                }

                if (Ct.IsNull())
                {
                    return(null);
                }

                Face2 F_Devant = null;

                // On recherche la face associée à cette contrainte
                foreach (MateEntity2 Ent in Ct.eListeDesEntitesDeContrainte())
                {
                    if (Ent.ReferenceType2 == (int)swSelectType_e.swSelFACES)
                    {
                        F_Devant = (Face2)Ent.Reference;
                        break;
                    }
                }

                if (F_Devant.IsNull())
                {
                    return(null);
                }

                List <Edge> ListeArretes = F_Devant.eListeDesArretesCommunes(faceDessus);

                if (ListeArretes.Count > 0)
                {
                    return(ListeArretes[0]);
                }

                return(null);
            }