2014-07-18 19:06:53|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, CAA, CATIA|来源:唯设编程网
// Constraints CATI2DConstraintFactory_var spConstraint2DFactory(spSketch); spConstraint2DFactory->CreateConstraint( spLine1, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Horizontal, 0, 0 ); spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Vertical, 0, 0 ); spConstraint2DFactory->CreateConstraint( spLine3, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Horizontal, 0, 0 ); spConstraint2DFactory->CreateConstraint( spLine4, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Vertical, 0, 0 ); spConstraint2DFactory->CreateConstraint( spLine2, NULL, NULL, NULL, NULL, NULL, NULL, Cst2DType_Length, 0, 0 ); spConstraint2DFactory->CreateConstraint( spLine2, NULL, spLine4, NULL, NULL, NULL, NULL, Cst2DType_Distance, 0, 0 );
约束工厂由草图直接实现。在得到2D约束工厂以后,我们创建4个约束(直线上的水平约束和垂直约束),然后我们创建两个尺寸约束(一条直线上的长度约束和其余两条直线之间的距离约束)。
pt_bottom_left[0] = 20.; pt_bottom_left[1] = 20.; spPt_bottom_left->SetPointData(pt_bottom_left);
通过上面的方式我们更改了第一个创建点的坐标。
CATLISTV(CATI2DWFGeometry_var) spSoftReferences(1); spSoftReferences.Append(spPt_bottom_left); spSketch->Evaluate(spSoftReferences);
我们求解尺寸系统。最后修改的点有最高优先级。几何评估与软参考元素(spPt_bottom_left),求解器视图保持固定那些元素(spPt_bottom_left有更高优先级)。如果我们没有给第一个点高的优先级,最后的修改(更改第一个点的位置)将会无效。在这个例子中,矩形进行整体移动。