</div>
<!--一个博主专栏付费入口-->
<!--一个博主专栏付费入口结束-->
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css">
<div id="content_views" class="markdown_views prism-atom-one-dark">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<p><img src="https://img-blog.csdnimg.cn/20191121212347787.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzk1NTA1Mw==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p>
NX与vS版本对应查询:
NX Open C函数名称约定:
标准的是:UF_<>_<>
以前版本:uf<> 和 uc<>
其中
参数输入方式有:
I 表示参数输入,参数在使用前必须赋值
O 表示参数输出方式,使用前无须赋值
OF 表示参数输出,且使用后需要释放内存,UF_free()、UF_free_string()、UF_STYLER_free_value()等
数据类型
主要介绍自定义类型:
tag_t类型
在uf_defs.h中,定义:typedet undigned int tag_t,tag_p_t;
tag_t是NX对象的句柄,NX应用程序只能访问句柄,不能直接访问句柄所指示的实际对象。应用程序通过API函数获取句柄,在通过其他函数使用句柄。NULL_TAG表示不标识任何对象。
结构类型 _s
struct UF_STYLER_item_value_type_s
{
int reason;
const char item_id;
int subitem_index;
int count;
int item_attr;
int indicator;
UF_STYLER_value_t value;
}
Typedef struct UF_STYLER_item_value_type_s UF_STYLER_item_value_type_t, UF_STYLER_item_value_type_p_t;
枚举类型 _e
联合类型 _u
NX 对象类型及操作
所有对象都是通过唯一的tag_t值进行标识的。
部件对象
不仅包含了几何信息,还包含其他描述信息。
主要函数:
UF_PART_new
UF_PART_open
UF_PART_close_all
UF_PART_save
UF_PART_close
所有函数返回值是错误代码,利用UF_get_fail_message得到错误信息
部件对象查询函数:
函数名称 | 函数功能 |
---|---|
UF_OBJ_cycle_objs_in_part | 在部件中查询对象- |
UF_ATTR_ask_part_atts | 访问部件的属性 |
UF_PART_reopen | 再打开部件 |
UF_PART_ask_part_name | 获取部件的文件名 |
UF_PJART_ask_customer_area | 查询其他信息 |
UF_PART_ask_description | 查询其他信息 |
UF_PART_ask_status | 查询其他信息 |
UF_PART_ask_part_history | 查询部件文件的历史 |
UF_PART_ask_compression_flags | 查询及设置部件文件的压缩标记 |
UF_PART_set_compression_flags | 查询及设置部件文件的压缩标记 |
UF对象
是哪些具有标识的NX对象,包括几何对象和非几何对象。利用类型与子类型来区别文件的不同对象。
下表是UF对象基本操作函数
函数名称 | 函数功能 |
---|---|
UF_OBJ_set_name | 指定查问删除单个对象的名称 |
UF_OBJ_ask_name | 指定查问删除单个对象的名称 |
UF_OBJ_delete_name | 指定查问删除单个对象的名称 |
UF_OBJ_cycle_objs_in_part | |
UF_OBJ_cycle_all | |
UF_OBJ_cycle_by_name | |
UF_LAYER_cycle_by_layer | 遍历 |
UF_MODL_delete_exp | |
UF_MODL_delete_feature | |
UF_MODL_delete_object | |
UF_MODL_delete_array_of_objects | 对象删除 |
UF_UI_select_single | |
UF_UI_select_by_class | |
UF_UI_select_feature | |
UF_UI_select_sketch | 对象选择 |
UF对象状态
可以使用函数UF_OBJ_ask_status()来查询
UF对象访问方法
创建对象时就可以直接得到对象标识,但是多数情况下需要访问已经在部件存在的对象,可使用一下方法:
循环法:
参数法
表达式
用函数UF_MODL_create_exp()创建表达式
链表对象
提高编程的灵活性,用来存放对象或特征的标识。链表的每一个节点保存一个对象或者特征标识。
uf_list_p_t表示一个NX对象链表的节点指针。
定义:
typedef struct uf_list_s *uf_list_p_t;
struct uf_list_s {tag_t eid;struct uf_list_s *next;};
链表操作函数:
函数名 | 函数功能 |
---|---|
UF_MODL_create_list | 创建一个链表,并返回链表的头指针 |
UF_MODL_put_list_item | 插入元素到链表中 |
UF_MODL_ask_list_count | 获取元素个数 |
UF_MODL_ask_list_item | 查询对象标识 |
属性对象
uf——attr.h中提供了与部件或对象属性的编程接口
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
</div>