CAA开发时对Brep对象特征化

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对象的特征化,特征化以后,就可以用来作为特征元素的输入参数了。

发表评论0条 】
网友评论(共?条评论)..
CAA开发时对Brep对象特征化