Restoring an Attached Object's Position

ascenari.gif (1364 bytes) With the attach function, you can attach any object of the environment to a manikin's segment.  This creates a positioning relationship between the segment (master) and the attached object (slave): the object follows the segment when the segment is moved.  The Attach tab in the manikin’s properties panel displays all objects attached to the selected manikin.  When the object is detached, its position is no longer dependant on that of the segment.

With restoring an attached position, the behavior of the attach functionality will not change.  But when an object is first attached to a segment, the initial relative position between the segment and the object will be calculated and kept.  You will be able to re-apply this relative position at any given point in time.  If the object's position relative to its master segment has not changed, the object will not move; but if it has changed, the object will go back to its initial relative position.

The Restore Attach Position command in the contextual menu of the Attaches node of all manikins solves this problem.  When this command is launched, all objects that are attached to the selected manikin's segments will be visited and put back to their original attached positions.
The functionality presented by this brings the ability to restore the  relative position between an attached object and its master segment.  If it is true that an attached object follows a segment when the segment moves, it is also true, in the current attach implementation that an attached object can also still move independently, irrespective of its master segment.  Even if the object is attached, the object itself can move freely (using the V5 compass, for example).  The object still remains attached, but its relative position with respect to the segment changes. 
This feature can be used, for instance, to fine-tune an object's position once it is attached: attaching a tool to the manikin's hand (or a cap to the manikin's head), then you might need to fine-tune the position of the tool so the manikin grabs it better.  When the attached object's position changes in this fashion, the software assumes that the user intentionally wishes to edit the object's position, and the relative positioning between the attached object and the master segment is automatically recalculated.


There are times, however, when the relative position must be kept, and the motion of the attached object outside the segment’s influence is NOT intentional.  When this happens, you want to bring the object back to its proper relative position.  If the object is moved inadvertently, and several other actions are performed such that the Undo on the object move is unavailable, the proper position of the object is lost and you must manually replace the object at its exact (or approximate) location. a

This faulty situation might happen when users are working in a database environment (e.g. ENOVIA LCA) and are viewing and manipulating "WorkPackage" data in CATIA V5.  In this environment, the position of each object is monitored when it is saved and retrieved to and from a database.  So, when an assembly is extracted and opened in CATIA, the objects are placed at their saved position.  During the session however, you can move some parts in the assembly, attach some objects to manikin segments, then ask for a PVR- synchronization of the entire scene: the objects go back into their assigned (last saved) positions.  But if an attach relationship exists, the attach is not broken even though the attached object may have been moved by the synchronization process.  This is one instance when an attached object is moved, and the relative position is altered out of your intention.

  Here is a specific example of how the relative positioning issue might come up:
  • There are n objects in a scene; the objects' positions are respectively P1, P2, P3, ..., Pn. This State is the one saved in the database. Let us further assume that object Pn is a manikin.
  • You open this scene in CATIA; every object is placed at its saved position (P1, P2, etc).
  • You move object #1 using the compass, and place it in position P1'.
  • You ask for a PVR-synchronization of this scene with the database; the saved positions are forced back on the objects. Thus, object #1 moves back to position P1, and all other objects remain unmoved.
  • Then attach object #2 to the manikin's hand, and moves the manikin in FK.  This causes object #2 to be moved, through the attach, to location P2', while the manikin itself (Pn), is NOT moved (only its posture is changed).
  • Finally, for some reason, you ask once more for a PVR-synchronization of this scene with the database; the saved positions are forced back on the objects.  Thus, object #2 moves back to position P2, BUT the manikin's posture (and position) remains unchanged.  This creates a discrepancy between the manikin's current posture and the new position of object #2, which today, must be resolved by the user manually. With the Restore Attach position, you might simply use it at the end of the previous scenario to get object #2 back to its appropriate relative position (P2') with the manikin.
  1. From the main menu, select the Attaches, and right-click on the Attaches.1 object for Restore Position.