Mechanical Modeler |
A Description of Update ErrorsUsing CATIUpdateError and CATMfErrUpdate |
|
Technical Article |
AbstractThe aim of this article is to explain the errors generated by the Update mechanism [1] on mechanical features. It is included in a set of articles which describe the Mechanical Modeler and which are presented in the "Mechanical Modeler Overview" [2] article. |
During the update of a mechanical feature [3]
[4] an error can occur. This error is an Update error which has blocked the construction of the
geometry. The end-user can correct the error by modifying one or several parameters of the feature. The error is associated with the
feature during the generation of its result, in other words in the Build
method of the CATIBuild [5] interface .
Let's take the simple example of an EdgeFillet feature. If its radius is too big, the Update generates an error and the following dialog box appears [Fig.1].
This dialog box displays the error diagnosis in the column of same name, and it is described in more detail at the bottom of the panel. It is possible to edit the wrong feature to correct the error. In the next section, you will see how to retrieve this diagnosis and get other information about the error.
[Top]
To analyze the error whether in batch mode or in an interactive session, you should use the CATIUpdateError (MechanicalModeler) interface. The methods to use are the following and in this order:
This is the first method to call to determine if the feature has an update error or not. This method reads an attribute stored in the model.
You should use these two methods once the feature has been updated. In batch mode, as long as the feature has not yet been updated, the first method will return a NULL pointer and the second an invalid string.
The GetUpdateError returns an instance of the CATMfErrUpdate error class. This class enables you to analyze the error, as described in the next section.
The GetFullDiagnostic is the same method as the one having the same name in the CATMfErrUpdate class.
The CATIUpdateError interface has other methods, but they are useful only for the CATIBuild [5] implementation.
[Top]
This class is instantiated in the Build
method of the CATIBuild
or CATIBuildShape interface. It enables you to transmit information about the error.
The sick features are the features at the root of the error. Take a look at the next example to help you
At the first of all there is a Pad with a fillet set on two edges (left picture).
Next, the
Sketch is edited to replace the support edge of the fillet by a broken edge (right picture).
When exiting the Sketcher editor, the following dialog box [Fig. 3] appears to notify
you of an
update error on the EdgeFillet.1
feature.
The dialog box displays the Edge.1
feature that you need to
edit to modify. Edge.1
is a sick feature for the EdgeFilllet.1
feature. By editing the Edge.1
feature, the error can be corrected.
For a single error several sick features may be involved. The CATMfErrUpdate class has three methods that can be used to retrieve these sick features:
GetSickFeatures
: retrieves the sick features directly associated
with the error GetAllSickFeatures
: retrieves recursively all the sick
features: the sick feature can itself be involved in an error which sick features. All these sick features are
linked together by the errors.GetDeepSickFeatures
: retrieves only the last sick features
of the chain. Those which are displayed in the "Update Diagnosis" [Fig.3]
dialog box and which appear intended. The next figure [Fig.4] illustrates these three methods:
In this example, Error1
has two sick features: feature2
and feature3
, while Error3
,
associated with feature3,
has feature4
as a sick
feature. Error4,
associated with feature4
,
has itself the feature5
as a sick feature.
GetSickFeatures
on Error1
returns: feature2
and feature3
GetAllSickFeatures
on Error1
returns: feature2
,
feature3,
feature4
and feature5
GetDeepSickFeatures
on Error1
returns: feature5
,
the sick feature farthest down in the chainThe following set of methods can be used:
GetDiagnostic
: This method returns the NLS error message of the
feature, the one that appears in the "Update Diagnosis" [Fig.3]
dialog box.GetFullDiagnostic
:This method returns the concatenation of the NLS error
messages of all the sick features (those returned by GetAllSickFeatures
) Let's take a look at the following example in order to understand the
cyclical errors. First we have a
PartBody with three Pads: Pad.2
created on the upper face of Pad.1
and Pad.3
created on the upper face of Pad.2
[Fig.5].
Next, Pad.1
is moved to be placed after Pad.3
. [Fig.6.]
[Top]
With the Dassault Systemes features, the error propagation follows the update path. Here are two examples that illustrate this: the first for the solid and surfacic features set update (Body/PartBody) [Fig.7] and the second for the surfacic features set case (OGS/GS) [Fig.8].
In this example, you can notice that the error is propaged from the EdgeFillet
to its aggregating feature, the PartBody, as well as to the Part. The Part update
implies the PartBody
update and the EdgeFillet
update.
In the surfacic example above, the error propagation is clearly not the same
as the path of the aggregation. The Point.1
feature has an update error,
but GeomSet.1,
its aggregating set, has no error. However,
Line.1
and GeomSet.2
do have an update error.
For the CAA feature the error propagation depends on the CATIBuild [5] implementation.
[Top]
During the update of a mechanical feature an error can occur. This error blocks the construction of the topology of the feature and can be corrected by editing the underlying sick features or the feature itself.
[ Top]
Version: 1 [Dec 2002] | Document created |
[Top] |
Copyright © 2002, Dassault Systèmes. All rights reserved.