找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

[求助] 遍历装配获取部件的最大外形

[复制链接]
跳转到指定楼层
1
发表于 2012-1-10 21:48:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想写个程序实现装配里面的各部件的最大外形尺寸。我的想法是用UF_ASSEM_cycle_objs_in_comp遍历装配里面的对象获得对象的tag_t,然后用UF_MODL_ask_bounding_box()获得该对象的包容盒尺寸,部分内容如下:
tag_t part=UF_CALL(UF_PART_ask_display_part());//显示的是什么就是什么的tag_t
tag_t root=UF_ASSEM_ask_root_part_occ(part);
double bounding_box[6];
double w,l,h;
char  wide[100];
char  length[100];
char  height[100];
char  boundary[100];
tag_t object_occur=NULL_TAG;
do
{
UF_ASSEM_cycle_objs_in_comp(root,&object_occur);
UF_CALL(UF_MODL_ask_bounding_box(object_occur,bounding_box));
w=bounding_box[3]-bounding_box[0];
l=bounding_box[4]-bounding_box[1];
h=bounding_box[5]-bounding_box[2];  
sprintf(wide,"%f",w);
sprintf(length,"%f",l);
sprintf(height,"%f",h);  
strcpy(boundary,wide);
strcat(boundary,"X");
strcat(boundary,length);
strcat(boundary,"X");
strcat(boundary,height);
UF_UI_write_listing_window(boundary);
}while(object_occur!=NULL_TAG);
现在的问题是UF_MODL_ask_bounding_box(object_occur,bounding_box);获得的bounding_box[6]的所有值都是一样的,导致后面的所有部件的w、l、h都是0,而且调试时该函数的信息是“the first parameter passed in was invalid”。请各位帮帮忙应该怎么处理呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2012-1-11 13:26:25 | 只看该作者
兄弟啊 你传递的应该是part的tag号,不是事例的tag号
3
发表于 2012-1-11 13:30:10 | 只看该作者
你传递的对象事列 没有用的 要找到UF_MODL_SOLID_BODY才能用啊  这是我QQ号850069817 我可以发一个给你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-26 21:01 , Processed in 0.020596 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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