【NX二次开发】NX对象类型及基本操作
说明:NX中的所有对象都是通过唯一的tag_t值进行标识的,这些对象大致可以分为部件对象、UF对象、表达式、链表对象和属性对象等。
部件对象的操作:
基本操作函数:
1. UF_PART_new() 新建部件
2. UF_PART_open() 打开部件
3. UF_PART_close_all() 关闭所有部件
4. UF_PART_save() 保存部件
5. UF_PART_close() 关闭部件
部件对象查询函数:
1. UF_OBJ_cycle_objs_in_part() 在部件中查询对象
2. UF_ATTR_ask_part_attrs() 访问部件的属性
3. UF_PART_reopen() 重新加载部件
4. UF_PART_ask_part_name() 获取部件的文件名
5. UF_PART_ask_customer_area() 查询用户定义的数据
6. UF_PART_ask_description() 获取部件文件的描述信息
7. UF_PART_ask_status() 查询部件状态信息
8. UF_PART_ask_compression_flags() 查询部件文件的压缩标记
9. UF_PART_set_compression_flags() 设置部件文件的压缩标记
10. UF_PART_ask_part_history() 获取部件历史记录
UF对象的操作
UF对象包含几何对象和非几何对象。
几何对象包括:实体、点、线、面等; 非几何对象包括坐标系、尺寸、颜色、线型等。
NXOpen利用类型和子类型来区别不同的对象。每个对象都有一种类型,在头文件 UF_object_types.h中详细定义了这些对象的类型(type)和子类型(subtype),不是所有的对象都有子类型。
基本操作函数:
1. UF_OBJ_set_name() 指定对象的名称
2. UF_OBJ_ask_name() 查询对象的名称
3. UF_OBJ_delete_name() 删除对象的名称
4. UF_OBJ_cycle_objs_in_part() 查询遍历对象,可以在指定的部件中遍历对象
5. UF_OBJ_cycle_all() 在当前工作部件中遍历对象
6. UF_OBJ_cycle_by_name() 通过对象名称查询对象
7. UF_LAYER_cycle_by_layer() 通过图层遍历对象
8. UF_MODL_delete_exp() 删除表达式
9. UF_MODL_delete_feature() 删除特征
10. UF_OBJ_delete_object() 删除单个对象
11. UF_OBJ_delete_array_of_objects() 删除多个对象
12. UF_UI_select_single() 选择单个对象
13. UF_UI_select_by_class() 选择对象(后期版本淘汰)
14. UF_UI_select_with_class_dialog 选择对象
15. UF_UI_select_feature() 选择特征
1.5 UF_UI_select_sketch() 选择草图
对象状态:
1. UF_OBJ_DELETED 被删除状态
2. UF_OBJ_TEMPORARY 临时状态,例如临时坐标 UF_CSYS_creat_temp_csys()
3. UF_OBJ_CONDEMEND 不正常状态
4. UF_OBJ_ALIVE 激活状态
对象显示的函数:
1. UF_OBJ_ask_display_properties() 获取显示属性(层,颜色,隐藏状态,线宽,线型)
2. UF_OBJ_set_layer() 设置对象的图层
3. UF_OBJ_set_color() 设置颜色
4. UF_OBJ_set_blank_status() 隐藏对象、显示对象
5. UF_OBJ_set_line_width() 设置线宽
6. UF_OBJ_set_font() 设置线型
7. UF_OBJ_set_highlight() 设置高亮、取消高亮
表达式的操作
1. UF_MODL_creat_exp() 创建表达式
2. UF_MODL_creat_exp_tag() 创建表达式,并返回表达式的标识
3. UF_MODL_import_exp() 导入表达式,操作后必须使用 UF_MODL_update()更新
4. UF_MODL_dissect_exp_string() 分解名字和值返回名字、值和表达式的标识
5. UF_MODL_eval_exp() 输入表达式的名,获取表达式的值
6. UF_MODL_edit_exp() 修改表达式的值,操作后必须使用 UF_MODL_update()更新
7. UF_MODL_rename_exp() 给已有的表达式赋新的名称
8. UF_MODL_ask_exp() 返回表达式名和表达式完整字符串
9. UF_MODL_ask_exps_of_feature() 返回特征的表达式
10. UF_MODL_ask_exps_of_part() 返回部件的所有表达式
11. UF_MODL_ask_exp_tag_string() 输入吊打式标识,返回表达式串
12. UF_MODL_ask_exp_tag_value() 通过表达式标识获得表达式的值
链表对象的操作
1. UF_MODL_creat_list() 创建一个链表,并返回链表的头指针
2. UF_MODL_put_list_item() 将元素插入到链表的尾部
3. UF_MODL_ask_list_count() 获取链表的个数,从链表头到第一个NULL_TAG节点之间的节点个数
4. UF_MODL_ask_list_item() 通过元素的位置获取元素
5. UF_MODL_delete_list_item() 将指定的对象从链表中删除
6. UF_MODL_delete_list() 删除链表
属性对象的操作
1. UF_ATTR_ask_part_attribute() 获取工作部件的部件属性对象表示
2. UF_ATTR_ask_part_attrs() 从加载到NX中的抽取属性对象的属性
3. UF_ATTR_part_attrs_in_file()
4. UF_ATTR_assign() 给指定的部件属性或部件分派一个属性
5. UF_ATTR_count_attributes() 指定类型的属性的数量
6. UF_ATTR_cycle() 遍历对象的所有属性,返回下一个属性标题及属性值
7. UF_ATTR_delete() 删除指定类型的属性
8. UF_ATTR_delete_all() 删除所有属性
9. UF_ATTR_find_attribute() 查找某一属性的类型
10. UF_ATTR_read_value() 读取给定类型和标题的属性的值
属性类型:
UF_ATTR_bool
UF_ATTR_integer
UF_ATTR_real
UF_ATTR_time
UF_ATTR_null
UF_ATTR_string
UF_ATTR_any
UF_ATTR_reference
【NX二次开发】NX对象类型及基本操作的更多相关文章
- NX二次开发-NX+VS写代码设断点调试技巧
在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对. ...
- NX二次开发-隐藏对象UF_OBJ_set_blank_status
NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_obj.h> UF_initialize ...
- NX二次开发-设置对象名称函数UF_OBJ_set_name
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> UF_initialize( ...
- NX二次开发-UFUN按类型遍历名字获取Tag函数UF_OBJ_cycle_by_name_and_type
NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_obj.h> #include <u ...
- NX二次开发-将对象移动到图层UF_OBJ_set_layer
#include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <uf_layer.h&g ...
- NX二次开发-NX访问SqlServer数据库(增删改查)C#版
版本:NX9+VS2012+SqlServer2008r2 以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297 ...
- NX二次开发-NX访问MySQL数据库(增删改查)
版本:NX11+VS2013+MySQL5.6(x64)+SQLyog 1.新建一个NX项目(多字节) 2.设置VC++目录(调用MySQL的头文件,dll和lib库文件) 3.设置番茄助手 然后重启 ...
- 【NX二次开发】查找部件中的对象 UF_OBJ_cycle_objs_in_part
返回所有层上指定类型部件中的所有对象,不管它们的当前显示状态如何.这个例程不返回表达式.指定对象.临时(系统创建的)对象或休眠对象.休眠对象指的是从模型中删除的对象例如,如果你混合了一条边,那么这条边 ...
- NX二次开发-UDO用户自定义对象(UFUN)【持续完善】
每当提起UDO总是会让我想起大专毕业那会失业找工作,后来有个宝贵机会去了软件公司上班,拿到了我人生中的第一个NX二次开发项目,一个关于测量汽车前后左右摄像头的项目.当时那个项目就用到了UDO,对于只看 ...
- 【NX二次开发】按层查找工作部件中的对象 UF_LAYER_cycle_by_layer
第一次调用 :返回第一个启用层中的第一个对象. 第二次调用 :返回下一个已启用层中的下一个对象. 最后一次调用:当所有对象都被耗尽时,将返回object_tag = NULL_TAG. 在循环数据库时 ...
随机推荐
- (CV学习笔记)梯度下降优化算法
梯度下降法 梯度下降法是训练神经网络最常用的优化算法 梯度下降法(Gradient descent)是一个 ==一阶最优化算法== ,通常也称为最速下降法.要使用梯度下降法找到一个函数的 ==局部最小 ...
- 攻防世界Web刷题记录(进阶区)
攻防世界Web刷题记录(进阶区) 1.baby_web 发现去掉URLhttp://111.200.241.244:51461/1.php后面的1.php,还是会跳转到http://111.200.2 ...
- vscode 将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹
一.将本地项目上传到github 1.创建本地仓库(文件夹) mkdir study//创建文件夹studycd study //进入study文件夹 2.通过命令git init把这个文件夹变成Gi ...
- Redis 集群伸缩原理
Redis 节点分别维护自己负责的槽和对应的数据.伸缩原理:Redis 槽和对应数据在不同节点之间移动 环境:CentOS7 搭建 Redis 集群 一.集群扩容 1. 手动扩容 (1) 准备节点 9 ...
- MySQL备份脚本,应该这么写
前言: 数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失都可能产生严重的后果.所以,无论什么环境,我们都应该有相应的备份策略来定时备份数据库.在 MySQL 中,比较常用的逻辑备份工具是 ...
- 手把手教你看MySQL官方文档
前言: 在学习和使用MySQL的过程中,难免会遇到各种问题.不知道当你遇到相关问题时会怎么做,我在工作或写文章的过程中,遇到不懂或需要求证的问题时通常会去查阅官方文档.慢慢的,阅读文档也有了一些经验, ...
- 25.数据结构,LinkedList ,泛型,类型通配符
3.数据结构 数据结构是计算机存储,组织数据的方式.是指相互之间存在的一种或多种特定关系的数据元素的集合 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率 ---------常见的数据结构 ...
- golang:函数总结
golang保留的函数 init(), main()是golang的保留函数,有如下特点: main() 只能用在main包中,仅可定义一个,init() 可定义任意包,可重复定义,建议只定义一个 两 ...
- [web] 系统运维--单机
处理过程 浏览器发送请求经过网络到达web服务器 web服务器处理请求并响应数据 响应数据从web服务器发送到用户端 用户浏览器接收数据,本地计算渲染 指标 响应时间 吞吐量 响应时间 响应时间 = ...
- [bug] Python Anoconda3 安装完成后开始菜单不显示
版本问题,需更新 win+R打开cmd,敲入命令: conda update menuinst conda install -f console_shortcut ipython ipython-no ...