Data Structures

struct  A3DFRMFeatureTreeData
 Feature tree data Populates the A3DFRMFeatureTreeData structure. More...
 

Enumerations

enum  EA3DFRMEnumValue_CadType {
  kA3DFRMEnumValue_CadType_None = 0,
  kA3DFRMEnumValue_CadType_Sketch,
  kA3DFRMEnumValue_CadType_Plane,
  kA3DFRMEnumValue_CadType_Point,
  kA3DFRMEnumValue_CadType_CoordinateSystem,
  kA3DFRMEnumValue_CadType_Direction,
  kA3DFRMEnumValue_CadType_Curve,
  kA3DFRMEnumValue_CadType_Analysis,
  kA3DFRMEnumValue_CadType_ImportedSolid,
  kA3DFRMEnumValue_CadType_Extrusion,
  kA3DFRMEnumValue_CadType_Revolution,
  kA3DFRMEnumValue_CadType_Surface,
  kA3DFRMEnumValue_CadType_Block,
  kA3DFRMEnumValue_CadType_Sphere,
  kA3DFRMEnumValue_CadType_Cone,
  kA3DFRMEnumValue_CadType_Cylinder,
  kA3DFRMEnumValue_CadType_Torus,
  kA3DFRMEnumValue_CadType_Dome,
  kA3DFRMEnumValue_CadType_Helix,
  kA3DFRMEnumValue_CadType_TruncatedPrism,
  kA3DFRMEnumValue_CadType_Hole,
  kA3DFRMEnumValue_CadType_Chamfer,
  kA3DFRMEnumValue_CadType_Blend,
  kA3DFRMEnumValue_CadType_Fillet,
  kA3DFRMEnumValue_CadType_Groove,
  kA3DFRMEnumValue_CadType_Pocket,
  kA3DFRMEnumValue_CadType_Sweep,
  kA3DFRMEnumValue_CadType_Pipe,
  kA3DFRMEnumValue_CadType_Group,
  kA3DFRMEnumValue_CadType_Mirror,
  kA3DFRMEnumValue_CadType_Pattern,
  kA3DFRMEnumValue_CadType_GroupPattern,
  kA3DFRMEnumValue_CadType_Instance,
  kA3DFRMEnumValue_CadType_Package,
  kA3DFRMEnumValue_CadType_Shell,
  kA3DFRMEnumValue_CadType_Trim,
  kA3DFRMEnumValue_CadType_Split,
  kA3DFRMEnumValue_CadType_Sew,
  kA3DFRMEnumValue_CadType_Rib,
  kA3DFRMEnumValue_CadType_Draft,
  kA3DFRMEnumValue_CadType_Hollow,
  kA3DFRMEnumValue_CadType_Quilt,
  kA3DFRMEnumValue_CadType_LocalPush,
  kA3DFRMEnumValue_CadType_BooleanOperation,
  kA3DFRMEnumValue_CadType_Intersect,
  kA3DFRMEnumValue_CadType_CutOut,
  kA3DFRMEnumValue_CadType_Merge,
  kA3DFRMEnumValue_CadType_Translate,
  kA3DFRMEnumValue_CadType_Rotate,
  kA3DFRMEnumValue_CadType_Scale,
  kA3DFRMEnumValue_CadType_Offset,
  kA3DFRMEnumValue_CadType_Transformation,
  kA3DFRMEnumValue_CadType_Thread,
  kA3DFRMEnumValue_CadType_Cosmetic,
  kA3DFRMEnumValue_CadType_Material,
  kA3DFRMEnumValue_CadType_Thickness,
  kA3DFRMEnumValue_CadType_RemoveFace,
  kA3DFRMEnumValue_CadType_UserDefined,
  kA3DFRMEnumValue_CadType_Member,
  kA3DFRMEnumValue_CadType_Symmetry
}
 Enumerate the possible types of cad type.
More...
 
enum  EA3DFRMStatus {
  kA3DFRMStatus_Success = 0,
  kA3DFRMStatus_Failed,
  kA3DFRMStatus_NotYetImplemented
}
 Feature status enum. More...
 

Functions

