A3DAsmProductOccurrenceData
Fields
|
|
|
|
|
|
Detailed Description
-
struct A3DAsmProductOccurrenceData
A structure specifying product occurrence data.
Global concepts definitions:
ModelFile: this is the top level of the assembly tree
ProductOccurrences: these are the intermediate nodes of the assembly tree. Each ProductOccurrence can hold a PartDefinition (see below), several ProductOccurrences as sons, a Prototype (see below) or an ExternalData (see below). Each one can carry its own unit.
Prototype: special case for a ProductOccurrence. A Prototype is a sub-assembly that might be modified outside the Modelfile. For instance, a CATProduct or a CATPart being referenced by a CATIA V5 assembly will be loaded as a Prototype, for the related physical file might change during design process. The whole internal hierarchy of this “file” can be explored from the Modelfile, as it was a classical ProductOccurrence, but any modification inside this sub-assembly will lead to an update of the whole Modelfile, in order to reference proper entities.
ExternalData: special case for a ProductOccurrence. an ExternalData is a sub-assembly that cannot be “managed” from the Modelfile. The corresponding Partdefinitions cannot be modified (color, visibility, position, etc.). For instance, this can be a IGES file being embedded in a CATproduct.
PartDefinition: this is the terminal level of an assembly. No “organized” hierarchy can be defined below that level. Only groups (refer to A3DRiSet definition) might be referenced as unorganized groups. A Partdefinition must be referenced in a Modelfile via a ProductOccurrence. Conversely, any terminal ProductOccurrence of a fully loaded Modelfile must refereence a PartDefinition.
PartDefinition: Pointer to the corresponding part definition. Can be NULL. See above.
ProductPrototype: Pointer to the corresponding product occurrence prototype. Can be NULL. See above.
ExternalData: Pointer to the corresponding external product occurrence. Can be NULL. See above.
Sons: Array of pointers to the son product occurrences. See above.
Location: Relative placement of the product occurrence in the father local coordinate system. Can be NULL.
When applications interpret an assembly that uses subassemblies, they resolve links in the product prototype and external data entities and import the content described by those links. That is, those entities are resolved in the same way that software macros are resolved.
For version 2.1, new fields were added to the end of this structure. These new fields are identified with the tag “version 2.1.”
- Version
2.0
Sample code
The following pseudocode demonstrates how to get the external data of a product occurrence.
POccurrence* function GetExternalData(POccurrence* pocc) { If pocc->pExternalData is null and pocc->pPrototype is not null Return GetExternalData(pocc->pPrototype) Else Return pocc->pExternalData }
The following pseudocode demonstrates how to get the part definition of a product occurrence.
POccurrence* GetPart(POccurrence* pocc) { If pocc->pPart is not null Return pocc->pPart POccurrence* po = pocc->pPrototype While po is not null If po->pPart is not null Return po->pPart Else po = po->pPrototype If pocc->uiPOccurrencesSize = 0 and GetExternalData(pocc) is not null Return GetExternalData(pocc)->pPart Return null }
The following pseudocode demonstrates how to get the location of a product occurrence.
CartesianTransfo* GetLocation(POccurrence* pocc) { If GetExternalData(pocc) is not null If GetExternalData(pocc)->pLocation is not null Return GetExternalData(pocc)->pLocation If pocc->pLocation is null and pocc->pPrototype is not null Return GetLocation(pocc->pPrototype) Return pocc->pLocation }
Note
In case of multi-units assemblies, the unit must be applied to the matrix of the transformations.
Public Members
-
A3DUns32 m_uiPOccurrencesSize
The size of m_ppPOccurrences.
-
A3DAsmProductOccurrence **m_ppPOccurrences
Array of A3DAsmProductOccurrence references.
-
A3DAsmPartDefinition *m_pPart
Pointer to an A3DAsmPartDefinition entity.
May be NULL.
-
A3DAsmProductOccurrence *m_pPrototype
Pointer to a product prototype.
May be NULL.
-
A3DAsmProductOccurrence *m_pExternalData
Pointer to an external product.
May be NULL.
-
A3DMiscTransformation *m_pLocation
Pointer to an A3DMiscCartesianTransformation or A3DMiscGeneralTransformation entity.
May be NULL.
-
A3DUns32 m_uiEntityReferenceSize
The size of m_ppEntityReferences.
-
A3DMiscEntityReference **m_ppEntityReferences
Entity references.
-
A3DUns32 m_uiAnnotationsSize
The size of m_ppAnnotations.
-
A3DMkpAnnotationEntity **m_ppAnnotations
Annotation entities stored under the current product occurrence.
-
A3DMkpView **m_ppViews
Views stored under the current product occurrence.
-
A3DAsmFilter *m_pEntityFilter
Pointer to a A3DAsmFilter.
Used to manage the properties, like visibility, of entities directly owned by the current product occurrence, like the geometry contained in its m_pPart. May be NULL.
-
A3DUns32 m_uiDisplayFilterSize
The size of m_ppDisplayFilters.
-
A3DAsmFilter **m_ppDisplayFilters
Array of Filter references that specify the filters to use for display.
Several filters can be specified but only one is active.
-
A3DUns32 m_uiSceneDisplayParameterSize
The size of m_psSceneDisplayParameters.
-
A3DGraphSceneDisplayParametersData *m_psSceneDisplayParameters
Array of SceneDisplayParameters.
-
A3DEProductLoadStatus m_eProductLoadStatus
Current load status for the ProductOccurrence, where values are defined by the A3DEProductLoadStatus enum.
- Version
2.1
-
A3DUns32 m_uiProductFlags
Refer to Bit field flag definitions for product occurrences for explanations.
- Version
2.1
-
A3DBool m_bUnitFromCAD
Indicates whether m_dUnit (below) was obtained from the native CAD file.
- Version
2.1
-
A3DDouble m_dDensityVolumeUnit
Volume unit used in the original CAD application for the physical material density A3DMiscMaterialPropertiesData::m_dDensity.
1.0 refers to meter cube
-
A3DDouble m_dDensityMassUnit
Mass unit used in the original CAD application for the physical material density A3DMiscMaterialPropertiesData::m_dDensity.
1.0 refers to kilogram
-
A3DEModellerType m_eModellerType
The Modeller used to create the Model.
Used only in Get method.
-
A3DBool m_bInactivateAnnotations
If set to true, annotations are defined but inactivated in the product.
- Version
7.0
-
A3DUns32 m_uiMaterialAndVisualisationSetupSize
The size of m_psMaterialAndVisualisationSetup.
-
A3DMaterialAndVisualisationInfos *m_psMaterialAndVisualisationSetup
MaterialAndVisualisation Informations to apply in the assembly tree, modify by assembly.
-
A3DUns32 m_uiCameraSize
The size of m_ppCamera.
-
A3DGraphCamera **m_ppCamera
Array of camera.
This camera are referenced in the scene display parameters and the views of this Product occurrence.
- Version
11.1
-
A3DUns32 m_uiFeatureBasedEntitiesSize
The size of m_ppFeatureBasedEntities.
-
A3DFRMTree **m_ppFeatureBasedEntities
Feature based entity, contains all information of feature.
-
A3DUns32 m_uiConstraintsSize
The size of m_ppConstraints.
- Version
14.0
-
A3DAsmConstraint **m_ppConstraints
List of the constraints define in this assembly.
- Version
14.0
-
A3DAsmPublicationSet *m_pPublicationSet
Published elements.
- Version
24.0