Mechanical Modeler

Freezing Internal Copy With Link

Using CATIMmiResultFreeze

 
Technical Article

Abstract

This article shows how to freeze internal copies with link


What is freezing

An internal copy with link is obtained by copying and pasting a mechanical feature (as result with link) inside the same CATPart. It may also be obtained from CATMmrInterPartCopy [1] (inside a CATPart, option with link). The internal copy is a feature which has a geometrical result copied from the original feature.

Fig.1: Point.2 is a copy of Point.1
 

When the original feature is modified, the update mechanism [2] will copy the geometry of the copied feature to the internal copy.

In some cases the user may want to update the part while keeping the geometry of some internal copies : this is called freezing the internal copy.

When an internal copy is frozen, the original feature may be modified without impacting the geometry of the internal copy.

The concept of freezing is different from the concept of deactivating (described in [3] : deactivating is equivalent to a temporary deletion). If an internal copy is freezed its geometry still exists, and is always displayed in 3D viewer.

However the "deactivate command" (from the contextual submenu) which normally performs a deactivation for all features, has a different behavior for internal copies : it performs freezing. The mask of frozen internal copies is the same mask as a deactivated feature : an opening and a closing bracket [Fig. 2].

Fig.2: A Point and its copy after freezing

[Top]

How to freeze and unfreeze

The interface CATIMmiResultFreeze must be called on the internal copy : its type may be a point, a line, a surface, a plane, volume or a solid.

Here is the way to freeze the internal copy feature:

...
CATIMmiResultFreeze * pIFreezeOnInternalFeature = ... ;

pIFreezeOnInternalFeature->Freeze();
CATBoolean  status = pIFreezeOnInternalFeature ->IsFrozen(); // status is TRUE
}
...
    

Here is the way to unfreeze the internal copy feature: Note that after unfreezing, the geometry does not change : an update of the copy must be called to synchronize the geometry.

...
CATIMmiResultFreeze * pIFreezeOnInternalFeature = ...
CATISpecUpdate      * pISpecUpdateOnInternalFeature = ..... ;

pISpecUpdateOnUnFeature->Unfreeze();
CATBoolean  status = pIFreezeOnInternalFeature ->IsFrozen(); // status is FALSE
pISpecUpdateOnUnFeature ->Update();
...

[Top]


In Short

While an internal copy feature is unfreezed (default behavior), if the geometry of the original feature is modified, the geometry of the copied feature is automatically modified too. Freezing an internal copy allows you to temporarily disable this update.

Just after the internal copy feature unfreezing, do not forget to update the internal feature: unfreeze api does not launch the update mechanism. Then, the next modifications on the original feature will be automatically take into account in the copied feature.

You can check  the CATIMmiResultFreeze usage in the dedicated interactive use case [4].

[Top]


References

[1] Copying Mechanical Features
[2] Specification/Result Mechanism Applied to Mechanical Features
[3] Enabling the Build Deactivation
[4] Freezing or Unfreezing Internal Copy
[Top]

History

Version: 1 [Feb 2007]Document created
[Top]

Copyright © 1999-2006, Dassault Systèmes. All rights reserved.
Special Notices CAA V5 CATIA | CAA V5 DELMIA | CAA V5 ENOVIA