NX二次开发-算法篇-随便找个不规则的体,找出面的中心点的Z坐标最高和最低的面,高亮显示
NX9+VS2012 #include <uf.h>
#include <uf_evalsf.h>
#include <NXOpen/Body.hxx>
#include <NXOpen/Face.hxx>
#include <uf_disp.h> public: void SelectBody(); void SelectUVFace::SelectBody()
{
UF_initialize();//初始化 //获取体收集器控件
PropertyList* BodySelectProps = bodySelect0->GetProperties();
std::vector<NXOpen::TaggedObject *> Bodys = BodySelectProps->GetTaggedObjectVector("SelectedObjects");
delete BodySelectProps;
BodySelectProps = NULL; NXOpen::Body *mybody = dynamic_cast<NXOpen::Body *>(Bodys[]);//获取选择的体 std::vector<Face*> face = mybody->GetFaces();//通过体获得所有面 double z = -;
double z1 = ;
tag_t highest = NULL;//最高面TAG
tag_t lowest = NULL;//最低面TAG
for (int i = ; i < face.size(); i++)//循环找到所有的面
{
//face[i]->Highlight();//高亮所有面
UF_EVALSF_p_t evaluator = NULL;
double uv_min_max[] = {0.0, 1.0, 0.0, 1.0};
UF_EVALSF_initialize_2(face[i]->Tag(), &evaluator);//初始化一个面评估器结构
UF_EVALSF_ask_face_uv_minmax(evaluator, uv_min_max);//计算u,v参数空间一个面的最小值、最大值 double uv_pair[] = {0.5 * (uv_min_max[] + uv_min_max[]), 0.5 * (uv_min_max[] + uv_min_max[])};
UF_MODL_SRF_VALUE_t surf_eval;
UF_EVALSF_evaluate(evaluator, UF_MODL_EVAL_ALL, uv_pair, &surf_eval); Point3d origin(surf_eval.srf_pos[], surf_eval.srf_pos[], surf_eval.srf_pos[]);//得到UV0.5的XYZ点坐标
Vector3d vector1(surf_eval.srf_unormal[], surf_eval.srf_unormal[], surf_eval.srf_unormal[]);//得到UV面的向量
UF_EVALSF_free(&evaluator); if (z>surf_eval.srf_pos[])//判断当Z值大于UV点Z值的时候
{
z = z;
}
else//当Z值小于UV点Z值的时候
{
z = surf_eval.srf_pos[];//Z就等于UV点Z最大值
highest = face[i]->Tag();//找到这个面
} if (z1<surf_eval.srf_pos[])//判断当Z1值小于UV点Z值的时候
{
z1 = z1;
}
else//当Z1值大于UV点Z值的时候
{
z1 = surf_eval.srf_pos[];//Z1就等于UV点Z最小值
lowest = face[i]->Tag();//找到这个面
} }
//设置面高亮显示
UF_DISP_set_highlight(highest, );
UF_DISP_set_highlight(lowest, ); UF_terminate();//终止
}
NX二次开发-算法篇-随便找个不规则的体,找出面的中心点的Z坐标最高和最低的面,高亮显示的更多相关文章
- NX二次开发-算法篇-找相切面
方法1:通过判断相邻面公共边的光顺性来找相切面 1 #include <uf.h> 2 #include <uf_modl.h> 3 #include <uf_obj.h ...
- 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二次开发-如何在类外面定义一个结构体
#include <uf.h> #include <uf_obj.h> #include <uf_part.h> using namespace NXOpen; u ...
- NX二次开发-C#使用DllImport调用libufun.dll里的UF函数(反编译.net.dll)调用loop等UF函数
在写这篇文章的时候,我正在头晕,因为下班坐车回家,有些晕车了.头疼的要死.也吃不下去饭. 版本:NX11+VS2013 最近这一年已经由C++过度到C#,改用C#做应用程序开发和NX二次开发. C#在 ...
- NX二次开发-使用NXOPEN C++向导模板做二次开发
版本 NX9+VS2012 1.怎么往VS软件里添加VC,C#,VB向导模板 先到NX安装目录下UGOPEN文件夹里找到这三个文件夹 拷贝到VS的安装目录下 这里有几个注意事项,VS2017,VS20 ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
随机推荐
- Python排序功能进阶
sorted和sort() li = [9, 1, 8, 2, 7, 3, 6, 4, 5] s_li = sorted(li) print ('Sorted Variable: \t', s_li) ...
- Shiro学习(19)动态URL权限限制
用过spring Security的朋友应该比较熟悉对URL进行全局的权限控制,即访问URL时进行权限匹配:如果没有权限直接跳到相应的错误页面.Shiro也支持类似的机制,不过需要稍微改造下来满足实际 ...
- Delphi 虚拟桌面
Delphi创建虚拟桌面实现后台调用外部程序 核心提示:最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启 ...
- js实现超简单sku组合算法
let arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], ]; function cartesianProductOf() { return ...
- json格式化在线工具推荐
现在系统对接基本都采用json格式的报文,杂乱无章的json让人看起来头大,这里推荐一款在线格式化json的工具, 工具地址: http://www.matools.com/json 这个在线Json ...
- Codeforces 1176B - Merge it!
题目链接:http://codeforces.com/problemset/problem/1176/B 题意:给定序列,任意俩个元素可以相加成一个元素,求序列元素能被3整除的最大数量. 思路: 对于 ...
- 如何省略.jsx文件名
在webpack.config.js文件夹中module.exports中添加: resolve:{ extensions:[".js", ".jsx", &q ...
- Editor REST Client
Editor REST Client 制作一个http请求 请求行 GET https://example.com/comments/1 HTTP/1.1 POST https://example.c ...
- kafka单机版的安装、集群部署 及使用
1.安装kafka(单机版) 1.1上传 kafka_2.11-2.0.0.tgz 到 /root/Downloads 1.2解压 tar 包 tar -zxvf kafka_2.11-2.0.0.t ...
- 冲上云霄,Dubbo Go!
来源:开源中国社区 5 月 21 日,经过一年多的孵化,Apache Dubbo 从 Apache 软件基金会毕业,成为 Apache 顶级项目.推荐:厉害了,Dubbo 正式毕业! Dubbo 是阿 ...