iCAx开思工具箱
标题:
遍历装配获取部件的最大外形
[打印本页]
作者:
siyilee
时间:
2012-1-10 21:48
标题:
遍历装配获取部件的最大外形
想写个程序实现装配里面的各部件的最大外形尺寸。我的想法是用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”。请各位帮帮忙应该怎么处理呢?
作者:
nihai0711501129
时间:
2012-1-11 13:26
兄弟啊 你传递的应该是part的tag号,不是事例的tag号
作者:
nihai0711501129
时间:
2012-1-11 13:30
你传递的对象事列 没有用的 要找到UF_MODL_SOLID_BODY才能用啊 这是我QQ号850069817 我可以发一个给你
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3