NX二次开发-NXOPEN找相切面方法ScRuleFactory()->CreateRuleFaceTangent

 1 #include <uf_defs.h>
 2 #include <uf_ui_types.h>
 3 #include <iostream>
 4 #include <NXOpen/Session.hxx>
 5 #include <NXOpen/UI.hxx>
 6 #include <NXOpen/NXMessageBox.hxx>
 7 #include <NXOpen/Callback.hxx>
 8 #include <NXOpen/NXException.hxx>
 9 #include <NXOpen/BlockStyler_UIBlock.hxx>
10 #include <NXOpen/BlockStyler_BlockDialog.hxx>
11 #include <NXOpen/BlockStyler_PropertyList.hxx>
12 #include <NXOpen/BlockStyler_Group.hxx>
13 #include <NXOpen/BlockStyler_FaceCollector.hxx>
14 #include <uf.h>
15 #include <uf_obj.h>
16 #include <NXOpen/NXObjectManager.hxx>
17 #include <NXOpen/PartCollection.hxx>
18 #include <NXOpen/Face.hxx>
19 #include <NXOpen/FaceTangentRule.hxx>
20 #include <NXOpen/ScCollectorCollection.hxx>
21 #include <NXOpen/ScRuleFactory.hxx>
22 
23 
24         UF_initialize();
25 
26         //NXOPEN初始化
27         NXOpen::Session *theSession = NXOpen::Session::GetSession();
28         NXOpen::Part *workPart(theSession->Parts()->Work());
29         NXOpen::Part *displayPart(theSession->Parts()->Display());
30 
31         //选择面控件
32         PropertyList* FaceSelectProps = face_select0->GetProperties();
33         std::vector<NXOpen::TaggedObject*> faces = FaceSelectProps->GetTaggedObjectVector("SelectedObjects");
34         delete FaceSelectProps;
35         FaceSelectProps = NULL;
36 
37         tag_t FaceTag = faces[0]->Tag();
38 
39         //对选中的面设置颜色
40         UF_OBJ_set_color(FaceTag, 186);
41 
42         //给入一个面
43         NXOpen::Face *face1(dynamic_cast<NXOpen::Face *>(NXOpen::NXObjectManager::Get(FaceTag)));
44 
45         //使用NXOPEN相切面规则
46         std::vector<NXOpen::Face *> boundaryFaces1(0);
47         NXOpen::FaceTangentRule *faceTangentRule1;
48         faceTangentRule1 = workPart->ScRuleFactory()->CreateRuleFaceTangent(face1, boundaryFaces1, 0.050000000000000003);
49         std::vector<NXOpen::SelectionIntentRule *> rules1(1);
50         rules1[0] = faceTangentRule1;
51 
52         NXOpen::ScCollector* scCollector1 = workPart->ScCollectors()->CreateCollector();
53         scCollector1->ReplaceRules(rules1, false);
54 
55         std::vector<NXOpen::TaggedObject*> BB = scCollector1->GetObjects();
56         for (int i = 0; i < BB.size(); i++)
57         {
58             UF_OBJ_set_color(BB[i]->Tag(), 1);
59         }
60 
61         UF_terminate();

NX二次开发-NXOPEN找相切面方法ScRuleFactory()->CreateRuleFaceTangent

NX二次开发-NXOPEN找相切面方法ScRuleFactory()->CreateRuleFaceTangent

NX二次开发-NXOPEN找相切面方法ScRuleFactory()->CreateRuleFaceTangent

NX二次开发-NXOPEN找相切面方法ScRuleFactory()->CreateRuleFaceTangent

上一篇:NX二次开发-UFUN计时函数UF_end_timer


下一篇:NX二次开发-UFUN单对象选择对话框UF_UI_select_with_single_dialog