Weld Business Rules - Specifying the Bevel User-Defined Function Parameters

You can use Weld business rules that allow you to select the proper edge preparation code according to its context. This code corresponds to a dedicated User Defined Function (UDF), which instantiates during the Update IPM. This UDF instantiates with the values as present in the power copy in the data setup. You can now also specify the bevel UDF parameters as required in the weld business rule.

The following topics discuss:

This page discusses:

IPM1BevelUDFParams

The list of all the UDF parameters specify on the instantiated UDF in the first IPM. Each item in this list can be a list having the parameter name and the parameter value as required.

For example, to specify a parameter of the name RootGap having a value 10mm:

  • Create a list and insert the parameter name as the first element and the parameter value as the second element in the list.
  • Add this list, the parameter name, and the value of the pair to the IPM1BevelUDFParams list.
  • An example code:
    let IPM1BevelUDFParamItem1(List)
    let IPM1BevelParamItem1Name(String)
    IPM1BevelParamItem1Name="RootGap"
    let IPM1BevelParamItem1Value(LENGTH)
    set IPM1BevelParamItem1Value=10mm
    IPM1BevelUDFParamItem1.Append(IPM1BevelParamItem1Name)
    IPM1BevelUDFParamItem1.Append(IPM1BevelParamItem1Value)
    IPM1BevelUDFParams.Append(IPM1BevelUDFParamItem1)
    

IPM2BevelUDFParams

You can list of all the UDF parameters specify on the instantiated UDF in the second IPM. Each item in this list can be a list having the parameter name and the parameter value as required.

For example, to specify a parameter of the name RootGap having a value 20mm:

  • Create a list and insert the parameter name as the first element and the parameter value as the second element in the list.
  • Add this list and the parameter name and the value of the pair to the IPM1BevelUDFParams list.
  • Example code:
    let IPM2BevelUDFParamItem1(List)
    let IPM2BevelParamItem1Name(String)
    IPM2BevelParamItem1Name="RootGap"
    let IPM2BevelParamItem1Value(LENGTH)
    set IPM2BevelParamItem1Value=20mm
    IPM2BevelUDFParamItem1.Append(IPM2BevelParamItem1Name)
    IPM2BevelUDFParamItem1.Append(IPM2BevelParamItem1Value)
    IPM2BevelUDFParams.Append(IPM2BevelUDFParamItem1)
    

The values specify in the above parameters apply on the generated bevel UDF in the IPMs during an Update IPM.

An example of a weld business rule, with specified Bevel UDF parameters as required:

let WeldType(String)

let fastenProcess(Fasten)
let fastenIPM(VPMReference)

let weldLine(DELStrMfgWeldLine)
let ConnectedObjects(List)

let IPMObjects(List)
let IPMCodes(List) 

let IPM1_Code(String)
let IPM2_Code(String)

let IPM1(VPMReference)
let IPM2(VPMReference)

let connectedProcess1(ElementaryEndItem)
let connectedProcess2(ElementaryEndItem)

let connectedProfile1(Structure_Stiffener)
let connectedProfile2(Structure_Stiffener)

let weldFeatures(List)
let mfgWeld(DELStrMfgWeldLine)	
let connectedProcesses(List)
let weldType(String)

let IPM1BevelUDFParams(List) 
let IPM2BevelUDFParams(List) 

set fastenProcess=Parameters.GetAttributeObject("FastenProcess")
if(NULL <> fastenProcess)
{
	set fastenIPM = fastenProcess.GetProcessOutput()
	if(NULL <> fastenIPM)
	{		
		set weldFeatures=fastenIPM.GetMfgFeatures("DELStrMfgWeldLine")
		if(weldFeatures.Size() > 0 )
		{
			set mfgWeld=weldFeatures.GetItem(1)
			if(NULL <> mfgWeld)
			{		
				set connectedProcesses=fastenProcess.GetConnectedProcesses()	
				set connectedProcess1=connectedProcesses.GetItem(1)
				set connectedProcess2=connectedProcesses.GetItem(2)
				if(NULL <> connectedProcess1 and NULL <> connectedProcess2)
				{								
					set IPM1=connectedProcess1.GetProcessOutput()
					set IPM2=connectedProcess2.GetProcessOutput()
					IPM1_Code="SQ_10_0"
					IPM2_Code="SQ_10_0"
					IPMCodes.Append(IPM1_Code)
					IPMCodes.Append(IPM2_Code)
					IPMObjects.Append(IPM1)
					IPMObjects.Append(IPM2)	
					
					let IPM1BevelUDFParamItem1(List)
					let IPM1BevelParamItem1Name(String)
					IPM1BevelParamItem1Name="RootGap"
					let IPM1BevelParamItem1Value(LENGTH)
					set IPM1BevelParamItem1Value=10mm
					IPM1BevelUDFParamItem1.Append(IPM1BevelParamItem1Name)
					IPM1BevelUDFParamItem1.Append(IPM1BevelParamItem1Value)
					
					IPM1BevelUDFParams.Append(IPM1BevelUDFParamItem1)
					
					let IPM1BevelUDFParamItem2(List)
					let IPM1BevelParamItem2Name(String)
					IPM1BevelParamItem2Name="EdgePrepSide"
					let IPM1BevelParamItem2Value(String)
					 IPM1BevelParamItem2Value="Molded"
					
					IPM1BevelUDFParamItem2.Append(IPM1BevelParamItem2Name)
					IPM1BevelUDFParamItem2.Append(IPM1BevelParamItem2Value)
					
					IPM1BevelUDFParams.Append(IPM1BevelUDFParamItem2)
										
					let IPM2BevelUDFParamItem1(List)
					let IPM2BevelParamItem1Name(String)
					IPM2BevelParamItem1Name="RootGap"
					let IPM2BevelParamItem1Value(LENGTH)
					set IPM2BevelParamItem1Value=20mm
					IPM2BevelUDFParamItem1.Append(IPM2BevelParamItem1Name)
					IPM2BevelUDFParamItem1.Append(IPM2BevelParamItem1Value)
					
					IPM2BevelUDFParams.Append(IPM2BevelUDFParamItem1)
					
					let IPM2BevelUDFParamItem2(List)
					let IPM2BevelParamItem2Name(String)
					IPM2BevelParamItem2Name="EdgePrepSide"
					let IPM2BevelParamItem2Value(String)
					 IPM1BevelParamItem2Value="Thick"
					
					IPM2BevelUDFParamItem2.Append(IPM2BevelParamItem2Name)
					IPM2BevelUDFParamItem2.Append(IPM2BevelParamItem2Value)
					
					IPM2BevelUDFParams.Append(IPM2BevelUDFParamItem2)			
				}
			}
		}					
	}
}
Parameters.SetAttributeObject("IPM", IPMObjects)
Parameters.SetAttributeObject("Code", IPMCodes) 
Parameters.SetAttributeObject("IPM1BevelUDFParams", IPM1BevelUDFParams)
Parameters.SetAttributeObject("IPM2BevelUDFParams", IPM2BevelUDFParams)