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 provided below:
• | 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.
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::
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
}
See Also: