PŘEPSÁNÍ PARAMETRU
Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: iLogic a ETO
Popis fóra: Funkce a makra iLogic, Inventor Engineering to Order (ETO), automatizace a konfigurace výrobků
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=28534
Datum vytištění: 07.kvě.2026 v 13:33
Téma: PŘEPSÁNÍ PARAMETRU
Odeslal: Lukáš Záruba
Předmět: PŘEPSÁNÍ PARAMETRU
Datum odeslání: 13.bře.2019 v 13:23
|
Zdravím,
Mám pravidlo které mi založí a vyplní parametr "POLOTOVAR". jak mám napsat aby se mi parametr který již existuje přepsal tímto s více hodnotami?
Dim oParams As Parameters Dim oPartDoc As PartDocument = ThisDoc.Document
Dim oPartCompDef As PartComponentDefinition = oPartDoc.ComponentDefinition
oParams = oPartCompDef.Parameters
Dim oUserParams As UserParameters = oParams.UserParameters
Try
p = Parameter("POLOTOVAR")
Catch
oUserParams.AddByValue("POLOTOVAR","", UnitsTypeEnum.kTextUnits)
MultiValue.SetList("POLOTOVAR",
"PLECH",
"JAKL",
"TRUBKA 4HR",
"TRUBKA OBD",
"TY� PLOCH�",
"TY� KULAT�",
"TY� Z�VITOV� (DIN 975)"
)
End Try
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odpovědi:
Odeslal: krupicka
Datum odeslání: 14.bře.2019 v 09:14
|
Dobrý den, Musíme ověřit existenci parametru. V případě, že existuje, jej odstranit a vytvořit nový. Šel jsem na to procházením všech parametrů a porovnáváním jejich názvů s názvem "POLOTOVAR" Dim oParams As Parameters
Dim oPartDoc As PartDocument = ThisDoc.Document
Dim oPartCompDef As PartComponentDefinition = oPartDoc.ComponentDefinition
oParams = oPartCompDef.Parameters
Dim ParaExist As Boolean = False
Dim oUserParams As UserParameters = oParams.UserParameters
Try
For i = 1 To oParams.Count
If oParams(i).Name = "POLOTOVAR" Then
ParaExist = True
Exit For
End If
Next
Catch
End Try
MessageBox.Show(ParaExist, "Existence parametru POLOTOVAR")
If ParaExist = True Then
Parameter.Param("POLOTOVAR").Delete
End If
Try
p = Parameter("POLOTOVAR")
Catch
oUserParams.AddByValue("POLOTOVAR","", UnitsTypeEnum.kTextUnits)
MultiValue.SetList("POLOTOVAR",
"PLECH",
"JAKL",
"TRUBKA 4HR",
"TRUBKA OBD",
"TYC PLOCHA",
"TYC KULATA",
"TYC ZAVITOVA (DIN 975)"
)
End Try
S pozdravem Martin Krupička, CAD Studio 
|
Odeslal: Lukáš Záruba
Datum odeslání: 14.bře.2019 v 09:48
Díky, přesně to jsem potřeboval. Už mi to funguje.
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odeslal: Lukáš Záruba
Datum odeslání: 15.bře.2019 v 11:02
Je možné toto pravidlo napsat tak aby fungovalo i pro sestavu? pokud ano, tak jak to napíšu?
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odeslal: Vladimír Michl
Datum odeslání: 17.bře.2019 v 08:10
Pro parametr sestavy nebo pro parametry všech komponent sestavy a podsestav? (to už je složitější). Pro parametr sestavy stačí upravit záhlaví - typy objektů.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: Lukáš Záruba
Datum odeslání: 18.bře.2019 v 08:40
|
Zdravím, Chtěl bych tímto pravidlem vyhledat, vymazat a znovu vytvořit uživatelský parametr "POLOTOVAR" v sestavě. Toto pravidlo funguje pro díl ale v sestavě hlásí chybu. Jedná se mi o to že budu postupně připisovat hodnoty do pravidla v "MultiValue.SetList" a proto když bude tato změna tak potřebuji aby byl starý seznam hodnot nahrazen novými. Hlavně u starých nebo převzatých projektů kde tento parametr není, nebo je vyplněn jinak.
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odeslal: Navara
Datum odeslání: 18.bře.2019 v 09:30
|
Tohle už začíná být docela rozsáhlé. Co se týká zpracování sestavy, tak stačí upravit záhlaví, ale doporučuju to udělat tak, aby to fungovalo pro obojí (sestava i součást). To znamená získat oUserParams jak pro sestavu, tak pro součást. Zbytek uzavřít do metody s argumentem oUserParams. No a v té metodě před smazáním parametru zkontrolovat, jestli je to přegenerování parametru nutné. Jinak totiž dochází ke změně souboru a budou neustále vznikat nové verze, které bude nutné ukládat i v případě, že fakticky k žádné změně nedojde.
|
Odeslal: Lukáš Záruba
Datum odeslání: 18.bře.2019 v 11:04
|
Děkuji za nápad pane Navaro, mohl byste mi napsat jak by šlo upravit abych získat oUserParams?
Co se týče zjišťování nutnosti přegenerování, tak bych si s tím nelámal hlavu. Jelikož toto pravidlo je spouštěno ručně, pouze při nutnosti použít starý projekt nebo přenzané díly jako nový. Tím pádem se vždycky něco změní ( materiál, geometrie,.... ).
------------- Budu rád za radu i případně všelijaké postřehy.
|
|