*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.
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
if { [ catch {command_name...} ] } {
# Handle error
}
Version History
2022