Zobrazit plnou verzi příspěvku: VYPLNĚNÍ HODNOT PŘIDANÝCH PARAMETRŮ

Lukáš Záruba
15.02.2019, 11:34
Zdravím,Jak mi pan Navara v předchozím dotazu ukázal, tak jsem schopen přidat jakoukoliv vlastnost nebo parametr. Teď bych potřeboval vědět jak vložím hodnoty do těchto parametrů.Mám toto pravidlo, které mi založí UŽIVATELSKÉ PARAMETRY : Sub Main()
Dim userParams As UserParameters = GetUserParams(ThisDoc.Document)

EnsureParameterMM(userParams, "DELKA", comment:="D�LKA CEL�HO PROFILU")
EnsureParameterMM(userParams, "PU_DIRA_PRVNI_Z_LEVA", comment:="N��RT - PRVN� V �AD� OD HRANY")
EnsureParameterMM(userParams, "PU_DIRA_POSLEDNI_Z_LEVA", comment:="N��RT - POSLEDN� V �AD� OD HRANY")
EnsureParameterUL(userParams, "PU_DIRA_POCET", comment:="POLE - PO�ET PRVK�")
EnsureParameterMM(userParams, "PU_DIRA_ROZTEC", comment:="POLE - ROZTE� PRVK�")
EnsureParameterMM(userParams, "PU_DIRA_LINIE", comment:="LINIE - D�LKA CEL�HO POLE")
EnsureParameterMM(userParams, "PU_DIRA_ROZTEC_ODSAZENI", comment:="MIN. ODSAZEN� OD HRANY ( DOPO�ET ROZD�LU)")
EnsureParameterMM(userParams, "PU_DIRA_ROZTEC_ODSATENI_OD_KONCU", comment:="MIN. ODSAZEN� OD HRANY")
EnsureParameterMM(userParams, "PU_DIRA_ROZTEC_DOPORUCENA", comment:="P�IBLI�N� ROZTEC")
EnsureParameterUL(userParams, "PU_VYKRES_POCET_ROZTECI", comment:="PRO V�KRES")
EnsureParameterMM(userParams, "PU_VYKRES_DIRA_ROZTEC", comment:="PRO V�KRES")


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 EnsureParameterMM(
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 EnsureParameterUL(
userParams As UserParameters,
paramName As String,
Optional defaultValue As Double = 0,
Optional units As String = "ul",
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 FunctionFunguje to skvěle.Já bych ještě potřeboval ukázat jak mám do těchto přidaných parametrů vložit hodnoty, v tomto případě se nejedná jen o konkrétní čísla ale i o vzorce. Viz tabulka níže:

Navara
15.02.2019, 11:42

Návratovou hodnotou funkce EnsureParameter je objekt typu Parameter. Doporučuju si přečíst dokumentaci k tomuto objektu. Nejdůležitější jsou pro vás v tuto chvíli p.Value a p.Expression