Prace s polem (array)
Uživatel | Příspěvek |
Pavel Krsek ![]() ![]() Poslat zprávu | Profil |
Datum:
12.9. 2013
| Zobrazeno:
10319x Konfigurace CATIA: R20 Text dotazu: |
Michal ![]() ![]() Poslat zprávu | Profil |
[#4114]
| Publikováno:
16.09. 2013 - 06:58 Zdravím,
add 1) - v tomto případě mi přijde vhodnější použít kolekci než pole. Dim colBodies as Collection set colBodies = new Collection metodou Add přidáš objekt do kolekce - je to přímo body, které by si potom chtěl dát do NoShow. Tzn nemusíš ho potom hledat přes FindObjectByName, ale colBodies.Item(1) můžeš přidat do selekce. add 2) - opět bych volil kolekci, protože do kolekce můžeš přidat objekt s klíčem - colBodies.Add(objekt, klíč). Spadne to pokud vložíš dvakrát stejný klíč. Nicméně colBodies.Item(klíč) ti vrátí objekt. Když klíč neexistuje, tak to taky spadne. Procházet pole mi přijde dost zdlouhavé. Teď mě ani nenapadá jak to jednoduše provést. Používám kolekce |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#4115]
| Publikováno:
16.09. 2013 - 10:27 Na přesunutí všech Bodies do NoShow je nejrychlejší použít Search, syntaxe je pak
oSelection.Search(".Body, all")
Jinak se v případě použití bool. operací musí pracně procházet strom. Navíc po Search se všechny objekty označí a je velmi snadné je skrýt. U odstranění duplicitních prvků by mělo stačit zmiňované pole, do kterého si budete ukládat názvy Body. Pak stačí procházet catiovskou kolekci Part.Bodies (nebo selekci) a kontrolovat, jestli je již název v seznamu. Pokud ne přidáme název do seznamu, pokud ano, Body se smaže. |
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.