资源描述:
《UG二次开的自动装配技术.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、UG二次开发的自动装配技术技术,自动,开发 @2F;G3]/q4V:C.m 利用UG/OPENAPI开发具体产品的应用系统时,常常遇到如何建立零件间装配约束关系的问题。如何实现零件间自动装配,是开发应用系统的难点之一。1.装配约束关系的简化/U#Q*}+N%x. 在实际应用中,装配约束的配合类型有贴合、对准、角度、平行、正交、对中等多种类型,用于装配约束的对象类型有面、边、基准面、基准轴、点、线、曲线、坐标系等多种形式。为了便于数据描述,可将组件间的装配关系做了适当的简化,如图1、2所示,该例中,将零件间的装配约束
2、关系简化为两组件间三个基准面的贴合或对准的装配约束类系。其中,图2中X,Y,Z为对应部件中的基准面名。%
3、$x%w$P1B#l/m图1 简化前的装配约束关系?图2 简化后的装配约束关系 简化组件装配约束关系后,将主动组件的部件名、组件名与对象名,从动组件的部件名、组件名与对象名,以及装配约束类型等信息保存在ODBC数据库中。在系统加载部件时,可根据数据库中的装配信息,实现组件的自动装配。2.自动装配的实现:J)o4Q7z#C4M'Y%V+z6x.P!P'S1m#h2.1主动组件的加载3i6^&b5{&}%p#o#R'
4、5U5b4y2i 使用UF_ASSEM_add_part_to_assembly函数即可将部件加载到装配体。下段程序用于加载部件的,其中,parent_tag为父部件的部件标识,part_name为加载部件的部件名,inst_name为加载部件的组件名,inst_tag返回加载部件的实例标识。6U7e/y"t8T/p'+@void UG_OPEN_add_part_to_assem(tag_tparent_tag,char*part_name,?char*inst_name,tag_t*inst_tag)%'S/
5、e-n6`0K1G+{+O{+m#Q7M5P Y-a$fdoubleorigin[3]={0,0,0};'I!Z6?/A h,q+P&}-ndoublecsys_matrix[6]={1,0,0,0,1,0};2A6}3F1p$W;G.X1Aintlayer=-1;4w"[$x0{/r+}-S#v;mUF_PART_load_status_tload_status;;z0j F$~'y:g&e {UF_ASSEM_add_part_to_assembly(parent_tag,part_name,NULL,inst_name,or
6、igin,csys_matrix,layer,inst_tag,&load_status);*p0J8R5~)]*J %x8n5Gif(load_status.file_names!=NULL)(O$S5x1A-f8nUF_free_string_array(load_status.n_parts,load_status.file_names);:a'C8y:Y ]&u-
7、/['Aif(load_status.statuses!=NULL)"z2C(Q-D-mUF_free(load_status.statuses);0{+z-S(
8、M,D3C+B}/v"m.G9U2R1z:L2.2主动、从动组件事例标识的获取3G+e5d#R"k6w.z!m 主动组件的事例标识可以通过UF_ASSEM_ask_part_occ_of_inst函数直接获取。从动组件事例标识的获取较为繁琐,其步骤为:(1)确定从动组件的部件标识;(2)获取从动组件的所有事例标识;(3)匹配事例标识对应的组件名与从动组件组件名,确定从动组件的事例标识。需要注意的是,在同一装配中,部件名相同的其组件名不能相同,组件名相同的其部件名不能相同。+w4{.a)v*r']3i/q 下段程序代码用
9、于获取从动组件事例标识,其中,part_name为部件文件文件名,inst_name为部件文件组件名,occ_tag返回部件文件事例标识。!T,r#S N6i([void UG_OPEN_ask_part_occ_by_name(char*part_name,char*inst_name,tag_t*occ_tag)!O-I/ i6Y{-D$G0`&r'M5r:_*N2{6p;x*htag_t*part_occs;#@;b0i&F-r1atag_ttemp_tag;7~#u8f2p2c*U%Q'g%Qinti;'G']'c
10、0b8B v%^1^charpart_n[133],refset_name[31],instance_name[31];?3X3J!g"z*N&I0z9Tdoubleorigin[3],cs