NX/UG二次开发—建模—UDO

最近学习了一下UDO,以下主要讲一下我遇到的一些疑问和笔记,希望对新手有一些帮助。(在UG安装目录下有个官方例子用NXopen函数写的,大家可以参考一下..\Siemens\NX 11.0\UGOPEN\SampleNXOpenApplications\C++\UDO)

1、UDO的名称:UDO的类名不能和UG其他特征重名,当UDO被实例化时,会被赋予一个友好名称(其实就是你在导航栏里看到的名字,或者类选择器里看到的名字)。

2、UDO的创建顺序:首先调用UF_UDOBJ_create_class创建UDO类,然后调用UF_UI_add_to_class_sel将UDO类添加到选择框的列表中,其次在调用UF_UDOBJ_set_query_class_id,使用户可以查询这个类的ID。如果想让UDO选择自有对象的行为在调用函数UF_UDOBJ_set_owned_object_selection。最后注册你需要的回调:显示、选择、删除、更新、编辑等,用到的函数有:UF_UDOBJ_register_display_cb、UF_UDOBJ_register_edit_cb、UF_UDOBJ_register_update_cb等。

3、然后创建UDO特征:如果不是自有链接,使用UF_UDOBJ_add_links添加链接对象,那么需要先创建你要链接的对象,然后创建UDO特征。调用UF_UDOBJ_create_udo创建UDO实例,然后调用UF_UDOBJ_create_udo_feature_from_udo创建UDO特征,也就是你在模型历史记录里看到的那个特征。如果是自有链接使用:UF_UDOBJ_add_owning_links。添加一些参数:UF_UDOBJ_add_doubles、UF_UDOBJ_add_integers UF_UDOBJ_add_volumesUF_UDOBJ_add_lengthsUF_UDOBJ_add_areas,添加字符串:UF_UDOBJ_add_strings

4.如果需要二次编辑功能自己在刚才注册的编辑回调里写创建对话框类,然后show一下。由于UDO是UG启动自动加载,需要入口函数ufsta()。将dll放到用户自定义目录下的UDO文件夹下。

以下简单说明一下函数用法:

UF_UDOBJ_add_areas 添加面积参数  
UF_UDOBJ_add_doubles 添加double类型参数
UF_UDOBJ_add_integers 添加整形参数

UF_UDOBJ_add_lengths 添加长度参数

UF_UDOBJ_add_links 添加一个链接到指定的NX对象

UF_UDOBJ_add_owning_links 添加对象拥有一个UDO对象自己的链接

UF_UDOBJ_add_strings 添加字符串

UF_UDOBJ_add_volumes 添加字体积参数

UF_UDOBJ_ask_class_data 查找指定的类名称和用户友好名称

UF_UDOBJ_ask_class_id_of_name 给定的类的名称找到一类的ID
UF_UDOBJ_clear_link_status 清除一个UDO的链路状态
UF_UDOBJ_clear_udo_status 清除出过期的UDO的状态
UF_UDOBJ_create_class 创建一个类,给定一个类的名字,和友好的名字
UF_UDOBJ_create_udo 创建一个UDO实例
UF_UI_add_to_class_sel 把UDO友好名称添加到选择对话框
UF_UDOBJ_create_udo_feature创建一个UDO特征
UF_UDOBJ_cycle_udos_by_class 遍历UDO
UF_UDOBJ_ask_udo_data 获取udo的信息
UF_UDOBJ_free_udo_data释放获取的udo信息

有其他问题可以留言,互相学习。

发布了18 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u012077233/article/details/89203214