Analysis Situs // SDK
Automatic Feature Recognition

Automatic Feature Recognition algorithms of Analysis Situs. More...

Namespaces

 asiAlgo_AAGIterationRule
 
 asiAlgo_FeatureAngle
 
 asiAlgo_PartBodyTypeUtils
 

Classes

class  asiAlgo_AttrBlendCandidate
 
class  asiAlgo_AttrBlendSupport
 
struct  asiAlgo_BlendChainProps
 
class  asiAlgo_BlendTopoCondition
 
class  asiAlgo_BlendTopoConditionFF
 
struct  asiAlgo_BlendTopoConditionFFIsolated
 
struct  asiAlgo_BlendTopoConditionFFOrdinaryEBF
 
struct  asiAlgo_BlendTopoConditionFFOrdinaryVBF
 
class  asiAlgo_FindCrossEdges
 
class  asiAlgo_FindSmoothEdges
 
class  asiAlgo_FindSpringEdges
 
class  asiAlgo_FindTermEdges
 
class  asiAlgo_RecognizeBlends
 
class  asiAlgo_RecognizeEBF
 
class  asiAlgo_RecognizeVBF
 
class  asiAlgo_SuppressBlendChain
 
class  asiAlgo_SuppressBlendsInc
 
class  asiAlgo_AAG
 Attributed Adjacency Graph for faces of a CAD model. More...
 
class  asiAlgo_AAGIterator
 
class  asiAlgo_AAGRandomIterator
 
class  asiAlgo_AAGSetIterator
 
class  asiAlgo_AAGNeighborsIterator< t_blockRule >
 
class  asiAlgo_AdjacencyMx
 
class  asiAlgo_BorderTrihedron
 
class  asiAlgo_CheckDihedralAngle
 
class  asiAlgo_CheckInsertion
 
class  asiAlgo_CheckVertexVexity
 
struct  asiAlgo_ConvexHull
 
class  asiAlgo_ExtractFeaturesFilter
 Function to filter the extracted faces by attributes. More...
 
class  asiAlgo_ExtractFeatures
 Extracts feature faces from AAG using the hooked attributes. This tool is designed to finalize feature recognition process. More...
 
class  asiAlgo_ExtractFeaturesResult
 
class  asiAlgo_FeatureAttr
 
class  asiAlgo_FeatureAttrAdjacency
 
class  asiAlgo_FeatureAttrAngle
 
class  asiAlgo_FeatureAttrArea
 
class  asiAlgo_FeatureAttrAxialRange
 
class  asiAlgo_FeatureAttrBaseFace
 
class  asiAlgo_FeatureAttrConvexHull
 
class  asiAlgo_FeatureAttrFace
 
class  asiAlgo_FeatureAttrUVBounds
 
class  asiAlgo_FindFeatureHints
 
class  asiAlgo_Isomorphism
 Solves subgraph isomorphism problem. More...
 
class  asiAlgo_RecognitionRule
 
class  asiAlgo_RecognizeCavities
 
class  asiAlgo_RecognizeCavitiesRule
 
class  asiAlgo_RecognizeConvexHull
 
class  asiAlgo_RecognizeDrillHoles
 
class  asiAlgo_RecognizeDrillHolesRule
 
class  asiAlgo_RecognizeIsolated
 
class  asiAlgo_Recognizer
 
class  asiAlgo_ShapePartnerHasher
 
class  asiAlgo_TopoAttr
 
class  asiAlgo_TopoAttrLocation
 
class  asiAlgo_TopoAttrName
 
class  asiAlgo_TopoAttrOrientation
 
class  asiAlgo_TopoGraph
 Topology graph for any B-Rep part. More...
 

Typedefs

typedef std::pair< asiAlgo_Feature, asiAlgo_BlendChainPropsasiAlgo_BlendChain
 
typedef NCollection_DataMap< int, Handle_asiAlgo_BlendTopoCondition > asiAlgo_BlendTopoConditionMap
 
typedef NCollection_Shared< asiAlgo_BlendTopoConditionMapasiAlgo_HBlendTopoConditionMap
 
typedef int asiAlgo_FeatureId
 
typedef TColStd_PackedMapOfInteger asiAlgo_Feature
 
typedef NCollection_DataMap< asiAlgo_FeatureId, asiAlgo_FeatureasiAlgo_Features
 
typedef NCollection_DataMap< int, asiAlgo_FeaturesasiAlgo_FeaturesByType
 
typedef Standard_GUID asiAlgo_BadGuid
 

Enumerations

enum  asiAlgo_BlendType { BlendType_Uncertain = 0, BlendType_Ordinary, BlendType_Vertex, BlendType_Cliff }
 
enum  asiAlgo_BlendVexity { BlendVexity_Uncertain = -1, BlendVexity_Concave = 0, BlendVexity_Convex = 1 }
 
