说明: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对象类型及基本操作的更多相关文章

  1. NX二次开发-NX+VS写代码设断点调试技巧

    在做NX二次开发的时候写完代码,编译可以通过,但是执行的时候却没有反应,或者得到的结果不对,说明肯定有地方传值出错了.我在查找代码错误的时候有几种方法:1.uc1601打印函数输入和输出的值看对不对. ...

  2. NX二次开发-隐藏对象UF_OBJ_set_blank_status

    NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_obj.h> UF_initialize ...

  3. NX二次开发-设置对象名称函数UF_OBJ_set_name

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> UF_initialize( ...

  4. 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 ...

  5. NX二次开发-将对象移动到图层UF_OBJ_set_layer

    #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <uf_layer.h&g ...

  6. NX二次开发-NX访问SqlServer数据库(增删改查)C#版

    版本:NX9+VS2012+SqlServer2008r2 以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297 ...

  7. NX二次开发-NX访问MySQL数据库(增删改查)

    版本:NX11+VS2013+MySQL5.6(x64)+SQLyog 1.新建一个NX项目(多字节) 2.设置VC++目录(调用MySQL的头文件,dll和lib库文件) 3.设置番茄助手 然后重启 ...

  8. 【NX二次开发】查找部件中的对象 UF_OBJ_cycle_objs_in_part

    返回所有层上指定类型部件中的所有对象,不管它们的当前显示状态如何.这个例程不返回表达式.指定对象.临时(系统创建的)对象或休眠对象.休眠对象指的是从模型中删除的对象例如,如果你混合了一条边,那么这条边 ...

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

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

  10. 【NX二次开发】按层查找工作部件中的对象 UF_LAYER_cycle_by_layer

    第一次调用 :返回第一个启用层中的第一个对象. 第二次调用 :返回下一个已启用层中的下一个对象. 最后一次调用:当所有对象都被耗尽时,将返回object_tag = NULL_TAG. 在循环数据库时 ...

随机推荐

  1. Mysql连接查询示例语句

    SELECT *FROM ssm_emp; SELECT * FROM ssm_dept; #查询两表交集 SELECT * FROM ssm_emp e INNER JOIN ssm_dept d ...

  2. druid-spring-boot-starter的配置

    #数据源基本信息 spring: datasource: druid: username: root password: 123456 url: jdbc:mysql://localhost:3306 ...

  3. Python JWT 介绍

    Python JWT 介绍 目录 Python JWT 介绍 1. JWT 介绍 2. JWT 创建 token 2.1 JWT 生成原理 2.2 JWT 校验 token 原理 3. 代码实现 4. ...

  4. ==与equals比较

    提到==与equals的区别,这就必须先回顾一下jvm内存的分配机制 ==和equals无非比较两个基本数据类型或者对象类型 八种基本类型: 基本类型 大小 默认值 封装类 byte 1 0 Byte ...

  5. redis分布式锁-spring boot aop+自定义注解实现分布式锁

    接这这一篇redis分布式锁-java实现末尾,实现aop+自定义注解 实现分布式锁 1.为什么需要 声明式的分布式锁 编程式分布式锁每次实现都要单独实现,但业务量大功能复杂时,使用编程式分布式锁无疑 ...

  6. [bug] Linux下执行.sh命令出现-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory

    参考 https://www.cnblogs.com/aeolian/p/10614284.html

  7. 再议GCC编译时的静态库依赖顺序问题

    相关博文1:http://blog.chinaunix.net/uid-20682147-id-76330.html相关博文:http://blog.chinaunix.net/uid-2068214 ...

  8. Linux 操作系统(二)搜索文件命令find、locate、which、whereis、grep、wc

    以下命令均已在 Kali Linux 下验证. 1.find 命令 --1-- find /usr/share -name test.lst //精准搜索,文件名需要与-name后的内容一模一样包括后 ...

  9. Ubuntu 软件更新 系统升级

    注意:操作前请先切换root权限 sudo su 1.软件更新 更新源 apt-get update 更新软件 apt-get upgrade 2.系统升级 安装系统更新 apt-get dist-u ...

  10. xxl-job使用遇到的问题(二)

    xxl-job使用遇到的问题(二) 关联阅读 xxl-job使用遇到的问题(一) 1.问题现象 最近有个老定时任务迁移到xxl-job的时候,遇到一个小问题.虽然很快解决,但是还是有必要记录一下~ j ...