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

Načítání parametru do excelu

UživatelPříspěvek
Petr

Poslat zprávu | Profil
Datum: 9.5. 2016 | Zobrazeno: 8586x
Konfigurace CATIA: Catia V5 R24 SP4 HF22

Text dotazu:
Dobrý den,
zkoušim napsat macro, ktere načte parametr z partu/productu a zapíše ho do Excelu.
Problem mám v tom, že mě makro přeskakuje produkty. Nemůžu přijit na to v čem je zádrhel..

Poradí mě někdo?

Díky

Sub CATMain()

Dim oProduct
Set oProduct = CATIA.ActiveDocument.Product
i = 0
Call StartEXCEL
Explore oProduct
MsgBox "Done"

End Sub


Sub Explore(oProduct)
Dim oSubProduct
Dim oName As String

For Each oSubProduct In oProduct.Products
Err.Clear
On Error Resume Next
oName = oSubProduct.PartNumber
parametr1 = oSubProduct.Parameters.GetItem("parametr1").Value
parametr2 = oSubProduct.Parameters.GetItem("parametr2").Value
i = i + 1
objGEXCELSh.Cells(i + 1, "A") = oName
objGEXCELSh.Cells(i + 1, "B") = parametr1
objGEXCELSh.Cells(i + 1, "C") = parametr2

If oSubProduct.Products.Count > 0 Then
Explore oSubProduct
End If
Next
End Sub

Ing Jan Cinert

Poslat zprávu | Profil
[#5788] | Publikováno: 09.05. 2016 - 15:48
Dobrý den,

dejte si pryč to ošetření a hned uvidíte, kde máte chybu. Tohle je vždycky ošemetné, protože makro část kódu kde je chyba přeskočí a vám se pak zdá, že se nic nevykonalo.

Nebo si nejdříve jen otestujte, jestli vám správně funguje rekurze - třeba jen výpisem názvu produktu. Teprve pak přidávejte další příkazy. Podle mě bude problém v načtení parametrů. Pokud se parametry v partu a sestavě jmenují stejně, musí se kontrolovat kontext. V kolekci parametrů sestavy se totiž objeví i parametry všech partů v sestavě obsažených. Metoda GetItem bere první v kolekci - a to taky může být parametr partu, nikoli sestavy, kterou zrovna procházíte.

Jinak se rekurze zdá být OK, na první pohled nevidím chybu.
Petr

Poslat zprávu | Profil
[#5791] | Publikováno: 11.05. 2016 - 08:20
Dobrý den,
máte pravdu problem je v načítáním parametrů. Když použiju příkas

parametr1 = oSubProduct.Parameters.Item("parametr1").Value


Tak se načítají parametry z jiného partu

Jak se dá kontrolovat "kontext"?


Ing Jan Cinert

Poslat zprávu | Profil
[#5793] | Publikováno: 11.05. 2016 - 21:44
Kontext je tuším vlastnost objektu parametru. Jednodušší je ale dát do názvu parametru PartNumber se znakem "\", resp, tak jak ho vidíte ve formula editoru, např. "Assembly\Parameter.1". Pak se správně vybere parametr z konkrétního produktu.


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.