*dummyautomaticpositioner

Positions a dummy to an optimal position based on a list of design points with 'TargetPoint' configuration and a list of bodies that are free to move.

Syntax

*dummyautomaticpositioner dummyid=<value> designpointids=<value> bodiestomove=<value> ?bodydofs=<value>? ?bodyweights=<value>? ?targetspriority=<value>?

Type

HyperMesh Tcl Modify Command

Description

Positions the specified dummy based on the design points with ‘TargetPoint’ configuraiton located on it. Additionally, the command requires a list of IDs of the bodies that can be moved by the command to take the design points as close to their target position as possible. Their corresponding degrees of freedom (DOFs) and weights can be specified as optional arguments.

The bodies that are closest to the root will be moved first, followed by other bodies in a breadthwise pattern. The processing of design points can be done in three different ways specified by the targetspriority.

Inputs

dummyid=<value>
The ID of the dummy as indicated in the dummy browser.
designpointids=<value>
The IDs of the design points with 'TargetPoint' configuration located on the dummy.
bodiestomove=<value>
The IDs of the bodies of the dummy that needs to be moved.
bodydofs=<value>
The corresponding DOFs of the above specified bodies. For each body the 4 arguments are as follows: grounded, lock_x_rot, lock_y_rot, lock_z_rot. If grounded is 1, body is fixed to the ground and cannot be moved. If lock_x_rot is 1, the x rotational degree of freedom on the joint connecting the body to its parent body is locked. Similarly, lock_y_rot and lock_z_rot can be used to lock the y and z rotational degrees of freedom. By default, all bodies are free to move (i.e. DOFs are assigned 0 value).
bodiestomove=<value>
Bodies with higher weight have more inertia and thus move lesser compared to other bodies. Default value is a list of zeros with the same length as the list passed to bodiestomove.
targetspriority=<value>
The prioritizing scheme of the selected design points to be employed while positioning the dummy.
0 - The order in which the IDs of design points are passed to the command.
1 - Prioritize the design points that are located farthest from the joint (default)
2 - Prioritize the design points that need the greatest displacement to reach their test data position.

Example

To position a dummy ID 1 based on the target positions specified in the design points with IDs 4, 9 provided that bodies with IDs 9, 13, 8, 12, 11, 15, 10 can be moved by the command, the corresponding DOFs are as specified in the command (e.g., rotation about X and Y axes is locked in body with ID=9), no specific body weights are supplied, and only considering the IDs of design points as their order of processing:

*dummyautomaticpositioner dummyid=1 designpointids={4 9} bodiestomove={9 13 8 12 11 15 10 14} 
bodydofs={0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0} 
bodyweights={0 0 0 0 0 0 0 0} targetspriority=0

Errors

Incorrect usage results in a Tcl error. To detect errors, you can use the catch command:
if { [ catch {command_name...} ] } {
   # Handle error
}

Version History

2022