逆向工程产品设计可以认为是一个“从有到无”的过程。简单地说,逆向工程产品设计就是根据已经存在的产品模型,反向推出产品设计数据(包括设计图纸或数字模型)的过程(图5-6)。逆向工程具有缩短产品的设计、开发周期,并且加快产品的更新换代速度等优势,因此,逆向工程的应用降低了企业开发新产品的成本与风险,加快了产品的造型和系列化的设计。目前在很多领域已经得到很广泛的应用,如模具制造、汽车设计、玩具设计、制鞋、艺术品复原、医学工程及产品造型设计等。
图5-6 逆向工程的应用
(a)有标记点的鞋楦(b)在扫描软件中获取的三维模型
(1)工作流程
传统的产品设计过程通常是一个“从无到有”的过程,即从概念设计到图样,再制造出产品,这样的产品设计过程我们称为“顺向工程”(Forward Engineering)。
与顺向设计相反,逆向设计是先有实物产品,再有实物数据。随着产品更新换代频繁、批量变小,这就要求设计者能根据市场的要求很快设计出新产品。此外,在汽车、航空等工业领域中,目前的顺向设计很难满足复杂外形的形状设计要求,仍然需要由黏土、木头或纤维玻璃制成的手工模型。在这样的特定条件下,采用逆向工程的手段将实物模型转化为CAD模型,实现对象数字化,从而建立起产品的数字化模型,这就是逆向工程(Reverse Engineering)的应用[44]。在鞋类产品数字化设计过程中,很多模型是在没有设计图纸或者设计图纸不完整以及没有CAD模型的情况下,按照现有的实物模型,利用逆向工程技术进行CAD模型的重构。
广义的逆向工程包括几何逆向工程、工艺逆向工程、材料逆向工程等多个方面。逆向工程过程主要包括三个阶段:第一个阶段由接触式或非接触式坐标测量仪测量实物模型,得到被测实物模型的点云数据,这一阶段称为实物的数字化;第二个阶段称为数据后处理过程,它是利用逆向软件和三维造型软件处理数字化零件后得到的点云数据,重建实物的CAD模型;最后一个阶段是制造过程,它根据实物的CAD模型,利用快速成型机或数控机床进行产品批量生产。其工作流程如图5-7所示。
图5-7 逆向工程工作流程
(2)逆向工程的软/硬件配备
逆向工程首先需要使用精密的测量系统将样品轮廓坐标位置快速量出,根据坐标云点,构建曲面和模型。一套完整的逆向工程系统,需要下列基本配备:
①测量探头:有接触式(触发探头、扫描探头)、非接触式(激光位移探头、激光干涉仪探头、线结构光及CDC扫描探头、面-结构光及CDC扫描探头)。量测机台有三坐标测量仪、多轴专用机台、多轴关节式机械臂和激光追踪站等。
②点云数据处理软件:噪声滤除、细线化、曲线建构、曲面建构、曲面修改、内插补点。
③CAD/CMA软件:一般CP级或工作站级CAD/CMA系统。
④CAE软件:执行模流分析或强度分析。
⑤NC加工机:执行模型加工及模具制造。
⑥快速成型机(3D打印):模型产生(有光化学法、粉末成型法、绕线成型法、切纸成型法等)。
逆向工程可分为数据获取、数据处理以及三维模型重建三大关键技术。数据获取是逆向工程的前提和基础。数据处理是逆向工程中的关键环节,它的结果将直接影响后期模型重构的质量。三维模型重建是逆向工程的最终环节。下面将对这三大关键技术做详细的介绍。
(1)接触式获取技术
数据获取是逆向工程的第一环节,也是非常重要的一个环节,数据采集的质量和效率直接影响着后期模型重建的进程,关系着整个逆向工程的成败。数据获取流程如图5-8所示。
图5-8 数据获取流程
根据测量方式不同,数据获取技术可分为接触式和非接触式测量两大类,归纳如下(图5-9):
图5-9 三维数字信息测量方法
①接触式数据获取技术:接触式数据获取技术最早用于长度量检测,其原理为:当采样头的探针刚好接触到模型表面时,探针尖的微小移动便会触发采样头中的开关,使数据采集系统记下探针尖(测球中心点)的当时坐标值,测针尖逐点移动,可以采集到被测样件表面轮廓的坐标数据。目前鞋楦的扫描采用圆形接触头对鞋楦进行测量(图5-10)。
图5-10 鞋楦的接触式测量方法
②连续扫描式数据获取技术:连续式扫描式数据获取技术是采用模拟量开关采样头,其原理为:利用悬挂在三维弹簧系统中测针的位移偏移所产生的电容或电感的变化,进行机-电模拟量的转换。当采样头的探针沿着模型表面以某一切向速度移动时,就发出对应各坐标偏移量的电流或电压讯号。
③非接触式数据获取技术:非接触式数据采集方法主要基于光学、声学、磁学等领域中的基本原理,利用某种与物体表面发生相互作用的物理现象,将一定的物理模拟量通过适当的算法转化为样件表面的坐标点,从而获得样件模型的三维信息。近年来,随着各种理论的不断完善、科学技术的不断发展、计算机技术的突飞猛进,出现了多种数据采集方法,从整体上可以分为光学测量方法、声学测量方法和磁学测量方法,各种方法的特点见表5-1。
表5-1 非接触式数据获取技术
续表
④非接触光学三维逆向系统:当前较为主流的光学逆向系统是基于投影光栅法原理研制的,图5-11所示为系统的硬件部分。投影光栅法是一类主动式全场三角测量技术,是一种光学式三维轮廓测量的方法。它的基本思想是利用结构光投影的几何信息来求得物体的三维信息,通过向物体投射各种结构光(如点、线、空间符号结构光等),在不同于投影光轴的方向观察,利用投影点、观察点、物体的三角关系测量到物体各点的距离[45,46]。点-结构光投影法是最早发展起来的,它是向物体不同位置的点投影单束光,通过分别测量物体上投影点的三维坐标来获取物体整个三维图像。由于点-结构光投影法属于点检测方法,测量时间长,数据空间分辨率低,现在已很少作为一种使用方法。在点-结构光投影法的基础上,又发展了线-结构光投影法和面-结构光投影法。由于面-结构光投影法是一次性瞬间获取物体表面形状的三维信息,且投影光模式可变,因此,与点-结构光投影法、线-结构光投影法相比,具有准确、快捷、数据空间分辨率高的特点。与其他三维物体形状检测技术相比,结构光投影法具有检测过程完全非接触、一次性投影短时间直接获取物体的三维空间信息等优点,它代表了结构光投影法进一步研究的方向[47]。
图5-11 DLO-J200三维扫描设备
(2)数据处理技术
数据处理是逆向工程中的关键环节,它的结果将直接影响后期模型重构的质量。一般来说数据处理工作主要包括去除噪声点、数据插补、数据平滑、数据精简、数据分割、多视点云的对齐等。下面将对数据处理的主要工作进行详细介绍。
①数据格式转换:在产品设计和制造的过程中,越来越多的用户需要把数据在不同的CAD/CAM系统之间转换。由于不同的CAD系统使用的图形系统各不相同,它们表示几何与非几何数据的格式也各不相同,因而给在不同系统间进行的产品数据交换带来了问题。这就需要建立一个统一的数据标准来对模型的数据进行描述和传递。解决这一问题所采用的方法主要是使用统一的中间图形数据格式:即建立一种图形数据的描述格式作为通用标准来进行模型数据交换。目前,国际标准化组织以及其他相关机构制定了作为中间数据的标准格式主要有IGES、STEP、STL。
a.IGES标准
IGES(International Graphics Exchange Standard)是基本图形转换规范,是在美国国家标准协会(ANSI)组织下,由通用电气公司、波音公司等共同协商制定的。在IGES文件中,将产品的信息定义为实体集合,通过实体描述产品的形状、尺寸以及产品的特性。IGES文件格式分为二进制格式和ASCII格式。二进制格式便于处理大容量文件,ASCII格式适于阅读。
b.STEP标准
STEP(Standard for the Exchange of Product Model Data)是产品模型数据转换标准,是由国际标准化组织(ISO)工业自动化与集成技术委员会(TC184)下属的第四分委会(SC4)制定的,ISO正式代号为ISO-10303。它提供了一种不依赖具体系统的中性机制,旨在实现产品数据的交换和共享。这种描述的性质使得它不仅适合于交换文件,也适合于作为执行和分享产品数据库和存档的基础。发达国家已经把STEP标准推向了工业应用。它的应用显著降低了产品生命周期内的信息交换成本,提高了产品研发效率,成为制造业进行国际合作、参与国际竞争的重要基础标准,是保持企业竞争力的重要工具。
c.STL标准
STL(Stereo Iithography)是快速原型系统所应用的标准文件类型,是在计算机图形应用系统中,用三角网格来表现3D模型的。STL格式在逆向工程中的最重要应用就是与快速原型制造相结合。
②去除噪点:无论何种数据采集方式,获得的数据中均存在一定的超差点或错误点,统称为噪点。为了降低或消除其对后续重构的影响,有必要对测量“点云”进行去除噪点工作。常用的检查方法是将点云显示在图形终端上,或者生成曲线,采用半交互半自动的光顺方法对点云数据进行检查调整,但对于数量较大的点云并不适宜。此外,去除噪点的方法还可以采用考虑两个连续点之间的角度,若某点与它前一点的角度超过某一规定值,则剔除该点[48]。
③数据补差:对于一些测量不到的区域,会造成数据空白现象,这使得逆向建模变得困难,需要通过数据插补的方法来补齐缺失数据。目前应用于逆向工程的数据插补方法或技术主要有实物填充法、造型设计法和曲线、曲面插值补充法等。
④数据平滑:数据平滑通常采用标准(Gaussian高斯)、平均(Averaging)或中值(Median)滤波算法。高斯滤波器在指定区域内的权重为高斯分布,其平均效果较小,故在滤波的同时能较好地保持原数据的形貌;平均滤波器采样点的值取滤波窗口内各数据点的统计值,这种滤波器消除数据毛刺的效果很好。实际使用时,可根据点云质量和后续建模要求灵活选择滤波算法[48]。
⑤数据精简:数字化实物模型得到的是大量离散数据的集合,数据量非常巨大,并且存在大量的冗余数据。对于曲面重构来说,这么多的数据没有必要,而且如此庞大的测量点集,有时候会严重影响曲面重建的效率和质量,因此非常有必要进行数据精简。不同类型的点云可以采用不同的精简方式,散乱数据点云可以通过随机采样的方法来精简;扫描线点云和多边形点云可采用等间距精简、倍率精简、等量精简和弦偏差等方法;网格化点云可采用等分布密度法和最小包围区域法等进行数据精简。
⑥数据分割:实际产品只由一张曲面构成的情况不多,产品造型面往往由多张曲面混合而成。数据分割是根据组成实物外形曲面的子曲面类型,将属于同一子曲面类型的数据成组,将全部数据划分成代表不同曲面类型的数据域,后续的曲面模型重建时,先分别拟合单个曲面片,再通过曲面的过渡、相交、裁减、倒圆等手段,将多个曲面“缝合”成一个整体,即重建模型。目前数据分割方法主要有基于边的方法、基于面的方法、基于群簇的方法。
(3)曲面重建技术
曲面重建技术是逆向工程中最为关键的环节之一,其处理速度和质量最终制约着下游的CAD再设计等作业进程。目前比较常用的曲面重构方法有以下几种:利用B-Spline方法来进行曲面重构;利用三角Bernstein-Bézier曲面模型方法来进行曲面重构;用NURBS方法来进行曲面重构等[22]。
①三角Bernstein-Bézier曲面重构:三角曲面又叫三边曲面。该方法是由Bezier曲线扩展得到的曲面,曲面构造重点是在如何提取特征线以及如何简化三角形网格和如何处理多视角等问题。Bernstein-Bézie曲面具有很多优点,如端点性质、凸包性质、对称性、几何不变性等。但是也有以下问题:二次项难以精确表达;需定义矩形拓扑网格;难以用单一B样条曲面片重建任意拓扑曲面;难以同时满足相邻B样条面片间的切面连续和保持面片网与数据点的拟合。
②B样条(B-Spline)曲面重构:B-Spline曲面重构是逆向工程、计算机图形学及CAD/CAM中的重要重构方法。这种方法是通过无序的B样条曲线,减少曲线的约束条件,允许这些曲线在任意方向相交,再利用曲线在曲面上的性质生成曲面。与Bernstein-Bézier曲面相比较,B样条曲面除具有凸包性、变差缩减性等优点外,还具有局部性,即如果改动某一个控制点,曲面只有与其相关的小部分发生变化,其余部分保持不变,这就为在设计曲面时只需修改某一局部的形状带来方便。
③NURBS曲面重构:非均匀有理B样条(Non-Uniform Rational B-Spline)曲面简称NURBS曲面。该方法是在Bézier方法和B样条方法的基础上发展起来的一种对几何形状具有统一描述的曲面造型的方法,其具有在形状定义方面的强大功能和在设计方面的巨大潜在灵活性。NURBS方法由于其强大的优越性,已经成为STEP标准中制定的自由曲线曲面的唯一表示标准,为CAD提供了统一的数学描述方法,并且在曲面造型中得到广泛的应用,成为目前CAD软件中描述产品几何形状的通用方法。
(1)软件简介
PowerSHAPE Pro是Delcam三维CAD的旗舰产品,它集实体、曲面和三角形造型建模技术为一体,充分发挥三者混合设计的优势,同时采用直接建模技术,是概念设计、工业造型和加工建模的理想工具。PowerSHAPE Pro为设计师提供了一个基于CAD的逆向工程方法,使设计师可轻松捕捉产品的原始设计意图,进行逆向设计。可综合使用收缩包裹曲面、圆倒角特征、运用几何曲面和实体等方式来再现原始产品。PowerSHAPE Pro提供了功能强大的再造工程工具,可由任意类型的数字化扫描数据创建精细的CAD模型,并可根据实物进行逆向设计和个性化设计。
(2)PowerSHAPE Pro的特点
①PowerSHAPE Pro的功能特点:
·捕捉原始设计意图,支持范围广泛的扫描技术;
·三角形、曲面和实体逆向/正向混合设计;
·快速、准确地自由曲面创建和编辑;
·Parasolid参数化实体造型与直接建模技术;
·独特的实体诊断器Solid Doctor,帮助查找和修复实体模型中的缺陷;
·面向制造的建模工具,确保设计的可制造性;
·交互式曲面造型,获得完美设计;
·摹仿变形全局编辑(Morphing)专利技术,轻松进行产品创新设计;
·智能曲面工具,轻松收缩包裹曲面;
·直接在曲面或实体模型上包裹几何特征,包括应用ArtCAM浮雕系统,快速便捷地创建新颖别致的设计;
·高级渲染功能;
·完整的工程图绘制;
·和Delcam PowerMILL和Delcam其他产品无缝连接;
·全中文界面,易学、易用。
②PowerSHAPE直接建模技术:PowerSHAPE的直接建模是专门面向制造设计,尤其适合于模具制造前产品的准备阶段使用。PowerSHAPE的直接建模功能使模型设计师能解决产品设计中可能出现的所有常见问题,例如,拔模角太小或是圆倒角尺寸不当等。直接建模比曲面建模更快,可显著缩短工模具生产的总时间。直接建模加之PowerSHAPE中已有的强大数据转换和数据修复功能,极大地扩展了工模具设计师们的设计手段,无论是塑料模、冲压模还是压铸模设计,都可遂心应手。
PowerSHAPE直接建模技术可用于以下方面:
·识别输入几何形体中的特征;
·交互修改已选面,增加拔模角;
·偏置面,提供加工余量;
·移去特征简化加工;
·实时进行复杂编辑。
③独特的实体诊断器Solid Doctor:实体诊断器Solid Doctor是一个独特的实体模型数据修复工具,它简单易用,功能强大,具有超强的实体诊断与修复功能。
Solid Doctor通过Parasolid的检查机制检查出模型中的任何不一致,清晰查看实体中存在的缺陷,并提供自动修复工具来修复那些最常见的不一致问题。如果用户不满意自动修复结果,它也为用户建议相应的手工修复方法,由用户使用PowerSHAPE的全部曲面和形面编辑、修复工具对模型进行修复。对修改的曲面质量满意后,这些曲面可自动整合回Parasolid模型。重复这个过程,直到解决模型中全部不一致问题,得到有效的Parasolid模型。由于用户可全面控制零件模型的修改,即使是质量十分差或损坏十分严重的模型,通过Solid Doctor也可快速、有效地得到修复。经它修复转换过的模型可直接用于任何基于Parasolid的系统。
④摹仿变形全局编辑:摹仿变形全局编辑(Morphing)允许设计师将一组实体或曲面变形为不同形状。形体中的所有特征如圆倒角、裁剪、壁、筋和凸台均保持不变,即使形体形状已完全改变。
摹仿变形全局编辑可用于以下方面:
·增加几何设计特征;
·局部编辑,如闭合间隙;
·制造过程的变形补偿,如下陷和回弹;
·在模型中增加拔模角;
·产品特征设计,如将鞋底包裹到新尺寸的鞋帮上;
·进行摹仿变形全局编辑操作后,还可轻松地对摹仿变形全局编辑后的形体再进行编辑。
(3)鞋楦的逆向流程
①导入鞋楦点云数据:单击导入数据按钮,导入数据,如图5-12所示。
图5-12 鞋楦模型的导入
②将点云数据转换为STL格式:单击产生网格工具,将点云数据转换为STL格式。
③删除多余碎片:由于扫描得到的点云数据有很多碎片,因此需要将其删除。将网格分离成多个网格工具,选择多余的碎片删除,得到如图5-13所示的模型。
图5-13 删除模型中多余的三角片
(a)概览视图(b)详细视图
④修补破洞:选择使用不联系套索在网格上拾取三角形工具,选择要修补的破面,如图5-14所示。最后,将其余修改的地方调整完毕后,得到所需模型。
图5-14模型修补
(a)选中需要修补的区域(b)修补后的效果
⑤局部光顺模型:选择光顺工具,如图5-15所示,选择需要修改的局部进行处理。
图5-15模型局部光顺处理
(a)修补工具(b)修补前(c)修补后
⑥整体光顺:选择整体光顺工具,将模型进行修改,如图5-16所示。
图5-16 全局光顺
至此,我们就完成了鞋楦的逆向工作。将文件储存为格式后,可以导入数字化设计软件中进行其他步骤的工作。
在曲线的交互设计中还有一类问题,就是以网格模型为基体,在任意弯曲的空间网格模型表面进行自由曲线的设计,同时严格保证曲线附着于网格表面。这类问题称之为曲面上的曲线设计,在自由曲面上构造曲线是一种非常实用的造型技术[49,50]。
国内外对曲面上曲线的生成方法已有一些研究,研究的曲面主要以参数曲面为载体。Ken Shoemake[51]通过对四元数的插值,完成了曲面上的曲线插值,曲面以球面为主。张怀[52]提出利用大圆弧代替直线段,将欧氏空间中的Bézier样条插值方法推广到球面上来构造插值曲线,并研究了限制在光滑曲面上的G1曲线插值方法。蔺宏伟给出了一种在光滑曲面上保持G1连续的样条曲线插值技术[53],方法是构造一条插值曲面上已知点阵列的空间3次Bézier样条曲线,然后通过一张直纹面将这条空间插值曲线投影到已知曲面上,得到限制在已知光滑曲面上的G1插值曲线。
《微分几何讲义》[54]中有一种将曲面上某点的局部邻域映射到平面的方法。指数映射局部微分同胚的性质,可以保证局部网格参数化的有效性。将指数映射的理论应用于网格模型,称之为离散指数映射。基于离散指数映射的参数化是一种非常有效的参数化方法,结合流形网格曲面上测的B样条插值方法和指数映射理论,创新性地实现了网格曲面上测地B样条曲线的复用。在网格曲面上生成K次测地B样条曲线的算法思路是:
首先给定三角网格曲面模型G和位于网格曲面上的m+1个型值点Q∈G(j=0,1,…,m)。其次,由各型值点之间的最短测地距离按照积累弦长参数化方法进行数据参数化,得到各型值点的参数值。类似于经典B样条插值理论,在端点处取K+1重节点的固定条件,且取规范定义域,这样可得欲求曲线的节点矢量,然后由插值条件确定欧氏空间中各控制顶点。最后,将得到的控制顶点投影到网格曲面上,用由曲面上控制顶点间的最短测地线代替欧氏空间中的两点间直线,由两点间的测地距离代替欧氏空间中的直线距离,得到一条初始测地B样条曲线,计算各插值点到其在曲线上对应点的测地距离,即插值误差,按照误差反向补偿策略,更新型值点,重复上述过程,直至误差满足精度要求为止[55]。生成B样条曲线的同时,把计算出的控制顶点按顺序存取,作为后续步骤的重要信息。
建模技术是CAD系统的核心技术之一,是计算机辅助设计的基本手段。目前三维建模的主流方式主要有两大类,即多边形建模和曲面建模。
(1)多边形建模(Polygon建模)(www.xing528.com)
多边形建模是把三维物体细分为若干空间内闭合的多边形(一般为三角形)。首先将一个对象转化为可编辑的多边形对象,然后通过对该多边形对象的各种子对象进行编辑和修改来实现建模过程。对于可编辑多边形对象,它包含了Vertex(节点)、Edge(边界)、Border(边界环)、Polygon(多边形面)、Element(元素)5种子对象模式,与可编辑网格相比,可编辑多边形显示了更大的优越性,即多边形对象的面不仅可以是三角形面和四边形面,而且可以是具有任何多个节点的多边形面。
(2)曲面建模(NURBS建模)
NURBS是NonUniform Rational B-Splines的英文缩写。是先由曲线组成曲面,再由曲面组成立体模型。曲线有控制点可以控制曲线曲率、方向、长短。一般来讲,首先通过曲线构造方法生成主要或大面积曲面,然后进行曲面的过渡和连接、光顺处理、编辑等完成整体造型。
在鞋类生产中,可以直接投入生产的是二维样板。将立体的三维款式通过CAD系统展开得到实用的二维样板,是三维曲面展平技术的最终目标。鞋类曲面的二维展开一直是计算机辅助设计领域普遍关心的问题,也是数字化设计中的一个重要环节。三维款式曲面基于鞋楦造型曲面,而鞋楦一般都是较为复杂的曲面。因此,三维曲面展平应满足:样板面积在展开前后变化量最小以及展平过程中形状、边界长度与夹角关系在展平前后应尽量保持不变的特点。目前曲面展开的方法主要有三种:有限元曲面展开法;测地曲率曲面展开方法;分割复杂曲面为条状区域,用直纹面逼近条状区域,再将直纹面进行三角网格分割,最后展开曲面的方法。
曲面类型按照复杂程度和计算生成算法可以分为简单曲面和复杂曲面两种[56]。简单曲面大部分为可展曲面,其高斯曲率处处为零,包括柱面、锥面和切线平面等。可展曲面展开前后存在等距相对应关系,其展开是精确的。而复杂曲面通常是贝塞尔(Bézier)曲面或非均匀有理B样条(Nurbs)曲面,大都为不可展曲面。对于不可展曲面的展开主要是采用化曲为直的方法,与前者相比,其展开曲面和原始曲面有一定的误差,因此这就要求在展开过程中将误差控制在预先设定的精度范围内。
复杂曲面展开方法分为三类:几何展开法、力学展开法和几何展开/力学修正法。
(1)几何展开法
这种方法一般是从曲面的几何特性出发,按一定的规则,例如保持面积不变、边界长度不变等,将整张曲面展开到平面上。马泽恩等[57]提出了利用自适应分片技术把拓扑结构复杂的曲面展开为平面的方法。首先把CAD/CAM常用的参数曲面转化为三角剖分模型,求出曲面的伪直母线;然后基于伪直母线对曲面进行自适应分片;最后展开每一片曲面区域。该算法可以直接应用于计算机辅助设计制造和计算机图形学的纹理映射,也可以应用于实际工业造型中的后续处理。
(2)力学展开法
毛昕等[58]提出一种基于弹簧能量模型的曲面展开算法。首先采用三角片模型来表达一个曲面,将平面三角形网格视为一个弹簧质点系统,系统的物理量与某些几何量相对应,如力、弹性变形能及质量由网格节点间的距离和三角片的面积确定。当前网格与展开后的形状差别可视为一种储存在弹簧质点系统中的弹性变形能。通过使弹簧质点系统变形,由初始平面映射得到曲面展开的最终形状。
(3)几何展开/力学修正法
这种方法是先将成型零件几何展开,把曲面划分成一系列条形区域,再用若干直纹面分别逼近每个条状区域,展开每个直纹面,然后每个直纹面的展开曲面转到同一平面上。第二步是力学修正,由于没有考虑工程因素,零件的几何初始展开曲面图形不是唯一的,不封闭,有缝隙和重叠,因此需要修正。其修正过程是:在初始展开面上的缝隙中增加若干条状面,将零件的材料特性赋予初始展开面;对初始展开曲面进行有限元网格划分,施加载荷,使缝隙封闭;用样条曲线逼近展开后的轮廓外形,从而得到零件的最终展开形状。
在三维曲面到二维样板的展平过程中,同样要解决数据转换问题。目前,在图形数据处理方面,Autodesk公司的AutoCAD软件已成为计算机辅助设计软件风向标,其图形交换文件(*.DXF)和图形文件(*.DWG)已成为事实上的工业标准。目前有很多CAD软件均能够识别和生成这两种数据文件。
(1)DXF格式
DXF是一种开放的矢量数据格式,可以分为两类:ASCⅡ格式和二进制格式;ASCⅡ具有可读性好的特点,但占有空间较大;二进制格式则占有空间小、读取速度快。由于AutoCAD是现在最流行的CAD系统,DXF也被广泛使用,成为事实上的标准。绝大多数CAD系统都能读入或输出DXF文件。
(2)DWG格式
DWG是AutoCAD公司创立的一种图纸保存格式,已经成为二维CAD的标准格式,很多其他CAD为了兼容AutoCAD,也直接使用DWG作为默认工作文件。
排料过程是将多个二维样板通过一定的排列方式覆盖于原材料表面,并通过切割或是裁断设备提取样板实物的过程。排料的好坏决定了制鞋企业生产制造的成本高低。传统的排料方式[59]是把1∶1比例裁片的样板放在布料上进行试排,并记录下各种排料方案。接着再从所有方案中选择最佳的一种方案,并根据该排料方案绘出排料图,然后才在布料上进行裁剪。计算机鞋片自动排料系统首先要解决计算量的问题。要努力减少计算量,提高运算速度;其次要提高利用率,使计算机排料所得到的利用率接近或超过人工水平。
排版核心技术就是在二维平面中排版多种不规则样板,使原材料的利用率最高。与矩形样板的排版相比,不规则样板的排版则要困难得多,二维不规则样板的排版属于最复杂的组合优化问题,这是由其复杂的几何形状以及不同组合产生相异的排版效果引起的。由于样板形状的不规则,不同的靠近、接触判断等处理复杂,不同的次序组合、旋转角度等都可能导致不同的排料结果。
(1)排版常用的算法[60]:
①近似矩形法:即把单个或几个不规则零件组合成矩形单元,然后对矩形单元进行排料。
②启发式推理方法:此方法模仿人工排料,定义大量的规则,使用启发式推理方法,由计算机决定排料方案,不需要人的参与。但组建这样的系统需要丰富的经验。
③智能优化法:即以最小浪费率为目标函数,采用诸如人工神经网络、模拟退火法、遗传算法等智能优化方法,在整个空间中进行搜索。
(2)其他基本算法
①NFP(No-Fit-Polygon):在鞋片排料中,首先遇到的问题是在二维平面上当一个多边形的位置确定以后,求另外一个多边形与它正好相碰,但不相互重叠的位置,称为NFP问题。
对于凸多边形来说,其NFP比较简单。剪下两个多边形,将其中一个固定,记为A,另外一个记为B。B沿着A按逆时针方向平移一周,使得B的顶点或者边在A的顶点或者边上运动。这时可以发现,移动B的规则是,先在多边形B上任意选一个顶点bj,在A上也相应选一个顶点ai,使得B以定位点定位ai上时,两多边形不重叠,这时记下B的相关点此时所处的位置。接着平移B,试着将bj定位在A的下一个顶点ai+1上,如果这时候不重叠,则记下此时B的相关点的位置。接着重复上面的过程,如果这时候A、B重叠,则放弃考虑ai+1,仍在ai上将B的下一个顶点bj+1与其重合,同时记下B的相关点的位置,然后接着重复上面的过程。当B平移一周以后又回到ai上时,整个过程结束。这时,将所记下的B相关点所经过的各个位置用直线连起来,就得到了B的相对于A的NFP。
②平移算法:首先,根据鞋片的选取规则从余下的多边形中选取一个待排多边形,得到该待排多边形的顶点序列。然后将该待排多边形平移到已排轮廓多边形的右上角,并执行循环结构,调用多边形相交判断算法,判断待排多边形是否与已排轮廓多边形相交,如果不相交,则继续以一小步长向左平移,执行水平方向的相交检测循环。如果仍不相交,则继续以一小步长向下平移,执行垂直方向的相交检测循环。直到与轮廓多边形刚好相交,该待排多边形排放结束。取出下一个待排多边形继续排放,如此循环直到待排序列中所有多边形都排放到排料区域内。
③旋转算法:在鞋片的选取过程中,比较所有未排多边形排放后的材料利用率大小来确定下一个待排多边形,对于同一片鞋片,则根据旋转前后(这里只比较四个方向:90°、180°、270°、360°)计算得到不同的利用率,最后选取使排放后所得材料利用率最大的多边形为下一个待排多边形,然后平移该待排多边形确定其最后的排放位置。
渲染是模型生成图像的过程。渲染技术分为真实感渲染和非真实感渲染。真实感渲染是模拟生活中各种真实存在的视觉现象,力求最大程度还原其真实感。而非真实感渲染并不追求真实感,而是追求一个艺术效果[61]。
渲染工程的关键技术在于以下几方面:渲染体系架构、着色器、场景、光线、纹理。
目前主流的渲染体系为OpenGL和Direct3D。Direct3D是微软专门推出的一个底层图形渲染API;而SGI公司也发布OpenGL——一个跨平台标准图形API。两者都是为了同一个目的而诞生的,作用几乎是一致的,两者所使用的渲染管道也是基本一致的:同样需要使用顶点定义空间坐标、颜色、几何图元形状等。
渲染体系架构中核心技术是图形渲染管道,是指把一个3D场景转换成可以在显示屏显示出来的2D场景的一系列步骤。渲染管道的主要步骤包括:
(1)3D几何图元
一个场景是由几何图元组成的,一般都使用三角形,三个顶点信息就构成一个三角形。
(2)坐标变换
开始各几何图形都处于各自的局部坐标,通过图形变换到统一的世界坐标。然后一般需要进一步图形变换,把所有几何图形转换到视野坐标,也叫摄像头坐标,因为是以摄像头作为原点的。最后把场景投射成一个2D场景。转换之后,顶点坐标的X和Y轴表示其在2D投影的位置,而Z轴会保留给深度缓冲算法使用。
(3)光照计算
任何场景内的物体都会受光照的影响,该步骤根据光照模型,计算由光照影响之后物体的颜色。
(4)背面消隐
一个多边形有两边,分正面边和背面边,如果正面边挡住了背面边,那么可以直接剔除背面边,这就是“背面消隐算法”。
(5)裁剪
几何图元不在视觉维度之内的是不可见的,在这一步去除不可见的几何图元。
(6)视窗转换
视窗一般和后台缓冲区是一样大小的,通过设置视窗,可以把3D场景渲染到屏幕的任意位置上,比如把后台缓冲一分为二,那么可显示在屏幕上是两个视图,又或者只在窗口的中间部分设置一个视窗渲染3D场景,而周边可放置控制按钮。
(7)光栅化
光栅化主要是复杂计算像素的颜色,从这个步骤开始,所有操作都是以像素为单位进行操作的。
着色器是可以在GPU中执行的代码,着色器的主要作用是渲染展示到屏幕前,对图像进行处理,这种处理主要是确定各个像素的颜色。着色器的原理如图5-17所示。
图5-17 着色器的原理图
(1)顶点着色器
输入和输出数据都是顶点信息,GPU自动对每个顶点都调用顶点着色器。一般来说本步骤都会进行世界坐标变换、视野坐标变换、投影坐标变换等;可以修改几何图元的顶点位置、颜色和纹理坐标等,根据需要本步骤也可变成实现各种特效,如物体变形、水底看物体效果等。
(2)像素着色器
像素着色器是DirectX的命名,OpenGL叫片段着色器。功能主要是使用顶点信息,通过插值算法计算出每个像素的最终颜色,可以是简单的颜色插值算法,也可以处理光照、反射、阴影等特效。
(3)曲面细化着色器
曲面细化就是把网格的三角形分为多个更小的新三角形组成,这些新的三角形新构成了更加细腻的网格。
(4)几何着色器
几何着色器的主要作用是可以创造新的几何图元或者根据需要消除几何图元,几何着色器处理的是整个几何图元数据,几何着色器的输入几何图元和输出几何图元可以是不同的种类。
场景图是一种图形数据结构,是管理父母节点(parent’s dots)影响孩子节点(children’s dots)的分层数据的方法,场景图可以很清晰地表示物体间的转换关系,一般是一种树状结构,如图5-18所示,根节点是World,中间节点是Internal,叶子节点是Leaf。场景图的应用主要有管理场景物体和加速渲染,也可以用在管理物体可视化属性,包围盒,一组物体的动画层次。
图5-18 场景的图形数据结构
当需要计算光线照射到一个物体表面后的颜色,我们需要考虑光线本身的颜色,光线照射到某一表面后,可能被吸收、反射或折射;入射到表面的一部分光被表面吸收转换为热量;折射主要发生在水和玻璃等有一定透明度的物体,光线投射过这些物体后方向改变了;而一般物体都会发生反射,物体的颜色主要是由反射光的强度决定的。
(1)环境光(ambient)
由于局部光照模型一般不考虑从场景中其他物体发射过来的光,那么就会使得某些场景失真,现实中很多我们看到的光都是间接反射过来的。环境光的公式如下:
式中 La——光照颜色,可以使用一个向量表示La=(RL,GL,BL);
Ma——材质颜色因子,也可以使用一个向量表示La=(RM,GM,BM)。
式(5-1)展开后可得式(5-2):
(2)发散光(diffuse)
如果一个物体表面是粗糙的,那么当光线触碰这个表面的时候就会有随机的散射效果,这种散射效果就是使用发散光模式。公式如下:
式中 Ld——发散光颜色向量;
Md——发散光材质向量。
虽然发散光和观察角度无关,但是根据Lambert余弦法则:
式中 F(θ)——发散光模型;
L——光入射的反方向;
n——表面的法线。
因此,最终的发散光模型为
(3)镜面反射光(specular)
如果在一个十分平滑的表面上,当光线碰触表面的时候,光线就会集中地反射到一个方向,形成一个锥形的反射光体,如图5-19所示。
越是光滑度高的球面,反光就越是刺眼,锥形范围越小,反射光束越集中;反之亦然。
图5-19 镜面反射光示意图
其中,Ks=cosϕSp=max(V×RSp,0)
式中 Ls——镜面反射光颜色向量;
Ms——镜面反射材质向量;
V——视野向量;
R——中心向量;
Sp——控制视觉锥形范围的因素。
(4)光照模型合成
把发射光、环境光、发散光和镜面反射光模型合起来就得到最终的基本光照模型公式:
式中 Ce——发射光模型;
Ca——环境光模型;
Cd——发散光模型;
Cs——镜面反射光模型;
Me——发散光颜色因子。
(5)光的衰减计算
通常光在传播进程中会不断衰减,对于平行光,如太阳光,在一个场景中是不计算衰减的,其他光一般都是离光源越远,光的强度就越小。
式中 I0—开始时候的光强度,
d——距离。
简单来说,纹理就是由一幅图片创建的,纹理的坐标是使用一个二维坐标(U,V)代表这张纹理的坐标,其U和V的范围都是[0,1]。通过设置3D物体在空间中的坐标(X,Y,Z)和(U,V)的一一对应关系,达到把一幅图片映射到3D物体表面的目的。球形纹理坐标映射需要把笛卡尔坐标(X,Y,Z)转成球形坐标(ρ,θ,φ),根据几何学的转换公式如下:
如果θ在1或4象限,
如果θ在2或3象限,
θ范围是[0, 2π],φ的范围是[0,π]。
(1)立方映射
立方映射就是保存六面纹理,然后映射到立方体的六面,一般立方体的中心和某坐标系的中心重合,而立方体的边和坐标系的轴对齐。其六个面分别是面向X轴正负方向,Y轴正负方向,Z轴正负方向,可以分别产生六张纹理,然后合并起来成为立方映射需要的纹理。
(2)环境映射技术
立方纹理映射的技术主要是应用在环境映射中,就是产生一个包括天空、远景、地形在内的立方环境,通常这个环境的周围纹理可以看作是离镜头无限远,产生无限远的视觉就是以镜头为原点,并随着镜头移动而更新,所以无论镜头如何移动,镜头和周围环境的距离是不变的。
(3)法线映射技术
简单的纹理映射技术无法反映更多的细节,例如墙上的裂缝、抓痕、凹凸不平等。为了增加真实感,可以使用更多的三角形构成网格,或者人工增加这些细节,但是这样做的代价非常大,而且人工增加细节纹理,到了应用光照的时候也无法很好反映这些纹理的光照变化,因为表面纹理虽然是凹凸不平的,但是实际物体的网格却是平坦的,其光照使用的法线是由网格三角形的顶点确定的,那就无法反映出光照在纹理看起来是凹凸不平的表面时的反射规律。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。