Vymazani deactivate components
Uživatel | Příspěvek |
Pavel Krsek Poslat zprávu | Profil |
Datum:
15.11. 2011
| Zobrazeno:
10100x Konfigurace CATIA: Text dotazu: |
Ing Jan Cinert Poslat zprávu | Profil |
[#2396]
| Publikováno:
15.11. 2011 - 19:06 Zdravím,
tohle jde celkem bez problémů provést. Standartně se prochází sestava a u každé instance sestavy se hledá parametr s názvem "/kontext_instance/Component activation state", který udáva aktivitu instancí dané sestavy. Pokud ja false, instance je deaktivovaná a můžete ji smazat. Problém je, že pokud budete na sestavě hledat tyto parametry (procházet všechny a porovnávat název, CATIA najde tento parametr u všech instancí nejen v této sestavě, ale i u vnořených instancí. Dokonce se parametr od jedné instance zobrazí vícekrát, pokaždé v jiném kontextu a tedy jiným názvem(podle zanoření), např.: "top_sestava\sestava_1.1\part_1.1\Component Activation State"U větších sestav to trvá dlouho a čas roste exponenciálně s počtem použitých parametrů a velikostí sestavy (jde to skoro do minut). Po dlouhém zkoušení jsem přišel na celkem efektivní způsob. Pomocí metody GetItem objektu Parameters jsem si "sáhnul" přímo na parametr v odpovídajícím kontextu a nemusel je všechny procházet. Finta byla v tom, že se musel přesně sestavit název parametru podle kontextu - je to mix PartNumber, InstanceName, lomítek a .Parentů, pro představu:
oSubProduct.Parent???.Parameters.GetItem("slozeny nazev podle kontextu\Component Activation State") Používal jsem to v jednom makru, pak jsem to vypustil a teď ten původní kus kódu nemůžu najít. Každopádně princip je jasný, já budu hledat. |
Uživatel nepřihlášen
Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.