2014-07-09 18:54:45|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:CAA, CATIA|来源:唯设编程网
在使用CAA进行CATIA二次开发的时候,Brep是无法直接用来作为新建特征元素的输入参数的,这时我们就需要对Brep对象使用CATIFeaturize接口的FeaturizeF函数实现Brep对象的特征化,下面是一段代码:首先将CATCell通过CATBRepDecodeCellInBody函数构造CATIBRepAccess接口的BRep对象,然后对其使用CATIFeaturize接口的FeaturizeF函数进行特征化,最后用来作为创建其它特征的输入元素:
HRESULT COverallDesignCmd::FeaturizeLinePoint(CATBody_var &spBody, CATCell_var ispVetextCell, CATIGSMPointCoord_var &SpPoint) { if(spBody==NULL_var||ispVetextCell==NULL_var) return E_FAIL; CATVertex_var spVertex=ispVetextCell; CATPoint_var spPoint= spVertex->GetPoint(); CATMathPoint VertextMath; spPoint->GetMathPoint(VertextMath) ; CATIBRepAccess_var BRepVetext =NULL_var; BRepVetext=CATBRepDecodeCellInBody(spVertex,spBody) ; CATIFeaturize_var FFeaturize = BRepVetext ; if ( NULL_var != FFeaturize ) { CATISpecObject_var MFVertexCell = FFeaturize->FeaturizeF(); if (MFVertexCell==NULL_var) return E_FAIL; if(_piFactory==NULL) return E_FAIL; CATICkeParm_var spPrefix1,spPrefix2,spPrefix3; CreateLength("X",0.0,spPrefix1); CreateLength("Y",0.0,spPrefix2); CreateLength("Z",0.0,spPrefix3); SpPoint = _piFactory->CreatePoint(spPrefix1,spPrefix2,spPrefix3,MFVertexCell); if (SpPoint!=NULL_var) { } } return S_OK; }
我们使用CAA进行CATIA二次开发经常需要通过CATCell构造对象,但是CATCell是无法用来作为特征的输入参数,就需要使用CATBRepDecodeCellInBody函数得到对应的以CATIBRepAccess表示的BRep对象,同样,BRep对象也是无法作为特征的输入参数,这时就需要使用CATIFeaturize接口的FeaturizeF函数实现Brep对象的特征化,特征化以后,就可以用来作为特征元素的输入参数了。