您的位置:网站首页 > Proe教程

基于Pro/E二次开发技术的通用装配仿真过程研究

时间:2011-02-23 08:42:47 来源:

提 要:本文主要介绍了在基于Pro/E二次开发技术的基础上所开发的一种通用装配仿真软件的实现原理、实现方法和最后的演示结果及其特点为。
关键词:Pro/Engineer  装配仿真

0 引言

对一个产品来说,每个零件的加工工艺较容易制作,因它是针对其自身而论的,但对于一个很复杂的产品来说,由于零件数目较多,每个零件的装配序列就比较难以确定,按照传统的试凑装配方法,不但费时费力,延长产品开发周期,有时甚至根本无法完成装配。本文针对上述问题,考虑企业的实际情况,不对产品工艺规划的整个过程实现自动规划,而是从装配角度人手,重点解决零部件的装配序列问题。通过装配仿真系统模拟虚拟零部件产品的装配过程,实现装配工艺路线规划。同时,这也符合目前制造业中流行的自顶向下的设计模式。即在设计过程中,首先考虑产品的功能及装配方面的事项,然后才对组成装配体的零部件进行详细设计,并允许零部件设计向前期的功能设计和装配设计进行反馈。同时对其装配过程进行三维仿真,使设计人员直观地看到自己的设计结果,并且可以在此基础上进行各部件间的干涉检验及布局调整,从而使设计人员很方便地实现这种面向功能和面向装配的设计,并实时进行信息反馈。

本文所讨论的装配系统选用Pro/Engineer作为开发平台,以Pro/Enginee的二次开发工具Pro/Toolkit为开发工具。

1 系统开发原理

首先,我们要先了解一些关于Pro/E的一些知识。Pro/E是美国参数化技术公司开发的一个通用CAD软件,该软件集三维模型设计、加工、分析及绘图功能于一体,有强大的二次开发能力和第三方软件的支持。而Pro/Toolkit则是PTC公司为Pro/E软件提供的用户化工具箱,该工具箱为用户程序或第三方软件提供与Pro/E的无缝连接。当用户程序或第三方软件用C语言编写时,Pro/Toolkit提供一了一个C函数库,它能够使用户或第三方软件以一种可控制的、安全的方式访问Pro/E的数据库和应用程序。因此可以说Pro/Toolkit是Pro/E应用程序开发者们的API。

其次,我们先分析一下目前装配设计研究的现状。装配设计相当复杂,它不但要受零部件设计的几何和功能的影响,而且受制造、装配过程以及经济性的影响。一般来说,产品的装配设计必须由富有设计经验的人员来执行,由他来决定装配的顺序、各个零部件的联接关系、是否采用子装配体、以及怎样考虑制造和降低成本等,然后把任务分配给其它设计人员去完成。这一切工作都需要很高的专业知识和经验知识,而完全由计算机自动生成装配规划的研究已经进行多年了,并且很多学者在这方面取得了很大的成绩与进展。但是纵观整个装配规划领域,到目前为止还没有一个能够完全实现自动装配规划的系统。这些基于知识和规则的装配序列生成方法,对于特定的装配序列求解比较有效,但实用面窄,领域知识的获取需要较深的专业知识。而目前计算机的创造能力仍无法与人的创造能力相比拟,同时人在设计过程时,实际上就已考虑到装配和拆卸过程,对于总体布局的装配是很了解的,只不过有些细节部分没有把握,需要计算机去模拟它的装配或拆卸过程来验证自己设计的可靠性,再者,根据现在的设计情况分析,完全的创新设计工作比较少,大部分是在原有的基础上进行改造,所以一般用计算机来辅助完成设计装配过程。为此,目前的装配规划基本上都是以自动装配规划为辅、以计算机辅助装配规划为主。本文所介绍的装配设计软件正是一种人机交互性非常好的,以便充分利用设计者的主动性模拟装配过程的设计软件。

本软件中的装配规划采用的方法是拆卸法。拆卸法是装配规划的基本方法,即假定装配体已经装配好了,再根据装配体中零部件的配合关系,一个一个的将它们拆卸下来。若装配体的装配过程与拆卸过程互为逆过程,则装配顺序即为拆卸的逆顺序,装配路径与拆卸路径相重合,只是装配方向与拆卸方向相反。

