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

Current Selection

Kompletní přehled příspěvků v tématu Current Selection řazený podle data jejich publikace na fóru.

UživatelPříspěvek
jukom

Poslat zprávu | Profil
Datum: 10.5. 2017 | Zobrazeno: 8654x
Konfigurace CATIA: V5-R24

Text dotazu:
Zdravím všetkých nadšencov Catia V5,
momentálne riešim jeden problém a neviem si dať rady, respektíve neviem, či je to vôbec možné. Potreboval by som získať "cestu" k označenému elementu, či už z modelu alebo zo stromu v tvare ako posielam v prílohe. K Brep referencii sa viem dostať, no potrebujem práve túto formu.

Vie mi prosím niekto poradiť?

Vopred ďakujem

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#6199] | Publikováno: 10.05. 2017 - 11:30
Dobrý den,

tohle není problém. Pokud máte objekt Selection, použijte jeho vlastnost Parent. Předpokládám, že vybíráte objekt typu "Face".


oSelection.Item(1).Value vrací BRep element (reference)

oSelection.Item(1).Value.Parent vrací již surface, tj. feature ve stromu, ve které se dílčí face nachází

oSelection.Item(1).Value.Parent.Parent vrací kolekci HybridShapes v gemetrickém setu

oSelection.Item(1).Value.Parent.Parent.Parent pak již vlastní geometrický set.

Přes vlastnost Name pak získáte názvy features a poskládáte si je s lomítky do toho jak potřebujete.

PS: Omylem jsem smazal váš původní obrázek, tak jsem tam přidal jiný - v principu stejné.
jukom

Poslat zprávu | Profil
[#6200] | Publikováno: 10.05. 2017 - 11:39
Dobrý deň,
Tento postup funguje perfektne na elementy s históriou. Problém nastáva, ak označený element je typu napr HybridShapeSurfaceExplicit. Tu už rodič elementu je Parameters a potom jeho rodič je už až samotný part.
Trocha som dúfal, že bude rodiť geometrický set, v ktorom sa "mrtvola" nachádza, no smola.
Ak som sa vydal cestou cez získavania parametrov geometrického setu, tak ich načítalo o mnoho viac ako keď si dáte vypísať parametre v catii daného geometrického setu. Čo by nebolo moc šťastné riešenie skúmať takto všetky geometrické sety a v nich parameter s názvom daného prvku a tak určiť jeho pozíciu v strome.

Najelegantnejšie riešenie mi preto prišlo zistiť vlastne priamo čo chcem, čiže tú cestu ako som poslal v prílohe. Respektíve aká sa zobrazuje v status bare (neviem či sa tak nazýva spodná lišta v Catii)
jukom

Poslat zprávu | Profil
[#6202] | Publikováno: 10.05. 2017 - 12:53
Pomohlo by mi možno aj dostať sa k objektu, prvku Catie, keď poznám referenciu.
Dokázal som sa maximálne dopracovať k objektu typu Face

  

Dim Sel As Selection
Dim Ozn As SelectedElement
Dim Extrakt As HybridShapeExtract
For A = 1 To Geom_set_inwork.HybridShapes.Count
Sel.Clear()
Sel.Add(Geom_set_inwork.HybridShapes.Item(A))
Ozn = Sel.Item(1)
Sel.Clear()
If Ozn.Type = "HybridShapeExtract" Then
Extrakt = Ozn.Value
Dim Ref_extrakt As Reference = Extrakt.Elem
'MsgBox(Extrakt.Elem.DisplayName)

Sel.Add(Ref_extrakt)
Dim Ref_pokus As Reference = Prt.CreateReferenceFromObject(Ref_extrakt)
MsgBox(Ref_pokus.DisplayName)


Kde Ref_pokus.DisplayName je názov Face (Face.15)

posielam v prílohe aj obrázok ako stav po tejto hláške

Přiložené obrázky:

jukom

Poslat zprávu | Profil
[#6203] | Publikováno: 10.05. 2017 - 12:57
Uživatel odpovídá na příspěvek #6202:

Práve, viem, že u väčších modeloch by to bol isto problém.
Skúšal som sa dopátrať na rôznych fórach k spôsobu získania cesty označeného elementu, ale zatiaľ neúspešne. Až sa obávam, či to vôbec ide. Prípadne nájsť šikovné riešenie aj iným spôsobom. Nie takým, ako som opisoval.
Ing Jan Cinert

Poslat zprávu | Profil
[#6201] | Publikováno: 10.05. 2017 - 13:28
Dobrý den,

teď mě napadla taková finta...

Když máte vybranou plochu, stačí poslat přes StartCommand "Define in Work Object" a tím nastavíte Set s plochou jako aktivní. Pak si z vybrané plochy vytvoříte Extract, a to už je živá plocha. No a protože se vytvoří ve stejném setu, přes jejího rodiče (Extract.Parent.Parent) dostaneme název Setu, resp. jeho objekt.

Podle mě funkční. Sice zase bypass, ale vyhoví požadavku.
jukom

Poslat zprávu | Profil
[#6204] | Publikováno: 11.05. 2017 - 08:11
Dobrý deň pán Cinert,
veľká vďaka, touto cestou to funguje super :) Ešte ma napadlo vyhnúť sa posielaniu príkazou externe do Catie (nie je to asi úplne korektne aj keď niekedy sa tomu asi nedá vyhnúť). Ale v podstate som zadefinoval priamo označený element ako InWorkObject a tým sa v podstate zadefinoval geometrický set ako pracovný.

Ešte raz veľká vďaka
Ing Jan Cinert

Poslat zprávu | Profil
[#6205] | Publikováno: 11.05. 2017 - 09:05
Není za co. Jinak to s tím posláním příkazu většinou celkem bezpečně funguje. Problém nastává jen když jeho vykonání trvá delší dobu, to se pak musí v programu chvíli počkat.

Předpokládám, že smazání Extractu už je rutina. :-)


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.