一种适用于中小企业的交互式CAD/CAM系统研究与开发

2012-10-23 10:04刘俊英蒋红海
制造技术与机床 2012年5期
关键词:功能模块视图曲面

刘俊英 梁 丰 蒋红海

(①河源职业技术学院机电工程学院,广东河源 517000;②四川大学制造科学与工程学院,四川成都 610065)

1 CAD/CAM系统发展现状

从上个世纪90年代开始,CAD/CAM系统发展迅猛,各国开发的软件均向集成化、网络化、智能化和虚拟化方向发展。目前国内外应用比较广泛的CAD/CAM系统有UG、MasterCAM和CAXA。这些系统属于中、大型系统,功能相当丰富,但因其功能强大,成本较高,对中小企业而言,有些功能用不到又造价高,所以并不完全适用于中小企业[1]。

为了开发适用于我国中小企业的小型交互式CAD/CAM集成系统,本文对其进行了研究,并在广东省河源职业技术学院进行了科研立项。

2 交互式CAD/CAM系统架构及原理

2.1 系统整体架构

本系统包括有3大模块,分别是综合功能模块、CAD功能模块和CAM功能模块。总体架构如图1。

(1)系统综合功能模块 本系统提供了设备驱动功能、交互式界面、图形显示功能、数据输入输出及转换等系统综合功能。

设备驱动功能主要是驱动绘图仪及打印机等;交互式界面包括下拉式菜单、工具条、动态弹出菜单、对话框、命令语言和功能键等;图形显示功能包括图形缩放、图形平移、动态显示、透明命令和视图管理等;数据输入输出及转换功能包括IGES、DXF、DWG、ASCII格式的数据输入输出及转换。

(2)CAD功能模块 包括简单几何造型设计及复杂曲面造型设计。

简单几何造型设计具有二维草图设计(包括直线、二次曲线、自由曲线的设计生成,以及图元之间的参数化约束关系的建立,图形编辑功能等)、规则曲面和实体设计、规则曲面及实体编辑等功能。

复杂曲面造型设计具有二次曲面设计及自由曲面设计等功能。

(3)CAM功能模块 包括有数控加工编程、刀具轨迹生成、刀具轨迹编辑、加工过程仿真及后置处理几项功能。

数控加工编程可以进行点位、二维型腔、二维轮廓、三维曲线曲面加工编程;刀具轨迹生成及编辑功能可以进行刀具轨迹显示、刀具轨迹存储、刀具轨迹文本显示及修改等操作。

2.2 CAM功能模块工作原理

CAM功能是本系统开发的难点。为了实现用户与系统的交互CAM功能,根据多方经验[2],按照如图2所示进行了系统工作原理设计。

3 系统开发关键技术

(1)系统开发语言的选择 开发语言的选择是本系统开发的首要问题。由于本系统是面向中小企业而开发的,系统功能较简单,以此不采用CAD/CAM软件开发平台。为使开发出的系统能够升级及扩展,一定要选择曾经流行、时下生命力强大的语言,而且要在可预见的将来仍然有很好的应用前景。对比VC++、VB、C语言等时下流行的语言,本系统的开发选择了功能强大、适用范围广、开发较容易的VC++来实现。

(2)统一数学描述问题 初等解析几何曲线、曲面,自由曲线、自由曲面在CAD/CAM系统中应用广泛,但长期以来对它们的描述采用的是多种不同的数学方法,这增加了CAD/CAM系统开发的复杂程度。为解决此问题,本系统的研究利用日趋成熟的NURBS技术来开发具有统一数学描述的CAD/CAM系统[3]。

(3)三维场景搭建工具的确定 对一个交互式CAD/CAM系统而言,除了要能实现三维实体的造型及加工功能,也要具备三维仿真功能,以便演示三维实体构造及加工的效果。因此,搭建一个具有光照、渲染等功能的三维场景,用来显示三维物体及其加工过程是必不可少的。当今流行的OpenGL图形库技术正是实现这一功能的理想开发工具。

4 系统功能具体实现举例

4.1 交互式界面

本系统的交互式界面由主菜单(下拉式)、绘图工具条、绘图区域快捷菜单、数据输入及状态域菜单构成。主菜单与绘图工具条的功能相对应。除此之外,为实现CAD/CAM系统中的图形坐标输入、命令读入、图形拾取和坐标变换等都要用到图形动态定位技术(橡皮筋技术、牵引技术)、定量技术、文本技术、选择和拾取技术等交互技术。

