/// <summary> /// Méthode interne. /// Renvoi la liste des corps de la pièces filtrée par les arguments. /// </summary> /// <param name="TypeDeCorps"></param> /// <param name="PrendreEnCompteCache"></param> /// <returns></returns> public ArrayList ListeDesCorps(String NomARechercher = "", TypeCorps_e TypeDeCorps = TypeCorps_e.cTous, Boolean PrendreEnCompteCache = false) { Log.Methode(cNOMCLASSE); ArrayList Liste = new ArrayList(); Object[] TableauDesCorps = _SwPiece.GetBodies2((int)swBodyType_e.swAllBodies, !PrendreEnCompteCache); if (TableauDesCorps.Length > 0) { foreach (Object ObjetCorps in TableauDesCorps) { Body2 pSwCorps = (Body2)ObjetCorps; eCorps pCorps = new eCorps(); if (pCorps.Init(pSwCorps, this) && TypeDeCorps.HasFlag(pCorps.TypeDeCorps) && Regex.IsMatch(pSwCorps.Name, NomARechercher)) { Liste.Add(pCorps); } } } return Liste; }
/// <summary> /// Méthode interne /// Renvoi la liste des dossiers de pièces soudées de la pièce filtrée par les arguments. /// </summary> /// <param name="TypeDeCorps"></param> /// <param name="PrendreEnCompteExclus"></param> /// <returns></returns> public ArrayList ListeDesDossiersDePiecesSoudees(TypeCorps_e TypeDeCorps = TypeCorps_e.cTous, Boolean PrendreEnCompteExclus = false) { Log.Methode(cNOMCLASSE); ArrayList Liste = new ArrayList(); Feature pFonction = DossierDesCorps(); // S'il n'y a pas de liste, on arrete là if (pFonction == null) return null; pFonction = pFonction.GetFirstSubFeature(); while (pFonction != null) { if (pFonction.GetTypeName2() == "CutListFolder") { BodyFolder pSwDossier = pFonction.GetSpecificFeature2(); eDossier Dossier = new eDossier(); if (Dossier.Init(pSwDossier, this) && TypeDeCorps.HasFlag(Dossier.TypeDeCorps) && (!Dossier.EstExclu | PrendreEnCompteExclus)) Liste.Add(Dossier); Dossier = null; } pFonction = pFonction.GetNextSubFeature(); } return Liste; }
/// <summary> /// Renvoi Vrai si la piece contient des corps du type T /// A tester. Peut dans certain cas renvoyer un resultat erroné. ex : /// Si un corps de tolerie ou un profil a été créé puis supprimé, /// la fonction existe mais plus le corps. Pb également dans le cas de corps combiné /// </summary> /// <param name="T"></param> /// <returns></returns> public Boolean Contient(TypeCorps_e T) { Log.Methode(cNOMCLASSE); if (T.HasFlag(TypeCorps_e.cTole)) { foreach (eFonction Fonction in _Modele.ListeDesFonctions()) { if ((Fonction.TypeDeLaFonction == "SMBaseFlange") || (Fonction.TypeDeLaFonction == "SolidToSheetMetal") || (Fonction.TypeDeLaFonction == "SheetMetal") || (Fonction.TypeDeLaFonction == "FlatPattern")) return true; } } if (T.HasFlag(TypeCorps_e.cBarre)) { if (_Modele.ListeDesFonctions("", "WeldMemberFeat", false).Count > 0) return true; } if (T.HasFlag(TypeCorps_e.cAutre)) { if (ListeDesDossiersDePiecesSoudees(TypeCorps_e.cAutre, false).Count > 0) return true; } return false; }