Iteration Move

<< Click to Display Table of Contents >>

Navigation:  Analysis Modeling > Moves > Types of Moves >

Iteration Move

The DVTI_iterate Iteration move is required when an object is to be rotated about a center point in small increments, translated in small increments in a particular direction, or when constructing loop logic around a series of moves.  The move will iterate until a measurement is within a specified range.

Some applications for the Iteration Move include Suspensions, Hinges and Linkages.

 

 

See Also:

Applying Moves

Common Parameters

Example Models:

C:\Users\Public\Documents\DCS\3DCS_All Platforms_8_0_0_1\3DCS CAD & Example Models\Reference Models\Moves\Iteration Loop move

 

 

A) Use as an iteration move

1.Selecting DVTI_iterate Iteration from the moves list displays the Iteration Move dialog box along with the part name in which it is created.

2.Select Mode: Translate or Rotate the part to define how the selected Move Parts have to move in order to satisfy the Iteration Move condition.  Note: This setting is not required if no parts are selected (when the Iteration is used as a Loop).

a.Center Pt - if Rotate was selected, click on the Center Pt button to select the center point about which the Move Parts will be rotated.  The point name, along with the part it belongs to, are displayed next to the center button.

3.Select Method:

a.Bisection

i.Improved convergence speed compared to the previous method.

ii.Also suitable for functions that only have one sided values, e.g., true distance.

Bisection_method

 

b.Bracketing Secant (Regula falsi)

i.Iteration does not start until it finds two values f(a)*f(b)<0. It is recommend to use a relatively large initial step to make it start faster.

ii.Uses two values that satisfy f(a)*f(b)<0, e.g., a1 and b1, therefore it will store the two previous values.

iii.Always converges for functions that have negative and positive values.

iv.It is usually faster than Bisection because of the way it calculates the convergence steps (storing the previous two values).

BracketingSecant_method

 

4.Input value for Initial Step - the value by which the move objects have to be either translated or rotated incrementally.  In general, a relatively large initial step is recommended for the Bracketing secant method.

5.Move Parts - click the Add button to select the parts to be moved from the Navigation window or from the graphics area.  There is no limitation for the number of parts in the list.  Click on Close when done to return to the Iteration Move dialog box.  A Key in part name field lets you type in the name of the part in order to select it.  The list box under Move Parts displays the names of all the parts selected.

To Delete any part, highlight the part in the list box and select the Delete button.

When the Iteration move is used to model relative movement in an assembly of parts, such as calibrating a series of parts by adjusting a set screw, only one part (such as the set screw) should be chosen.  The other parts must be adjusted by the moves embedded in the loop.

6.Direction - when Translate is selected, the vector entered in the Direction area defines the direction of movement.  When Rotate is selected, the vector entered in the Direction area defines the axis of rotation about the center point.  The right hand rule applies for the first iteration rotation.  If the part that moved in a direction makes the value of the measurement farther from the spec limits, the direction of rotation/translation will reverse in the next iteration.

 

 

B) Use as a loop move

1.Set the Loop value - specify the number of moves after the Iteration move to be included in the loop and performed in each loop iteration.  It does not include the Iteration move itself.  These moves must appear immediately after the Iteration move in the move list, and they should be set as inactive. If they are active, they will be executed one more time after the Iteration loop is completed and thus they can reposition the parts one more time and cancel the effect of the Iteration loop.

On each pass through the loop of the iteration move, the specified interference condition is checked, and if not satisfied, all moves under the loop are performed again.  The interference condition check is a Measure which is specified in the Options dialog of the Iteration move.

 

2.Loop Float On - will loop through a series of moves, continuously re-floating the parts. If this check-box is not activated the moves under the Iteration Loop will be executed without re-floating.

*** This option is replacing the Loop Move Float (dcsMvLoopFloat) DLL, previously part of the dcu_loopMv.dll routine.

 

Notes:

Each floating sub-move should have a pre-locating move so that the floating is starting a nominal-build position. The pre-locating move could simply be the copy of the floating sub-move without floating tolerances (Edit the Floats through the Move Option dialog settings).

This option will re-float the Pattern Move if positioned inside the loop. Since the Pattern Move will be inactive, no 'failed assemblies' will be reported in the Run Log.

 

Options:

The Options button brings up the Options dialog box which contains settings for Conditional logic and Iterative logic.

1.Iterative Logic

In the Iterative Logic area, specify the measure to check each loop through the iterative logic.  If the measure specified under the Interference drop-down is out of specification, and the number of Iterations specified has not been reached, the iterative loop will be performed again.

2.Conditional Logic

A measurement can be selected in the Interference section of the Move Options to tie the execution of the Iteration move (or Loop) to the state of that measurement (within its specified limits or not). Based on the desired state of that measurement the Iteration move (or Loop) will be triggered or not.

3.Search Accuracy

Is the minimum value that the step size will be reduced to before the move stops iterating.  

 

General logic:

First pass through loop

If the number of iterations is 0 or the measured value is within spec, nothing will happen.

If the measured value is out of spec the part is translated or rotated by the amount in the Initial Step field, and moves indicated by the Loop are looped through.

Subsequent passes through loop

If the number of iterations completed is equal to the number set in the Iterations field or the measured value is within spec, the loop stops.

