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

iCAx开思网

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

UGNX中如何通过part的object_id 获取part的名称或着tag

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

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
我是调用函数UF_UI_select_with_single_dialog来通过鼠标获取对象的object_id ,如下的代码中的返回参数tObject,但是我想得到是选择的part的名称,因此我用了一个函数UF_OBJ_ask_name,但是获取回来的对象的名称是空的,不知道为什么,请大虾看看:
  
char sCue[]="单对象选择对话框";
char sTitle[]="单对象选择对话框";
   
int iScope=UF_UI_SEL_SCOPE_NO_CHANGE;
int iResponse;
tag_t tObject;
tag_t tview;
double adCursor[3];
UF_UI_select_with_single_dialog(sCue,sTitle,
                UF_UI_SEL_SCOPE_NO_CHANGE, init_proc, NULL,
                    [$iResponse, &tObject, adCursor, &tview)]
   
char name[200 + 1];  
UF_OBJ_ask_name(tObject,name); //不知道为什么,这个函数中的参数name返回是个空值?
  
********************************************************
  
下面是UF_UI_select_with_single_dialog中的参数init_proc的定义:
  
static int init_proc(UF_UI_selection_p_t select,void* user_data)
{
     int num_triples = 1;//可选择类型的数量
     UF_UI_mask_t mask_triples[]={UF_solid_type}; //可选择的类型,还有些不太了解,我想只让选择solid body,不知道我写的对不对?
     /* enable only UF_solid_type */
     if((UF_UI_set_sel_mask(select,
             UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC,
             num_triples, mask_triples)) == 0)
     {
         return (UF_UI_SEL_SUCCESS);
     }
     else
     {
         return (UF_UI_SEL_FAILURE);
     }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-8-23 15:30:20 | 只看该作者
顶阿顶,各位大虾,求助阿,我郁闷了一下午了
3
发表于 2005-8-23 20:19:33 | 只看该作者
键盘兄呢,帮忙指点一下吧!!!!!
4
发表于 2005-8-24 01:11:04 | 只看该作者
你得先确定对象是否选到了,查看一下对象的tag值就知道了。
  
你的问题可能是因为你没有为你的对象设置名称,所以ask不到name的。
5
发表于 2005-8-24 10:25:09 | 只看该作者
键盘兄,对象是选到了,是不是这里我的一些概念混淆了,
我是想得到这个对象所属的部件文件的名称,请问是不是就是这个对象的名字?还有这个part不是在创建开始的时候就设置名字了吗?
比如说 我新建了一个长方体,保存在硬盘上,名字为“cuber.prt”,
然后我通过UF_UI_select_with_single_dialog选择这个cuber.prt,最终我是想得到“cuber.prt”这个名字; 但是UF_UI_select_with_single_dialog只能得到object_id ,然后我用UF_OBJ_ask_name,能不能的到“cuber.prt”这个名字?
谢谢键盘兄!!!
6
发表于 2005-8-24 11:27:30 | 只看该作者
不要浮躁,书,文档都是要看的。
  
在你的硬盘上part是文档,当它进入内存后,你可以把它看做是一个大型的数据结构。可以说part是UG最大的对象了,你的长方体是part中的对象,它们之间包含与被包含的关系。
  
UF_OBJ_ask_name,只能得到part中的对象名,这个对象名在创建时我忘记是不是系统会给它以默认的名称,但用户可以在对象建立之后设置它的名字。
  
关于取part文件名的问题,可以去uf_part.h中看看。
7
发表于 2005-8-24 11:56:12 | 只看该作者
一语惊醒梦中人啊,我确实有些急于求成了,赫赫
那个对象的名称我确实没有设置,我刚才在UG中设置了一下,就可以获取到了,虽然不是我想要的,但是让我明白了这个函数UF_OBJ_ask_name的用处,
再次感谢键盘兄对我的一些菜鸟问题不厌其烦的解答,你算是我的入门的老师 阿!!!!
有些时候学者学者都有些灰心了,多亏你在一边指点!!!
回去还要多多看书阿,!!!!!!

评分

参与人数 1技术 +1 收起 理由
pzytony + 1

查看全部评分

8
发表于 2005-9-16 08:25:43 | 只看该作者

111

可以通过object_id得到它的parent part tag的,你去查查函数吧
9
发表于 2005-9-26 08:09:26 | 只看该作者
顶一下
10
发表于 2005-9-26 09:11:01 | 只看该作者
应该是用这个函数吧,能得到对象所属part的tag
UF_OBJ_ask_owning_part (
tag_t object_in_part,
tag_t * part_tag );
具体可以去查一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-1-12 21:55 , Processed in 0.041352 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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