2014-07-18 19:06:53|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, CAA, CATIA|来源:唯设编程网
CATI2DAxis_var spSupport; spSketch->GetAbsolute2DAxis(spSupport); spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL, spSupport->GetHDirection(), NULL, NULL, NULL, NULL, Cst2DType_Distance, 0, 0 ); spConstraint2DFactory->CreateConstraint( spPt_bottom_left, NULL, spSupport->GetVDirection(), NULL, NULL, NULL, NULL, Cst2DType_Distance, 0, 0 );
在这个例子中,草图被ISO约束,因为矩形是刚性的。我们将它放置在草图支持面上(创建了第一个点距离H方向和V方向的两个约束)。矩形现在就被固定了,并且在草图中被全约束。
double radius = 10.; double pt_center[2] = {70., 40.}; CATI2DCurve_var spCurve5 = sketch2DFactory->CreateCorner(spCurve3, spCurve4, pt_center, &radius); CATI2DTopologicalOperators_var spOperateur = spSketch; // specifies relimitations spOperateur->InsertCorner(spCurve5,spLine3,1,spLine4,1); spConstraint2DFactory->CreateConstraint( spLine3, NULL, spCurve5, NULL, NULL, NULL, NULL, Cst2DType_Tangent, 0, 0); spConstraint2DFactory->CreateConstraint( spCurve5, NULL, spLine4, NULL, NULL, NULL, NULL, Cst2DType_Tangent, 0, 0); spConstraint2DFactory->CreateConstraint( spCurve5, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Radius, 0, 1);
我们在几何工厂上面创建一个操作。这个操作对应于矩形两条直线之间的圆角,然后我们重新定义了限制条件(修剪所有元素)。为了创建一个与之相相切的圆角我们创建两个相切约束,然后我们为圆角定义了半径。注意CreateConstraint方法的最后一个参数是“1”,因为我们希望最后一次解算尺寸系统。
spSketch->CloseEdition();
调用CloseEdition方法关闭草图编辑。
CATDocumentServices::SaveAs(*pDocument,pFileName); if (NULL != pSession) pSession->Delete_Session(pSessionIdent); // Memory cleaning piContainer->Release(); return 0;
这部分展示了保存一个文档的常用步骤。
到此,CATIA使用CAA二次开发实现草图文件的创建和保存工作就完成了,在其中我们还介绍了如何创建CATIA的草图元素、约束等内容的方法。