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坐标最高和最低的面,高亮显示的更多相关文章

  1. NX二次开发-算法篇-找相切面

    方法1:通过判断相邻面公共边的光顺性来找相切面 1 #include <uf.h> 2 #include <uf_modl.h> 3 #include <uf_obj.h ...

  2. NX二次开发-算法篇-判断找到两个数组里不相同的对象

    NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_modl.h> #include < ...

  3. NX二次开发-算法篇-创建最大边界包容盒

    NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...

  4. NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_curve.h> #include <u ...

  5. NX二次开发-算法篇-冒泡排序(例子:遍历所有点并排序)

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_curve.h> #include <u ...

  6. NX二次开发-如何在类外面定义一个结构体

    #include <uf.h> #include <uf_obj.h> #include <uf_part.h> using namespace NXOpen; u ...

  7. NX二次开发-C#使用DllImport调用libufun.dll里的UF函数(反编译.net.dll)调用loop等UF函数

    在写这篇文章的时候,我正在头晕,因为下班坐车回家,有些晕车了.头疼的要死.也吃不下去饭. 版本:NX11+VS2013 最近这一年已经由C++过度到C#,改用C#做应用程序开发和NX二次开发. C#在 ...

  8. NX二次开发-使用NXOPEN C++向导模板做二次开发

    版本 NX9+VS2012 1.怎么往VS软件里添加VC,C#,VB向导模板 先到NX安装目录下UGOPEN文件夹里找到这三个文件夹 拷贝到VS的安装目录下 这里有几个注意事项,VS2017,VS20 ...

  9. NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))

    NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...

随机推荐

  1. java基础之toString的使用方法

    toString方法,其返回值类型为String类型,用于返回表示对象值的字符串,返回类名和它的引用地址(散列码 hashCode)toString方法是Object类中的一个实例方法,所有的java ...

  2. C/C++ volatile

    { volatile和const关键很相似,都是修饰变量的,只是二者功能不一样. volatile在多线程当中经常使用,因为在某一线程多次调用某一个变量,编译器会进行优化,将该变量存放在在寄存器当中, ...

  3. Shiro学习(19)动态URL权限限制

    用过spring Security的朋友应该比较熟悉对URL进行全局的权限控制,即访问URL时进行权限匹配:如果没有权限直接跳到相应的错误页面.Shiro也支持类似的机制,不过需要稍微改造下来满足实际 ...

  4. 第十四届华中科技大学程序设计竞赛--J Various Tree

    链接:https://www.nowcoder.com/acm/contest/106/J来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  5. html 视频播放器

    html  视频播放器 <html> <script> /** *视频播放 *参数说明 u - 媒体URL w - 媒体宽度width h - 媒体高度height */ // ...

  6. C++——函数及调用

    1.函数调用:实参初始化形参:控制权交给被调函数 2.函数返回(return语句):返回return中的值:控制权交回主函数 3.参数传递   传值 传引用 传指针 初始值 不变,拷贝给形参 可变,形 ...

  7. redis 配置文件aof配置

    redis 配置文件aof配置: bind 127.0.0.1 port 6379 daemonize yes dbfilename dump.rdb dir /new_renpeng/redis/ ...

  8. 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图

    jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...

  9. 常用css3属性的ie兼容查看

    记录一下关于css3的各种常用属性对ie各版本浏览器的兼容程度: 最低可兼容ie7 最低可兼容ie8 最低可兼容ie9 最低可兼容ie10 position:fixed clip E:first-le ...

  10. mysql-python不支持python3

    使用Mysqlclient pip3 install Mysqlclient