PŘIDÁNÍ PARAMETRU ANO/NE POMOCÍ I-LOGIKU
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=29126
Datum vytištění: 06.kvě.2026 v 19:31
Téma: PŘIDÁNÍ PARAMETRU ANO/NE POMOCÍ I-LOGIKU
Odeslal: Lukáš Záruba
Předmět: PŘIDÁNÍ PARAMETRU ANO/NE POMOCÍ I-LOGIKU
Datum odeslání: 12.čvc.2019 v 11:34
|
Zdravím, mám pravidlo viz níže, které mi přidává i-vlastnosti + parametry ( číselné i textové ). Potřebuji nyní přidat parametr ano/ne a jak tedy rozšířit toto pravidlo aby to fungovalo?
Sub Main()
Dim userParams As UserParameters = GetUserParams(ThisDoc.Document)
EnsureParameter(userParams, "NR0", comment:="NADPIS - ROZM�R")
EnsureParameter(userParams, "NR1", comment:="NADPIS - ROZM�R")
EnsureParameter(userParams, "NR2", comment:="NADPIS - ROZM�R")
EnsureParameter(userParams, "NR3", comment:="NADPIS - ROZM�R")
EnsureParameter(userParams, "NR4", comment:="NADPIS - ROZM�R")
EnsureParameter(userParams, "NR5", comment:="NADPIS - ROZM�R")
EnsureParameter(userParams, "PR1", comment:="POPIS - ROZM�R")
EnsureParameter(userParams, "PR2", comment:="POPIS - ROZM�R")
EnsureParameter(userParams, "PR3", comment:="POPIS - ROZM�R")
EnsureParameter(userParams, "PR4", comment:="POPIS - ROZM�R")
EnsureParameter(userParams, "PR5", comment:="POPIS - ROZM�R")
EnsureParameter(userParams, "D�LKA", comment:="D�LKA PROFILU")
EnsureParameter(userParams, "STRANA_A_Y", comment:="ROZM�R PRO OSU Y (V�T�INOU D�LKA)")
EnsureParameter(userParams, "STRANA_B_X", comment:="ROZM�R PRO OSU X")
EnsureParameter(userParams, "STRANA_C_Z", comment:="ROZM�R PRO OSU Z")
EnsureParameterTEXT(userParams, "MAT", comment:="MATERI�L")
EnsureParameterTEXT(userParams, "POPIS_DILU", comment:="GRAV�RA")
EnsureParameterTEXT(userParams, "POLOTOVAR", comment:="PRO V�ECHNY")
Dim customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
EnsureProperty(customPropertySet, "N0")
EnsureProperty(customPropertySet, "N0-M")
EnsureProperty(customPropertySet, "N1")
EnsureProperty(customPropertySet, "N1-M")
EnsureProperty(customPropertySet, "N2")
EnsureProperty(customPropertySet, "N2-M")
EnsureProperty(customPropertySet, "N3")
EnsureProperty(customPropertySet, "N3-M")
EnsureProperty(customPropertySet, "N4")
EnsureProperty(customPropertySet, "N4-M")
EnsureProperty(customPropertySet, "N5")
EnsureProperty(customPropertySet, "N5-M")
EnsureProperty(customPropertySet, "NR0")
EnsureProperty(customPropertySet, "NR0-M")
EnsureProperty(customPropertySet, "NR1")
EnsureProperty(customPropertySet, "NR1-M")
EnsureProperty(customPropertySet, "NR2")
EnsureProperty(customPropertySet, "NR2-M")
EnsureProperty(customPropertySet, "NR3")
EnsureProperty(customPropertySet, "NR3-M")
EnsureProperty(customPropertySet, "NR4")
EnsureProperty(customPropertySet, "NR4-M")
EnsureProperty(customPropertySet, "NR5")
EnsureProperty(customPropertySet, "NR5-M")
EnsureProperty(customPropertySet, "P1")
EnsureProperty(customPropertySet, "P1-M")
EnsureProperty(customPropertySet, "P2")
EnsureProperty(customPropertySet, "P2-M")
EnsureProperty(customPropertySet, "P3")
EnsureProperty(customPropertySet, "P3-M")
EnsureProperty(customPropertySet, "P4")
EnsureProperty(customPropertySet, "P4-M")
EnsureProperty(customPropertySet, "P5")
EnsureProperty(customPropertySet, "P5-M")
EnsureProperty(customPropertySet, "PR1")
EnsureProperty(customPropertySet, "PR1-M")
EnsureProperty(customPropertySet, "PR2")
EnsureProperty(customPropertySet, "PR2-M")
EnsureProperty(customPropertySet, "PR3")
EnsureProperty(customPropertySet, "PR3-M")
EnsureProperty(customPropertySet, "PR4")
EnsureProperty(customPropertySet, "PR4-M")
EnsureProperty(customPropertySet, "PR5")
EnsureProperty(customPropertySet, "PR5-M")
EnsureProperty(customPropertySet, "MAT")
EnsureProperty(customPropertySet, "MAT-M")
EnsureProperty(customPropertySet, "MAT2")
EnsureProperty(customPropertySet, "MAT2-M")
EnsureProperty(customPropertySet, "TYP1")
EnsureProperty(customPropertySet, "TYP1-M")
EnsureProperty(customPropertySet, "TYP2")
EnsureProperty(customPropertySet, "TYP2-M")
EnsureProperty(customPropertySet, "POPIS_REVIZE")
EnsureProperty(customPropertySet, "POLOTOVAR")
End Sub
Function GetUserParams(doc As Document) As UserParameters
If (doc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject) Then
Dim asm As AssemblyDocument = doc
Return asm.ComponentDefinition.Parameters.UserParameters
ElseIf (doc.DocumentType = DocumentTypeEnum.kPartDocumentObject) Then
Dim prt As PartDocument = doc
Return prt.ComponentDefinition.Parameters.UserParameters
Else
Throw New ArgumentOutOfRangeException("Document can be AssemblyDocument or PartDocument")
End If
End Function
Function EnsureParameter(
userParams As UserParameters,
paramName As String,
Optional defaultValue As Double = 0,
Optional units As String = "mm",
Optional comment As String = "") As Parameter
Dim p As Parameter
Try
p = userParams(paramName)
Catch ex As Exception
p = userParams.AddByValue(paramName, defaultValue, units)
p.Comment = comment
End Try
Return p
End Function
Function EnsureParameterTEXT(
userParams As UserParameters,
paramName As String,
Optional defaultValue As String= "",
Optional comment As String = "") As Parameter
Dim p As Parameter
Try
p = userParams(paramName)
Catch ex As Exception
p = userParams.AddByValue(paramName, defaultValue, "TEXT")
p.Comment = comment
End Try
Return p
End Function
Function EnsureProperty(propertySet As PropertySet, propName As String, Optional defaultValue As String = "") As [Property]
Dim p As [Property]
Try
p = propertySet(propName)
Catch ex As Exception
p = propertySet.Add(defaultValue,propName)
End Try
Return p
End Function
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 12.čvc.2019 v 14:07
|
To máte nějaké složité, mělo by stačit automatické vytváření správných typů parametrů - něco jako:
customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties") customPropertySet.Add("Bukové dřevo", "NášMateriál") customPropertySet.Add(False,"AplikujPískování")
|
asi obalené to Try/Catch
------------- 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í: 17.pro.2019 v 11:23
|
Zdravím,
Potřebuji dostat do sestavy cca 6 parametrů booleovských parametrů (ANO/NE), do sestavy. Chtěl bych to dostat pomocí i-logicu. Jak to napíšu? jde to vůbec?
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odeslal: Vladimír Michl
Datum odeslání: 17.pro.2019 v 12:40
|
Výše je to naznačeno - např.:
Dim customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties")
Try
customPropertySet.Add(True, "AntikorozníÚprava")
customPropertySet.Add(False, "AplikujPískování")
Catch
End Try
------------- 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í: 17.pro.2019 v 13:17
|
Děkuji, na uživatelské i-vlastnosti mi to funguje ale potřebuji to dostat do uživatelských parametrů sestavy.
------------- Budu rád za radu i případně všelijaké postřehy.
|
Odeslal: Navara
Datum odeslání: 17.pro.2019 v 13:30
Je to stejné, jako u parametru text
ActiveAsm.ComponentDefinition.Parameters.UserParameters.AddByValue("MyBoolParam", True, "BOOLEAN")
|
|
Odeslal: Lukáš Záruba
Datum odeslání: 17.pro.2019 v 14:52
DÍKY UŽ MI TO FUNGUJE
------------- Budu rád za radu i případně všelijaké postřehy.
|
|