下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UG二次开发的自动装配技术技术,自动,开发利用UG/OPEN API开发具体产品的应用系统时,常常遇到如何建立零件间装配约束关系的问题。如何实现零件间自动装配,是开发应用系统的难点之一。1 .装配约束关系的简化 一在实际应用中,装配约束的配合类型有贴合、对准、角度、平行、正交、对中等多种类型,用于装配约束的对象类型有面、边、基准面、基准轴、点、线、曲线、坐标系等多种形式。为了便于数据描述,可将组件间的装配关系做了适当的简化,如图1、2所示,该例中,将零件间的装配约束关系简化为两组件间三个基准面的贴合或对准的装配您 Mating 匚onditions2d约束类系。其中,图 2中X,Y,Z为对应部
2、件中的基准面名。_d 融 GSGS9-10_2- >G5GS9-4_1S* Mate - Planar->Planar気- Cylindrical->Planar-融 Center_2_2 - Planar>CylindriclH* Center_2_2 - Plari3T'>Cylindrical图1简化前的装配约束关系2£1務 Mating 匚onditions简化后的装配约束关系简化组件装配约束关系后,将主动组件的部件名、组件名与对象名,从动组件的部件名、组件名与对象名,以及装配约束类型等信息保存在ODB(数据库中。在系统加载部件时,可根据
3、数据库中的装配信息,实现组件的自动装配。2 .自动装配的实现2.1 主动组件的加载使用 UF_ASSEM_add_part_to_assembly 函数即可将部件加载到装配体。下 段程序用于加载部件的,其中, parent_tag 为父部件的部件标识 ,part_name 为加载部件的 部件名 ,inst_name 为加载部件的组件名 ,inst_tag 返回加载部件的实例标识。6 U7 e/ y" t8 T/ p' + void UG_OPEN_add_part_to_assem(tag_t parent_tag,char *part_name,?char *inst_na
4、me,tag_t *inst_tag)double origin3 = 0, 0, 0;double csys_matrix6 = 1,0,0,0, 1,0;int layer = -1;UF_PART_load_status_t load_status; z0 j F$ ' y: g& eUF_ASSEM_add_part_to_assembly(parent_tag, part_name, NULL,inst_name, origin, csys_matrix, layer, inst_tag, &load_status);if ( load_status.file
5、_names != NULL )( O$ S5 x1 A- f8UF_free_string_array( load_status.n_parts, load_status.file_names );: a' C8 y: Y & u- |/ 'if ( load_status.statuses != NULL )UF_free(load_status.statuses );2 2 主动、从动组件事例标识的获取3 G+ e5 d# R" k6 w. z! m主动组件的事例标识可以通过 UF_ASSEM_ask_part_occ_of_inst 函数直接 获取。从
6、动组件事例标识的获取较为繁琐,其步骤为:(1) 确定从动组件的部件标识;( 2)获取从动组件的所有事例标识;(3)匹配事例标识对应的组件名与从动组件组件名,确定从动组件的事例标识。需要注意的是,在同一装配中,部件名相同的其组件名不能相 同,组件名相同的其部件名不能相同。+ w4 . a) v* r' 3 i/ q下段程序代码用于获取从动组件事例标识,其中, part_name 为部件文件 文件名, inst_name 为部件文件组件名, occ_tag 返回部件文件事例标识。! T, r# S N6 i( voidUG_OPEN_ask_part_occ_by_name(char *p
7、art_name, char*inst_name,tag_t *occ_tag )! O- I/ 6 Yrefset_name31 , instance_name31;?, csys_matrix 9 ,transform 4 4 ;?tag_t *part_occs; tag_t temp_tag; int i;char part_n133 double origin 3 temp_tag = UF_PART_ask_part_tag(part_name);if(temp_tag != NULL_TAG)( % l* P' u) W9 H( X" VUF_ASSEM_ask
8、_occs_of_part (NULL_TAG, temp_tag, &part_occs );i = 0;while(part_occs != NULL_TAG)UF_ASSEM_ask_component_data(part_occs, part_n, refset_name,? instance_name, origin, csys_matrix, transform);% 3 D% B/ p0 Dif(strcmp(strlwr(instance_name),strlwr(inst_name) =0 ) break; i+; ( Z5 q1 8 u4 I* i7 B2 _* D
9、if(part_occs != NULL_TAG)? *occ_tag = part_occs;$ v: ?3 w9 i8 E9 Lelse * w. h3 N. O: M/ h$ T4 I# N. i*occ_tag = NULL_TAG;UF_free(part_occs); 0 l Z' e/ i! |: d) p. H- X5 . Jelse*occ_tag = NULL_TAG;2.3 约束对象标识的获取获取用于建立装配约束关系的对象标识的步骤为:( 1)将对象所在部件设置为工作部件;(2)利用UF_OBJ_cycle_by_name获取对象标识。同样需要注意的是,在 同一部
10、件中,对象名应唯一。下段程序代码用于获取对象标识,其中 part_tag 为对象所在部件的部件标 识,obj_name为对象名,obj_tag返回约束对象的标识。void UG_OPEN_ask_obj_tag_by_name(tag_t part_tag, char *obj_name, tag_t *obj_tag)tag_t work_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_OB
11、J_cycle_by_name (obj_name, &object_tag);? if (object_tag != NULL_TAG)*obj_tag = object_tag;3 V3 c& J/ O* S2 l% o( else *obj_tag = NULL_TAG; 5 O, _% R* g$ 5 q2 nelse / m, A: $ T8 b+ y7 _5 t 1 F. ?& q5 ?% Y: I) r/ E$ Z*obj_tag = NULL_TAG;UF_ASSEM_set_work_part(work_part); + Q0 d0 ?3 r) A8
12、Y- Z. V5 g24 装配约束关系的建立建立组件间的装配约束的步骤为: (1) 定义装配约束,即填充结构UF_ASSEM_constraint_s;(2)利用函数 UF_ASSEM_solve_m求解约束;(3)利用函数 UF_ASSEM_apply_mc_da将约束应用到装配体上;(4)利用函数UF_MODI_updat更新模型, 以反映模型变化。 / H, i" + J4 Z0 l* N; G下段程序代码用于两组件间的装配约束关系的建立, 其中, from_part_ins 为主动组件实例标识, from_obj_tag 为主动组件中的对象标识, from_part_occ
13、为主动组 件的事例标识, to_obj_tag 为从动组件的对象标识, to_part_occ 为从动组件的事例标识, mate_type为装配类型。voidUG_OPEN_atuo_mate_by_datum(tag_t from_part_i ns,tag_t*from_obj_tag,tag_t from_part_occ,tag_t *to_obj_tag,2 _* t$ V4 4 r$ n" V$ x+ x# P) stag_t to_part_occ,char *mate_type )- K' i2 y. O+ k/ Q) g5 |UF_ASSEM_mating_
14、condition_t? ftf;UF_ASSEM_mc_status_t? status;UF_ASSEM_mc_structure_state_t struct_status;UF_ASSEM_dof_t? dof;7 double transform44;int ret,i;UF_ASSEM_init_mc (&ftf); ftf.mated_object = from_part_ins; = NULL;ftf.user_ name = false;for(i=0; i<3; i+)ftf.constraints.from_status = UF_ASSE
15、M_ok;5 V. p+ F: b/ T0 I6 o# o4 w, bftf.constraints.to_status = UF_ASSEM_ok; if(strcmp(strlwr(mate_type),"m") = 0) Q: e( h0 & Pftf.constraints.mate_type = UF_ASSEM_v16_mate;elseftf.con strai nts.mate_type = UF_ASSEM_v16_alig n ; ftf.constraints.from_type = UF_ASSEM_datum_plane; ftf.cons
16、traints.to_type = UF_ASSEM_datum_plane; ftf.constraints.from = from_obj_tag;ftf.constraints.from_part_occ = from_part_occ;ftf.constraints.to = to_obj_tag;ftf.constraints.to_part_occ = to_part_occ;ftf.constraints.offset = NULL_TAG; = NULL;ftf.con strai nts.user_ name = false;&ftf.num_constraints = 3;ftf.suppressed = false;ret=UF_ASSEM_solve_mc(&ftf, &status, &dof, transform);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图形旋转 课件
- 科学树叶 课件
- 双星轮胎 课件
- 人教版老王课件
- 幼儿园小班音乐《袋鼠妈妈》课件
- 西京学院《英汉口译》2023-2024学年第一学期期末试卷
- 物理课件变阻器
- 不锈钢抛光性能差的原因
- 西京学院《包装设计》2021-2022学年第一学期期末试卷
- 西华师范大学《植物地理学》2022-2023学年第一学期期末试卷
- 房颤一站式消融左心耳封堵
- 学龄前儿童眼保健知识PPT
- 产品设计未来职业生涯规划书
- (2024年)特种设备安全法律法规培训课件
- 2024年度-急性肺栓塞的急救处理
- 初级社工师培训
- (高清版)TDT 1013-2013 土地整治项目验收规程
- 个人医保代办委托书
- 小班数学活动《按颜色分类》课件
- AI技术对文化创意产业的创新
- 高校物业物业管理服务内容及标准
评论
0/150
提交评论