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,对于只看 ...
随机推荐
- Cauchy-Binet 公式的应用
Binet-Cauchy 公式 我们知道,方阵的行列式不是方阵的线性函数,即对 \(\forall \lambda\in F,A,B\in F^{n\times n}\),有 \(det(A+B)\n ...
- JVM虚拟机 类加载过程与类加载器
目录 前言 类的生命周期 类加载过程 加载 连接 验证 准备 解析 初始化 类加载器 三大类加载器 双亲委派模型 概念 为什么要使用双亲委派模型 源码分析 反双亲委派模型 参考 前言 类装载器子系统是 ...
- chardet模块
import chardet chardet.detect(f.read())检测哪种编码
- jQuery两种方法添加数据表格到HTML
jQ创建表格的两种方法 1.模板字符串法 $(function () { //模板字符串的方式添加到页面 $('#btn').click(function ...
- [刷题] 257 Binary Tree Paths
要求 给定一棵二叉树,返回所有表示从根节点到叶子节点路径的字符串 示例 ["1->2->5","1->3"] 思路 递归地返回左右子树到叶子节 ...
- [转载]层叠与并排win10
三. 层叠与并排 如果要排列的窗口超过4个,分屏就显得有些不够用了,这时不妨试一试最传统的窗口排列法.具体方法是,右击任务栏空白处,然后选择"层叠窗口"."并排显示窗口& ...
- 搭建 Linux 集群环境
什么是集群 集群是一组通过网络互联的计算机,集群里的每一台计算机称作一个节点. 搭建集群环境规划 集群主机节点数:4 台安装 CentOS7 的虚拟机 主机名(Hostname) IP 地址 node ...
- C语言规范:C89、C90、C95、C99
本文转载 [K&R C] 1978 年,Dennis Ritchie 和 Brian Kernighan 合作推出了<The C Programming Language>的第一版 ...
- 关于C语言的指针数组与指针数组的个人理解
一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...
- idea 使用Springboot 编译报错
报错信息如下 Argument for @NotNull parameter 'url' of org/jetbrains/jps/model/impl/JpsUrlListImpl.addUrl m ...