NX二次开发-NXOpen::CoordinateSystemCollection Class Reference
Posted nxopen2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NX二次开发-NXOpen::CoordinateSystemCollection Class Reference相关的知识,希望对你有一定的参考价值。
1 NX11+VS2013 2 3 4 #include <NXOpen/Section.hxx> 5 #include <NXOpen/SectionCollection.hxx> 6 #include <NXOpen/Part.hxx> 7 #include <NXOpen/PartCollection.hxx> 8 #include <NXOpen/CoordinateSystem.hxx> 9 #include <NXOpen/CoordinateSystemCollection.hxx> 10 #include <NXOpen/CartesianCoordinateSystem.hxx> 11 #include <NXOpen/NXMatrix.hxx> 12 #include <NXOpen/NXMatrixCollection.hxx> 13 #include <NXOpen/Xform.hxx> 14 #include <NXOpen/XformCollection.hxx> 15 #include <NXOpen/Scalar.hxx> 16 #include <NXOpen/ScalarCollection.hxx> 17 #include <NXOpen/CylindricalCoordinateSystem.hxx> 18 #include <NXOpen/UI.hxx> 19 #include <NXOpen/NXMessageBox.hxx> 20 21 22 using namespace NXOpen; 23 using namespace std; 24 25 26 NXOpen::Session *theSession = NXOpen::Session::GetSession(); 27 NXOpen::Part *workPart(theSession->Parts()->Work()); 28 NXOpen::Part *displayPart(theSession->Parts()->Display()); 29 30 //创建一个新的笛卡尔坐标系(TRUE和FALSE,如果坐标系是临时的用TRUE,它将不会显示,也不会保存在部件中) 31 Point3d WcsOrigin1(100.0, 100.0, 100.0);//原点 32 Matrix3x3 WcsMatrix1 (1, 0, 0, 0, 1, 0, 0, 0, 1);//矩阵 33 NXOpen::CartesianCoordinateSystem* WcsNew1 = workPart->CoordinateSystems()->CreateCoordinateSystem(WcsOrigin1, WcsMatrix1, FALSE); 34 35 //创建一个新的笛卡尔坐标系 36 Point3d WcsOrigin2(200.0, 200.0, 200.0);//原点 37 Vector3d xDirection2(1.0, 0.0, 0.0);//向量 38 Vector3d yDirection2(0.0, 1.0, 0.0); 39 NXOpen::CartesianCoordinateSystem* WcsNew2 = workPart->CoordinateSystems()->CreateCoordinateSystem(WcsOrigin2, xDirection2, yDirection2); 40 41 //创建一个新的笛卡尔坐标系(TRUE和FALSE,如果坐标系是临时的用TRUE,它将不会显示,也不会保存在部件中) 42 Point3d WcsOrigin3(300.0, 300.0, 300.0);//原点 43 Matrix3x3 WcsMatrix3(1, 0, 0, 0, 1, 0, 0, 0, 1);//矩阵 44 NXOpen::NXMatrix* Matrix3 = workPart->NXMatrices()->Create(WcsMatrix3);//创建一个新的矩阵 45 NXOpen::CartesianCoordinateSystem* WcsNew3 = workPart->CoordinateSystems()->CreateCoordinateSystem(WcsOrigin3, Matrix3, FALSE); 46 47 //创建一个新的笛卡尔坐标系 48 Point3d WcsOrigin4(400.0, 400.0, 400.0);//原点 49 Vector3d xDirection4(1.0, 0.0, 0.0);//向量 50 Vector3d yDirection4(0.0, 1.0, 0.0); 51 double Scale = 1; 52 NXOpen::Xform* xform = workPart->Xforms()->CreateXform(WcsOrigin4, xDirection4, yDirection4, SmartObject::UpdateOptionWithinModeling, Scale); 53 NXOpen::CartesianCoordinateSystem* WcsNew4 = workPart->CoordinateSystems()->CreateCoordinateSystem(xform, SmartObject::UpdateOptionWithinModeling); 54 WcsNew4->SetVisibility(SmartObject::VisibilityOptionVisible);//设置显示坐标系 55 56 //创建一个新的圆柱坐标系 57 Point3d WcsOrigin5(500.0, 500.0, 500.0);//原点 58 Vector3d xDirection5(1.0, 0.0, 0.0);//向量 59 Vector3d yDirection5(0.0, 1.0, 0.0); 60 NXOpen::CylindricalCoordinateSystem* WcsNew5 = workPart->CoordinateSystems()->CreateCylindricalCoordinateSystem(WcsOrigin5, xDirection5, yDirection5); 61 62 //创建一个新的圆柱坐标系(TRUE和FALSE,如果坐标系是临时的用TRUE,它将不会显示,也不会保存在部件中) 63 Point3d WcsOrigin6(600.0, 600.0, 600.0);//原点 64 Matrix3x3 WcsMatrix6(1, 0, 0, 0, 1, 0, 0, 0, 1);//矩阵 65 NXOpen::NXMatrix* Matrix6 = workPart->NXMatrices()->Create(WcsMatrix6);//创建一个新的矩阵 66 NXOpen::CylindricalCoordinateSystem* WcsNew6 = workPart->CoordinateSystems()->CreateCylindricalCoordinateSystem(WcsOrigin6, Matrix6, FALSE); 67 68 //创建一个新的圆柱坐标系 69 Point3d WcsOrigin7(700.0, 700.0, 700.0);//原点 70 Vector3d xDirection7(1.0, 0.0, 0.0);//向量 71 Vector3d yDirection7(0.0, 1.0, 0.0); 72 double Scale7 = 1; 73 NXOpen::Xform* xform7 = workPart->Xforms()->CreateXform(WcsOrigin7, xDirection7, yDirection7, SmartObject::UpdateOptionWithinModeling, Scale7); 74 NXOpen::CylindricalCoordinateSystem* WcsNew7 = workPart->CoordinateSystems()->CreateCylindricalCoordinateSystem(xform7, SmartObject::UpdateOptionWithinModeling); 75 WcsNew7->SetVisibility(SmartObject::VisibilityOptionVisible);//设置显示坐标系 76 77 //迭代器遍历所有坐标系 78 vector<tag_t> AllCoordVector;//定义vector 79 NXOpen::CoordinateSystem* AllCoord;//定义类型 80 NXOpen::CoordinateSystemCollection::iterator Ite;//定义迭代器 81 for (Ite = workPart->CoordinateSystems()->begin(); Ite != workPart->CoordinateSystems()->end(); ++Ite) 82 83 AllCoord = (*Ite); 84 AllCoordVector.push_back(AllCoord->Tag());//获得坐标系的tag 85 86 87 char msg[256]; 88 sprintf_s(msg, "坐标系数量为:%d", AllCoordVector.size()); 89 UI::GetUI()->NXMessageBox()->Show("标题", NXMessageBox::DialogTypeWarning, msg); 90 91 92 Caesar卢尚宇 93 2019年8月31日
以上是关于NX二次开发-NXOpen::CoordinateSystemCollection Class Reference的主要内容,如果未能解决你的问题,请参考以下文章
UG NX二次开发(C#)-VS2022配置NX二次开发模板不能正常显示的问题
UG NX二次开发(C#)-模型干涉检查-UG NX自动干涉检查功能与二次开发思路
NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))