① 学习计算机图形学的书籍介绍
目录
计算机图形学基础教程(Visual C++版)
第1章 导论1
1.1 计算机图形学的应用领域1
1.1.1 计算机辅助设计1
1.1.2 计算机艺术1
1.1.3 虚拟现实3
1.1.4 计算机辅助教学3
1.2 计算机图形学的概念4
1.3 计算机图形学的相关学科5
1.4 计算机图形学的确立和发展5
1.5 图形显示器的发展及其工作原理7
1.5.1 阴极射线管7
1.5.2 随机扫描显示器8
1.5.3 直视储存管显示器8
1.5.4 光栅扫描显示器9
1.5.5 液晶显示器13
1.5.6 等离子显示器15
1.5.7 三维显示器15
1.6 图形软件标准的形成18
1.7 计算机图形学的最新技术18
1.7.1 交互技术18
1.7.2 造型技术18
1.7.3 真实感图形显示技术19
1.8 小结19
习题119第2章 Visual C++6.0绘图基础21
2.1 面向对象程序设计基础21
2.1.1 类和对象21
2.1.2 构造函数和析构函数22
2.1.3 对象的动态建立和释放24
2.1.4 继承与派生25
2.2 MFC上机操作步骤28
2.3 基本绘图函数31
2.3.1 CDC类结构和GDI对象32
2.3.2 映射模式33
2.3.3 CDC类的主要绘图成员函数34
2.3.4 设备上下文的调用和释放50
2.3.5 VC++绘制图形的几种方法51
2.4 小结52
习题252第3章 基本图形的扫描转换55
3.1 直线的扫描转换55
3.1.1 算法原理56
3.1.2 构造中点偏差判别式56
3.1.3 递推公式57
3.2 圆的扫描转换57
3.2.1 算法原理58
3.2.2 构造中点偏差判别式59
3.2.3 递推公式60
3.3 椭圆的扫描转换60
3.3.1 算法原理61
3.3.2 构造上半部分I中点偏差判别式62
3.3.3 上半部分I的递推公式62
3.3.4 构造下半部分II中点偏差判别式64
3.3.5 下半部分II的递推公式64
3.4 反走样技术66
3.5 直线距离加权反走样算法67
3.5.1 算法原理67
3.5.2 构造距离判别式69
3.5.3 计算机化69
3.6 小结69
习题369第4章 多边形填充72
4.1 实面积图形的概念72
4.1.1 多边形的定义73
4.1.2 多边形的表示73
4.1.3 多边形的填充74
4.1.4 区域填充74
4.2 有效边表填充算法75
4.2.1 填充原理75
4.2.2 边界像素的处理原则75
4.2.3 有效边和有效边表76
4.2.4 边表79
4.3 边缘填充算法80
4.3.1 填充原理80
4.3.2 填充过程80
4.4 区域填充算法82
4.4.1 填充原理82
4.4.2 四邻接点和八邻接点82
4.4.3 四连通域和八连通域83
4.4.4 四邻接点填充算法和八邻接点填充算法84
4.5 小结85
习题485第5章 二维变换和裁剪89
5.1 图形几何变换基础89
5.1.1 规范化齐次坐标89
5.1.2 矩阵相乘89
5.1.3 二维变换矩阵90
5.1.4 二维几何变换90
5.2 二维图形基本几何变换矩阵91
5.2.1 平移变换矩阵91
5.2.2 比例变换矩阵91
5.2.3 旋转变换矩阵92
5.2.4 反射变换矩阵93
5.2.5 错切变换矩阵94
5.3 二维复合变换95
5.3.1 复合变换原理95
5.3.2 相对于任一参考点的二维几何变换95
5.3.3 相对于任意方向的二维几何变换96
5.4 二维图形裁剪98
5.4.1 图形学中常用的坐标系98
5.4.2 窗口和视区及窗视变换99
5.4.3 窗视变换矩阵100
5.5 Cohen-Sutherland直线裁剪算法101
5.5.1 编码原理101
5.5.2 裁剪步骤102
5.5.3 交点计算公式102
5.6 中点分割直线裁剪算法103
5.6.1 中点分割直线裁剪算法原理103
5.6.2 中点计算公式103
5.7 梁友栋-Barsky直线裁剪算法103
5.7.1 梁友栋算法原理103
5.7.2 算法分析104
5.7.3 算法的几何意义104
5.8 小结106
习题5106第6章 三维变换和投影108
6.1 三维几何变换108
6.1.1 三维变换矩阵108
6.1.2 三维几何变换108
6.2 三维基本几何变换矩阵109
6.2.1 平移变换109
6.2.2 比例变换109
6.2.3 旋转变换110
6.2.4 反射变换111
6.2.5 错切变换112
6.3 三维复合变换113
6.4 投影变换115
6.4.1 三视图115
6.4.2 斜等侧图118
6.5 透视变换120
6.5.1 透视变换坐标系120
6.5.2 坐标系变换121
6.5.3 用户坐标系到观察坐标系的变换122
6.5.4 观察坐标系到屏幕坐标系的变换124
6.5.5 透视投影分类125
6.6 小结127
习题6128第7章 自由曲线和曲面130
7.1 基本概念130
7.1.1 样条曲线曲面130
7.1.2 曲线曲面的表示形式130
7.1.3 拟合和逼近131
7.1.4 连续性条件131
7.2 三次参数样条曲线132
7.2.1 参数样条曲线定义132
7.2.2 系数求解133
7.2.3 边界条件133
7.3 Hermite样条曲线135
7.4 Bezier曲线137
7.4.1 Bezier曲线的定义137
7.4.2 Bezier曲线的性质139
7.4.3 Bezier曲线的可分割性139
7.5 Bezier曲面141
7.5.1 Bezier曲面的定义141
7.5.2 双三次Bezier曲面的定义141
7.6 B样条曲线142
7.6.1 B样条曲线的定义143
7.6.2 二次B样条曲线143
7.6.3 三次B样条曲线144
7.6.4 B样条曲线的性质146
7.6.5 构造特殊的三次B样条曲线的技巧148
7.7 B样条曲面149
7.7.1 B样条曲面的定义149
7.7.2 双三次B样条曲面的定义149
7.7.3 双三次B样条曲面的连续性150
7.8 小结152
习题7152第8章 分形几何156
8.1 分形和分维156
8.1.1 分形的诞生156
8.1.2 分形的基本特征157
8.1.3 分形的定义158
8.1.4 分形维数的定义158
8.2 递归模型160
8.2.1 Cantor集160
8.2.2 Koch曲线161
8.2.3 Peano-Hilbert曲线162
8.2.4 Sierpinski垫片、地毯和海绵164
8.2.5 C字曲线168
8.2.6 Caley树168
8.3 L系统模型169
8.3.1 L系统文法169
8.3.2 Koch曲线170
8.3.3 分形草171
8.3.4 Peano-Hilbert曲线171
8.3.5 分形灌木丛173
8.4 IFS迭代函数系统模型174
8.4.1 仿射变换174
8.4.2 IFS175
8.4.3 Koch曲线178
8.4.4 Sierpinski垫片180
8.4.5 枫叶生成182
8.5 小结183
习题8183第9章 动态消隐187
9.1 图形的数据结构187
9.1.1 图形的几何信息和拓扑信息187
9.1.2 基本图形的数据结构187
9.1.3 立体表示模型188
9.2 消隐算法分类190
9.3 隐线算法190
9.3.1 凸多面体消隐算法190
9.3.2 曲面体消隐算法192
9.4 隐面算法194
9.4.1 Z-Buffer算法194
9.4.2 画家算法197
9.5 小结198
习题9198第10章 真实感图形201
10.1 颜色模型201
10.1.1 基本概念201
10.1.2 RGB颜色模型202
10.1.3 Gouraud颜色渐变203
10.2 材质模型和光照模型205
10.2.1 物体的材质205
10.2.2 环境光模型206
10.2.3 漫反射光模型206
10.2.4 镜面反射光模型207
10.2.5 光强的衰减208
10.3 纹理映射209
10.3.1 纹理定义209
10.3.2 纹理映射210
10.4 OpenGL简介210
10.4.1 案例效果210
10.4.2 TestView.h文件210
10.4.3 TestView.cpp文件213
10.4.4 程序说明220
10.5 小结222
习题10222附录A 配套实践教程的案例设置及与本书的对应关系225
② 快速傅里叶变换算法可以分为两大类,分别是(__)、(__)
快速傅里叶变换算法可以分为两大类,分别是(有指数因子)(无指数因子)两类算法,
③ 线消隐中最基本的运算是什么
为了防止风管的风阻过大。气流在90度弯头的风管内,会有一定的阻力,若此时在让气流转弯的过程中,又采取缩管设计,无疑的会让气流在此产生过大的压降,无形中也增加了风机的动力耗电及产生噪音。所以这种情形下,会让气流沿着90度弯头顺利转弯之后,再进行缩管的设计。——法布瑞克技术
④ 深度缓存算法包括哪些步骤
深度缓存(Z-buffer)算法是一种典型的、简单的图象空间面消隐算法。该算法需要一个深度缓存数组 ZB,此外还 需要一个颜色属性数组 CB ,它们的大小与屏幕上像素点的个数相同。 Z-buffer 算法的步骤如下:
(1)初始化 ZB 和 CB,使得 ZB(i,j)=Zmax,CB(i,j)=背景色,i=1,…, m; j=1,…,n。
(2)对多边形 P,计算它在点(i,j)处的深度值 zi,j。
(3)若 zi,j< ZB(i,j),则 ZB(i,j)=zi,j,CB(i,j)=多边形 P 的颜色。
(4)对每个多边形重复(2) 、 (3)两步,最终在 CB 中存放的就是消隐后的图形。 这个算法的关键在第(2)步,要尽快判断出哪些点落在一个多边形内,并尽快求出一个点的深度值。这里需要应用 多边形点与点之间的相关性,包括水平相关性和垂直相关性。
⑤ 常用的图形消隐算法有哪些
提高消隐算法效率的常见方法(利用连贯性,将透视投影转换成平行投影,包围盒技术,背面剔除,空间分割技术,物体分层表示)
⑥ 计算机算法分为哪儿两大类
按计算机的功能分类,一般可分为专用计算与通用计算机。专用计算机功能单一,可靠性高,结构简单,适应性差。但在特定用途下最有效、最经济、最快速,是其他计算机无法替代的。如军事系统、银行系统属专用计算机。 通用计算机功能齐全,适应性强,目前人们所使用的大都是通用计算机。
⑦ 急求消隐算法源代码,最好是扫描线算法
http://www.wol.net.pk/mtshome/index.html
⑧ 后向面检测(Back-face detection)在消隐算法中起什么作用 如题
如果是Back-face,就不需要显示了.
举个例子吧,如果是个立方体,任何时候,你只能看到三个面,另外三个面通过Back-face剔除.
⑨ 下面关于深度缓存消隐算法的论断哪一条不正确
算法(Algorithm)是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,能够得出所要求或期望的终止状态或输出数据。
算法常常含有重复的步骤和一些比较或逻辑判断。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
凭我的直觉,选c好啦!
⑩ 数控技术
1数控编程及其发展
数控编程是目前CAD/CAPP/CAM系统中最能明显发挥效益的环节之一,其在实现设计加工自动化、提高加工精度和加工质量、缩短产品研制周期等方面发挥着重要作用。在诸如航空工业、汽车工业等领域有着大量的应用。由于生产实际的强烈需求,国内外都对数控编程技术进行了广泛的研究,并取得了丰硕成果。下面就对数控编程及其发展作一些介绍。
1.1数控编程的基本概念
数控编程是从零件图纸到获得数控加工程序的全过程。它的主要任务是计算加工走刀中的刀位点(cutterlocationpoint简称CL点)。刀位点一般取为刀具轴线与刀具表面的交点,多轴加工中还要给出刀轴矢量。
1.2数控编程技术的发展概况
为了解决数控加工中的程序编制问题,50年代,MIT设计了一种专门用于机械零件数控加工程序编制的语言,称为APT(AutomaticallyProgrammedTool)。其后,APT几经发展,形成了诸如APTII、APTIII(立体切削用)、APT(算法改进,增加多坐标曲面加工编程功能)、APTAC(Advancedcontouring)(增加切削数据库管理系统)和APT/SS(SculpturedSurface)(增加雕塑曲面加工编程功能)等先进版。
采用APT语言编制数控程序具有程序简炼,走刀控制灵活等优点,使数控加工编程从面向机床指令的“汇编语言”级,上升到面向几何元素.APT仍有许多不便之处:采用语言定义零件几何形状,难以描述复杂的几何形状,缺乏几何直观性;缺少对零件形状、刀具运动轨迹的直观图形显示和刀具轨迹的验证手段;难以和CAD数据库和CAPP系统有效连接;不容易作到高度的自动化,集成化。
针对APT语言的缺点,1978年,法国达索飞机公司开始开发集三维设计、分析、NC加工一体化的系统,称为为CATIA。随后很快出现了象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系统,这些系统都有效的解决了几何造型、零件几何形状的显示,交互设计、修改及刀具轨迹生成,走刀过程的仿真显示、验证等问题,推动了CAD和CAM向一体化方向发展。到了80年代,在CAD/CAM一体化概念的基础上,逐步形成了计算机集成制造系统(CIMS)及并行工程(CE)的概念。目前,为了适应CIMS及CE发展的需要,数控编程系统正向集成化和智能化夫发展。
在集成化方面,以开发符合STEP()标准的参数化特征造型系统为主,目前已进行了大量卓有成效的工作,是国内外开发的热点;在智能化方面,工作刚刚开始,还有待我们去努力。
2 NC刀具轨迹生成方法研究发展现状
数控编程的核心工作是生成刀具轨迹,然后将其离散成刀位点,经后置处理产生数控加工程序。下面就刀具轨迹产生方法作一些介绍。
2.1基于点、线、面和体的NC刀轨生成方法
CAD技术从二维绘图起步,经历了三维线框、曲面和实体造型发展阶段,一直到现在的参数化特征造型。在二维绘图与三维线框阶段,数控加工主要以点、线为驱动对象,如孔加工,轮廓加工,平面区域加工等。这种加工要求操作人员的水平较高,交互复杂。在曲面和实体造型发展阶段,出现了基于实体的加工。实体加工的加工对象是一个实体(一般为CSG和BREP混合表示的),它由一些基本体素经集合运算(并、交、差运算)而得。实体加工不仅可用于零件的粗加工和半精加工,大面积切削掉余量,提高加工效率,而且可用于基于特征的数控编程系统的研究与开发,是特征加工的基础。
实体加工一般有实体轮廓加工和实体区域加工两种。实体加工的实现方法为层切法(SLICE),即用一组水平面去切被加工实体,然后对得到的交线产生等距线作为走刀轨迹。本文从系统需要角度出发,在ACIS几何造型平台上实现了这种基于点、线、面和实体的数控加工。
2.2基于特征的NC刀轨生成方法
参数化特征造型已有了一定的发展时期,但基于特征的刀具轨迹生成方法的研究才刚刚开始。特征加工使数控编程人员不在对那些低层次的几何信息(如:点、线、面、实体)进行操作,而转变为直接对符合工程技术人员习惯的特征进行数控编程,大大提高了编程效率。
W.R.Mail和A.J.Mcleod在他们的研究中给出了一个基于特征的NC代码生成子系统,这个系统的工作原理是:零件的每个加工过程都可以看成对组成该零件的形状特征组进行加工的总和。那么对整个形状特征或形状特征组分别加工后即完成了零件的加工。而每一形状特征或形状特征组的NC代码可自动生成。目前开发的系统只适用于2.5D零件的加工。
LeeandChang开发了一种用虚拟边界的方法自动产生凸自由曲面特征刀具轨迹的系统。这个系统的工作原理是:在凸自由曲面内嵌入一个最小的长方块,这样凸自由曲面特征就被转换成一个凹特征。最小的长方块与最终产品模型的合并就构成了被称为虚拟模型的一种间接产品模型。刀具轨迹的生成方法分成三步完成:(1)、切削多面体特征;(2)、切削自由曲面特征;(3)、切削相交特征。
JongYunJung研究了基于特征的非切削刀具轨迹生成问题。文章把基于特征的加工轨迹分成轮廓加工和内区域加工两类,并定义了这两类加工的切削方向,通过减少切削刀具轨迹达到整体优化刀具轨迹的目的。文章主要针对几种基本特征(孔、内凹、台阶、槽),讨论了这些基本特征的典型走刀路径、刀具选择和加工顺序等,并通过IP(InterProgramming)技术避免重复走刀,以优化非切削刀具轨迹。另外,JongYunJong还在他1991年的博士论文中研究了制造特征提取和基于特征的刀具及刀具路径。
特征加工的基础是实体加工,当然也可认为是更高级的实体加工。但特征加工不同于实体加工,实体加工有它自身的局限性。特征加工与实体加工主要有以下几点不同:
从概念上讲,特征是组成零件的功能要素,符合工程技术人员的操作习惯,为工程技术人员所熟知;实体是低层的几何对象,是经过一系列布尔运算而得到的一个几何体,不带有任何功能语义信息;实体加工往往是对整个零件(实体)的一次性加工。但实际上一个零件不太可能仅用一把刀一次加工完,往往要经过粗加工、半精加工、精加工等一系列工步,零件不同的部位一般要用不同的刀具进行加工;有时一个零件既要用到车削,也要用到铣削。因此实体加工主要用于零件的粗加工及半精加工。而特征加工则从本质上解决了上述问题;特征加工具有更多的智能。对于特定的特征可规定某几种固定的加工方法,特别是那些已在STEP标准规定的特征更是如此。如果我们对所有的标准特征都制定了特定的加工方法,那么对那些由标准特征够成的零件的加工其方便性就可想而知了。倘若CAPP系统能提供相应的工艺特征,那么NCP系统就可以大大减少交互输入,具有更多的智能。而这些实体加工是无法实现的;
特征加工有利于实现从CAD、CAPP、NCP及CNC系统的全面集成,实现信息的双向流动,为CIMS乃至并行工程(CE)奠定良好的基础;而实体加工对这些是无能为力的。
2.3现役几个主要CAD/CAM系统中的NC刀轨生成方法分析
现役CAM的构成及主要功能
目前比较成熟的CAM系统主要以两种形式实现CAD/CAM系统集成:一体化的CAD/CAM系统(如:UGII、Euclid、Pro/ENGINEER等)和相对独立的CAM系统(如:Mastercam、Surfcam等)。前者以内部统一的数据格式直接从CAD系统获取产品几何模型,而后者主要通过中性文件从其它CAD系统获取产品几何模型。然而,无论是哪种形式的CAM系统,都由五个模块组成,即交互工艺参数输入模块、刀具轨迹生成模块、刀具轨迹编辑模块、三维加工动态仿真模块和后置处理模块。下面仅就一些着名的CAD/CAM系统的NC加工方法进行讨论。
UGII加工方法分析
一般认为UGII是业界中最好,最具代表性的数控软件。其最具特点的是其功能强大的刀具轨迹生成方法。包括车削、铣削、线切割等完善的加工方法。其中铣削主要有以下功能:
、PointtoPoint:完成各种孔加工;
、PanarMill:平面铣削。包括单向行切,双向行切,环切以及轮廓加工等;
、FixedContour:固定多轴投影加工。用投影方法控制刀具在单张曲面上或多张曲面上的移动,控制刀具移动的可以是已生成的刀具轨迹,一系列点或一组曲线;
、VariableContour:可变轴投影加工;
、Parameterline:等参数线加工。可对单张曲面或多张曲面连续加工;
、ZigZagSurface:裁剪面加工;
、RoughtoDepth:粗加工。将毛坯粗加工到指定深度;
、CavityMill:多级深度型腔加工。特别适用于凸模和凹模的粗加工;
、SequentialSurface:曲面交加工。按照零件面、导动面和检查面的思路对刀具的移动提供最大程度的控制。
EDSUnigraphics还包括大量的其它方面的功能,这里就不一一列举了。
STRATA加工方法分析
STRATA是一个数控编程系统开发环境,它是建立在ACIS几何建模平台上的。
它为用户提供两种编程开发环境,即NC命令语言接口和NC操作C++类库。它可支持三轴铣削,车削和线切割NC加工,并可支持线框、曲面和实体几何建模。其NC刀具轨迹生成方法是基于实体模型。STRATA基于实体的NC刀具轨迹生成类库提供的加工方法包括:
ProfileToolpath:轮廓加工;
AreaClearToolpath:平面区域加工;
SolidProfileToolpath:实体轮廓加工;
SolidAreaClearToolpath:实体平面区域加工;
SolidFaceToolPath:实体表面加工;
SolidSliceToolPath:实体截平面加工;
LanguagebasedToolpath:基于语言的刀具轨迹生成。
其它的CAD/CAM软件,如Euclid,Cimitron,CV,CATIA等的NC功能各有千秋,但其基本内容大同小异,没有本质区别。
2.4现役CAM系统刀轨生成方法的主要问题
按照传统的CAD/CAM系统和CNC系统的工作方式,CAM系统以直接或间接(通过中性文件)的方式从CAD系统获取产品的几何数据模型。CAM系统以三维几何模型中的点、线、面、或实体为驱动对象,生成加工刀具轨迹,并以刀具定位文件的形式经后置处理,以NC代码的形式提供给CNC机床,在整个CAD/CAM及CNC系统的运行过程中存在以下几方面的问题:
CAM系统只能从CAD系统获取产品的低层几何信息,无法自动捕捉产品的几何形状信息和产品高层的功能和语义信息。因此,整个CAM过程必须在经验丰富的制造工程师的参与下,通过图形交互来完成。如:制造工程师必须选择加工对象(点、线、面或实体)、约束条件(装夹、干涉和碰撞等)、刀具、加工参数(切削方向、切深、进给量、进给速度等)。整个系统的自动化程度较低。
在CAM系统生成的刀具轨迹中,同样也只包含低层的几何信息(直线和圆弧的几何定位信息),以及少量的过程控制信息(如进给率、主轴转速、换刀等)。因此,下游的CNC系统既无法获取更高层的设计要求(如公差、表面光洁度等),也无法得到与生成刀具轨迹有关的加工工艺参数。
CAM系统各个模块之间的产品数据不统一,各模块相对独立。例如刀具定位文件只记录刀具轨迹而不记录相应的加工工艺参数,三维动态仿真只记录刀具轨迹的干涉与碰撞,而不记录与其发生干涉和碰撞的加工对象及相关的加工工艺参数。
CAM系统是一个独立的系统。CAD系统与CAM系统之间没有统一的产品数据模型,即使是在一体化的集成CAD/CAM系统中,信息的共享也只是单向的和单一的。CAM系统不能充分理解和利用CAD系统有关产品的全部信息,尤其是与加工有关的特征信息,同样CAD系统也无法获取CAM系统产生的加工数据信息。这就给并行工程的实施带来了困难 。
3数控仿真技术
3.1计算机仿真的概念及应用
从工程的角度来看,仿真就是通过对系统模型的实验去研究一个已有的或设计中的系统。分析复杂的动态对象,仿真是一种有效的方法,可以减少风险,缩短设计和制造的周期,并节约投资。计算机仿真就是借助计算机,利用系统模型对实际系统进行实验研究的过程。它随着计算机技术的发展而迅速地发展,在仿真中占有越来越重要的地位。计算机仿真的过程可通过图1所示的要素间的三个基本活动来描述:
建模活动是通过对实际系统的观测或检测,在忽略次要因素及不可检测变量的基础上,用物理或数学的方法进行描述,从而获得实际系统的简化近似模型。这里的模型同实际系统的功能与参数之间应具有相似性和对应性。
仿真模型是对系统的数学模型(简化模型)进行一定的算法处理,使其成为合适的形式(如将数值积分变为迭代运算模型)之后,成为能被计算机接受的“可计算模型”。仿真模型对实际系统来讲是一个二次简化的模型。
仿真实验是指将系统的仿真模型在计算机上运行的过程。仿真是通过实验来研究实际系统的一种技术,通过仿真技术可以弄清系统内在结构变量和环境条件的影响。
计算机仿真技术的发展趋势主要表现在两个方面:应用领域的扩大和仿真计算机的智能化。计算机仿真技术不仅在传统的工程技术领域(航空、航天、化工等方面)继续发展,而且扩大到社会经济、生物等许多非工程领域,此外,并行处理、人工智能、知识库和专家系统等技术的发展正影响着仿真计算机的发展。
数控加工仿真利用计算机来模拟实际的加工过程,是验证数控加工程序的可靠性和预测切削过程的有力工具,以减少工件的试切,提高生产效率。
3.2数控仿真技术的研究现状
数控机床加工零件是靠数控指令程序控制完成的。为确保数控程序的正确性,防止加工过程中干涉和碰撞的发生,在实际生产中,常采用试切的方法进行检验。但这种方法费工费料,代价昂贵,使生产成本上升,增加了产品加工时间和生产周期。后来又采用轨迹显示法,即以划针或笔代替刀具,以着色板或纸代替工件来仿真刀具运动轨迹的二维图形(也可以显示二维半的加工轨迹),有相当大的局限性。对于工件的三维和多维加工,也有用易切削的材料代替工件(如,石蜡、木料、改性树脂和塑料等)来检验加工的切削轨迹。但是,试切要占用数控机床和加工现场。为此,人们一直在研究能逐步代替试切的计算机仿真方法,并在试切环境的模型化、仿真计算和图形显示等方面取得了重要的进展,目前正向提高模型的精确度、仿真计算实时化和改善图形显示的真实感等方向发展。
从试切环境的模型特点来看,目前NC切削过程仿真分几何仿真和力学仿真两个方面。几何仿真不考虑切削参数、切削力及其它物理因素的影响,只仿真刀具工件几何体的运动,以验证NC程序的正确性。它可以减少或消除因程序错误而导致的机床损伤、夹具破坏或刀具折断、零件报废等问题;同时可以减少从产品设计到制造的时间,降低生产成本。切削过程的力学仿真属于物理仿真范畴,它通过仿真切削过程的动态力学特性来预测刀具破损、刀具振动、控制切削参数,从而达到优化切削过程的目的。
几何仿真技术的发展是随着几何建模技术的发展而发展的,包括定性图形显示和定量干涉验证两方面。目前常用的方法有直接实体造型法,基于图像空间的方法和离散矢量求交法。
3.3直接实体造型法
这种方法是指工件体与刀具运动所形成的包络体进行实体布尔差运算,工件体的三维模型随着切削过程被不断更新。
Sungurtekin和Velcker开发了一个铣床的模拟系统。该系统采用CSG法来记录毛坯的三维模型,利用一些基本图元如长方体、圆柱体、圆锥体等,和集合运算,特别是并运算,将毛坯和一系列刀具扫描过的区域记录下来,然后应用集合差运算从毛坯中顺序除去扫描过的区域。所谓被扫过的区域是指切削刀具沿某一轨迹运动时所走过的区域。在扫描了每段NC代码后显示变化了的毛坯形状。
Kawashima等的接合树法将毛坯和切削区域用接合树(graftree)表示,即除了空和满两种结点,边界结点也作为八叉树(octtree)的叶结点。边界结点包含半空间,结点物体利用在这些半空间上的CSG操作来表示。接合树细分的层次由边界结点允许的半空间个数决定。逐步的切削仿真利用毛坯和切削区域的差运算来实现。毛坯的显示采用了深度缓冲区算法,将毛坯划分为多边形实现毛坯的可视化。
用基于实体造型的方法实现连续更新的毛坯的实时可视化,耗时太长,于是一些基于观察的方法被提出来。
3.4基于图像空间的方法
这种方法用图像空间的消隐算法来实现实体布尔运算。VanHook采用图象空间离散法实现了加工过程的动态图形仿真。他使用类似图形消隐的zbuffer思想,沿视线方向将毛坯和刀具离散,在每个屏幕象素上毛坯和刀具表示为沿z轴的一个长方体,称为Dexel结构。刀具切削毛坯的过程简化为沿视线方向上的一维布尔运算,见图3,切削过程就变成两者Dexel结构的比较:
CASE1:只有毛坯,显示毛坯,break;
CASE2:毛坯完全在刀具之后,显示刀具,break;
CASE3:刀具切削毛坯前部,更新毛坯的dexel结构,显示刀具,break;
CASE4:刀具切削毛坯内部,删除毛坯的dexel结构,显示刀具,break;
CASE5:刀具切削毛坯内部,创建新的毛坯dexel结构,显示毛坯,break;
CASE6:刀具切削毛坯后部,更新毛坯的dexel结构,显示毛坯,break;
CASE7:刀具完全在毛坯之后,显示毛坯,break;
CASE8:只有刀具,显示刀具,break。
这种方法将实体布尔运算和图形显示过程合为一体,使仿真图形显示有很好的实时性。
Hsu和Yang提出了一种有效的三轴铣削的实时仿真方法。他们使用zmap作为基本数据结构,记录一个二维网格的每个方块处的毛坯高度,即z向值。这种数据结构只适用于刀轴z向的三轴铣削仿真。对每个铣削操作通过改变刀具运动每一点的深度值,很容易更新zmap值,并更新工件的图形显示。
3.5离散矢量求交法
由于现有的实体造型技术未涉及公差和曲面的偏置表示,而像素空间布尔运算并不精确,使仿真验证有很大的局限性。为此Chappel提出了一种基于曲面技术的“点矢量”(pointvector)法。这种方法将曲面按一定精度离散,用这些离散点来表示该曲面。以每个离散点的法矢为该点的矢量方向,延长与工件的外表面相交。通过仿真刀具的切削过程,计算各个离散点沿法矢到刀具的距离s。
设sg和sm分别为曲面加工的内、外偏差,如果sg< S < SM说明加工处在误差范围内,S < SG则过切,S>sm则漏切。该方法分为被切削曲面的离散(discretization)、检测点的定位(location)和离散点矢量与工件实体的求交(intersection)三个过程。采用图像映射的方法显示加工误差图形;零件表面的加工误差可以精确地描写出来。
总体来说,基于实体造型的方法中几何模型的表达与实际加工过程相一致,使得仿真的最终结果与设计产品间的精确比较成为可能;但实体造型的技术要求高,计算量大,在目前的计算机实用环境下较难应用于实时检测和动态模拟。基于图像空间的方法速度快得多,能够实现实时仿真,但由于原始数据都已转化为像素值,不易进行精确的检测。离散矢量求交法基于零件的表面处理,能精确描述零件面的加工误差,主要用于曲面加工的误差检测。