If the measured value is closer to the spec limits than in the previous step, the part will be moved with the same increment in the same direction.

If the measured value is farther away from the spec limits than in the previous step, the part will be moved with the ½ of the previous increment in the opposite direction (for the Bisection method) or moved with the calculated increment (for the Bracketing Secant method).

In either case, the moves included in the loop are performed.

Note:

Every time when the direction is reversed, the increment is cut in half until the Search Accuracy is reached.

The above logic is repeated until the measured value is within spec or the number of iterations completed is equal to the number set in the Iterations field.        

 

Methodology:

First, a measurement has to be defined to represent the objective of this move.

Then, decide if an object is to be rotated or translated, or if a series of moves will be performed to meet the specified objective.

If the object is to be translated, the direction has to be specified.

If the object is to be rotated, then the center point about which it is to be rotated and the direction are to be specified.

Under Options, Iterative Logic, select the objective measurement.  Specify the number of iterations allowed.

The initial step for either translation or rotation needs to be specified.  (The initial step amount must be greater than or equal to the Search Accuracy under the Options dialog box, otherwise the part will not move.) The object is translated in the direction specified or rotated about the chosen center point until the measurement in the Iterative Logic is satisfied.    

If Subsequent moves are in the loop, they must be defined and sequenced to follow the iteration move in the assembly's move list.


 

TRANSLATION

 

STEP 1.        Consider the only Move part is a line to be translated in the specified vector direction.

moiter1M

The line is translated in small linear increments in the specified direction.

moiter2M

 

 

STEP 2.        The object line will keep translating in linear increments until the interference Measurement condition that has to be met is satisfied.

 

moiter3M

 

Note:    If the number of iterations needed to translate the part so that the measurement is within the design limits is not enough, the part may not be moved to the proper position.  Leave the measure As Output to verify.  Also, use the Continuous Deviate feature to verify.

 

 

ROTATION

 

STEP 1. Consider a line as the object part to be rotated about a center point with an axis in the direction of the specified vector.

moiter4M

 

The line rotates in small angular increments in a direction normal to the specified vector.

 

moiter5M

 

STEP 2. The object line keeps rotating in increments until the measurement condition that has to be met is satisfied.

 

moiter6M

 

 

Note:  If the number of Iterations needed to rotate the part so that the measurement is within the design limits is not enough, the part will not be rotated to the proper position.  Leave the measure As Output to verify.  Also, use the Continuous Deviate feature to verify.


LOOP

 

STEP 1. Consider two lines which are to be moved to a base at the bottom and rotated towards each other at the top. The Iteration Move is not used to move any parts, but only used to repeat the following two moves (defined in Loop n following moves) until the Interference Measurement (the distance between the two top object points) is within its design limits.  The Iteration Move will perform the two Moves following the Iteration Move whether they are checked as active or inactive.

 

moiter7M

A check is made before any Moves are performed. If the Interference Measurement is within spec, no moves will be performed.

 

 

 

STEP 2. If the measurement is outside of the design limits and the iteration value is greater than 0, the number of moves shown in the Loop n following moves box will be performed repeatedly until the parts are within spec or the number of iterations completed is equal to the value set in the Iterations field.  

 

moiter8M

 

The first move is performed.

 

moiter9M

The second move is performed.

moiter10M

 

The moves are repeatedly performed until the parts are within spec.

 

Note: If the number of iterations needed to translate the part so that the measurement is within the design limits is not enough, the part may not be moved to the proper position.  Leave the measure As Output to verify.  Also, use the Continuous Deviate feature to verify.

 


SPECIAL NOTES:

When using a measurement in the Iteration move (Conditional or Iterative logic fields), the measure is required to be set to Absolute, otherwise the measurement will be ignored.

Leave the measure used for the interference check active to verify it is always in-spec after the iteration move completes.

The measure used for the interference check must be in the same part as the iteration move.  If not, the Move will not execute, and the parts will not be moved.

Often more than one configuration of the part(s) will allow the measure to be in-spec. For example, if the First Part and Second Part above had rotated so that they came together underneath the target, the measure would be in-spec and the iteration move would be complete. Other measures should be created to verify undesired configurations are not being built.

If the Loop n following moves specified in the iteration exceeds the number of active moves in the assembly, undesired results might occur (a Move from another assembly may be used – Use Validate to check).

The Initial Step amount must be greater than or equal to the Search Accuracy under the Options dialog box, otherwise the part will not move.

Using Rotate to relocate an assembly on the screen can cause undesired results when an associated vector is used on parts whose local coordinate system (LCS) has been rotated.  Check both the direction shown and the components of the direction vector for validity, or change the vector to another direction type.

Associated Vector is unavailable in the Translate Mode since no point is specified in the move.

When counting the Loop n following moves for iteration moves, remember an Iteration Move counts all moves in its loop including nested Iteration Moves, but not itself.  

Since nested iteration moves iterate in each iteration of an iteration, they can slow the model considerably.

Moves within the Iteration Loop must be active if they contain Conditional Logic.

A translate/rotate iteration move may be nested in this move.  

Contributor Analysis and GeoFactor Equation-Based results may not be accurately calculated due to nonlinear effects created by this move, see Analysis Comparison & Assumptions.

 

        Flow Diagram of Internal Logic

IterMvFlowChrtM