InterOp:Connect/ACIS/ACIS Writer/Manufacturing Information for ACIS/PMI Data for ACIS
From DocR21
InterOp supports transfer of PMI data such as Text, Flag Note, Datum, Geometric Tolerance, Roughness, and Dimension. To support PMI data translation, a representation named PMI is defined in the Connect interface. A separate annotation class is defined in ACIS for each type of PMI data.
Required DLLs
To support translation of PMI data, ensure that the following libraries (DLLs) are available in the base directory:
- SPAXPMIRep.dll
- SPAXACISPMIEntities.dll
- SPAXAcisPMIImporter.dll
Note: Refer to the topic corresponding to the source data format for information on additional DLLs required for supporting PMI data translation.
Annotation Classes in ACIS
InterOp Connect provides a set of classes to store PMI data in the generated ACIS files.
The Text, Roughness, and GD&T annotations are translated as Attributes and the Dimensions are translated as entities, which are attached to the associated ACIS Entities.
Detailed information on ACIS Annotation Classes is provided in the section Annotation Classes in ACIS Detailed.
Detailed information on ACIS PMI Classes is provided in the 3D InterOp Connect Library Reference.
Names of PMI Annotations
ACIS PMI Importer imports names of all types of PMI annotations (to wherever the source format exports them). The name of the PMI annotation can be queried from the corresponding PMI entity (ATTRIB or SPACOLLECTION) in the same way the name of the body or face is queried from ENTITY.
PMI with Multiple Owners
In ACIS PMI Importer, Text, Roughness, Geometry Tolerance, Datum or Datum Target has multiple owners, then a SPACOLLECTION entity is created and all the owners are added as members. The corresponding PMI attribute is attached on the SPACOLLECTION entity which is available at the top level in the ACIS output.
Note: There will be no separate attribute to identity the SPACOLLECTION entity as used for PMI, because there is a PMI attribute on the SPACOLLECTION entity.
Note: If PMI has a single owner, then the PMI attribute is attached directly to the particular entity.
Sample Example
The following sample example illustrates code for implementing PMI data translation.
| Sample Code for Implementing PMI Data Translation |
|---|
#include "SPAIDocument.h" #include "SPAIConverter.h" #include "SPAIFile.h" #include "SPAIOptions.h" #include "SPAIOptionName.h" #include "SPAIResult.h" #include "SPAIValue.h" // SPAXAcis #include "SPAIAcisDocument.h" // ACIS #include "savres.hxx" #include "fileinfo.hxx" #include "lists.hxx" #include "kernapi.hxx" #include "acistype.hxx" #include "ga_api.hxx" #include "at_str.hxx" #include "face.hxx" #include "edge.hxx" #include "vertex.hxx" // SPAXAcisPMI #include "att_spaxpmi_text.hxx" #include "att_spaxpmi_roughness.hxx" #include "att_spaxpmi_datum.hxx" #include "att_spaxpmi_geom_tol.hxx" #include "spaxpmi_drf.hxx" #include "spaxpmi_dref.hxx" #include "spaxpmi_datum.hxx" #include "spaxpmi_datumtgt.hxx" // System #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv) { int err = 0; if ( (err = getArgs(argc, argv) ) ! =0) return err; api_start_modeller(0); SPAIResult result=SPAX_S_OK; { SPAIDocument src(pszInputFile); SPAIAcisDocument dst; SPAIFile console(1); SPAIOptions options; SPAIValue representation("BRep+PMI"); result &= options.Add(SPAIOptionName::Representation, representation); /*These are optional: To get the dimensions associated with Free Points or datum Points (in Pro/E), set options "TranslateFreePoints" Value as true. SPAIValue translateAtt(true); SPAIValue translateEntId(true); To get the dimensions associated with Free Curves or Datum Curves (in Pro/E), set options "TranslateFreeCurves" Value as true. result &= options.Add( SPAIOptionName::TranslateAttributes, translateEntId); result &= options.Add("TranslateEntityIDs", translateEntId); To get the dimensions associated with Free Surfaces, set options "translateFreeSurfaces" Value as true. To get the dimensions associated with Work Planes or Datum Planes (in Pro/E), set options "TranslateWorkPlanes" Value as true. */ SPAIConverter converter; result&=converter.StartLog(console); result&=converter.SetOptions(options); result&=converter.Convert(src, dst); result&=converter.StopLog(console); ENTITY_LIST* pAcisEntities=NULL; dst.GetEntities(pAcisEntities); dst.DetachEntities(); FileInfo info; if(NULL == info.product_id() ) { info.set_product_id( ( "EXAMPLE")); api_set_file_info(FileId, info); } if( 0 > info.units()) { info.set_units( 1.0); api_set_file_info( FileUnits, info); } if( NULL ! = pAcisEntities) { FILE* pAcisFile=fopen(pszOutputFile, "w"); if (pAcisFile ! = NULL) { api_save_entity_list(pAcisFile, true, *pAcisEntities); fclose(pAcisFile); // Dump PMI attribute information, if any FILE * oFp = NULL; if( pszOutputPMIInfoFile 0 ! = '\0') oFp = fopen(pszOutputPMIInfoFile,"w"); DumpAllPMIAttribute( *pAcisEntities, oFp); if( oFp) fclose( oFp); } else { result = SPAX_E_NO_FILE_OPENED; } } } // SPAIAcisDocument must be deleted before api_stop_modeller is called api_stop_modeller(); printf("%s \n", result.GetMessage() ); return result; } |
Identifying the SPAXPMI_DIMENSION Class Object
A Dimension entity can be identified in ACIS as a COLLECTION by:
- Using the ACIS kernel function:
int entity_type = is_SPACOLLECTION(ENTITY*);
- Returns 1 for COLLECTION type entities, which may be SPAXPMI_DIMENSION type or any other COLLECTION type.
- Querying the attribute on the entity:
Attribute Name: "ATTRIB_XACIS_COLLECTION_TYPE"
Value: 0 (zero for collection of Dimension type entity)
If you include the spaxpmi_dimension.hxx header file (available at SPAXAcisPMI\PublicInterfaces), you can query the dimension data. You can identify entity as SPAXPMI_DIMENSION using either:
-
int dim_type = is_SPAXPMI_DIMENSION(ENTITY*)
- Returns 1 for Dimension type entities.
-
int Entity_level = iEnt->identity();
- Returns SPAXPMI_DIMENSION_TYPE for Dimension type Entity.
Retrieving Dimension Data
while ( NULL ! = (iEnt = pAcisEntities.next() ) ) { if( SPAXPMI_DIMENSION_TYPE ! = iEnt ->identity()) continue; //... //... * //... //... }
- For each iEnt, you may query the Dimension data as shown in the following sections.
Retrieving the Name of Dimension
ATTRIB_GEN_STRING* pId = NULL; outcome result = api_find_named_attribute( iEnt, "ATTRIB_XACIS_NAME", reinterpret_cast< ATTRIB_GEN_NAME*&>( pId) ); const char* pDimensionName = pId->value();
Retrieving the Associated Geometric Entities, Dimension, and Values
SPAXPMI_DIMENSION * iGtAtt = static_cast< SPAXPMI_DIMENSION *>(iEnt); int numEntities = iGtAtt->count(); iGtAtt->init(); ENTITY*associatedEnt = NULL; while( (associatedEnt = iGtAtt->next()) ! = NULL) { if(associatedEnt ! = NULL) { //... //... //associatedEnt is an ACIS entity of type face //edge or wire or vertex." //... } } dimension_type dimType = iGtAtt->get_dimension_type(); dimension_subtype dimSubType = iGtAtt->get_dimension_subtype(); double dimValue = iGtAtt->get_dimension_value(); double upperLimit = iGtAtt->get_dimtol_upper_limit(); double lowerLimit = iGtAtt->get_dimtol_lower_limit(); double precision = iGtAtt->get_dimtol_precision(); const wchar_t * nt_upper = iGtAtt->get_alphanum_tol_upper_val(); const wchar_t * nt_lower = iGtAtt->get_alphanum_tol_lower_val(); const char * nt = iGtAtt->get_note(); logical valid = iGtAtt->is_valid();
Retrieving Dimension Extremities
SPAposition dimLineExtPoint1; SPAposition dimLineExtPoint2; logical dimLineExtremities = iGtAtt->get_dimension_line_extremities(dimLineExtPoint1,dimLineExtPoint2);
Sample Outputs
Dimension Support
The following illustration represents a 3D-CoordDimension:
Upon translation to ACIS, the SPAXPMI_DIMENSION object has the following values:
Name: Part1|Annotation Set.1|Coordinate Dimension.1 - Geometry :VERTEX(id = "7218") Dimension Type :1 Dimension SubType :7 Dimension Value :10.000000 Dim. Tol. UpperLimit:-10.000000 Dim. Tol. LowerLimit:10.000000 Dim. Tol. Precision :0.000000 Tol. AlphaNum Uval : Tol. AlphaNum Lval : Note : Dimension Validity :1 =========================================================
Basic Dimensions
The following figure illustrates basic dimension:
Upon translation to ACIS, the SPAXPMI_DIMENSION object has the following values:
Dimension: Length_Dims2|Annotation Set.1|Basic dimension.2 - Geometry :EDGE(id = "13944") Geometry :EDGE(id = "1829") Dimension Type :1 Dimension SubType :1 Dimension Value :3.980850 Dim. Tol. UpperLimit:0.000000 Dim. Tol. LowerLimit:0.000000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval : Tol. AlphaNum Lval : Note : Dimension Validity :1
Angular Dimension
In ACIS, the unit of Angle is always degree. The following figure illustrates Angular Dim:
In ACIS, the translated values are as follows:
Dimension: Angular_Dims|Annotation Set.1|Dimension.B1a1-B3f3 - Geometry :FACE(id = "5507") Geometry :FACE(id = "5513") Dimension Type :3 Dimension SubType :4 Dimension Value :32.78 Dim. Tol. UpperLimit:0.000000 Dim. Tol. LowerLimit:0.000000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :"H35" Tol. AlphaNum Lval :"f42" Note : Dimension Validity :1
The following illustration shows tolerance values (in degrees) for Angular Dim:
In ACIS, the translated values are as follows:
Dimension: Angular_Dims|Annotation Set.1|Dimension.B2a1-B3f2 found - Geometry :EDGE(id = "8425") Geometry :EDGE(id = "10856") Dimension Type :3 Dimension SubType :4 Dimension Value :48.75 Dim. Tol. UpperLimit:0.500000 Dim. Tol. LowerLimit:-1.500000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval : Tol. AlphaNum Lval : Note : Dimension Validity :1
Note: The Dimensions linked to Free Points, Free Curves, or Work Planes defined in Geometric Sets or Construction geometries are translated with those associated entities if options to translate free points, curves, and workplanes (TranslateFreePoints, TranslateFreeCurves, TranslateWorkPlanes) are set to TRUE.
Dimension Support from Pro/E to ACIS
InterOp supports translation of Driven, Reference, and Driving types of Pro/E Dimensions to ACIS.
Linear Driven Dimension
The following figure shows a Pro/E part file with Linear Driven dimension given on vertices of a solid:
In ACIS the translated Tolerance Linear dimension is represented as:
Dimension: WF2_A1A1|AE_DRIVEN_DIM0 found - Geometry :EDGE(id = 49) Geometry :EDGE(id = 86) Dimension Type :3 Dimension SubType :1 Dimension Value :15.000000 Dim. Tol. UpperLimit:0.010000 Dim. Tol. LowerLimit:0.010000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ============================================================ Dimension: WF2_A1A1|AE_DRIVEN_DIM1 found - Geometry :EDGE(id = 102) Geometry :EDGE(id = 88) Dimension Type :3 Dimension SubType :1 Dimension Value :17.500000 Dim. Tol. UpperLimit:0.010000 Dim. Tol. LowerLimit:0.010000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 =============================================================
Reference Angular Dimension
The following figure shows a Pro/E part file with reference angular dimension specified on an edge:
In ACIS the translated REFERENCE Angular dimension on edge is represented as:
Dimension: WF2_B1B1|AE_REFERENCE_DIM0 found - Geometry :EDGE(id = 143) Geometry :EDGE(id = 145) Dimension Type :2 Dimension SubType :4 Dimension Value :120.000000 Dim. Tol. UpperLimit:0.000000 Dim. Tol. LowerLimit:0.000000 Dim. Tol. Precision :0.000000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :|REF||||Dimension Validity :1 ==============================================================
Driving Dimension
The following figure shows a part file with Driving dimensions of a Hole feature:
Implementation of Pro/E Driving Dimensions in ACIS
Driving dimensions in the Pro/E model are often attached to sketch entities instead of the resulting BRep faces. In such cases, the sketch entities will be translated to ACIS as wire edges. The Driving dimensions will have associated geometry as follows:
- BRep faces/edges or the wire edges of the constructive feature geometry wire body (from sketch entities).
- Respective feature group.
Accessing Driving dimensions data in ACIS is similar to accessing Driven and Reference dimensions. The following figure shows the resultant ACIS Hole with the feature construction geometry wire body (marked in red):
In ACIS the translated Driving dimensions of the Hole feature are represented as:
| Hole Feature Driving Dimensions |
|---|
====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_9 found Geometry :FACE(id = "52") Geometry :EDGE(id = "153") Dimension Type :3 Dimension SubType :1 Dimension Value :1424.432000 Dim. Tol. UpperLimit:0.010000 Dim. Tol. LowerLimit:0.010000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_10 found -- Geometry :FACE(id = "2") Geometry :EDGE(id = "153") Dimension Type :3 Dimension SubType :1 Dimension Value :1210.310000 Dim. Tol. UpperLimit:0.010000 Dim. Tol. LowerLimit:0.010000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_11 found -- Geometry :UnknownFeature(Name = "PRT0001|HOLE_WIZ_SKETCH") Dimension Type :3 Dimension SubType :1 Dimension Value :12.700000 Dim. Tol. UpperLimit:0.010000 Dim. Tol. LowerLimit:0.010000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_14 found -- Geometry :EDGE(id = "2") Geometry :EDGE(id = "153") Dimension Type :3 Dimension SubType :1 Dimension Value :711.200000 Dim. Tol. UpperLimit:0.030000 Dim. Tol. LowerLimit:0.030000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :|||||Dimension Validity :1 ===================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_15 found -- Geometry :EDGE(id = "153") Geometry :EDGE(id = "4") Dimension Type :3 Dimension SubType :1 Dimension Value :127.000000 Dim. Tol. UpperLimit:0.040000 Dim. Tol. LowerLimit:0.040000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_16 found - Geometry :EDGE(id = "1") Geometry :EDGE(id = "0") Dimension Type :3 Dimension SubType :4 Dimension Value :45.000000 Dim. Tol. UpperLimit:0.500000 Dim. Tol. LowerLimit:0.500000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_17 found - Geometry :EDGE(id = "4") Geometry :EDGE(id = "5") Dimension Type :3 Dimension SubType :4 Dimension Value :110.000000 Dim. Tol. UpperLimit:0.500000 Dim. Tol. LowerLimit:0.500000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_18 found -- Geometry :EDGE(id = "153") Geometry :EDGE(id = "1") Dimension Type :3 Dimension SubType :1 Dimension Value :762.000000 Dim. Tol. UpperLimit:0.020000 Dim. Tol. LowerLimit:0.020000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :|||||Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_19 found - Geometry :EDGE(id = "3") Geometry :EDGE(id = "0") Dimension Type :3 Dimension SubType :1 Dimension Value :245.999000 Dim. Tol. UpperLimit:5.315000 Dim. Tol. LowerLimit:5.315000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== Dimension: PRT0001|AE_DRIVING_DIM_91_20 found --- Geometry :EDGE(id = "0") Geometry :EDGE(id = "5") Dimension Type :3 Dimension SubType :1 Dimension Value :479.425000 Dim. Tol. UpperLimit:11.125000 Dim. Tol. LowerLimit:11.125000 Dim. Tol. Precision :0.010000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 ====================================================== |
Dimension Support from Unigraphics to ACIS
InterOp supports translation of Basic, Reference, and Tolerance types of Unigraphics Dimensions to ACIS.
Linear BASIC Dimension
The following figure shows a Unigraphics part file with Linear BASIC dimension given on vertices of a solid:
In ACIS the translated Tolerance Linear dimension is represented as:
Dimension: 2464 found - Geometry :FACE(id = "27") Geometry :FACE(id = "33") Dimension Type :1 Dimension SubType :1 Dimension Value :120.000000 Dim. Tol. UpperLimit:0.000000 Dim. Tol. LowerLimit:0.000000 Dim. Tol. Precision :0.000000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 =============================================================
REFERENCE Angular Dimension
The following figure shows a Unigraphics part file with REFERENCE Angular dimension given on the edge of a body:
In ACIS the translated REFERENCE Angular dimension is represented as:
Dimension: 2455 found - Geometry :EDGE(id = "12") Geometry :EDGE(id = "16") Dimension Type :2 Dimension SubType :4 Dimension Value :48.116 Dim. Tol. UpperLimit:0.000000 Dim. Tol. LowerLimit:0.000000 Dim. Tol. Precision :0.000000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :NULL Dimension Validity :1 =============================================================
Tolerance Dimension
The following figure shows a Unigraphics part file with TOLERANCE dimension given on the edge of a body:
In ACIS the translated Tolerance dimension is represented as:
Dimension: 3193 found - Geometry :FACE(id = "16") Dimension Type :3 Dimension SubType :1 Dimension Value :40.000000 Dim. Tol. UpperLimit:0.200000 Dim. Tol. LowerLimit:-0.100000 Dim. Tol. Precision :0.000000 Tol. AlphaNum Uval :NULL Tol. AlphaNum Lval :NULL Note :|||||Dimension Validity :1 =============================================================
Non-semantic GD&T PMI Imported from CATIA V5
Translation of Non-semantic GD&T PMI is supported in ACIS. The following figure illustrates a CATIA V5 file with non-semantic GD&T PMI attached to it:
Figure. Non-semantic GD&T PMI illustrates a sample non-semantic GeomTol PMI created in CATIA V5. While exporting from CATIA V5, the tolerance magnitude is set to -1 and the note field of GeomTol is set to 0.005 Tol|Upper Note|Lower Note.
In ACIS the translated Tolerance dimension is represented as:
Geomtol attribute found
---------------------------------------------------------------------
Owner :FACE(id = "697")
Tolerance Type :11
Mod Dia Type :0
Tolerance Magnitude :-1.000000
Refinement Tol :0.000000
Rate Unit1 :0.000000
Rate Unit2 :0.000000
Zone Modifier1 :0
Zone Modifier2 :0
Projected Magnitude :0.000000
Profile Shift :0.000000
All Around :FALSE
Note :0.005 Tol|Upper Note|Lower Note
Semantic :FALSE
-----------------------------------------
DRF Information Start{
Note :A|B|C
DREF count :3
-----------------------------------------
DREF [ 0] Information Start{
Note :A
Datum count :0
}DREF [ 0] Information End
-----------------------------------------
DREF [ 1] Information Start{
Note :A
Datum count :0
}DREF [ 1] Information End
-----------------------------------------
DREF [ 2] Information Start{
Note :C
Datum count :0
}DREF [ 2] Information End
}DRF Information End
Important: Datum References of Datum Reference Frames associated with non-semantic GD&Ts will not contain any Datums. This is a limitation as that information is not available with CATIA V5 non-semantic GD&Ts.
Non-semantic Stacked GeomTol PMI
Refer to Non-semantic Stacked GeomTol PMI.
Capture Support from CATIA V5 to ACIS
InterOp supports translation of captures from CATIA V5 to ACIS.
Refer to SPAXPMI_CAPTURE for implementation details.
XML Dump of Captures
The red dot on the Initial State capture indicates it is a current capture. The flag Current="TRUE" is appended in the XML output. The XML output of the above translated file is as follows:
| Example. XML Dump of Captures |
|---|
<Capture Current="TRUE" Name="Part1|Annotation Set.1|Initial State"> <AssociatedEntities Count="4"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Simple Datum.1" Type="Datum" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Magnitude="0.100000" Name="Part1|Annotation Set.1|Angularity.1" Type="Geom_Tol" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|All Texts"> <AssociatedEntities Count="1"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|Angularity" Visibility="FALSE"> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Simple Datum.1" Type="Datum" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Magnitude="0.100000" Name="Part1|Annotation Set.1|Angularity.1" Type="Geom_Tol" Visibility="FALSE"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|Normal View"> <AssociatedEntities Count="4"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Simple Datum.1" Type="Datum" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Magnitude="0.100000" Name="Part1|Annotation Set.1|Angularity.1" Type="Geom_Tol" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|Reverse View"> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|SectionView"> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> |
Hidden Captures
The CATIA V5 modeler automatically hides some of the captures if the displayed capture is changed. A preview is shown below.
To translate the hidden captures, the TranslateHiddenEntities option should be set to TRUE; the hidden annotation entities are also translated. The flag Visibility="FALSE" is appended for hidden entities. The XML output of the hidden captures is as shown below.
| Sample Code for Translating Hidden Captures |
|---|
<Capture Current="TRUE" Name="Part1|Annotation Set.1|Initial State"> <AssociatedEntities Count="4"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Simple Datum.1" Type="Datum" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Magnitude="0.100000" Name="Part1|Annotation Set.1|Angularity.1" Type="Geom_Tol" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|All Texts"> <AssociatedEntities Count="1"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|Angularity" Visibility="FALSE"> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Simple Datum.1" Type="Datum" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Magnitude="0.100000" Name="Part1|Annotation Set.1|Angularity.1" Type="Geom_Tol" Visibility="FALSE"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|Normal View"> <AssociatedEntities Count="4"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Simple Datum.1" Type="Datum" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Magnitude="0.100000" Name="Part1|Annotation Set.1|Angularity.1" Type="Geom_Tol" Visibility="FALSE"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|Reverse View"> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> <Capture Name="Part1|Annotation Set.1|SectionView"> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> </Capture> |
Hidden Text in Capture
In CATIA V5, moving the cursor over a capture displays its hidden text, if present.
In the above image, the capture Dimensions contains the hidden text, "This capture contains all Dimensions". An example of the XML output of this hidden text is as follows:
<HiddenText Value="This capture contains all Dimensions"/>
| XML Output for Hidden Text in Capture |
|---|
<Capture Name="Part1|Annotation Set.1|Dimensions"> <HiddenText Value="This capture contains all Dimensions"/> <AssociatedEntities Count="8"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.2" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.3" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.4" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.5" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.6" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.7" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Dimension.8" Type="Dimension"/> </AssociatedEntity> </AssociatedEntities> </Capture> |
Clipping Plane in Capture
If the Clipping Plane command is activated in CATIA V5, the clipping of the active view is displayed.
In the above image, Section Cut View.2 is the active view. The clipping plane is displayed in orange dotted lines. The red arrow shows the normal of this clipping plane. In XML the translated clipping plane is displayed with Clipping Plane Display Point and Clipping Plane Display Normal in the following format:
<Clipping_Plane_Information> <Clipping_Plane_Origin X=<double> Y=<double> Z=<double>/> <Clipping_Plane_Normal X=<double> Y=<double> Z=<double>/> </Clipping_Plane_Information>
| XML Output for Clipping Plane in Capture |
|---|
<Capture Name="Part1|Annotation Set.1|Capture.3"> <AssociatedEntities Count="0"/> <Clipping_Plane_Information> <Clipping_Plane_Origin X=" 0.00000000" Y=" 73.00000000" Z=" 0.00000000"/> <Clipping_Plane_Normal X=" 0.00000000" Y=" -1.00000000" Z=" 0.00000000"/> </Clipping_Plane_Information> </Capture> |
Camera Associated with Capture
If Camera is associated with a capture, its properties are translated to ACIS. The camera helps a user to display a 3D model in the required orientation and zoom. The Camera Properties window shows various camera properties such as Name, Type, Origin, Target, View Angle, and Zoom.
There are two types of cameras:
- Parallel
- For the Parallel Camera, the View Angle field is not editable in the CATIA V5 modeler.
- Perspective
- For the Perspective Camera, the Zoom field is not editable in the CATIA V5 modeler.
Note: Irrespective of camera type, both View Angle and Zoom fields are translated to ACIS. You must select a proper field depending upon your application.
Camera Properties
In the above image, the camera named "section" is associated with the capture "SectionView". InterOp Connect translates camera properties to ACIS as shown in the following XML snippet.
<CameraProperties> <Name Value=<string>/> <Type Value=<string>/> <ViewAngle Value=<double>/> <Zoom Value=<double>/> <Origin X=<double> Y=<double> Z=<double>/> <TargetPosition X=<double> Y=<double> Z=<double>/> <ViewDirection X=<double> Y=<double> Z=<double>/> <ViewDirectionNormal X=<double> Y=<double> Z=<double>/> </CameraProperties>
Refer to Figure. Camera Parameters for an illustration of properties associated with a camera.
Note: The image has been modified to illustrate the parameters of a camera.
| XML Output for Camera Associated with Capture |
|---|
<Capture Name="Part1|Annotation Set.1|SectionView"> <HiddenText Value="This capture contains section view"/> <AssociatedEntities Count="2"> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Linear Size.1" Type="Dimension"/> </AssociatedEntity> <AssociatedEntity> <PMI_Entity Name="Part1|Annotation Set.1|Text.1" Type="Text"/> </AssociatedEntity> </AssociatedEntities> <CameraProperties> <Name Value="section"/> <Type Value="SPAX_ParallelType_Camera"/> <ViewAngle Value="13.237955"/> <Zoom Value="0.015000"/> <Origin X=" 335.11126709" Y=" 365.34228516" Z=" 398.04559326"/> <TargetPosition X=" -15.49338783" Y=" 14.73763024" Z=" 47.44093835"/> <ViewDirection X=" -0.57735027" Y=" -0.57735027" Z=" -0.57735027"/> <ViewDirectionNormal X=" -0.40824829" Y=" -0.40824829" Z=" 0.81649658"/> </CameraProperties> </Capture> |











