PRIMER 22.1

Further Positioning Commands

Further Positioning Commands

The following commands are common to all four positioning methods described above.

Accept Accept position and save changes.
Reject Abandon positioning, and restore initial position
Reset all Restores the mechanism to its initial position
Global Accuracy Sets the accuracy of the mechanism calculation
Options... Further positioning options
Save/Retrieve Save and retrieve positions

Accept: accepts the current position and saves the changes you have made

Once you are happy with the current position use Accept to save it and finish positioning.

Before it saves the position PRIMER checks all the nodes at (ls-dyna) joints in the mechanism to check that positioning has not pulled them apart. It applies a twin tolerance:

  • An absolute value of 1.0e-3. This is the value hard-wired into the Ansys LS-DYNA keyword reader.
  • A distance of 1.0e-6 times the model longest diagonal

Any joints at which separation of nodal pairs exceeds this figure will be listed and you will be given the option of Autofixing them.

This is performed by moving each pair of nodes to their average position and, so long as the errors are small, this is an acceptable distortion of the model. This is an iterative process since if a node is on more than one joint then correcting for joint A may move it out of position for joint B. If there are still errors after 5 passes the operation is abandoned and it is left to the user to sort out.

Warning: Avoid repeated [Position, Accept, Autofix] cycles on a model

This is because each Autofix operation changes the geometry of your mechanism slightly, and while a single such change may be insignificant repeated use of this feature will build up cumulative errors. In particular repeated Autofixing of joints, which moves pairs of nodes to their average coordinate, may introduce alignment errors.

It is better to achieve a position in a single operation from an unmodified mechanism model. If you are planning to generate a series of positions in succession you should use Model, Copy to create a new model from an original one each time, and create the position in the copy.

Reject: rejects the current position, restores the initial one and exits the positioner

Use Reject if you want to abandon positioning and restore the initial position. All changes made during positioning will be lost, and you will return to the main Position menu with the model unchanged.

Reset all: restores the intial position.

Sometimes positioning goes horribly wrong and the best thing is to start again. Reset all restores the initial position that was saved when you entered the positioner, cancelling all changes made since then. You can use this at any time.

Global Accuracy: sets the precision of the mechanism calculation

By default the precision with which the mechanism positioning process calculation is performed is based on the diagonal of the box bounding the mechanism times a "convergence factor" of 1.0e-4. Therefore a mechanism fitting into a box with a diagonal of one metre will be solved to a precision of approximately 0.1mm, this being the maximum permitted error at mechanism connection points.

This error manifests itself as small differences in the coordinates of theoretically coincident connection points on assemblies A and B that are joined by a mechanism connection. As part of "accepting" a mechanism PRIMER checks for Ansys LS-DYNA joints ( *CONSTRAINED_JOINT ) at such points and moves points A and B to an identical average position so as not to exceed the joint coincidence tolerance permitted by Ansys LS-DYNA. Points not connected by an Ansys LS-DYNA joint are left in their slightly different positions.

Therefore the result of mechanism positioning is a series of small distortions of your model, and possibly also small changes to joint geometry. You must make an engineering decision about what constitutes an acceptable tolerance for your particular model, and you may wish to use Global accuracy to make mechanism positioning more precise. It will not usually be sensible to make it less precise than the default value of 1.0, although doing so will make dragging faster - possibly an acceptable setting for performing an interactive demonstration in front of an impatient audience!

Detailed convergence parameters can be set in Options , described below, but these are rather opaque and a simpler value to use is the Global accuracy parameter which can be in the range 0.1 to 100.0, default 1.0.

The effect of this factor is to divide the default value of the following three convergence parameters thus:

Convergence factor = 1.0e-4 / Global Accuracy
End movement factor = 1.0e-8 / Global Accuracy
Step size factor = 1.0e-4 / Global Accuracy

You can still set these individually in Options below, this is just a simpler and easier way of doing that.


Global Accuracy is a floating point number that may have any value in the range 0.1 to 100.0, and typical values are:

Global Accuracy typical values and their meanings.
0.1
Very loose tolerance, not recommended
1.0
Default value , suitable for dragging with the mouse
10.0
Tighter value, practical limit for dragging with the mouse
20.0
Tighter still, suitable for "specified" motion
50.0
Very tight, practical limit for "specified" motion
100.0
Extremely tight: will probably lock up.

You can change the value at any time, and some experimenting may be required with very complex mechanisms to find a value that gives a reasonably compromise between precision and speed of positioning.

The default value may be changed by the preference:

primer*mechanism_accuracy: value

Options... Setting positioning options

The following options affect the positioner:

Convergence factor
End movement factor
Step size factor

Max #outer steps
Max #inner steps

These options all affect the free dragging positioner only.

They should not normally need to be changed, but if the mechanism moves very slowly, or "gets stuck", then increasing the Convergence and Step size factors may help. Avoid much larger values as the solution will become inaccurate.

Draw wireframe
Draw normal
Sets the graphics mode to be used when dragging assemblies. "Draw normal" shows the assembly in grey using normal graphics, but this demands quite a lot of cpu time and only slower computers "Draw wireframe" may be necessary to get acceptable dragging speed.
Joint coinc check

Is the post Accept joint node coincidence check.

By default it will check and report any results, asking you what action to take. You can it work silently, which will fix any errors without further input, or turn it off altogether.

Move Cross-sections Whether or not *DATABASE_CROSS_SECTION_PLANE definitions that have parts wholly or partially in a single assembly are moved with that assembly.


Diagnostic drawing, output verbosity and JSTF force display are for programmer debugging purposes and - hopefully - can be ignored!

Save/Retrieve: Saving and restoring mechanism positions

You can store any number of mechanism positions, and retrieve them at any time into the positioner.

A stored position contains a [centre of gravity] plus [3x3 direction cosines] for each assembly in the mechanism, making it possible to return to a given configuration without any further calculation.

Position data is stored with the mechanism definition and is saved when the keyword file is written out.

This information can also be saved into a seperate Mechanism Configuration File which can be read back into PRIMER .


Save... Saves the current position. You only need to give a unique name.
Retrieve.. Restores a saved position. This becomes the current position and the dummy geometry is updated immediately causing it to "jump" to the new position.
Delete... Deletes the selected positions. Deletion is permanent!

Where a mechanism has "child" mechanisms or dummies positions are saved and retrieved for these as well. Since position selection is by name retrieving a position which does not exist in a child will leave the child unmoved.

A more detailed explanation of saved positions, including card formats, is given in Appendix B.iii .