A3DStatus A3DAsmPartDefinitionFeatureTreesGet (const A3DAsmPartDefinition *pPartDefinition, A3DUns32 *puiSize, A3DFRMFeatureTree ***pppFeatureTrees)
 Get all feature trees defined in the part definition. More...
 
A3DStatus A3DFRMFeatureTreeGet (const A3DFRMFeatureTree *pTree, A3DFRMFeatureTreeData *pData)
 Populates the A3DFRMFeatureTreeData structure. More...
 
A3DStatus A3DFRMGetSpecificNodes (const A3DFRMFeatureTree *pTree, EA3DFRMEnumValue_CadType eCADType, A3DUns32 *piSize, A3DFRMFeature ***pppFeatureNodes)
 Build a List of Features corresponding to a node with specific CAD type. More...
 

Detailed Description

CAD model are represented by a feature tree. A model tree is composed by nodes. Each of these nodes is a build step, whose definition parameters are stored in a feature. The following model is defined with construction entities, then a pad, and a hole.

frm_tree.png

The model trees are accessible through the product occurence by using the function A3DAsmProductOccurrenceGet, and the function A3DFRMFeatureTreeGet will populate the data structure. An array of feature trees is stored in A3DAsmProductOccurrenceData, usually there is only one feature tree by model.

In addition, the function A3DFRMGetSpecificNodes allows to directly get a list of features with a specific cad type. For instance, to get all features HOLE defined in the tree. In this case,

A3DUns32 iSize;
A3DFRMFeature** ppFeatureNodes;
A3DFRMGetSpecificNodes( pFRMFeatureTree, kA3DFRMEnumValue_CadType_Hole, &iSize, &ppFeatureNodes);
//...
A3DFRMGetSpecificNodes( NULL, kA3DFRMEnumValue_CadType_Hole, &iSize, &ppFeatureNodes);

Note that A3DFRMFeatureTree object is an abstraction of A3DRiSet, so it possible to directly call the function A3DFRMFeatureTreeGet on a set

A3DEEntityType eType=kA3DTypeUnknown;
A3DEntityGetType(pRepresentationItem,&eType);
if(eType == kA3DTypeRiSet)
{
if (A3DFRMFeatureTreeGet(pRepresentationItem, &sTreeData) == A3D_SUCCESS)
{
A3DFRMFeatureTreeGet(NULL, &sTreeData);
}
else
{
//regular RiSet
}
}

Enumeration Type Documentation

Feature status enum.

Version
10.2
Enumerator
kA3DFRMStatus_Success 

No error

kA3DFRMStatus_Failed 

Error in reading process

kA3DFRMStatus_NotYetImplemented 

Limitation

Enumerate the possible types of cad type.

Version
10.2
Enumerator
kA3DFRMEnumValue_CadType_None 

No type specified

kA3DFRMEnumValue_CadType_Sketch 

Sketch

kA3DFRMEnumValue_CadType_Plane 

Plane

kA3DFRMEnumValue_CadType_Point 

Point

kA3DFRMEnumValue_CadType_CoordinateSystem 

CoordinateSystem

kA3DFRMEnumValue_CadType_Direction 

Direction

kA3DFRMEnumValue_CadType_Curve 

Curve

kA3DFRMEnumValue_CadType_Analysis 

Analysis

kA3DFRMEnumValue_CadType_ImportedSolid 

ImportedSolid

kA3DFRMEnumValue_CadType_Extrusion 

Extrude

kA3DFRMEnumValue_CadType_Revolution 

Revolve

kA3DFRMEnumValue_CadType_Surface 

Surface

kA3DFRMEnumValue_CadType_Block 

Block

kA3DFRMEnumValue_CadType_Sphere 

Sphere

kA3DFRMEnumValue_CadType_Cone 

Cone

kA3DFRMEnumValue_CadType_Cylinder 

Cylinder

kA3DFRMEnumValue_CadType_Torus 

Torus

kA3DFRMEnumValue_CadType_Dome 

Dome

kA3DFRMEnumValue_CadType_Helix 

Helix

kA3DFRMEnumValue_CadType_TruncatedPrism 

TruncatedPrism

kA3DFRMEnumValue_CadType_Hole 

Hole

