iCAx开思工具箱

标题: 如何将CATIGSM***元素转换为CATCurve或者CATSurface? [打印本页]

作者: zsong22    时间: 2012-11-26 10:49
标题: 如何将CATIGSM***元素转换为CATCurve或者CATSurface?
//对曲面的平移
CATIGSMTranslate_var  gsmTranslate=NULL_var;
gsmTranslate = pIGSMFactory->CreateTranslate (spSpecObject2,iGSMDirection,iDistance);
//一条法线
CATIGSMLineNormal_var  NormalLine = pIGSMFactory->CreateLineNorma(iSOTranslate,iSOGravity,StartLength,EndLength,Orientation);

求交函数如下:
CATIntersectionCrvSur * CreateIntersection( CATGeoFactory*  iWhere,
CATCurve*  iCurve,
CATSurface*  iSurface,
CATSkillValue  iMode =BASIC )

因为要做空间求交  所以需要把上面的法线转换为CATCurve*    把上面的平移后的曲面转换为CATSurface*  。
因为类型不会转,特此求助。   谢谢亲们的关注与帮助!{:soso_e176:}
作者: linlily0925    时间: 2012-11-26 12:20
CATISpecObject->CATBody->CATEdge->CATEdgeCurve->CATCurve
CATISpecObject->CATBody->CATFace->CATSurface
作者: zsong22    时间: 2012-11-26 14:48
linlily0925 发表于 2012-11-26 12:20
CATISpecObject->CATBody->CATEdge->CATEdgeCurve->CATCurve
CATISpecObject->CATBody->CATFace->CATSurfa ...

我问其他人,  他们都说直接QI就行  但是最后mkmk没报错,  catia上运行调试时报错。不知道其中缘由。

CATIntersectionCrvSur*  spIntersectionCrvSur=NULL;
CATSurface*  pSurface=NULL;
gsmTranslate->QueryInterface(IID_CATSurface,(void**) &pSurface);
CATCurve*  pCurve=NULL;
NormalLine->QueryInterface(IID_CATCurve,(void**) &pCurve);
spIntersectionCrvSur = ::CreateIntersection(piGeomFactory,pCurve,pSurface,BASIC);

谢谢 丽丽!
作者: zsong22    时间: 2012-11-26 14:58
Catia里面的报错,应该还是类型转换时候的错。
作者: linlily0925    时间: 2012-11-26 16:17
程序里面加些判断吧,如果QI得不到,那就拓扑转换一下,也不麻烦啊~~




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3