找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 294|回复: 0

基于装配函数的车床虚拟装配

[复制链接]
发表于 2010-9-13 22:20:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

您需要 登录 才可以下载或查看,没有账号?注册会员

×
引言0 g: `2 |+ K, i& B8 l. g8 J+ |

    装配作业是制造过程的后置工序,装配质量对产品的性能有直接的影响,为降低生产成本,提高企业经济效益和竞争能力,在产品的设计阶段,进行产品数字化预装配是十分必要的。在可视化技术、仿真技术、装配过程的研究等技术综合应用的基础上产生了虚拟装配技术。虚拟装配(Virtual Assembly, VA)是虚拟制造的关键组成部分,利用计算机工具,通过分析、预测产品模型,对产品进行数据描述和可视化,做出与装配有关的工程决策,而不需要实物产品模型作支持。据统计,目前国外制造业应用虚拟装配技术节约了研制经费,并缩短了研制周期,但我国关于虚拟装配技术的研究起步较晚。

) s- D- F( B; j7 [

    在实际的生产中,任意一个机床都有几百个甚至上千个零部件,每个零部件的位置和姿态信息需用4X4 的矩阵表达,显然,这样庞大的数据量,在程序代码中直接实现是很困难的,同时,要将机床装配仿真用于维护培训和产品演示,就必须向机床方面的专家(非程序员)提供一种简便、直观、灵活的手段来设定机床的装配运动方案。为了实时、方便的修改装配序列和装配路径,并且准确的描述产品在装配或拆卸过程的位姿信息,本文对虚拟装配过程提出了一种机床虚拟装配的描述语言以及与其相对应的虚拟装配函数。

' Y- {* T: V+ A3 S5 R* E

    虚拟装配函数实现的实质,就是先提取机床虚拟装配的描述语言中的信息,再将其转化为机床零部件在每一时间点上的位姿和其它与显示相关的信息,在此基础上调用机床场景绘制模块的相应操作来实时绘制运动场景,实现虚拟装配的仿真过程。

1 f* ~# ^. `0 m3 K: a% p! _

   
    1 三维空间中物体位姿和运动信息的描述

5 i' J( b6 ] \3 t$ g

    在三维装配空间中,装配元件位姿和运动信息的准确描述是正确模拟产品装/拆过程的关键。采用一个4×4 的位姿矩阵和运动矩阵,可有效描述装配空间中物体的位姿信息和物体任意运动的信息,从而实现完整的产品装配过程仿真。

0 g! q f# s+ @/ Q2 a

    1.1 物体位姿和运动信息的描述

u; l0 D% o/ N! V7 {

    位姿是指位置和姿态,反映了三维装配空间中装配件的位置和空间角度,由两部分组成:一部分是位置信息(Position),描述部件的空间位置;另一部分是姿态信息(Orientation),描述部件的方向。部件的平移是通过部件的空间位置的改变来体现的,部件的旋转是通过部件方向的改变来体现的。

, U) U3 m. @5 Z5 [* K/ e

    装配元件的运动变换分为平移运动变换、旋转运动变换和复合运动变换。复合运动变换可以简化为沿某方向平移运动与绕某一轴线旋转运动的合成。所以待装配元件从一个关键点到另一个关键点之间的任何一种运动,均可以表示为平移运动变换和旋转变换的合成。

1 U# V+ A$ l! K/ f' b% ~9 Q2 F

    在装配实体模型的三维空间中,装配元件的位姿信息和运动矩阵均可采用一个4×4的矩阵[T]来表示

& Z+ X! C' L6 m& g/ M' x7 U

6 X' T) Q$ ]3 L- |* u. e4 R

    其中,左上角的3×3 矩阵主要用于物体的姿态信息或装配过程中零部件的旋转变换;[l m n]矩阵主要用于物体的位置信息或零部件在装配过程中产生平移变换。

! S: {5 n5 u. q8 R! W% x

    1.2 装配/拆卸中运动参数的设定

1 F/ F; H5 x9 o2 w, X% a0 w9 g

    三维空间中,为了简化计算和减少不必要的数据,对于不同的运动方式,设计不同的元组表示。

7 R; M) e0 x$ L! @ o* w% z) [4 j7 E

    对于直线运动方式,采用5 元组法,定义为(object,Xe,Ye,Ze,speed);对于圆弧运动方式,采用9 元组法,定义为(object,Xp,Yp,Zp,Xd,Yd,Zd,speed,theta);对于旋转运动方式,采用9 元组法,定义为(object,Xp,Yp,Zp,Xd,Yd,Zd,rate,theta);对于定轴心螺旋进给运动方式,采用10 元组法,定义为(object,Xp,Yp,Zp,Xd,Yd,Zd,distance,speed,rate)。

/ U. F, L) y2 y+ P

    其中object 为运动物体的名称,(Xe,Ye,Ze)为移动到的终点坐标值,(Xp,Yp,Zp)为旋转轴上任意一点坐标值,(Xd,Yd,Zd)为旋转轴方向矢量,distance 为起点到终点沿轴线方向进给的距离,speed 为移动速度参数,theta 为角度参数,rate 为角速度参数。

