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

Počet entit v ramci jednoho body

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 7.1. 2014 | Zobrazeno: 9990x
Konfigurace CATIA:

Text dotazu:
Ahoj mám následující dotaz.
Napadá někoho jak by VBA mohlo poznat, kolik samostatnych objektu se nachazi v ramci jednoho BODY? (např. několik samostatných PADS)
Diky za tip.

Břeťa Doležal

Poslat zprávu | Profil
[#4332] | Publikováno: 07.01. 2014 - 10:19
Nad tímto jsem jednou přemýšlel a asi bych na to šel, že bych si vycuc kolekci face a uděllal remove loop postupně na jednotlivých face. Po remove loop si projel zase kolekci face a porovnávat s výchozí. Nevím tedy jestli se ale nějak nezmění attributy face po remove loop, aby se dalo porovnávat a určit stjenou face v původní kolekci před remove loop. Jen podle počtu face by to nebylo košér. Zatím jsem to ale nepotřeboval, takže jsem to nezkoušel. Snad někdy....Ještě nevím zda je funkce remove loop podporována API. Honza C. bude mít určitě lepší řešení...
Ing Jan Cinert

Poslat zprávu | Profil
[#4333] | Publikováno: 07.01. 2014 - 12:00
Pokud by stačil počet solid objektů, existuje kolekce Shapes jako vlastnost Body. Pozor, booleovská operace je také brána jako Shape, to by se muselo podle typu odfiltrovat.

Přes Face, jak píše Břeťa, je do od určité velikosti modelu na pováženou, je jich obrovský počet a zpomaluje to program.

Přiložené obrázky:

Pavel Krsek

Poslat zprávu | Profil
[#4334] | Publikováno: 07.01. 2014 - 12:23
Děkuji za tipy.
Zkoušel jsem to s těmy Shapes, ale to mi příjde, že ukáže jen počet features v body (tj. např. pad.1 a pad.2 bude Shapes.Count=2, ale pokud budu mit pad.1 a hole.1, tak vysledek bude stejny) - tj. to neřeší asi můj problém.
A také to neřeší situaci, kdy z jednoho sketch je vytaženo více Pads - to pak Shapes.Count je pořad 1.
Ing Jan Cinert

Poslat zprávu | Profil
[#4335] | Publikováno: 07.01. 2014 - 13:11
Tak potom to musíte filtrovat podle typu, tj. ukládat počty Pads, Pockets, Holes atd.

Pokud je z jedné skici více features, mělo by to ukazovat správný počet, pokud jsou features ve stejném Body.
Pavel Krsek

Poslat zprávu | Profil
[#4336] | Publikováno: 07.01. 2014 - 13:42
O tom filtrovani jsem take premyslel, ale nebylo by to 100%, protože někdy může být případ, že 2 Pads tvoří jeden objekt, ale fce. Shapes udá počet 2.

Zkoušel jsem to na příkladu, kde ve sketch mám 3 čtverce, z nich vytáhlý Pad a fce. Shapes pořád ukazuje počet 1.?!?
Ing Jan Cinert

Poslat zprávu | Profil
[#4337] | Publikováno: 08.01. 2014 - 10:18
Tak snad mám řešení. Vytvořit Extract z daného Body (manuálně lze), a ten pak nechat rozpadnout (jako disassemble) na oddělené části (AddNewDatum) a ty jednoduše spočítat. Kolik bude částí, tolik je oddělených objemů.
Pavel Krsek

Poslat zprávu | Profil
[#4338] | Publikováno: 08.01. 2014 - 10:49
Super. Diky moc. To bude ono.
Uz mam i hruby kod a ani se nebude muset z Extract udelat rozpad (disassemble), jelikoz tento script:
oDatum = oFactory.AddNewDatums(oExtract)

oPocetEntit=Ubound(oDatum)+1

ukáže vše potřebné.
Ing Jan Cinert

Poslat zprávu | Profil
[#4339] | Publikováno: 08.01. 2014 - 11:31
Přesně tak jsem to myslel, "rozpad" udělat jen v proměnné, nemusí se fyzicky přidávat do stromu. Takhle to stačí. :-)


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.