kA3DFRMEnumValue_CadType_Chamfer 

Chamfer

kA3DFRMEnumValue_CadType_Blend 

Blend

kA3DFRMEnumValue_CadType_Fillet 

Fillet

kA3DFRMEnumValue_CadType_Groove 

Groove

kA3DFRMEnumValue_CadType_Pocket 

Pocket

kA3DFRMEnumValue_CadType_Sweep 

Sweep

kA3DFRMEnumValue_CadType_Pipe 

Pipe

kA3DFRMEnumValue_CadType_Group 

Group

kA3DFRMEnumValue_CadType_Mirror 

Mirror

kA3DFRMEnumValue_CadType_Pattern 

Pattern

kA3DFRMEnumValue_CadType_GroupPattern 

Pattern

kA3DFRMEnumValue_CadType_Instance 

Instance, see also Pattern

kA3DFRMEnumValue_CadType_Package 

Package

kA3DFRMEnumValue_CadType_Shell 

Shell

kA3DFRMEnumValue_CadType_Trim 

Trim

kA3DFRMEnumValue_CadType_Split 

Split

kA3DFRMEnumValue_CadType_Sew 

Sew

kA3DFRMEnumValue_CadType_Rib 

Rib

kA3DFRMEnumValue_CadType_Draft 

Draft

kA3DFRMEnumValue_CadType_Hollow 

Hollow

kA3DFRMEnumValue_CadType_Quilt 

Quilt

kA3DFRMEnumValue_CadType_LocalPush 

Local Push

kA3DFRMEnumValue_CadType_BooleanOperation 

Boolean Operation

kA3DFRMEnumValue_CadType_Intersect 

Intersect

kA3DFRMEnumValue_CadType_CutOut 

CutOut

kA3DFRMEnumValue_CadType_Merge 

Merge

kA3DFRMEnumValue_CadType_Translate 

Translate

kA3DFRMEnumValue_CadType_Rotate 

Rotate

kA3DFRMEnumValue_CadType_Scale 

Scale

kA3DFRMEnumValue_CadType_Offset 

Offset

kA3DFRMEnumValue_CadType_Transformation 

Transformation

kA3DFRMEnumValue_CadType_Thread 

Thread

kA3DFRMEnumValue_CadType_Cosmetic 

Cosmetic

kA3DFRMEnumValue_CadType_Material 

Material

kA3DFRMEnumValue_CadType_Thickness 

Thickness

kA3DFRMEnumValue_CadType_RemoveFace 

Remove Face

kA3DFRMEnumValue_CadType_UserDefined 

User Defined

kA3DFRMEnumValue_CadType_Member 

Member, son of an assembly. See Member

kA3DFRMEnumValue_CadType_Symmetry 

Symmetry

Function Documentation

A3DStatus A3DFRMGetSpecificNodes ( const A3DFRMFeatureTree pTree,
EA3DFRMEnumValue_CadType  eCADType,
A3DUns32 piSize,
A3DFRMFeature ***  pppFeatureNodes 
)

Build a List of Features corresponding to a node with specific CAD type.

Version
10.2
Parameters
eCADTypecad type of feature (Hole, Pattern, ...)
piSizenumber with the type specified
ppFeatureNodesfeatures found with the specific cad type (Hole, Pattern, ...)
Returns
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_DATA_STRUCT_NULL
A3D_ERROR
A3D_SUCCESS.
A3DStatus A3DAsmPartDefinitionFeatureTreesGet ( const A3DAsmPartDefinition pPartDefinition,
A3DUns32 puiSize,
A3DFRMFeatureTree ***  pppFeatureTrees 
)

Get all feature trees defined in the part definition.

Deprecated:

This function is deprecated. Please use the A3DFRMFeatureTree who are in the A3DAsmProductOccurrenceData. version 12.

Version
10.2
Parameters
pPartDefinitionpart definition to query
piSizenumber of feature trees contained
pppFeatureTreesfeature tree array
Returns
A3D_INVALID_DATA_STRUCT_SIZE
A3D_INVALID_DATA_STRUCT_NULL
A3D_ERROR
A3D_INVALID_LICENSE
A3D_SUCCESS.