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

Rekurzivní procházení sestavy a obarvování jednotlivých dílů

UživatelPříspěvek
Jan Štěpánek

Poslat zprávu | Profil
Datum: 5.9. 2017 | Zobrazeno: 7939x
Konfigurace CATIA: V5 R24

Text dotazu:
Dobrý den,
potřebuji projít rozsáhlou sestavu cca 50 tis. dílů a obarvit jednotlivé instance partů dle jejich stavu.

V objektovém modelu catie jsem nenašel vlastnost, která by řešila obarvení instance. Proto volám při každím spuštění rekurzivní procedury selection.search, kde jako parametr zadávám jméno instance a následně nastavuji selection.visproperties.

Funguje to, ale velmi pomalu. Obarvování trvá v řádu hodin. Nenapadá Vás někoho, jak ten kód zefektivnit a nepoužívat objekt selection, ale obarvit instance přímo...

Děkuji.

Honza Štěpánek

Břeťa Doležal

Poslat zprávu | Profil
[#6317] | Publikováno: 07.09. 2017 - 11:07
Také používám Selekci, je to i v příkladech k API, kde řeší stejný problém. Nešlo by na místo barvy definovat třeba hodnotu parametru, nebo něco takového? Možná by bylo rychlejší, ale s tak velikými sestavami nedělám, takže netuším.

Předpokládám, že máš použito:

CATIA.RefreshDisplay = False 'začátek

rekurzivní procházení sestavy

CATIA.RefreshDisplay = True 'konec


někdy urychlí i tyto přepínače:

CATIA.Interactive = True / False
CATIA.Visibility = True / False
Jan Štěpánek

Poslat zprávu | Profil
[#6318] | Publikováno: 07.09. 2017 - 14:27
Vyřešeno. Netřeba využívat metodu
selection.search
, ale namísto toho lze použít
oSelection.Add oProducts.Products.Item(i) 
parametrem je obbjekt, který se předává jako parametr rekurzivní rutině

Zrychleno - čas na totožné sestavě do 5 minut.

Díky za rady.


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.