enum  asiAlgo_FeatureAngleType {
  FeatureAngleType_Undefined = -1, FeatureAngleType_Concave = 0, FeatureAngleType_Convex = 1, FeatureAngleType_Smooth = 2,
  FeatureAngleType_SmoothConcave = 3, FeatureAngleType_SmoothConvex = 4, FeatureAngleType_NonManifold = 5, FeatureAngleType_LAST
}
 
enum  asiAlgo_FeatureType {
  FeatureType_UNDEFINED = 0, FeatureType_HoleCylindrical, FeatureType_Isolated, FeatureType_BlendOrdinary,
  FeatureType_LAST
}
 
enum  asiAlgo_InsertionType { InsertionType_Undefined = -1, InsertionType_Soft = 0, InsertionType_Hard = 1 }
 
enum  asiAlgo_PartBodyType {
  PartBodyType_Unrecognized = 0, PartBodyType_FlatShape, PartBodyType_FoldedSheetMetal, PartBodyType_RectTube,
  PartBodyType_CylTube, PartBodyType_OtherTube, PartBodyType_Profile, PartBodyType_CncMilling,
  PartBodyType_CncLathe, PartBodyType_CncLatheMilling
}
 

Detailed Description

Automatic Feature Recognition algorithms of Analysis Situs.

Typedef Documentation

◆ asiAlgo_BadGuid

typedef Standard_GUID asiAlgo_BadGuid

Undefined GUID.

◆ asiAlgo_BlendChain

◆ asiAlgo_BlendTopoConditionMap

typedef NCollection_DataMap<int, Handle_asiAlgo_BlendTopoCondition > asiAlgo_BlendTopoConditionMap

Convenience type alias. Maps ID of a blend face to the data structure which is the descriptor of topological situation around that face.

◆ asiAlgo_Feature

typedef TColStd_PackedMapOfInteger asiAlgo_Feature

Feature as a set of indices of faces.

◆ asiAlgo_FeatureId

typedef int asiAlgo_FeatureId

Feature ID.

◆ asiAlgo_Features

typedef NCollection_DataMap<asiAlgo_FeatureId, asiAlgo_Feature> asiAlgo_Features

Features by indices.

◆ asiAlgo_FeaturesByType

typedef NCollection_DataMap<int, asiAlgo_Features> asiAlgo_FeaturesByType

Handy typedef for indices of feature faces organized by feature types.

◆ asiAlgo_HBlendTopoConditionMap

Shared version of asiAlgo_BlendTopoConditionMap.

Enumeration Type Documentation

◆ asiAlgo_BlendType

Blends types.

Enumerator
BlendType_Uncertain 

Uncertain blend type for recognizer.

BlendType_Ordinary 

Ordinary blend.

BlendType_Vertex 

Vertex blend.

BlendType_Cliff 

Cliff blend (a special case of ordinary blend).

◆ asiAlgo_BlendVexity

Blend convexity.

Enumerator
BlendVexity_Uncertain 

Uncertain blend vexity.

BlendVexity_Concave 

Concave blend.

BlendVexity_Convex 

Convex blend.

◆ asiAlgo_FeatureAngleType

Type of angle. Numerical values associated with the items are taken from fundamental paper of Joshi "Graph-based heuristics for recognition of machined features from a 3D solid model", 1988.

◆ asiAlgo_FeatureType

Enumeration for basic feature types.

Enumerator
FeatureType_UNDEFINED 

Undefined feature type.

FeatureType_HoleCylindrical 

Cylindrical hole.

FeatureType_Isolated 

Isolated feature.

FeatureType_BlendOrdinary 

Ordinary blend.

FeatureType_LAST 

Last item is reserved for extensions.

◆ asiAlgo_InsertionType

Type of feature insertion.

Enumerator
InsertionType_Undefined 

Undefined type of feature insertion.

InsertionType_Soft 

Soft (isolated) feature.

InsertionType_Hard 

Hard (non-isolated) feature.

◆ asiAlgo_PartBodyType

Recognized part types. The type is resolved at the level of a single part body as there could be compound parts which are not recognizable unless exploded to the primitive bodies, such as solids.

Enumerator
PartBodyType_Unrecognized 

Pending for recognition.

PartBodyType_FlatShape 

Sheet metal body without folds.

PartBodyType_FoldedSheetMetal 

Folded sheet metal body.

PartBodyType_RectTube 

Rectangular tube body.

PartBodyType_CylTube 

Cylindrical tube body.

PartBodyType_OtherTube 

Other type of tube.

PartBodyType_Profile 

Sheet metal profile.

PartBodyType_CncMilling 

CNC milled body.

PartBodyType_CncLathe 

CNC lathed body.

PartBodyType_CncLatheMilling 

CNC lathed body, (optionally) combined with milling.