8 L. b& Y& E! x. o- {8 ?

    要实现虚拟环境中的装配仿真,还应该建立虚拟环境和虚拟机床,因此,设计并实现了添加零部件(包括位姿和颜色信息)的代码以及对虚拟环境进行特效处理(添加声音、灯光、纹理、动态显示装配零部件的信息)的代码。

8 P& p" n! U. [1 Y4 {2 A x9 L

    1.3 物体三维变换方式的设定及其实现

7 B \) U- c; }6 r" |/ t

    因为,任何复杂的运动变换可以简化为沿某方向平移运动与绕某一轴线旋转运动的合成,为了形象的描述仿真过程,我们设计出如下几种运动方式:

0 {* L; S8 A5 S

    (1)直线移动方式

( V( c6 ^; y+ P" k

    根据已知条件计算出物体在移动过程中的任意时刻t 的坐标,只考虑平移部分。

- H8 T/ T$ [/ |& U9 w9 z# f

    (2)旋转运动方式

/ _3 V$ ?- n9 `3 \6 s# J% }

    为通用起见,本文把旋转轴设为任意轴,任意轴的旋转变换,我们采用组合变换。

. M4 ~6 v- G0 W4 |+ h# k

    根据图形变换的知识,计算出变换矩阵。

$ p# c' i& }9 [/ p$ u( a

    (3)圆弧运动方式

- b' M6 z& r: M C1 q( o# D

    算法同旋转运动方式,但是我们只需要考虑矩阵[T]的T[3][0]、T[3][1]、T[3][2]三个
参数即可。

; ~2 G# l0 F% r: H6 J

    (4)螺旋进给运动方式

. I- G" `0 l; ]3 `

    可以把整个运动过程分解成两个过程:一个过程是:不考虑沿中心轴方向的进给运动,只考虑旋转运动,其变换矩阵同(圆弧运动);另外一个过程是:只考虑沿中心轴方向的进给运动,而不考虑旋转运动,也就是只有平移变换运动。则整个运动的变换矩阵为旋转运动的矩阵和平移变换矩阵的乘积。

/ Z6 }! l3 |6 y3 O9 x

. p1 w5 G, i& r* W7 E. C- x

    2 装配仿真的实现过程以及实例演示

* M8 B% q3 y) w9 f5 E% g/ g6 R( T

    车床装配仿真就是通过实时显示车床各个零部件的运动,从而演示车床的装配过程。实现车床装配仿真的基本思路,是计算机床每个装配元件在每个时间点上的位置和姿态信息,然后根据这些信息按一定的时间间隔,不断地重新绘制机床场景图。

, K1 @0 F! y9 f" ]; O" L* _


    机床装配仿真的描述语言到仿真的实现过程包括以下几个步骤:语言解释器调用并解释描述语言文件,提取有用的参数,根据得到的参数,调用与其相对应的虚拟装配函数;执行虚拟装配函数来生成虚拟机床的本体和记录机床装配运动信息的中间数据结构;通过对这种中间数据结构的访问,从而实现虚拟机床的装配或拆卸过程(其实现过程见图1 所示)。

6 W3 E% E% N0 b

- S* N U3 a9 z7 r( `8 M1 Z

   在时间场景数据结构中,保存每个时间点上发生了变化的机床零部件以及零部件的状态(位置、姿态和显示属性)信息 (图2 是“更新-时间”数据结构的示意图),虚拟装配函数负责将连续的运动插补成离散的时间点上的精确值,并根据这些值生成更新-时间数据结构上的相应节点。

: q% T, D; k" B7 E' b+ C# a

6 S! Y0 U: V& l' J6 N k: W

机床装配仿真模块提供了相应的操作来访问“更新-时间”数据结构。根据“更新-时间”数据结构重绘场景,实现装配仿真。(图3 示是CK6430 车床的主轴箱的虚拟装配过程)

' ^5 ?/ c' g8 q. k

    具体的实现过程是:

6 w2 Y% k) d8 M4 C7 W$ h

    根据指定的起始时间找到相应的时间节点

, ^0 A C/ P) Y) d2 P4 z

    while 时间节点!=NULL

7 r3 E' W! f! w7 G& ]: p

    while 更新信息节点!=NULL

5 B& s" S$ O% g; f0 Y8 @& H+ T

    if 零部件的位姿被更新

. C* v9 l5 ?/ W

    调用机床场景绘制模块的Set_Transformation 操作;

! ]6 O6 ]0 k: y1 {6 u* m

    if 零部件的透明度属性被更新

, p( D2 z7 Y. I% R" v# R

    调用机床场景绘制模块的Set_Transparency 操作;

5 O7 x) e% t1 B# j: Z+ T8 y

    if 零部件的纹理属性被更新

0 Q( Z0 T0 W) {! q6 z7 o1 W

    调用机床场景绘制模块的Set_Texture 操作;

{, m0 s; a/ h: ~

    …………………………

5 \( i k0 t; D8 Q" R- _

% ]/ j3 p+ ^; n- N% u

   3 结束语

, E* s7 I& K2 u7 T. A0 U

    本文对虚拟装配的过程提出并实现了一种机床装配仿真的描述语言以及与其相对应的虚拟装配函数,通过装配过程的仿真实现虚拟产品的预装配,验证和改进产品的装配工艺,对装配工艺和装配路径进行优化,生动直观地展示产品的可装配性,可以用作实施VM 的支持工具之一。

; B) Q$ _2 ^" u2 O
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|Archiver|手机版|小黑屋|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2024-11-16 12:57 , Processed in 0.192631 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表