NX二次开发-曲线或边分析函数
UF_EVAL_is_arc 判断是圆形曲线或边
UF_EVAL_ask_arc 圆形曲线或边分析,得到曲线或边的信息
类似的函数还有以下这些:
UF_EVAL_is_ellipse // 椭圆
UF_EVAL_ask_ellipse
UF_EVAL_is_hyperbola //双曲线
UF_EVAL_ask_hyperbola
UF_EVAL_is_line //直线
UF_EVAL_ask_line //起点终点长度
UF_EVAL_is_parabola //抛物线
UF_EVAL_ask_parabola
UF_EVAL_is_spline //样条曲线
UF_EVAL_ask_spline
下面以UF_EVAL_ask_arc 为例:
#include "Text.h"
static int init_proc_select_edges(UF_UI_selection_p_t select, void *user_data)
{
int errorCode = 0;
//只是选择面
int num_triples = 1; //选择类型 数量
UF_UI_mask_t mask_triples[] = { UF_solid_type,UF_solid_edge_subtype,1 }; //定义选择类型 errorCode = UF_UI_set_sel_mask(select, UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, num_triples, mask_triples);
if (errorCode == 0)
{
return UF_UI_SEL_SUCCESS;
}
else
{
return UF_UI_SEL_FAILURE;
}
}
int Text_UI_select_edges(vector<tag_t> *vecFaces)
{
//调用API
char *message = "提示:选择边";
char *title = "标题:选择边";
int scope = UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY;//选取范围
int response;
int count = 0;
tag_p_t object;
UF_UI_select_with_class_dialog(message, title, scope, init_proc_select_edges, NULL, &response, &count, &object);
for (int i = 0; i < count; i++)
{
tag_t tagObj = object[i];
//取消高亮显示
UF_DISP_set_highlight(tagObj, 0);
(*vecFaces).push_back(tagObj);
}
return 0;
} extern DllExport void ufusr(char *param, int *returnCode, int rlen)
{
UF_initialize();
vector<tag_t> vecEdges;
Text_UI_select_edges(&vecEdges);
for (int i = 0; i < vecEdges.size(); i++)
{
UF_EVAL_p_t evaluator;
UF_EVAL_initialize(vecEdges[i], &evaluator);
//确定给定的数据是否来自圆形曲线或边缘
bool boolIsArc;
UF_EVAL_is_arc(evaluator, &boolIsArc);
if (boolIsArc)
{
//返回圆形曲线或边的数据
UF_EVAL_arc_t arc;
UF_EVAL_ask_arc(evaluator, &arc);//arc结构体中有曲线的参数
if (fabs(arc.limits[0]) < 0.001 && fabs(arc.limits[1] - 2 * PI) < 0.001)
{
bool boolVal = true;//此圆是整圆
}
}
} UF_terminate();
} extern int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
NX二次开发-曲线或边分析函数的更多相关文章
- 【NX二次开发】拉伸面、拉伸封闭曲线成片体UF_MODL_create_extrusion
用那几个拉伸,不能将封闭的曲线拉伸成片体,用UF_MODL_create_extrusion函数是可以的,下面是例子. 帮助上说拉伸片体不能有拔模角度,应该是错误的,下面是一个封闭曲线带拔模角度拉伸片 ...
- 【NX二次开发】Block UI 目录
Block UI 目录 基本 标签/位图 切换开关 枚举 字符串 多行字符串 操作按钮 列表框 分割线 对象颜色选择器 RGB颜色选择器 绘图区 图层 ...
- 【NX二次开发】根据根据坐标系、对象旋转视图旋转视图uc6434
uc6434 (); //旋转视图 参数1:如果输入""则旋转当前工作视图参数2:1.按照ABS旋转视图.2.按照WCS选择视图.3.按照参数3旋转视图.4.按照参数4旋转视图参数 ...
- 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二次开发-BlockUI对话框嵌套MFC对话框制作进度条
半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
随机推荐
- SSM项目使用Spring提供的测试
在测试类上添加注解@RunWith(SpringJUnit4ClassRunner.class)和@ContextConfiguration(locations = {"classpath: ...
- 【vue-06】webpack npm
什么是Webpack Webpack是一款模块加载器兼打包工具,他能把各种资源,比如js,css,less转化成一个静态文件,减少页面的请求,提高效率. 安装Webpack 在安装webpack之前, ...
- java 运用Cipher加密再解密后会变乱码。解决方案!
同样的方法类用main调用加解密都正常,就是当用到业务就是加密后再解密变乱码. 后来发现同样的内容加密后的内容竟不相同. 经调试发现 encryptData.getBytes() 转为字节是的使用 C ...
- Jenkins 基础篇 - 安装部署
Jenkins 安装 Jenkins 支持主流的 Linux 发行版系统,同时还支持 macOS.Windows.和 Docker 运行. 具体系统的 Jenkins 安装包可以去官网下载 https ...
- MySQL角色(role)功能介绍
前言: 上篇文章,我们介绍了 MySQL 权限管理相关知识.当数据库实例中存在大量的库或用户时,权限管理将会变得越来越繁琐,可能要频繁进行权限变更.MySQL 8.0 新增了 role 功能,使得权限 ...
- SE_Work4_软件案例分析
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:分析软件案例 个人博客作业-软件案例分析 班级 005 这个作业在哪个具体方面帮助我实现目标 分析对比一类软件,学会规划分析软件的 ...
- [java] XML DTD XSD
XML是用来干什么的 https://bbs.csdn.net/topics/120762 https://blog.csdn.net/Rain722/article/details/52925828 ...
- [DB] Spark Core (2)
RDD WordCount处理流程 sc.textFile("/root/temp/data.txt").flatMap(_.split(" ")).map(( ...
- [Qt]《开发指南》3.1源码分析
界面: ButterflyGraph: 可以看出,本工程在主程序main里调用窗口界面qmywidget,窗口界面继承了QWidget,并调用自定义类qperson,推测是qmywidget类中的一个 ...
- shell 读取某个目录下的所有文件
#!/bin/shFILE_PATH="xxx" xxx:路径cd $FILE_PATHfor FILE in `ls` do echo $FILE done