Spotweld Interface

The spotweld feinput translator reads weld information from an ASCII file, such as a Master Weld File.

HyperMesh supports multiple formats for master weld files through weld templates. The weld template is specific for a given format. The spotweld translator registers the template through a spotweld configuration file. The currently supported master weld file format templates and the configuration file can be found in the spotweld_format directory. In order to use a different format you must create a weld template and add its name and path to the configuration file. Existing weld templates can be copied and modified to support the new format.

The outline of a generic master weld file is:
  • Point ID
  • Layer information (the number of thickness it connects 2T/3T/4T. Max layers supported 4T)
  • Spotweld location (X, Y, Z)
  • Connector part IDs (HyperMesh Component/Part IDs)
  • The delimiter between fields can be ":", ",", " ".
  • ASCII files can have comments beginning with the characters # or $, or there can be blank lines in between.

The spotweld translator reads information from the master weld file and stores it in the database. At each of the weld locations, an HM_POINT is created.

Example: Weld Template and Master Weld File

The example below helps create a weld template for specific formats.
#Weld format 1.
#Point Id::  T::        X::        Y::        Z::        PID1::        PID2::        PID3::        
        1::      2::        2.000::        3.000::  4.000: :         12::        14::        20::
Figure 1. Master Weld File
int num
header
{
    type "SPOTWELDS"
    set mark
    find "[0-9]+::"
    rewind
    set num = 0
    if
    {
        do 1000000
        {
            if
            {
                isdigit
            }
            then
            {
                set num = sum(num, 1)
            }
            readln null
        }
    }
    set numrecords = num
    set numrequests = 9
    requests "ID/T/X/Y/Z/PID1/PID2/PID3/PID4"
    set numcomponents = 1
    components "Value"
}
record
 if
    {
        do 1000000
        {
            if
            {
                isdigit
            }
            then
         isalpha
            }
     readln null
        }
    }
    read request // ID
    qfind "::"
 set mark
    read request  //T
 rewind
 read num
    qfind "::"
    read request // X
    qfind "::"
    read request // Y
    qfind "::"
    read request // Z
    do num
    {
        qfind "::"
        read request // PID
    }
    set num = diff(4, num)
    do num
    {
        read constant 0 // fake PID
    }
    readln null
}
Figure 2. Weld Template