【NX二次开发】判断面是否相切,相切面。
判断面是否相切,相切面。
用到的函数:
UF_MODL_ask_minimum_dist 获取两个对象之间的最短距离,以及点坐标
UF_MODL_ask_face_parm 给定一个参考点,返回曲面上的面参数(u,v),以及点。
UF_MODL_ask_face_props 输入面、面的uv参数。输出此位置的面法线
源码:
bool bool_is_Tangent(tag_t tagFace1, tag_t tagFace2);
extern DllExport void ufsta(char *param, int *returnCode, int rlen)
{
UF_initialize();
tag_t tag_Face1 = 46607;
tag_t tag_Face2 = 47338;
if (bool_is_Tangent(tag_Face1, tag_Face2))
{
uc1601("相切", 1);
}
else
{
uc1601("不相切", 1);
}
UF_terminate();
} extern int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
bool bool_is_Tangent(tag_t tagFace1, tag_t tagFace2)
{
double guess1[3] = { 0.0,0.0,0.0 };
double guess2[3] = { 0.0,0.0,0.0 };
double min_dist = 0.0;
double pt_on_ent1[3] = { 0.0,0.0,0.0 };
double pt_on_ent2[3] = { 0.0,0.0,0.0 };
UF_MODL_ask_minimum_dist(tagFace1, tagFace2, 0, guess1, 0, guess2, &min_dist, pt_on_ent1, pt_on_ent2);
if (min_dist > 0.01)
{
return false;
}
double param1[2] = { 0.0,0.0 };//面部参数(u,v)
double param2[2] = { 0.0,0.0 };//面部参数(u,v)
UF_MODL_ask_face_parm(tagFace1, pt_on_ent1, param1, pt_on_ent1);
UF_MODL_ask_face_parm(tagFace2, pt_on_ent2, param2, pt_on_ent2); double u1[3] = { 0.0,0.0,0.0 };
double v1[3] = { 0.0,0.0,0.0 };
double u2[3] = { 0.0,0.0,0.0 };
double v2[3] = { 0.0,0.0,0.0 };
double fx_1[3] = { 0.0,0.0,0.0 };//面法线
double fx_2[3] = { 0.0,0.0,0.0 };//面法线
double radii[2] = { 0.0,0.0 }; //输入面,面的uv参数。输出此位置的面法线
UF_MODL_ask_face_props(tagFace1, param1, pt_on_ent1, u1, v1, u2, v2, fx_1, radii);
UF_MODL_ask_face_props(tagFace2, param2, pt_on_ent2, u2, v2, u2, v2, fx_2, radii); double dTolerance = 0.01; //相切公差
if (fabs(fabs(fx_1[0]) - fabs(fx_2[0])) < dTolerance
&& fabs(fabs(fx_1[1]) - fabs(fx_2[1])) < dTolerance
&& fabs(fabs(fx_1[2]) - fabs(fx_2[2])) < dTolerance)
{
return true;
}
else
{
return false;
}
}
效果:

【NX二次开发】判断面是否相切,相切面。的更多相关文章
- NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条
半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...
- NX二次开发-UFUN发射线函数UF_MODL_trace_a_ray的用法
今天是国庆节,放假休息懒得动,没有出去玩,在家研究一下发射线函数UF_MODL_trace_a_ray.小弟以前在软件公司混的时候,当时我做的那个项目就用到了UF_MODL_trace_a_ray,当 ...
- NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用
关于 在Block UI中UF_initialize();和UF_terminate();的使用 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize() ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- NX二次开发-基于MFC界面对话框与NX交互的开发
打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
- NX二次开发-UFUN计算两点距离UF_VEC3_distance
NX11+VS2013 #include <uf.h> #include <uf_curve.h> #include <uf_vec.h> UF_initializ ...
- NX二次开发-UFUN拉伸函数UF_MODL_create_extruded
NX9+VS2012 //NX二次开发中常用拉伸函数为UF_MODL_create_extruded2,但是此函数不能拉伸片体, //想要拉伸片体用函数UF_MODL_create_extruded. ...
- NX二次开发-UFUN拉伸函数UF_MODL_create_extruded2
NX9+VS2012 //NX二次开发中常用拉伸函数为UF_MODL_create_extruded2,但是此函数不能拉伸片体, //想要拉伸片体用函数UF_MODL_create_extruded. ...
随机推荐
- iwrite复制攻略
打开iwrite,一提交作业,发现: 这可咋办啊! 那就跟着步骤来呗: 按F12打开元素审查 点一下左上角 再点一下文本框,就能定位到HTML中的位置 在文本框中写几个字母,康康具体位置: 那就复制进 ...
- java使用户EasyExcel导入导出excel
使用alibab的EasyExce完成导入导出excel 一.准备工作 1.导包 <!-- poi 相关--> <dependency> <groupId>org. ...
- Windows进程间通讯(IPC)----信号量
线程同步内核对象 操作系统进行进程间同步是利用信号量机制.对于windows系统而言,可以利用一些内核对象进行线程同步,因为这些内核对象可以命名并且属于系统内核,所以可以支持不同进程间的线程同步进而实 ...
- Java学习之jackson篇
Java学习之jackson篇 0x00 前言 本篇内容比较简单,简单记录. 0x01 Json 概述 概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种 ...
- 3D高清电商购物小图标图片_在线商城三维icon图标素材大全
3D高清电商购物小图标图片_在线商城三维icon图标素材大全
- [基本运算符、流程控制之if判断、与用户交互、深浅拷贝]
[基本运算符.流程控制之if判断.与用户交互] 基本运算符 1.算数运算符 python支持的算术运算符与数学上计算的符号使用是一致的 salary = 3.3 res = salary * 12 p ...
- [bug] IDEA中解决程序包javax.servlet不存在
参考 https://blog.csdn.net/qq_41283865/article/details/81865806
- CSS变量和浏览器前缀
一.CSS变量 CSS变量是CSS的新特性,大多数浏览器都实现了这个功能,使用CSS变量有利代码复用,而且当我们修改变量值时,所有引用该变量的属性都会发生改变. 定义变量后可以有两种使用方法,第一种时 ...
- 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM"
linux查看目录下所有文件内容中是否包含某个字符串 2017-07-25 15:13:22 默一鸣 阅读数 21556 文章标签: linux查找文件夹文件内容字符串 更多 分类专栏: Unix ...
- openstack宿主机故障,虚拟实例恢复
前言: 因为机房服务器运行不稳定的原因导致计算节点挂掉,然后上面的Centos7虚拟机在迁移之后开机报错.这个解决方法同样适用于其它操作系统的虚拟机.基于镜像创建的虚拟机实例. I/O error, ...