本系统充分利用了Pro/Engineer中已有的装配模型如零部件的标识机制等。因此,本文对具体的几何描述不作讨论,只对零部件的组织结构和空间位置的理论和方法进行详细的论述。

1.1 层次结构及其中的零件的标识方法

人们在设计一个产品的时候,最先想到的不是单个零件的形状,而是整个产品的形状和它要完成的功能任务。伴随着设计的深人,整体的形状空间逐级划分,同时功能也逐级分解,直到最后不必再分解之时,再进行零件的造型设计。用这种面向装配的设计方法产生的产品在逻辑结构上就会呈现出多层次性。

利用上面的论述,我们可以看出装配体模型最基本的组成单元是零件、子装配体以及成品装配体。如图1所示的为Pro/Engineer软件提供的多叉树结构的等级模式装配模型示例,图中树的根结点是成品装配体,其他所有结点均为部件。所有的部件结点又可分为叶结点和中间结点,其中叶结点是不可拆分的零件,而其他的中间结点则是由概念设计所确定的子装配体。多叉树的分支代表从属关系,分支只联接相邻的上下两层结点,表示下层结点是上层结点的组成部件。由此看来,零件结点只有父结点,成品装配体只有组成部件结点,而子装配体结点既有父结点又有组成部件结点。子装配体的层次结构与成品装配体是一样的,这样递归下去就形成了多层次的产品结构树(Assembly Structure Tree)。


另外,Pro/Engineer还提供了一个封装的结构体对象ProAsmcomppath,该对象是对多叉树结构的一种数学描述。ProAsmcomppath对象类型的变量可作为Pro/E的二次开发模块ProlTookit的某些函数的输人变量,通过它可对装配体中的零部件进行编辑操作,并可取出装配体中零部件的信息。该对象的定义如下:

typedef struct
pro_comp_path
{
ProSolid owner;
ProIdTable comp_id_table;
int table num;
}ProAsmcomppath;

其中,owner-一表示成品装配体(the root assembly),即表示多叉树结构中的根结点;comp-id-table (the component identifier table)-一为一个一维数组,它包含组成多叉树的根结点到该零部件结点路径的全局标识信息;table num一一表示该零部件结点在多叉树中位于的层数,也就是数组comp-id-table的长度。在ProAsmcomppath结构中,若table num值设为。(即多叉树中的第。层),则表示成品装配体本身(即多叉树中的根结点)。

用层次化结构表达产品对于可装配性和可拆卸性检查有很大的潜在优势。首先,结构化的产品表达使复杂的逻辑结构规约化,使复杂问题规约化为若干个子问题的并集;其次,层次结构是设计者在概念设计过程中逐步得到的,设计者有意无意地会按照装配知识和惯例来组织零部件,这样层次结构本身就隐含了一部分智能性的可行装配或拆卸序列,可以利用这部分信息,使之成为实际工程应用的可行的装配和拆卸工艺。

1.2 空间位姿信息

零部件在装配体中总是占据一定的空间位置,这一空间位置是通过零部件的空间位姿信息来描述的。一个部件的空间位姿信息由两部分组成:一部分是位置信息(Position),描述部件的空间位置;另一部分是姿态信息(Orientation)描述部件的方向。部件的平移是通过部件的空间位置的改变来体现的,部件的旋转是通过部件的方向的改变来体现的。在Pro/Engineer中是用4x4阶齐次变换矩阵来表达零部件的空间位姿信息的,其表示如下:


2系统实现方法

本软件是在应用以上所介绍的基本知识的基础上,利用Pro/E的二次开发工具Pro/Toolkit所研制开发的。其最大的特点就是通用性。这点可以在以下的它的使用方法的介绍上看出来:

