Geometric Modeler |
|
Geometric ModelerUsing the CGM Data Checker |
Technical Article |
AbstractCGM objects are valid if they fulfill a certain number of rules. When a given object is created, it can be checked for a given rule. If any problem is found, a core dump is issued and the developer has to take a look at the core dump traces to get some clue about why the object is invalid. The rule checker itself is a detection tool which does not repair any object. If no core dump has been issued, this only means that the CGM object to be validated complies with a specified rule. Other rules may not be fulfilled making the object invalid.
|
Each rule is defined by an identifier. This identifier is used to activate the data checker as described in How to Activate the Rules.
Rules to be checked |
Identifiers |
TRE_1 |
|
CWE_1 |
|
ESH_1 |
|
SCE_0 |
|
PCE_1 |
|
Any CATCrvParam of a POEC should be in the maximum limits of its spec curve. |
PPO_1 |
The gap between the curves making up a CATINTCurve should be less than the resolution |
ICG_1 |
PSS_0 |
|
PSS_1 |
|
CCC_0 |
|
CCC_1 |
|
SPM_1 |
|
The internal gap in a macro point should be less than the resolution. |
MPG_1 |
ULO_0 |
|
CGC_0 |
|
CGC_1 |
|
The EdgeCurve should not have identical PCurves in the same tree |
EIP_1 |
The MathRep of canonical curves (Circle & Ellipse) should be in the model infinite |
INF_2 |
[Top]
Here are the preliminary steps to follow prior to activating the data checker:
Step 1
<install_CATIA>\intel_a\code\productIC
should be modified in
<install_CATIA>\intel_a\code\productIC;<install RADE>\intel_a\code\productIC
Note that from CATIA V5R14, you can install RADE and CATIA at the same place.
Step 2
Step 3
set
CATCAADataChecker=1
to activate all the rules
set
CATCAADataChecker=1
set CATCGMCleanerRules=XXX_1;YYY_1 ;...
to activate only a set of rules
XXX_1, YYYY_1 are the rule identifiers
2. Restart CATIA.
[Top]
A cell is touched when it is intended to be used in some specific operations like the "smart duplication" (see the CATSmartBodyDuplicator in the CAA Encyclopedia). Note there is other operators that require touched objects as their input data. After the operation has completed the touched cells should return to an untouched status. If they remain touched, further operations on the initial body may lead to unexpected results. A valid topology should not contain any touched cells.
The CD traces are similar to the ones below:
CGM Rule : TRE_1 |
|
An edge cannot be closed on itself, in other words any closed wire should be made up of at least two edges.
CGM Rule : CWE_1 |
|
The edges that are considered as smooth should not have a geometrical sharpness greater than 2.3 deg. If there is no consistency between topological and geometrical sharpness, operations such as fillets and offset cannot succeed.
CGM Rule : ESH_1 |
|
A loop relying on a surface should not be closed on itself. For example, a cylinder should not be made up of one single loop. In the right-hand side figures, the first one exhibits an invalid loop. |
|
|
The CD traces are similar to the ones below:
CGM Rule: SCE_0 |
|
Reminder: An CATPointOnEdgeCurve is specified by couples of data including a CATCrvParam and the CATCurve associated with this CATCrvParam. The list of data couples is referred to as a "spec". The "spec" defines a CATPointOnEdgeCurve. The EdgeCurve itself is made up of several curves. When scanning and analyzing each spec curve of a CATPointOnEdgeCurve by using CATPointOnEdgeCurve::GetSpec for example, one should find that each retrieved CATCurve is contained into the CATEdgeCurve.
CGM Rule : PCE_1 |
|
When scanning and analyzing each spec curve of a CATPointOnEdgeCurve, one should find that each retrieved CATCrvParam is within the limits of the reference curve.
CGM Rule : PP0_1 |
|
[Top]
Checks the Gap between the corresponding points of component curves of a CATIntCurve.
CGM Rule : ICG_1 |
[Top]
Checks whether the limits of PCurve are included in the limits of its support. The check is called from PCurve :: CloneAndMove method
CGM Rule : PSS_0 |
|
Checks whether the limits of PCurve are included in the limits of its support. The check is called from PCurve :: SetSurface method
CGM Rule : PSS_1 |
[Top]
Checks whether the Curve is C1 continuous
CGM Rule : CCC_0 |
[Top]
Checks whether the Surface is C1 continuous
CGM Rule : CCC_1 |
[Top]
For every point in SetOfPointsMapping, the geometrical distance between the reference curve and the other curves of the map should be less than the factory resolution.
CGM Rule : SPM_1 On CGM Object:
CATEdgeCurveType |
[Top]
Checks the Gap between the component POECs of the MacroPoint. The distance is measured between one reference point and other points.
CGM Rule : MPG_1 On CGM Object : CATMacroPointType |
[Top]
The useful limits of the RefCurve and curves of an EdgeCurve should be included in the maxlimit of edge curve.
CGM Rule : ULO_1 On CGM Object : CATEdgeCurveType |
[Top]
The curve should be at least C2 continuous in V5.
CGM Rule : CGC_0 On CGM Object : CATCurveType |
[Top]
The surface should be at least C2 continuous in V5.
CGM Rule : CGC_1 On CGM Object : CATSurfaceType |
[Top]
The edge curve should not contain identical PCurves in the same tree. But they can exist in different trees.
![]() |
The EdgeCurve-EC has one PCurve (PC) and one Merged Curve (MC) which again has two component PCurves. The First case is OK because PC1 is in different trees. The second case is KO because both PC2 s are in the same tree. |
CGM Rule : EIP_1 On CGM Object : CATEdgeCurveType |
[Top]
Authorized: the mathematical circle (in dashed green) is in the infinite.
|
Not authorized: the complete mathematical circle (in dashed green) is not in the infinite.
|
|
|
Definition of Model Infinite & Model space
|
Until CATIA V5 R13 |
From CATIA V5 R14 |
Model Size |
[-100 meters, + 100 meters] |
[-1 000 meters, + 1 000 meters] |
Model infinite |
[-1 000 meters, + 1 000 meters] |
[-10 000 meters, + 10 000 meters] |
CGM Rule : INF_2 On CGM Object : CATCircleType, CATEllipseType From Feature : ... Short msg : " Circle/Ellipse - MathRep Inside Model Infinite checking failed. "; Extended msg: " Circle/Ellipse - MathRep Inside Model Infinite on /p1 checking failed. "; |
|
Version: 1 [Aug 2004] |
Document created |
Version: 2 [July 2005] |
Document modified |
[Top] |
Copyright © 2004, Dassault Systèmes. All rights reserved.