Weld Business Rules with Attachment Line

You can add conditions for the creation of the Attachment and Alignment Line based on a Weld Rule.

The following topics discuss:

This page discusses:

Weld Business Rule for Attachment and Alignment Line

This provides the openness in the Weld Business Rule to create an attachment line based on user-defined conditions.

Use the Weld Rule to determine whether the Attachment Line created or not. The Weld Rule defines in Data Setup and based on the Output of this, the Attachment Line then creates.

Example Weld Rule:

set fastenIPM = fastenProc.GetProcessOutput()
if (NULL <> fastenIPM)
{ 
	set weldFeatures = fastenIPM.GetMfgFeatures("DELStrMfgWeldLine")
	if (weldFeatures.Size()>0)
{
		setmfgWeld = weldFeatures.GetItem(1)
		if (NULL <> mfgWeld)
		{ 
				set weldLength = mfgWeld.WeldLength
				if (weldLength > 50mm)
						set bCreateAttachmentLine = true
				else
						set bCreateAttachmentLine = false
			}
	}
}
Parameters.SetAttributeBoolean("MarkingLinesForConnection", bCreateAttachementLine) 
The Attachment line gets created based on the value given in the MarkingLinesForConnection attribute.

Define the Weld Business Rule in Data setup -> Structure Fabrication Resource -> Rules Catalog-> Weld-> WeldRule-> StrMfgWeldRule.

Define the Weld Rule from this example Weld Rule:

Behavior:

The Attachment line creates based on the Boolean return value of the MarkingLinesForConnection attribute defined in the weld rule.

The three cases:

  1. Update IPM: When update IPM executes, for the fasten process:
    • The corresponding Weld line creates.
    • The Weld Business Rule runs. If the return value is True for the MarkingLinesForConnection attribute, the Attachment line and Alignment line created. If the return value is False, they do not create.
  2. Edit Feature: In the Edit Feature command for the Assembly level in the Connection tab, if adding a new Connection, then:
    1. The corresponding Weld line creates.
    2. The Attachment line and Alignment line complete, if the MarkingLinesForConnection attribute is False they do not create.
  3. Synchronization: During the Synchronization command after you Compute, if there is a Weld Line creation:
    1. The Status and Action columns for the Attachment line, Alignment line, and Weld line, appear as New and Create respectively.
    2. After clicking Synchronize, the Weld line creates.
    3. During the Attachment line creation, the Weld Business Rule executes. And based on the MarkingLinesForConnection attribute value retrieved from the Weld Business Rule, Attachment Line creation occurs between connected processes in 3D. If the return value is True, the Attachment line creates. If the return value is False, the Attachment line does not create.

Controlling the Alignment Line Generation during Update IPM

You can use the Weld business rules that allow you to create an attachment line or not according to its context. However, there is a need to control the alignment line generation during Update IPM. Through the weld business rule, enable\disable the alignment line creation, position, length, and offset from attachment line extremities as required.

Define and specify the alignment line parameters as required in the weld business rule in data setup. Enable or disable alignment line creation in the weld business rule. If enabling the alignment line creation and specifying the parameters in the rule, run update IPM. The alignment line creates with the parameters specify by you in the weld business rule.

Define the parameters about the Alignment line creation as per requirements:

  1. Boolean (true/false) for alignment line creation.
  2. Alignment line position
    • 0 - Both Extremities.
    • 1 - Start Extremity only.
    • 2 - End Extremity only.
    • 3 - Center Extremity only.
  3. Offset from attachment line extremities.
  4. Length of alignment line.

Apply the values specified in the above parameters to the alignment line feature during an Update IPM.