首先,在Pro/E平台上调人任意的装配体模型。事先计划好所要选择的零件或部件及其运动方向。根据运行方向决定所选的由二次开发所加人的菜单的键(这些键或对应于顺X方向运行,或顺Y方向运行,或顺指定面的法线方向运行等)。以后根据软件向导选择要运行的零件或部件。然后根据软件向导输人所要形成动画所需要的帧的数目(数目越大,动画效果越好),这时会出现一个交互式界面(如图2所示)。按下运行按钮,则零件按所选方向运行,运行到一定步长停止,当然也可以在其停止之前的运动过程中通过交互式界面来对其进行控制,这时此零件则停在新的位置。此时可选择另一个所需要拆卸的零件了。依次一步步实现了整个装配体的拆卸过程。而在零件运行的过程中,整个Pro/E的操作环境依然是激活的。操作者可以结合交互式界面的循环键和快捷键不断变化视角来反复观察这个正在运行的零件是否同其他的零部件相干涉。

图2就是所设计的软件的界面,其中被激活的齿轮就是拟要运行的零件。而边上所显示的就是控制界面。


Pro/E的二次开发工具Pro/Toolkit事实上是一系列特定的封装了特定功能的函数库,利用它们可以很方便的完成上述任务,其大体步骤如下:首先用ProMdlCurrentGet()函数来获取当前模型,然后利用ProSelectQ函数来选取将要运行的零部件并运用相关函数获取此部件的路径(即其在整个装配体中所处的位姿),最后用ProAsmcomppathTrfGetQ函数获取相关的变换矩阵的初值并根据不同的要求对其进行变换。在完成以上的工作以后,就可以调用ProAnimmovieCreate( )等相关函数来生成最终的动画效果了。

3 技术特点

我们知道计算机仿真技术,从应用角度分类,基本上可分为系统分析、系统设计和系统训练与教育等三大类。而仿真技术的广泛应用也对仿真技术本身(包括仿真方法和仿真工具)提出了一系列要求,决定了当前仿真技术发展的主要特征如下:

(1)减少模型开发时间。据统计在上个世纪90年代,从用户提出问题到建立好仿真模型,并把它放到计算机上运行计算所需要的时间(称为建模导前时间)大约需要几周或几个月,建模导前时间过长导致新思想与新方案价值下降,竞争力减弱。但是现在随着计算机技术的发展,这项工作的时间已经明显减少了;
(2)改善通讯界面,包括人与人之间的界面和人与计算机之间的界面。为了成功完成任务,要求仿真软件或仿真器能够提供一个十分友好的人与人之间及人与计算机之间的通讯界面,并要求研究模型统一描述形式、图形输人与动画输出、仿真结果的统计分析等。
(3)提高仿真精度和仿真效率,降低仿真费用。提高仿真精度包括提高模型建立的精度及提高实验运行的精度。
而本软件的设计过程也正是符合了以上三点特征的。具体表现如下:
(1)在装配仿真系统研究中,研究并实现了人机交互式进行装配序列与路径的规划,使装配规划更能表达用户的设计意图。由于所选择零件的任意性,所以可以仿真任意可能的零件装配线路,便于选择最优路径。同类似的研究相比,这便改善了通讯界面,提高了人机交互性,降低了仿真所需的时间;
(2)在本软件运行时,在进行装配过程仿真的同时,由于工作界面始终是处于激活状态下的,所以使用者可以不断应用Pro/E的快捷键转换视角来检视零部件的干涉检验情况,而且是以动画的形式演示,尽可能地模拟真实装配过程。这也就增加了仿真的逼真度,同时与大部分类似的研究相比,由于其运作起来后工作界面始终处于激活状态下,因此,其灵活性更大;
(3)使专用产品仿真系统改变为通用装配仿真系统,能够实现对所有的装配体进行装配过程仿真,实现了装配仿真的通用性。而且,其运作起来不需设置专门的变量,而且运行不同的装配过程也不显生硬。整个软件的使用过程非常方便简单。

4 结束语

本文主要介绍了基于Pro/E二次开发技术的通用装配仿真软件的研究过程,并用大量的笔墨介绍了其原理、应用范围及其特点。由于本文主要研究的是装配仿真过程。所以没有提及其他领域。然而,根据以上的论述,可以看出利用同样的技术是完全可以在其他领域有所建树的。例如教学软件等。