【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. ...
随机推荐
- 【easycode】使用说明 & 示例
语法 ## 是模板的注释,不会生成 # 全局的一些设置 $ 使用库函数或者调用全局定义的内容 常用方法 数据库表信息 ${tableInfo} comment 表备注 name 表名 fullColu ...
- idea中properties配置文件没有代码提示及代码高亮问题解决方案
更多精彩关注微信公众号 1.解决properties文件没有代码提示问题:首先,单击项目结构按钮,如下图: 然后,给项目添加Spring依赖支持,如下图: 2.解决代码不高亮问题: 代码不高亮 ...
- 如何使用mongo shell
Cd到MongoDb安装目录到bin目录下,执行mongo命令即可,其他命令参考手册:https://www.runoob.com/mongodb/mongodb-create-collection. ...
- Python数模笔记-Sklearn(3)主成分分析
主成分分析(Principal Components Analysis,PCA)是一种数据降维技术,通过正交变换将一组相关性高的变量转换为较少的彼此独立.互不相关的变量,从而减少数据的维数. 1.数据 ...
- Jenkins 基础篇 - 安装部署
Jenkins 安装 Jenkins 支持主流的 Linux 发行版系统,同时还支持 macOS.Windows.和 Docker 运行. 具体系统的 Jenkins 安装包可以去官网下载 https ...
- OO第1.2次作业·魔鬼的三角函数化简
多年以后,面对办公室的屏幕,我会回忆起开始肝第二周OO作业的那个遥远的下午.那时的程序是一个一两百行的符号求导,基类与接口在包里一字排开,工整的注释一望到底 谁能想到,接下来的十几个小时我要经历什么样 ...
- .NET平台系列9 .NET Core 3.0 / .NET Core 3.1 详解
系列目录 [已更新最新开发文章,点击查看详细] .NET Core 3.0 于 2019年9月23日发布,重点是增加对同时支持使用 Windwos Forms.WPF 和 Entity Frm ...
- 保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java、Golang两种客户端教学Case)
保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java.Golang两种客户端教学Case) 目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitM ...
- docker容器中日志文件过大处理方法
背景 :在日常工作中一个基于centos镜像构建起来的python爬虫程序,日志文件在两个月内到了500G,日志存放在根目录下面,在不扩容的情况下把这个问题给解决掉.通过定时任务和脚本的方法,定期的清 ...
- hard way for code
奋斗吧骚年:https://learncodethehardway.org/ 有关linuxz命令的URL:man.linuxde.net