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

Označení dílu a zjištění sestavy do které patří

Kompletní přehled příspěvků v tématu Označení dílu a zjištění sestavy do které patří řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Josef Landa

Poslat zprávu | Profil
Datum: 25.9. 2013 | Zobrazeno: 9395x
Konfigurace CATIA: V5R20

Text dotazu:
Dobrý den,
snažím se udělat program, který když ve 3D ploše kliknu na díl, který je součástí podsestavy, zobrazil by jméno té konkrétní podsestavy do který vybraný díl patří.

Mám tedy tento filtr:


Dim oProduct As String
Dim Filtr(0)
Dim UserSel As Object
Dim E As Variant

Filtr(0) = "Product"

Set UserSel = CATIA.ActiveDocument.Selection

E = UserSel.SelectElement2(Filtr, "Vyber product!", False)

If E = "Normal" Then
oProduct = (UserSel.Item(1).Value.Name)
MsgBox oProduct
Else
Exit Sub
End If


ten mi ale zobrazí Instans name dílu. Díl v sestavě je vlastně v první urovni Product, tak filtr omezený na product nepomůže.

Můžete mi prosím poradit, jak toto vyřešit?
Děkuji.

Michal

Poslat zprávu | Profil
[#4126] | Publikováno: 25.09. 2013 - 11:01
Zdravím,
nejsem si jistý jestli Vám úplně dobře rozumím, ale chcete vědět jméno nadřazené sestavy.
dim oSelProduct as Product
set oSelProduct = UserSel.Item(1).Value

do nadřazené sestavy se potom dostanete přes parenta vybrané sestavy
dim oParentProduct as Product
set oParentProduct = oSelProduct.Parent.Parent

Snad je to, co jste hledal.
Josef Landa

Poslat zprávu | Profil
[#4128] | Publikováno: 26.09. 2013 - 10:29
Zdravím,
to je přesně ono super děkuji.
Celé to tedy mám takto a funguje to:

Sub CATMain()

Dim oProduct As String
Dim oSelProduct As Product
Dim oParentProduct As Product
Dim Filtr(0)
Dim UserSel As Object
Dim E As Variant

Filtr(0) = "Product"

Set UserSel = CATIA.ActiveDocument.Selection

E = UserSel.SelectElement2(Filtr, "Vyber product!", False)

If E = "Normal" Then

Set oSelProduct = UserSel.Item(1).Value
Set oParentProduct = oSelProduct.Parent.Parent
MsgBox oParentProduct.ReferenceProduct.Parent.Name
Else
Exit Sub
End If
End Sub


Jde mi totiž o to abych po kliknutí na díl ať je v jakékoliv podsestavě napsal jméno sestavy z první urovně hlavní sestavy např. jako je dle BOM TopLevel.
S radou od vás zjistím nejbližší nadřazenou sestavu a když probublám ve stejném stylu do nadřazených sestav a zastavím se na CATIA.ActiveDocument, tak se dostanu k tomu co potřebuji.
Možná by to šlo udělat lépe a jednodušeji, ale mě napadla tato možnost.

Ještě jednou díky....


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.