iCAx开思工具箱

标题: UG中通过名称检索到的样条id与界面拾取该样条后得到的ID不一致 [打印本页]

作者: wel8584    时间: 2011-6-14 18:23
标题: UG中通过名称检索到的样条id与界面拾取该样条后得到的ID不一致


请教高手,UG的prt文件里创建一样条曲线,然后在左侧特征树里将其重命名为“11”。

通过API函数UF_OBJ_cycle_by_name获取到该样条的object ID,为23370.
但是通过API函数UF_UI_select_with_class_dialog,调用UG自带的交互界面手动拾取该样条,返回的object ID 确是23012,两个不一致,不知道有没有高手知道问什么??


备注:根据获取得到的id号,将样条移动到别的图层,API函数是UF_OBJ_set_layer,此时二者的区别就出来了:
按名称获取的,提示“试图在显示不可显示的对象”;
交互选择的,就可以进行转移。

具体见附图
(, 下载次数: 8)





作者: zhangcanwei    时间: 2011-6-15 11:02
要知道,名称为11的对象可能有很多,比如图层有个11层,等等。你首先要判断用API查出来的名为11的到底是什么东西?如果不是样条,需要继续查询。
作者: wel8584    时间: 2011-6-15 11:55
这个应该不会,11仅是为了描述方便,我随便取的

试过取特定的名字,如名称Line_Hide之类的,问题是一样的,应该不是重名的问题
而且我通过11获取ID后,用UF_DISP_set_highlight高亮显示是可以的,就是不能移动图层


作者: zhangcanwei    时间: 2011-6-15 13:24
如果能够高亮显示,说明你得到的可能是TaggedObject,你把它强制转换成NXObject类型,然后再试试

我还是建议,用UF_OBJ_ask_type_and_subtype()这个函数来确切判定,你得到的到底是什么。


作者: wel8584    时间: 2011-6-15 17:43
先谢谢楼上的~

顺便问一下,NXObject是什么?我用C开发的,知道object 和feature,第一次听你说NXObject,它跟前面两个是什么关系?

PS:我这个主要是想给样条一个名字,下次按名字搜索到该样条,就可以进行其他操作了。现在的解决办法是:通过交互获取样条的ID,然后给该ID对应的object命名,保存prt文件后,下次就可以按照命名的名称进行检索了,已经实现了
只是这种命名的名称在特征树里是看不到的。不知是为什么
作者: kiddult    时间: 2012-8-31 11:44
wel8584 发表于 2011-6-15 17:43
先谢谢楼上的~

顺便问一下,NXObject是什么?我用C开发的,知道object 和feature,第一次听你说NXObject ...

NXObject是NXOpen C++里面的概念,C的话就是用tag传各种对象的




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3