An example of a weld business rule with Alignment Line parameters specifies as required:

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 StrWeldType(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 weldLength(LENGTH)

let bCreateAttachmentLine(Boolean)
let ParameterList(List)
let bCreateAlignmentLine (Boolean)
let AlignmentModeExtremity(Integer)
let AlignLength(LENGTH)
let AlignOffset(LENGTH)	

let IPMPropagationList(List)
let IPM1_Propagation(Integer)
let IPM2_Propagation(Integer)

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)
			{
				StrWeldType = mfgWeld.WeldType	
				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()
					
					IPMObjects.Append(IPM1)
					IPMObjects.Append(IPM2)											
					
					if(StrWeldType == "TEE")
					{	
						IPM1_Code="S_10_0"
						IPM2_Code=""
						
						IPMCodes.Append(IPM1_Code)
						IPMCodes.Append(IPM2_Code)
						
						IPM1_Propagation = 1
						IPM2_Propagation = 0						
						IPMPropagationList.Append(IPM1_Propagation)
						IPMPropagationList.Append(IPM2_Propagation)
					}
					else if(StrWeldType == "BUTT")
					{												
						IPM1_Code="S_20_0"								
						IPM2_Code="S_20_0"
						
						IPMCodes.Append(IPM1_Code)
						IPMCodes.Append(IPM2_Code)
						
						IPM1_Propagation=1	
						IPM2_Propagation=1
						
						IPMPropagationList.Append(IPM1_Propagation)
						IPMPropagationList.Append(IPM2_Propagation)						
						
					}
					else if(StrWeldType == "LID")
					{						
						IPM1_Code="S_20_0"								
						IPM2_Code=""
						
						IPMCodes.Append(IPM1_Code)
						IPMCodes.Append(IPM2_Code)
						
						IPM1_Propagation = 2
						IPM2_Propagation = 0
						
						IPMPropagationList.Append(IPM1_Propagation)
						IPMPropagationList.Append(IPM2_Propagation)						
						
					}
					else
					{						
						IPM1_Code="SQ_10_0"
						IPM2_Code="SQ_10_0"
						
						IPMCodes.Append(IPM1_Code)
						IPMCodes.Append(IPM2_Code)					
					}	
					
					set bCreateAlignmentLine = true
					if (bCreateAlignmentLine == true)
					{
						set AlignOffset = 300mm
						set AlignLength = 300mm
						set AlignmentModeExtremity = 2
						ParameterList.Append(bCreateAlignmentLine)
						ParameterList.Append(AlignmentModeExtremity)
						ParameterList.Append(AlignOffset)
						ParameterList.Append(AlignLength)	
					}
					set weldLength = mfgWeld.WeldLength
					
					if (weldLength > 57mm)
						set bCreateAttachmentLine = true
					else
						set bCreateAttachmentLine = false	
				}
			}
		}							
		
	}
}


Parameters.SetAttributeObject("IPM", IPMObjects)
Parameters.SetAttributeObject("Code", IPMCodes)
Parameters.SetAttributeBoolean("MarkingLinesForConnection", bCreateAttachmentLine)
Parameters.SetAttributeObject("AlignmentLineCreation", ParameterList)
Parameters.SetAttributeObject("PropagationMode", IPMPropagationList)

Alignment Line creation:

  • For Butt panel, plate and welds, the alignment line creates but the attachment line does not create.
  • For all other welds, the alignment line creates only if the attachment line is there.

Alignment line creation creates through the Weld Business rule based on the above two conditions.

Below are the three cases:

  • Update IPM - When executing update IPM, for the fasten process, the Weld Business Rule runs. If the return value is True for the first element of the list for the AlignmentLineCreation attribute, the alignment line creates and for a False Value it does not create.
  • Edit Feature - For an Assembly level in the Connection tab, if adding a new connection, then run the Weld Business Rule. If a return value is True for the first element of the list for the AlignmentLineCreation attribute, the alignment line creates and for False Value it does not create.
  • Synchronization - During Synchronization, after Compute if there is Weld Line creation;
    • In Status and Action columns for Alignment line and Attachment line, New and Create display.
    • During Alignment line creation, execute the Weld Business Rule. If a return value of the first element of the list for AlignmentLineCreation attribute is True, the Alignment line creates. If it is a False Value, it does not create an Alignment line.

    If not defining the AlignmentLineCreation, then an alignment line is created by default.

Additional Weld Type Support

You can use the attachment line for the pilot part and joined part alignment. In the case of the stiffener of a free edge, create an attachment line between the attached parts.

You can create this line between Stiffener on the free edge and Panel/Plate. This supports the attachment line creation on the butt-profile-panel and butt-profile-plate weld type. In the weld type, the stiffener on the free edge is the pilot part and the panel/plate is the joined part.

The Attachment Line gets created on Panel/Plate for the below conditions. This provides the correct location of the attachment line.

Without this an, offset attachment line gets created. This is if the Weld type is the Butt-Profile-Panel and the Butt-Profile-Plate. Or if the Stiffener on the free edge can be a Pilot part and the Panel/Plate can be a joined part.

Edit this attachment line through the Attachment Line tab in Edit Features.