NX二次开发-NXOpen获取边的端点NXOpen::Edge::GetVertices

 1     NX9+VS2012
 2
 3     #include <NXOpen/Features_BlockFeatureBuilder.hxx>
 4     #include <NXOpen/Features_FeatureCollection.hxx>
 5     #include <NXOpen/NXException.hxx>
 6     #include <NXOpen/Body.hxx>
 7     #include <NXOpen/BodyCollection.hxx>
 8     #include <NXOpen/PartCollection.hxx>
 9     #include <NXOpen/Edge.hxx>
10     #include <NXOpen/ListingWindow.hxx>
11     #include <NXOpen/NXObjectManager.hxx>
12     #include <NXopen/UI.hxx>
13     #include <NXOpen/DisplayManager.hxx>
14
15     using namespace NXOpen;
16
17     NXOpen::Session *theSession = NXOpen::Session::GetSession();
18     NXOpen::Part *workPart(theSession->Parts()->Work());
19     NXOpen::Part *displayPart(theSession->Parts()->Display());
20
21     ListingWindow *lw;
22     lw = theSession->ListingWindow();
23
24
25     //NXOpen方式创建块
26     NXOpen::Features::Feature *nullNXOpen_Features_Feature(NULL);
27     NXOpen::Features::BlockFeatureBuilder *blockFeatureBuilder1;
28     blockFeatureBuilder1 = workPart->Features()->CreateBlockFeatureBuilder(nullNXOpen_Features_Feature);
29
30     std::vector<NXOpen::Body *> targetBodies1(1);
31     NXOpen::Body *nullNXOpen_Body(NULL);
32     targetBodies1[0] = nullNXOpen_Body;
33     blockFeatureBuilder1->BooleanOption()->SetTargetBodies(targetBodies1);
34
35     blockFeatureBuilder1->SetType(NXOpen::Features::BlockFeatureBuilder::TypesOriginAndEdgeLengths);//设置创建类型
36
37     NXOpen::Point3d originPoint1(120.0, 103.0, 154.0);
38     blockFeatureBuilder1->SetOriginAndLengths(originPoint1, "142", "132", "118");//设置原点
39
40     blockFeatureBuilder1->SetBooleanOperationAndTarget(NXOpen::Features::Feature::BooleanTypeCreate, nullNXOpen_Body);//设置布尔
41
42     NXOpen::Features::Feature *feature1;
43     feature1 = blockFeatureBuilder1->CommitFeature();
44
45
46
47     //NXOpen方式设置颜色
48     NXOpen::DisplayModification *displayModification1;
49     displayModification1 = theSession->DisplayManager()->NewDisplayModification();
50
51     displayModification1->SetNewColor(108);//设置颜色
52
53     std::vector<NXOpen::DisplayableObject *> objects1(1);
54     NXOpen::Body *body1(dynamic_cast<NXOpen::Body *>(workPart->Bodies()->FindObject(feature1->JournalIdentifier())));
55     objects1[0] = body1;
56     displayModification1->Apply(objects1);
57
58
59     //NXOpen特征获取体
60     NXOpen::Body *MyBody(dynamic_cast<NXOpen::Body *>(workPart->Bodies()->FindObject(feature1->JournalIdentifier())));
61
62
63     //NXOpen体获取边
64     std::vector<NXOpen::Edge*> MyEdge = MyBody->GetEdges();
65
66     char msg1[256];
67     char msg2[256];
68     sprintf_s(msg1, "当前体有%d条边\n每条边的两个端点如下:\n", MyEdge.size());//转换
69
70     //打印
71     lw->Open();
72     lw->WriteLine(msg1);
73
74     for (int i = 0; i < MyEdge.size(); i++)
75     {
76         MyEdge[i]->Highlight();//高亮所有边
77         NXOpen::Point3d Vertex1[3];//端点1
78         NXOpen::Point3d Vertex2[3];//端点2
79         MyEdge[i]->GetVertices(Vertex1, Vertex2);//由边获取端点
80
81         sprintf_s(msg2, "X坐标:%.0f,  Y坐标:%.0f, Z坐标:%.0f\nX坐标:%.0f,  Y坐标:%.0f,  Z坐标:%.0f\n", Vertex1->X, Vertex1->Y, Vertex1->Z, Vertex2->X, Vertex2->Y, Vertex2->Z);//转换
82         lw->WriteLine(msg2);//打印
83     }