以下将以命令读入操作的实现为例,介绍本系统进行交互式界面设计的具体实现方法。本系统利用窗口CWnd类的成员函数——void OnChar(UNIT nChar,UNIT nRepCnt,UNIT nFlags)来实现命令读入操作。具体实现方法见图3所示。

4.2 三维视图功能

对三维图形而言,要求能够在空间任意位置观察物体,所以三维物体描述必须投影到输出设备上。与二维图形相比,三维图形的剪裁边界不再是直线而是面,剪裁边界围成一个体,图形形状依赖于所选择的投影类型。利用OpenGL图形库实现三维视图功能是非常有效的,能加快系统开发进程。因此,本系统的三维视图观察功能是建立在OpenGL图形技术之上的。

在OpenGL中,视图变换必须调用glMatrixMode()函数[4]。每一个 glMatrixMode()函数或其他变换函数,都是在上一个变换得到的当前模型视图T的基础上乘以指定的矩阵P得到新的当前矩阵TP。OpenGL中进行模型变换的3个子函数是:glTranslate*()、gl-Rotate*()和glScale*()。这些函数将通过移动、旋转和缩放来变换一个物体或其坐标系。本系统在定义视图变换的函数中综合使用了基本平移、旋转和缩放函数,同时也使用了OpenGL子程序库函数void glu-LookAt。本系统在设计三维观察时封装了这个函数,使用对话框来选择观察图形的位置。

4.3 采用NURBS进行初等解析曲线和自由曲线、曲面的统一数学描述

为了给系统开发及升级带来方便,本系统采用NURBS技术来表示初等解析曲线(如圆、圆弧等)。统一数学描述就要进行统一的数据结构,这就要考虑不同图形的显示和最终数控代码的生成。以绘制圆弧为例,因圆弧的表达是分为不同的弧度区间来定义的,因此就要对输入的交互式命令参数使用不同的控制顶点和节点矢量,有时还要计算希望绘制的弧度的角度,例如三点绘制圆弧就要计算圆弧对应的弧度,而极坐标绘图就可以直接给出圆弧的NURBS计算参数[5]。这无疑会增加计算量,带来存取数据容量增大的问题。考虑到目前的PC机内存容量和硬盘容量均非常大,以此对系统的运行影响不大。

以图形类定义为例,采用初等解析几何曲线与自由曲线的数学描述分开的方法进行类定义如图4a所示,而采用统一的数学描述之后的情况如图4b所示。从图中类构成关系可以清楚地看到,类的构成被极大地简化了。这使得系统设计所要考虑的不同类之间的继承与派生关系变得非常容易,为系统的开发带来了许多方便。

4.4 二维外形轮廓加工刀具轨迹生成

在进行外形轮廓加工时主要考虑的问题包括有选择刀具、安全高度、进刀及退刀方式、工艺路线等。本系统通过刀具轨迹参数定义、外形轮廓序列化、二维图形数据有效重排、轮廓加工数控代码生成程序等几个步骤实现了二维外形轮廓加工刀具轨迹生成功能。

5 结语

本文所开发的CAD/CAM系统具有交互式界面、图形显示等综合功能以及必要的CAD/CAM功能,系统成本低,适用于中小企业应用。因开发所使用的是VC++语言以及OpenGL图形库技术,并不是建立在CAD/CAM软件开发平台基础上,故系统开发具有自主知识版权并且容易进行升级和扩展。

[1]肖英,罗超.中小企业CAD/CAM系统的选型[J].制造技术与机床,2009(8):106-109.

[2]何春生.CAD/CAM系统集成的研究与应用[J].中国机械工程,2006,17(13).

[3]张克华,刘智强,肖苏华.线切割CAD/CAM系统开发中的自由曲线造型方法研究[J].河北软件职业技术学院学报,2006(12).

[4]李颖,薛海滨,朱伯立,等.OpenGL函数与范例解析手册[M].北京:国防工业出版社,2002.

[5]韩明,孔亚洲,董炀斌.圆弧曲线的二次NURBS表示方法研究[J].华中科技大学学报,2001(12).

猜你喜欢
功能模块视图曲面
简单拓扑图及几乎交错链环补中的闭曲面
第二型曲面积分的中值定理
视图
关于第二类曲面积分的几个阐述
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
商业模式是新媒体的核心
基于ASP.NET标准的采购管理系统研究
高校二手交易网络平台功能及技术框架分析与设计
Django 框架中通用类视图的用法