iCAx开思工具箱
标题:
各位高手帮帮忙
[打印本页]
作者:
ptjmy
时间:
2004-5-17 18:19
标题:
各位高手帮帮忙
如何将同一个零件装配到另一个部件不同的地方,比如一块板上有很多相同的孔,我想将螺栓分别装配,将一个螺栓半自动装配我已经实现了,但怎样才能实现多个螺栓装配功能呢?仅仅做个循环好像不行,虽然导入了许多螺栓进去,但好像装配的只有一个,各位高手指点一下吧,焦急等待中!下面是其中一段代码:
int count=0;
while(count<100)
{
char *child_part_name="E:\\my_first_UG\\application\\bb.prt";
char *refset_name=NULL;
char instance_name[]="bb";
double origin[3]={0,0,0};
double csys_matrix[9]={1,0,0,0,1,0,0,0,1};
int layer=0;
tag_t instance;
UF_PART_load_status_t error_status;
UF_ASSEM_add_part_to_assembly (parent_part,child_part_name,refset_name,instance_name,
origin,csys_matrix,layer,[$instance,&error_status)]
tag_t child_part;
child_part=UF_ASSEM_ask_child_of_instance(instance);
tag_t first_plan;
tag_t second_plan;
tag_t feature=NULL_TAG;
int type3=UF_feature_type;
uf_list_p_t face_list=NULL;
uf_list_p_t p1=NULL;
int type1;
int n=0,n1=0;
UF_OBJ_cycle_objs_in_part(child_part,type3,[$feature)]
while(feature!=NULL_TAG)
{
UF_MODL_ask_feat_faces(feature,[$face_list)]
p1=face_list;
do
{
UF_MODL_ask_face_type(p1->eid,[$type1)]
if(type1==UF_MODL_CYLINDRICAL_FACE) n1++;
if(type1==UF_MODL_PLANAR_FACE)
if(n==1) {first_plan=p1->eid;UF_DISP_set_highlight(first_plan,1);}
if(n1==2) {second_plan=p1->eid;UF_DISP_set_highlight(second_plan,1);}
p1=p1->next;
}while(p1!=NULL);
UF_OBJ_cycle_objs_in_part(child_part,type3,[$feature)]
}
作者:
ptjmy
时间:
2004-5-17 20:07
我仔细看了执行过程,原因是第二次执行的时候选择面first_plan和second_plan没变,还是第一次执行的那个instance上,有没有什么好办法解决啊!大虾帮帮忙
作者:
ptjmy
时间:
2004-5-17 20:24
没人顶啊!对应于同一个part的多个个instance,选择面为什么老在第一个instance不动呢?
作者:
ptjmy
时间:
2004-5-17 20:41
我已经解决了,谢谢大家!
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3