Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Vymazani deactivate components

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 15.11. 2011 | Zobrazeno: 10100x
Konfigurace CATIA:

Text dotazu:
Dobry den,
mel bych prosim nasledujici dotaz.
Potreboval bych nejakym zpusobem (ne manualne) vyhledat vsechny deactivovane party ve velke sestave a ty zaroven vymazat.
Napada nekoho, jakym zpusobem by to slo provest?

Dekuji za napady.
S pozdravem Pavel K.

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"

"sestava_1.1\part_1.1\Component Activation State"
"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.