Zobrazit plnou verzi příspěvku: VYTVOŘ PARAMETR NEBO UŽIVATELSKOU IVLASTNOST

Lukáš Záruba
05.10.2018, 21:51
Je možné napsat na začátek pravidla něco jako:zkontroluj parmetr Xpokud neni tak ho vytvořpokud je tak nic.azkontroluj uživatelskou ivlastnost Ypokud neni, tak ji vytvořpokud je tak nic.Pokud ano, tak jak to napsat?

Vladimír Michl
06.10.2018, 08:02
Test na existenci uděláte nejsnáze přes Try-Catch - viz ukázka Ilogic kódu:https://www.cadforum.cz/cadforum/jak-vytvorit-uzivatelskou-ivlastnost-nebo-parametr-pomoci-ilogic-tip12023

Lukáš Záruba
06.10.2018, 09:06
Díky už mi to funguje.Co když budu chtít v jednom pravidle takto nastavit více ivlatvností ? dá se Try-Catch jen zkopírovat , přiřadit jiné názvy a bude to fungovat? nějak takhle:
Dim propertyName As String = "MAT"
Dim propertyValue As String = "PZ"
customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Try
prop = customPropertySet.Item(propertyName)
Catch
customPropertySet.Add("", propertyName)
End Try



Dim propertyName As String = "POLOTOVAR"
Dim propertyValue As String = "PLECH"

customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Try
prop = customPropertySet.Item(propertyName)
Catch
customPropertySet.Add("", propertyName) End Trynevím však čím to oddělit.  

Vladimír Michl
06.10.2018, 11:18
Pak už stačí opakovat jen řádky (ničím není třeba oddělovat):[CODE]Try prop = customPropertySet.Item("DalsiVlastnost")Catch customPropertySet.Add("","DalsiVlastnost")End Try[/CODE]

Lukáš Záruba
08.10.2018, 13:13
Děkuji za radu ale jak jste to přesně myslel? pořád mi to nefunguje.Try prop = customPropertySet.Item("MAT")Catch customPropertySet.Add("","MAT")End Try prop = customPropertySet.Item("POLOTOVAR")Catch customPropertySet.Add("","POLOTOVAR")End Try

Vladimír Michl
08.10.2018, 13:24

Máte to správně, jen tam chybí ten druhý úvodní "Try" - opakovat se musí celý ten blok Try-End Try.

Lukáš Záruba
09.10.2018, 07:49
Velice mi to pomohlo, už mi to funguje.Děkujikdyž bych chtěl založit parametr a zároveň ho "nastavit s více hodnotami" tak to jde taky? a jak to mám napsat?Takhle?Try
p = Parameter("MAT")
Catch
oUserParams.AddByValue("MAT","Neni", UnitsTypeEnum.kTextUnits)
End Try


Try
p = Parameter("POLOTOVAR")
Catch
oUserParams.AddByValue("POLOTOVAR","PLECH", UnitsTypeEnum.kTextUnits)
MultiValue.List("POLOTOVAR","TYČ", "DESKA-PŘÍŘEZ") = MyArrayList
End Try

Vladimír Michl
09.10.2018, 08:53

Ten (před)poslední řádek je nějaký divný, spíš bych zkusil něco jako: [CODE]MultiValue.SetList("POLOTOVAR", "TYČ", "PLECH", "DESKA", "HRANOL")[/CODE]