资源描述:
《ug二次开发的自动装配技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用UG/OPENAPI开发具体产品的应用系统时,常常遇到如何建立零件间装配约束关系的问题。如何实现零件间自动装配,是开发应用系统的难点之一。1.装配约束关系的简化/z.l.X:w5E6d3H-j0m 在实际应用中,装配约束的配合类型有贴合、对准、角度、平行、正交、对中等多种类型,用于装配约束的对象类型有面、边、基准面、基准轴、点、线、曲线、坐标系等多种形式。为了便于数据描述,可将组件间的装配关系做了适当的简化,如图1、2所示,该例中,将零件间的装配约束关系简化为两组件间三个基准面的贴合或对准的装配约束类系。其
2、中,图2中X,Y,Z为对应部件中的基准面名。*Y%x&?9Y0K)V图1 简化前的装配约束关系?图2 简化后的装配约束关系 简化组件装配约束关系后,将主动组件的部件名、组件名与对象名,从动组件的部件名、组件名与对象名,以及装配约束类型等信息保存在ODBC数据库中。在系统加载部件时,可根据数据库中的装配信息,实现组件的自动装配。2.自动装配的实现3w9,x+%N0p1H#r7p6P5M2M#(}9U8t"O!q'F$U/l9e2.1主动组件的加载8y9L:s:Y'w5Z&g1p0[7a8O
3、 使用UF_ASSEM_add_part_to_assembly函数即可将部件加载到装配体。下段程序用于加载部件的,其中,parent_tag为父部件的部件标识,part_name为加载部件的部件名,inst_name为加载部件的组件名,inst_tag返回加载部件的实例标识。2K5E5[4i0w'r/q;F4Y4Q/mvoid UG_OPEN_add_part_to_assem(tag_tparent_tag,char*part_name,?char*inst_name,tag_t*inst_tag)'y
4、3E&J W6A{'_ `2t2U%J&M!]&Z-f!Jdoubleorigin[3]={0,0,0};"L(`4K!M'i;tdoublecsys_matrix[6]={1,0,0,0,1,0};)r"j*i.M-f2nintlayer=-1;4M.`%{#o:b.l2NUF_PART_load_status_tload_status;6V"Y'c'k(N*Y-i'zUF_ASSEM_add_part_to_assembly(parent_tag,part_name,NULL,inst_name,origin,c
5、sys_matrix,layer,inst_tag,&load_status);3T;?*o&c/Q!k3V(_if(load_status.file_names!=NULL)&Q(S$J-r2m.Y&`-~4t,AUF_free_string_array(load_status.n_parts,load_status.file_names);!]/L#k+l#}:W*u+Xif(load_status.statuses!=NULL)/k9!p;X7d"x"-CUF_free(load_status.statuses
6、);+`%O69b2~5Z6@5H} c!B2O8f,T&n.v"a0R2.2主动、从动组件事例标识的获取7]*a+O6t3O)z7x9B*J6O 主动组件的事例标识可以通过UF_ASSEM_ask_part_occ_of_inst函数直接获取。从动组件事例标识的获取较为繁琐,其步骤为:(1)确定从动组件的部件标识;(2)获取从动组件的所有事例标识;(3)匹配事例标识对应的组件名与从动组件组件名,确定从动组件的事例标识。需要注意的是,在同一装配中,部件名相同的其组件名不能相同,组件名相同的其部件名不能相同。
7、9]'T;^+k4~/U,u&H 下段程序代码用于获取从动组件事例标识,其中,part_name为部件文件文件名,inst_name为部件文件组件名,occ_tag返回部件文件事例标识。6`7H:i"X8@1U$P'M5?.Wvoid UG_OPEN_ask_part_occ_by_name(char*part_name,char*inst_name,tag_t*occ_tag)(s4b(S;}+v;O{:W1J,{9W3t"V(E:N+Jtag_t*part_occs;'I-N!h2S3btag_t
8、temp_tag;0[+X*m&O"Q(T6^/winti;-{8d1v;G5^7Ocharpart_n[133],refset_name[31],instance_name[31];? 3F*T A9n2Y2s'J2l'Udoubleorigin[3],csys_matrix[9],transform[4][