原文地址:https://www.cnblogs.com/nxopen2018/p/10957467.html

时间: 2024-08-29 16:38:13

NX二次开发-NXOpen获取边的端点NXOpen::Edge::GetVertices的相关文章

NX二次开发-UFUN获取显示在NX交互界面的对象UF_OBJ_is_displayable

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_disp.h> 5 #include <uf_obj.h> 6 #include <uf_part.h> 7 8 UF_initialize(); 9 10 //遍历当前显示部件 11 tag_t NextTag = NULL_TAG; 12 int Type1, SubType1; 13 do 14 { 15 NextTag = UF_OBJ_cycle_all

NX二次开发-UFUN获取对象的显示属性(图层,颜色,空白状态,线宽,字体,高亮状态)UF_OBJ_ask_display_properties

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_modl.h> 5 #include <uf_obj.h> 6 7 UF_initialize(); 8 9 UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔 10 double Corner_pt[3] = {0.0, 0.0, 0.0};//设置原点 11 char *Edge_Len[3] = {"100", &qu

NX二次开发-UFUN获取边的光顺性UF_MODL_ask_edge_smoothness(找相切面)

1 #include <uf.h> 2 #include <uf_modl.h> 3 #include <uf_obj.h> 4 5 6 UF_initialize(); 7 8 9 //获取面的所有边 10 uf_list_p_t edge_list; 11 UF_MODL_ask_face_edges(42084, &edge_list); 12 13 //获取链表的数量 14 int count; 15 UF_MODL_ask_list_count(edg

NX二次开发-UFUN获取工程图所有视图tag UF_DRAW_ask_views

1 #include <uf.h> 2 #include <uf_draw.h> 3 #include <uf_drf.h> 4 #include <uf_obj.h> 5 6 7 8 UF_initialize(); 9 10 //获得当前图纸页的tag 11 tag_t drawing_tag = NULL_TAG; 12 UF_DRAW_ask_current_drawing(&drawing_tag); 13 14 //找名字获取视图tag

NX二次开发-UFUN获取图层的状态UF_LAYER_ask_status

1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_layer.h> 6 7 8 UF_initialize(); 9 10 //获取图层的状态 11 //1.UF_LAYER_WORK_LAYER 设置为工作图层 12 //2.UF_LAYER_ACTIVE_LAYER 设置图层可见可编辑 13 //3.UF_LAYER_REFERENCE_LAYER 设置图层仅可见 14 //4

NX二次开发-UFUN获取一个图层类别的tag UF_LAYER_ask_category_tag

1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_layer.h> 6 7 8 9 UF_initialize(); 10 11 //获取一个图层类别的tag 12 tag_t category = NULL_TAG; 13 UF_LAYER_ask_category_tag("01.Tangkl_Solids", &category); 14 15 /

NX二次开发-UFUN获取图层类别的信息UF_LAYER_ask_category_info

1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_layer.h> 6 7 8 9 UF_initialize(); 10 11 //获取一个图层类别的tag 12 tag_t category = NULL_TAG; 13 UF_LAYER_ask_category_tag("01.Tangkl_Solids", &category); 14 15 /

NX二次开发-UFUN获取当前工作部件tag UF_ASSEM_ask_work_part

1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_part.h> 5 #include <uf_assem.h> 6 7 8 UF_initialize(); 9 10 //获取当前工作部件tag 11 tag_t workPart = UF_ASSEM_ask_work_part(); 12 13 //设置当前显示部件 14 UF_PART_set_display_part(workPart); 15 16 UF_ter

NX二次开发-UFUN获取part的单位(公制/英制)UF_PART_ask_units

1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_part.h> 5 #include <uf_ui.h> 6 7 8 UF_initialize(); 9 10 //获取part的单位(公制/英制) 11 int partUnits = 0; 12 UF_PART_ask_units(UF_PART_ask_display_part(), &partUnits); 13 14 //打印 15 char msg[2