找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17305|回复: 5
打印 上一主题 下一主题

[求助] UG中通过名称检索到的样条id与界面拾取该样条后得到的ID不一致

[复制链接]
跳转到指定楼层
1
发表于 2011-6-14 18:23:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


请教高手,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,此时二者的区别就出来了:
按名称获取的,提示“试图在显示不可显示的对象”;
交互选择的,就可以进行转移。

具体见附图





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2011-6-15 11:02:12 | 只看该作者
要知道,名称为11的对象可能有很多,比如图层有个11层,等等。你首先要判断用API查出来的名为11的到底是什么东西?如果不是样条,需要继续查询。
3
发表于 2011-6-15 11:55:07 | 只看该作者
这个应该不会,11仅是为了描述方便,我随便取的

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

本帖最后由 wel8584 于 2011-6-15 11:57 编辑
4
发表于 2011-6-15 13:24:39 | 只看该作者
如果能够高亮显示,说明你得到的可能是TaggedObject,你把它强制转换成NXObject类型,然后再试试

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

本帖最后由 zhangcanwei 于 2011-6-15 13:26 编辑
5
发表于 2011-6-15 17:43:12 | 只看该作者
先谢谢楼上的~

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

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

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

NXObject是NXOpen C++里面的概念,C的话就是用tag传各种对象的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-29 08:31 , Processed in 0.034907 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表