iLogic Add User Parameter to flat pattern

iLogic Add User Parameter to flat pattern

Cosmin_V
Advocate Advocate
684 Views
5 Replies
Message 1 of 6

iLogic Add User Parameter to flat pattern

Cosmin_V
Advocate
Advocate

Hello

 

I try to add a user parameter to a sheet metal part.

And now I realized, the flat pattern has a different user parameter.

Can I add by iLogic rule a parameter in to flat pattern? I try but no succeed, only....

 

Try 
	 Parameter("Emboss_Text") = iProperties.Value("Project", "Part Number")
	Catch
oMyParameter = ThisApplication.ActiveDocument.ComponentDefinition.Parameters.UserParameters
oParameter = oMyParameter.AddByValue("Emboss_Text", iProperties.Value("Project", "Part Number"), UnitsTypeEnum.kTextUnits)
End Try

Many Thanks!!!

 

0 Likes
Accepted solutions (1)
685 Views
5 Replies
Replies (5)
Message 2 of 6

Michael.Navara
Advisor
Advisor
Accepted solution
'Flatpattern must be active object (in edit mode)
Dim oFlatPattern As FlatPattern = ThisApplication.ActiveEditObject

oFlatPattern.Parameters.UserParameters.AddByExpression("paramName", "1", "mm")
0 Likes
Message 3 of 6

Cosmin_V
Advocate
Advocate

Thanks @Michael.Navara 

 

It works fine, but now I have another problem 🙄

 

How can I call that parameter?

0 Likes
Message 4 of 6

Michael.Navara
Advisor
Advisor
0 Likes
Message 5 of 6

Cosmin_V
Advocate
Advocate

Hello @Michael.Navara 

 

 

I just don't understand ...
I want, from an external rule, to create, if there is no, a user parameter in flat pattern: "Engraving_Number" to be = with the part number.
and because after copy design the number is from the old part, I want to do another rule in the sheet metal part to update the parameter from flat pattern "Engraving_Number" whit the new part number.
And I can't...😪

0 Likes
Message 6 of 6

Michael.Navara
Advisor
Advisor

Try something like this

Sub Main()
    Dim part As PartDocument = ThisDoc.Document
    Dim smCompDef As SheetMetalComponentDefinition = part.ComponentDefinition
    Dim flatPattern As FlatPattern = smCompDef.FlatPattern

    Dim partNumber As String = part.PropertySets("{32853F0F-3444-11D1-9E93-0060B03C1CA6}")("Part Number").Value.ToString()

    UpdateFlatpatternParameter(flatPattern, partNumber)
End Sub

Dim paramName As String = "Engraving_Number"

Private Sub UpdateFlatpatternParameter(flatPattern As FlatPattern, partNumber As String)

    Dim engravingParam As Parameter
    Try
        engravingParam = flatPattern.Parameters(paramName)
        Dim engravingParamValue As String = engravingParam.Value.ToString()
        If engravingParamValue <> partNumber Then
            engravingParam.Value = partNumber
        End If
    Catch
        engravingParam = flatPattern.Parameters.UserParameters.AddByValue(paramName, partNumber, "TEXT")
    End Try

End Sub
0 Likes