UG二次开发的自动装配技术_第1页
UG二次开发的自动装配技术_第2页
UG二次开发的自动装配技术_第3页
UG二次开发的自动装配技术_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、UG 二次开发的自动装配技术技术,自动,开发2I,GlI-VC.m利用 UG/OPENAPI 开发具体产品的应用系统时,常常遇到如何建立零件间装配约束关系的问题。如何实现零件间自动装配,是开发应用系统的难点之一。1.装配约束关系的简化一在实际应用中,装配约束的配合类型有贴合、对准、角度、平行、正交、对中等多种类型,用于装配约束的对象类型有面、边、基准面、基准轴、点、线、曲线、坐标系等多种形式。为了便于数据描述,可将组件间的装配关系做了适当的简化,如图 1、2 所示,该例中,将零件间的装配约束关系简化为两组件间三个基准面的贴合或对准的装配约束类系。其中,图 2 中 X,Y,Z 为对应部件中的基准

2、面名。曰5GSGS9-10_2-G5GS9-4_15Mate-Planar-Planar5Cylindrical-Planar5Center_2_2-PlanarCylindric5l宙Center_2_2Plan3TCylindrical图 1 简化前的装配约束关系图 2 简化后的装配约束关系简化组件装配约束关系后,将主动组件的部件名、组件名与对象名,从动组件的部件名、组件名与对象名,以及装配约束类型等信息保存在 ODB 做据库中。在系统加载部件时,可根据数据库中的装配信息,实现组件的自动装配。2.自动装配的实现2.1 主动组件的加载海MatingConditions髀MatingCondi

3、tions使用 UF_ASSEM_add_part_to_assembly 函数即可将部件加载到装配体。下段程序用于加载部件的,其中,parent_tag 为父部件的部件标识,part_name 为加载部件的部件名,inst_name 为加载部件的组件名,inst_tag 返回加载部件的实例标识。voidUG_OPEN_add_part_to_assem(tag_tparent_tag,char*part_name,?char*inst_name,tag_t*inst_tag)-m#Q7M5PY-doubleorigin3=0,0,0;doublecsys_matrix6=1,0,0,0,1,

4、0;intlayer=-1;UF_PART_load_status_tload_status;UF_ASSEM_add_part_to_assembly(parent_tag,part_name,NULL,inst_name,origin,csys_matrix,layer,inst_tag,&load_status);if(load_status.file_names!=NULL)UF_free_string_array(load_status.n_parts,load_status.file_names);if(load_status.statuses!=NULL)UF_free(

5、load_status.statuses);/-mGIIRzL2.2 主动、从动组件事例标识的获取3一一主动组件的事例标识可以通过 UFASSEMaskpartoccofinst 函数直接获取。从动组件事例标识的获取较为繁琐,其步骤为:(1)确定从动组件的部件标识;(2)获取从动组件的所有事例标识;(3)匹配事例标识对应的组件名与从动组件组件名,确定从动组件的事例标识。需要注意的是,在同一装配中,部件名相同的其组件名不能相同,组件名相同的其部件名不能相同。一下段程序代码用于获取从动组件事例标识,其中,part_name 为部件文件文件名,inst_name 为部件文件组件名,occ_tag 返

6、回部件文件事例标识。,voidUG_OPEN_ask_part_occ_by_name(char*part_name,char*inst_name,tag_t*occ_tag)I.-D&rMr,-216ptag_t*part_occs;tag_ttemp_tag;inti;charpart_n133,refset_name31,instance_name31;?doubleorigin3,csys_matrix9,transform44;?temp_tag=UF_PART_ask_part_tag(part_name);if(temp_tag!=NULL_TAG)()I8Qr.zd2h

7、W-UF_ASSEM_ask_occs_of_part(NULL_TAG,temp_tag,&part_occs);i=0;while(part_occs!=NULL_TAG)slZIR-Wf0I”8-UF_ASSEM_ask_component_data(part_occs,part_n,refset_name,?instance_name,origin,csys_matrix,transform);if(strcmp(strlwr(instance_name),strlwr(inst_name)=0)break;i-;1;-e%g0-I?-.zif(part_occs!=NULL_

8、TAG)?.*occ_tag=part_occs;else*occ_tag=NULL_TAG;UF_free(part_occs);0E(08IMelse*occ_tag=NULL_TAG;2.I 约束对象标识的获取&IIU1y-DZrigUriQ获取用于建立装配约束关系的对象标识的步骤为:(1)将对象所在部件设置为工作部件;(2)利用UF_OBJ_cycle_by_nam瞅取对象标识。同样需要注意的是,在同一部件中,对象名应唯一。下段程序代码用于获取对象标识,其中part_tag为对象所在部件的部件标识,obj_name为对象名,obj_tag返回约束对象的标识。voidUG_OPE

9、N_ask_obj_tag_by_name(tag_tpart_tag,char*obj_name,tag_t*obj_tag)-J-W-S.-.Itag_twork_part,object_tag=NULL_TAG;?.一work_part=UF_ASSEM_ask_work_part();if(part_tag!=NULL_TAG)(UF_ASSEM_set_work_part(part_tag);UF_OBJ_cycle_by_name(obj_name,&object_tag);?if(object_tag!=NULL_TAG)*obj_tag=object_tag;一else

10、*obj_tag=NULL_TAG;5O,_%R-g$5q2nelseF.?&?%II)r1$Z*obj_tag=NULL_TAG;)UF_ASSEM_set_work_part(work_part);K-rAlI-Z.V5g2.4 装配约束关系的建立建立组件间的装配约束的步骤为:(1)定义装配约束,即填充结构UF_ASSEM_constraint_s;(2)利用函数UF_ASSEM_solve_mg解约束;(3)利用函数UF_ASSEM_apply_mc_da格约束应用到装配体上;(4)利用函数UF_MODl_updat更新模型,以反映模型变化。-下段程序代码用于两组件间的装配约束关

11、系的建立,其中,from_part_ins为主动组件实例标识,from_obj_tag为主动组件中的对象标识,from_part_occ为主动组件的事例标识,to_obj_tag为从动组件的对象标识,to_part_occ为从动组件的事例标识,mate_type为装配类型。RvoidUG_OPEN_atuo_mate_by_datum(tag_tfrom_part_ins,tag_t*from_obj_tag,tag_tfrom_part_occ,tag_t*to_obj_tag,tag_tto_part_occ,char*mate_type).2.O-kK|UF_ASSEM_mating_condition_t?ftf;UF_ASSEM_mc_status_t?status;UF_ASSEM_mc_structure_state_tstruct_status;UF_ASSEM_dof_t?dof;doubletransfo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论