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二次开发-曲线或边分析函数的更多相关文章

  1. 【NX二次开发】拉伸面、拉伸封闭曲线成片体UF_MODL_create_extrusion

    用那几个拉伸,不能将封闭的曲线拉伸成片体,用UF_MODL_create_extrusion函数是可以的,下面是例子. 帮助上说拉伸片体不能有拔模角度,应该是错误的,下面是一个封闭曲线带拔模角度拉伸片 ...

  2. 【NX二次开发】Block UI 目录

    Block UI 目录  基本   标签/位图   切换开关   枚举   字符串   多行字符串   操作按钮   列表框   分割线   对象颜色选择器   RGB颜色选择器   绘图区   图层 ...

  3. 【NX二次开发】根据根据坐标系、对象旋转视图旋转视图uc6434

    uc6434 (); //旋转视图 参数1:如果输入""则旋转当前工作视图参数2:1.按照ABS旋转视图.2.按照WCS选择视图.3.按照参数3旋转视图.4.按照参数4旋转视图参数 ...

  4. NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用

    关于 在Block UI中UF_initialize();和UF_terminate();的使用 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize() ...

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

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

  6. NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))

    在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...

  7. NX二次开发-基于MFC界面对话框与NX交互的开发

    打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...

  8. NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条

    半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...

  9. NX二次开发-UDO用户自定义对象(UFUN)【持续完善】

    每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...

随机推荐

  1. LeetCode---42. 接雨水 (hard)

    题目:42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 示例: 输入:height = [0,1,0,2,1,0,1,3,2,1,2, ...

  2. 远程连接mysql出现"Can't connect to MySQL server 'Ip' ()"的解决办法

    1.大多是防火墙的问题(参考链接:https://blog.csdn.net/jiezhi2013/article/details/50603366) 2.上面方法不能解决,不造成影响情况下可关闭防火 ...

  3. Nginx如何配置Http、Https、WS、WSS?

    写在前面 当今互联网领域,Nginx是使用最多的代理服务器之一,很多大厂在自己的业务系统中都是用了Nginx作为代理服务器.所以,我们有必要了解下Nginx对于Http.Https.WS.WSS的各项 ...

  4. 从 demo 到生产 - 手把手写出实战需求的 Flink 广播程序

    Flink 广播变量在实时处理程序中扮演着很重要的角色,适当的使用广播变量会大大提升程序处理效率. 本文从简单的 demo 场景出发,引入生产中实际的需求并提出思路与部分示例代码,应对一般需求应该没有 ...

  5. 个人项目作业$\cdot$求交点个数

    个人项目作业\(\cdot\)求交点个数 一.作业要求简介 本次作业是北航计算机学院软件工程课程的个人项目作业,个人开发能力对于软件开发团队是至关重要的,本项目旨在通过一个求几何图形的交点的需求来使学 ...

  6. Git 系列教程(12)- 分支的新建与合并

    实际工作场景 可能会遇到的工作流 开发某个网站 为实现某个新的用户需求,创建一个分支 在这个分支上开展新工作 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补,你将按照如下方式来处理: 切换 ...

  7. Mac 无密码 SSH 登录服务器

    Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器 第一步,生成密钥对 在当前用户下创建.ssh目录 mkdir ~/.ssh 使用命令ssh-keygen生成密 ...

  8. [Java] 静态代理 动态代理

    原理 静态代理=代理模式 动态代理=代理模式+反射 代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强 代理类和被代理类应该共同实现一个接口,或者是共同继承某个类 静态代 ...

  9. 051.Python的Django框架简单使用

    一 HTTP相关概念 http协议包含由浏览器发送数据到服务器需要遵循的请求协议与服务器发送数据到浏览器需要遵循的响应协议.用于HTTP协议交互的信息被为HTTP报文.请求端(客户端)的HTTP报文 ...

  10. Mybatis 逆向工程使用(Day_17)

    有三个方法可以解决所有的问题:接受,改变,离开.不能接受那就改变,不能改变,那就离开. [何为逆向工程?] 众 所 周 知 ,正向工程就是通过JAVA类的设置来生成对应的数据库表. MyBatis逆向 ...