Indicates the beginning of a System definition block.


*DefineSystem(definition_name,[TYPED,user_type, reserved_for_future_use,] [arg_1,][arg_2],...[arg_n])


The variable name of the system.
Data type: Variable name
When TYPED is used as a second argument, two new arguments are used. These are optional arguments.
Specifies the system type. See the Comments section below.
Data type: User-defined
reserved_for_ future_use
Intended for future use and must be blank.
arg_1, arg_2, ..., arg_n
Arguments passed as attachments into the system definition.


*DefineSystem(sysdef_strut_cyl_r, TYPED, RearStrut, , 
b_upper_att, b_lower_att, p_strut_rod_upr, 
p_strut_tube_lwr, p_spr_upr, p_spr_lwr, 
b_knbody, b_vehicleBody)
*Attachment(b_upper_att, "Strut upr att body", BodyPair, 
"Strut upper attaching body")
*Attachment(b_lower_att, "Strut lwr att body", BodyPair, 
"Strut lower attaching body")
*Attachment(b_knbody, "knuckle", BodyPair, 
"Make a selection for this argument." , , 
*Attachment(b_vehicleBody, "vehicleBody", Body, 
"Make a selection for this argument." , , 
*PointPair(p_strut_rod_cg, "Strut rod CG")
*PointPair(p_strut_rod_lwr, "Strut rod lwr")
*PointPair(p_strut_tube_cg, "Strut tube CG")



This block is used to create a system definition which can be instantiated using the *System() statement.

User_type: When you specify a user type, you can register customized GUI for systems/assemblies of that type. For instance, a system can be defined for a customized bushing which has TYPE set as MyCustomBushing and a dedicated user-defined GUI panel to feed in or modify bushing properties. A *DefineSystem() block defines a system which can contain various entities such as *Point(), *Body(), *Option(), *DataSet(), and *Form() . The arguments arg_1, arg_2 for a definition identify entities outside the block that are referred to by entities inside the definition. Arguments are further qualified by *Attachment() statements in the definition block.

Multiple systems can be created using the same system definition. However, it should be remembered that the systems share the definition. Any topology changes like adding/deleting entities or modifying an entity definition is going to effect all systems that share the same definition.

Every *DefineSystem() requires an ending *EndDefine() statement.