NX二次开发-算法篇-找相切面
方法1:通过判断相邻面公共边的光顺性来找相切面
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(edge_list, &count);
16
17 for (int i = 0; i < count; i++)
18 {
19 //获取链表里的tag
20 tag_t EdgeTag = NULL_TAG;
21 UF_MODL_ask_list_item(edge_list, i, &EdgeTag);
22
23 //获取边的光顺性
24 logical is_smooth;
25 UF_MODL_ask_edge_smoothness(EdgeTag, 0, &is_smooth);
26
27 if (is_smooth == true)
28 {
29 //边找面
30 uf_list_p_t face_list;
31 UF_MODL_ask_edge_faces(EdgeTag, &face_list);
32
33 //获得链表数量
34 int face_count;
35 UF_MODL_ask_list_count(face_list, &face_count);
36 for (int j = 0; j < face_count; j++)
37 {
38 //获取链表里的tag
39 tag_t FaceTag = NULL_TAG;
40 UF_MODL_ask_list_item(face_list, j, &FaceTag);
41
42 //设置颜色
43 UF_OBJ_set_color(FaceTag, 186);
44 }
45 }
46
47 }
48
49
50 UF_terminate();

方法2:使用NXOPEN相切面方法
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二次开发-算法篇-找相切面的更多相关文章
- NX二次开发-算法篇-随便找个不规则的体,找出面的中心点的Z坐标最高和最低的面,高亮显示
NX9+VS2012 #include <uf.h> #include <uf_evalsf.h> #include <NXOpen/Body.hxx> #incl ...
- NX二次开发-算法篇-判断找到两个数组里不相同的对象
NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_modl.h> #include < ...
- NX二次开发-算法篇-创建最大边界包容盒
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...
- NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_curve.h> #include <u ...
- NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)
NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_curve.h> #include <u ...
- NX二次开发-UFUN体找面函数UF_MODL_ask_body_faces
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...
- NX二次开发-UFUN特征找体UF_MODL_ask_feat_body
NX11+VS2013 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN ...
- NX二次开发-UFUN特征找xxx UF_MODL_ask_feat_xxx等函数(待补充)
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...
- NX二次开发-UFUN体找边UF_MODL_ask_body_edges
NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_modl.h> #include <u ...
随机推荐
- org.springframework.web.servlet.DispatcherServlet异常
org.springframework.web.servlet.DispatcherServlet: No mapping found for HTTP request with URI [/] in ...
- PyCharm Change Font Size
file->settings->colors&fonts-> save as (save the current scheme as your own)-> font- ...
- magento 多域名多店
在magento1.4中请参考官网 :http://www.magentocommerce.com/knowledge-base/entry/tutorial-multi-site-multi-dom ...
- python3 投票
import urllib.request # cd C:\Python36-32\Scripts # pip install BeautifulSoup from bs4 import Beauti ...
- Windows注册表的学习
什么是注册表 注册表是Windows在Win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息.参数等.直接控制着系统的启动.硬件的装载以及Winodws程序的运行 手册表的功能 记录用 ...
- windows系统使用
1.访问局域网共享的文件,用 \\ip号 2.电脑的硬件名称(设备管理器中)是可以用软件修改的. 3.电脑中每一个连接网络的设备都有一个网卡地址(MAC地址),如无线网卡地址.有线网卡地址. 4.wi ...
- 使用ionic来build安卓apk时,报CordovaError: Requirements check failed for JDK 1.8 or greater
本地配置了JDK和jre的本地环境变量之后,在命令行中运行Java.javac等都能正常输出,但是在使用ionic cordova build android 来打包ionic的程序时,会提示 Cor ...
- 2019 wannafly winter camp day5-8代码库
目录 day5 5H div2 Nested Tree (树形dp) 5F div2 Kropki (状压dp) 5J div1 Special Judge (计算几何) 5I div1 Sortin ...
- jquery中的ajax请求用法以及参数详情
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- Cuckoo架构
cuckoo在部署阶段,只在Guest系统里塞了一个agent,这个agent在运行阶段负责与Host端程序进行通信,从Host端接收sample, 整个客户端程序,以及配置文件. 在Host端主要的 ...