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

Prace s polem (array)

Kompletní přehled příspěvků v tématu Prace s polem (array) řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 12.9. 2013 | Zobrazeno: 9992x
Konfigurace CATIA: R20

Text dotazu:
Ahoj,
jelikoz jsem zjistil, ze vubec neumim pracovat s "polem" tak nasledujici dotazy (v priloze obr. s naplnenym polem - jedna se o nazvy bodies):
1) jak mohu dat vsechny bodies do noshow (potrebuji je oznacit a dat do noshow - zkousel jsem funkci FOR - FindobjectbyName - NEXT - to funguje, ale ne u duplicitnich nazvu - to pak oznaci vzdy prvni ve strome)
2) jak mohu vymazat duplicitni polozky ze strromu?

Diky moc za rady

Přiložené obrázky:

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.