Parent from Extract
Uživatel | Příspěvek |
Tomáš Hlavačka ![]() ![]() Poslat zprávu | Profil |
Datum:
7.3. 2025
| Zobrazeno:
252x Konfigurace CATIA: Servise Pack 3, R32 Text dotazu: Sub CATMain() |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#7236]
| Publikováno:
11.03. 2025 - 19:13 Dobrý den,
přes vlastnost Parent to nepůjde, protože ta vrací kolekci HybridShapes z geometrického setu, kde je vybraný prvek umístěn. Pokud byste použil obj.Parent.Parent, dostal byste vlastní objekt Geo setu. Parent se takhle chová vždy. Díval jsem se do API dokumentaci (viz příloha) a z Extractu se da vyčíst pouze dílčí vybraná plocha - vlastnost Elem , a Support . Bohužel obě se vrací jako typ Reference, takže je sice lze použít do jiné funkce nebo vyměnit, ale zjistit jméno původní plochy bude potíž.
Zkoušel jsem vlastnost Elem - opravdu se vrátí Face, která byla vybrána pro Extract, ale dál s tím nejde nic - maximálně opět vybrat a tím označit Surface ve stromu - vy vašem případě by se označil Split.1. |
PTM ![]() ![]() Poslat zprávu | Profil |
[#7237]
| Publikováno:
12.03. 2025 - 06:55 Sub CATMain() ' Insert the code of your main procedure here Dim partDocument1 'As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 'As Part Set part1 = partDocument1.Part Dim reference1'As Reference Dim InputObjectType(0), Status Dim Selection 'As Selection 'Selection = partDocument1.Selection InputObjectType(0)="BiDimInfinite" Status=partDocument1.Selection.SelectElement2(InputObjectType,"Select an Face",false) Dim ParentObject 'As AnyObject dim val set val=partDocument1.Selection.item(1).value msgbox(val.name) set ParentObject =val.Parent msgbox(ParentObject.item(2).name) End Sub |
PTM ![]() ![]() Poslat zprávu | Profil |
[#7238]
| Publikováno:
12.03. 2025 - 06:57 note ParentObject.item(2).name
index may changed if u select more than 1 in split. |
Tomáš Hlavačka ![]() ![]() Poslat zprávu | Profil |
[#7239]
| Publikováno:
12.03. 2025 - 09:01 Zdravím,
díky za Vaše odpovědi. Opravil jsem si kód dle příspěvku PTM a už vše funguje jak jsem chtěl. Díky |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#7240]
| Publikováno:
12.03. 2025 - 15:28 No to ale vůbec nic neřeší a bude to fungovat jen pro jeden konkrétní případ. Do objektu ParentObject se načetla kolekce HybridShapes a pak logicky její druhá (x-tá) položka odpovídá vašemu splitu. Ale jakmile by se do geo setu cokoliv přidalo, resp, změnilo by se pořadí features, bude to vracet úplně jiný objekt nebo to shoří, protože se dostanete na index, který ani neexistuje.
Dalo by se to omezeně použít tak, že byste zjistil počet features ve stromu a pořadí Extractu a pak odečetl jedničku - na tom pořadí by se měl nacházet rodič. Ale ze zkušeností pořadí ve stromu nemusí (opticky) odpovídat pořadí v kolekci ;-) |
Tomáš Hlavačka ![]() ![]() Poslat zprávu | Profil |
[#7241]
| Publikováno:
13.03. 2025 - 08:32 Uživatel odpovídá na příspěvek #7240:
Máte pravdu, funguje to pouze na ten jednoduchý příklad. Zkoušel jsem to Vašim postupem, Split.1 se sice ve stromě vybral, ale název výběru je CATIAReference. |
PTM ![]() ![]() Poslat zprávu | Profil |
[#7242]
| Publikováno:
13.03. 2025 - 08:33 yep this is a special case, but you can extend to you case.
and its work, until you not set "check operation on renaming" |
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.