青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 5883|回复: 5

[分享] 逆向工程的应用研究和发展

[复制链接]
发表于 2010-3-16 09:05 | 显示全部楼层 |阅读模式

摘要:逆向工程是设计恢复的过程,是对遗产系统的有效利用。本文阐述了逆向工程相关的基本概念,介绍了国内外在此领域的研究现状,并且结合我国的具体情况,探讨了逆向工程在军事领域的应用及今后的发展目标。# k$ X2 L4 P5 M5 j0 F1 @1 X- f" t
关键词:计算机软件;逆向工程;综述;遗产系统;再工程;重构) [; `8 l3 ]/ d
6 M* G# W& E. _. V' u/ N  A
1 引言
/ m. g, D1 O' e8 F5 _9 S    软件维护是软件开发中最昂贵的一个阶段,占总开发费用的70%以上,很多原因(比如业务需求改变、科技基础设施现代化等)使得软件系统需要经常更新和改进。一个系统、特别是一个大型遗产系统的维护工作非常困难。由于时间紧或其他原因开发人员忽视代码的文档记录工作,几个月后开发者本人可能都不太清楚代码的逻辑,并且在软件产业中人员流动频繁,对于新加入的程序员,他们首先要花大量时间研究所需要继续维护的软件系统结构,如果软件实现思想没有被很好地记录下来,新加入的开发者可能会曲解这些代码的行为,然后想当然地改变它们。经过几次这样的过程,这个系统已经变得特别难维护,如果重新开发又会使以前投入的人力和财力浪费掉,因此在这种情况下就非常需要借助工具理解现存的代码,逆向工程的方法和工具也就成为了人们关注的热点。
9 N- \! [9 d9 m& P6 T. ^2 逆向工程的基本概念) i# k1 \( s7 P* B- E4 X
2.1 定义及相关术语
8 X# ^$ P5 `& s, ?    逆向工程(reverse engineering)被定义为分析软件构件和它们的相互关系,从而在较高抽象层次上描述该软件。这个术语最早出现在硬件技术中,指获取对复杂硬件系统的描述过程,现在这个概念转移到软件上。Chikofsky和Cross给出了相关的几个术语的定义,图1显示它们之间的关系。5 c  a  c8 ^& {3 u4 n! `
) Q, P1 i7 H. y! V1 K: v
a)正向工程:从高层抽象和设计到低层实现;* g8 Y9 f2 ~! G- s7 I' k
b)逆向工程:正向工程的反转过程,限定到调查系统但并不改变系统;' a% \# c( i" G& Q  \
c)再文档:主要是在同一抽象层次做语义等价描述,实际上是逆向工程的一种简单形式;
) ?- Q+ Y6 {2 A, K  }9 Rd)设计再现:利用领域知识和外部信息在较高抽象层次产生系统的等价描述,这样要使用除了源代码外的很多信息;; b3 U: ?* l$ d7 {4 G
e)重构:在同一抽象层次把系统从一种表示方式转换到另一种表示方式,一个重要方面是新系统和原始系统的语义行为应该一样,而且功能也不能变;
! P' }/ e: m  ef)再工程:目的是研究系统,产生较高抽象层次描述,增加新功能到这个描述,使用正向工程技术在原始系统的基础上开发一个新系统。3 K' Q( q: j% Y6 `4 K1 M0 Z( S
2.2 目的和意义
) B! g2 K+ _; `    逆向工程的目标是理解一个软件系统以便于更容易地进行增强功能、更正、增加文档、再设计或者用其他的程序设计语言再编码。对一个程序维护者来说,可能重要的一点是能以其他方式而不是靠读源码看到程序关键的部分。逆向工程工具支持产生程序的高层抽象,使维护者更容易理解程序,重用旧代码,以及准确加入新功能,避免死码的产生。这正是逆向工程工具的研究目的和意义。8 I" L/ @' S8 w4 m$ d! m
    目前很多逆向工程工具支持创建关于程序的结构或执行的各种视图。在正向工程中图形被用于可视化程序,在逆向工程中可以产生一些视图,利用这些视图可以修改现存的文档,避免源代码与文档的不一致性,更方便维护者理解程序的行为。
7 M$ Y* C0 Y* ?2 M/ C3 逆向工程的研究现状
3 i% X0 ^0 a( v  L7 X3.1 国外的发展
# s3 S/ e! r) p* E. ]    从已经搜集到的文献中看,国外应用于逆向工程软件工具很多,它们主要提供三种类型的能力:一是常规的静态模型逆向产生能力,从某种特定语言的源码或编译后的目标码转换出静态模型(如类图、活动图、控制流图等);二是动态模型逆向产生能力,将程序运行过程中的标志性信息进行搜集、存储和整理,再转换成相应的动态模型(如序列图、状态图、协同图等);三是扩展的静态模型逆向产生能力,将常规的静态模型逆向产生能力加以扩展,以体现静态模型的领域特征、提高静态模型的抽象层次或者表现形式,以利于理解和使用。
& o) |" v: X+ B: u, [$ c% o下面分别给出提供这三种类型能力的典型工具:
0 g  K6 Z5 ~, ^+ xa)常规的静态模型逆向产生能力
& Q+ e+ v, D0 @/ Z1 ~2 \1 d    Rigi是一个很有名的可扩展、可裁剪的逆向工程环境,主要由三部分构成:Rigireverser(程序静态信息解析器,可以支持C, COBOL等语言)、Rigiserver(程序静态信息库,用于存储从源代码提取的信息)、Rigiedit(交互式的窗口图形编辑器,以图形交互方式展示和操纵程序静态信息)。
. v" c" z5 z; D+ V$ }, A  K    Rose/Rose RealTime (Rose RT)提供了逆向工程工具,可以从多种程序设计语言源程序中自动产生静态设计模型,但目前只能产生类图。& h- c  Z, g: Q4 i9 o% H8 `8 P
b)动态模型逆向产生能力
) b6 D' s: I' A5 Q7 E* F6 ~    SCED是一种支持面向对象动态建模的环境,可以产生剧情图(类似于UML中的Sequence Diagram)和状态图(类似于UML中的Statechart Diagram). SCED基于OMT方法,也可用于其它方法,尤其是以剧情驱动的方法。
3 }5 N$ q  U0 L8 m) oC)扩展的静态模型逆向产生能力
# Q# m0 v: b( P  W: b. b  C    Rose/Architect是USC (University of Southern California)与Rational合作开发的一种可视化工具,用于对UML类图中的实体进行基于规则的等价合并,以突出地呈现系统的软件体系结构成份。
" }# h  ^" H' E0 M3.2 国内的发展
$ L0 B, W, V" v    国内开发的用于逆向工程软件工具很少,现在主要是青鸟程序理解系统JBPAS (Jade Bird Program AnalysisSystem),它是一个针对C++语言的程序理解系统,由一个C++分析器前端和一组分析工具组成。该系统是北大青鸟基于异构平台、具有多信息源接口的应用系统集成(组装)环境有导鸟III型(JB3)系统拍勺组成部分。该系统针对C++语言,采用增量分析技术对程序源代码进行静态分析;用EER(Enhanced Entity-Relationship)为C++程序建立概念模型并抽取程序信息,将信息保存在数据库中;按照不同的用户需求组织程序信息,辅助用户理解C++程序;逆向生成源程序的OOD (Object-Oriented Design)文档和Rose文档(但实际所需的时间很长,对于10万行源代码的程序,大约需要6小时)。! N) C' ~6 P+ O* F  B% `! H& u
4 逆向工程在军事领域的应用
$ A  V* i& n2 o1 l4.1 军事领域对逆向工程工具的要求: I2 f) o% S, h+ V; S8 @
    军事电子信息系统是软件密集、结构复杂的大型信息系统。作为高技术战争的重要装备,军事电子信息系统的研制和维护必然立足于国内,必须采用先进的、实用的、符合中国国情的系统分析、设计和实现技术,以及相应的开发环境与工具。
  X- e% m2 v% Q    “九五”以来,我国军事电子信息系统的主要研制与建设单位对采用先进技术和先进工具给予高度重视,开始用面向对象等先进技术进行系统分析、设计与实现,其中使用很普遍的是统一建模语言(UML)和Rational开发环境与工具(如Rose, SODA, C1earCase等)。近年来,一些单位已经将UML, Rational开发环境与工具应用于军事电子信息系统型号项目的研制,培养了一批熟练的开发和管理人员。但是通过几年的应用实践,也发现了一些巫待解决的技术问题,在很大程度上影响着军事电子信息系统的开发质量、开发速度、开发成本。这些问题卞要集中在以下两个方面:- i! j$ k1 {& n: m2 y: N- Q
    a)保证需求变化后模型与程序的一致性
6 L+ k) _/ F/ b- ^& e- l8 I& z0 H    我国军事电子信息系统中研制需求变化是客观事实,并且由于研制周期缩短,需求变化往往发生在研制后期,这就引起了很多问题。需求发生变化或在现场维护程序时都会引起分析设计模型的变化,由于Rational环境与工具仅支持源程序静态模型的自动修改,所以对于费时费力的动态模型修改由于时间限制可能就被放弃。这样与动态模型相关的文档就很可能与源程序不一致。即使是时间允许也不能保证分析、设计人员建立的动态模型与源程序的必然一致性。但是,对于军事电子信息系统这样以分布、并发为主要特征的系统,其主要设计内涵恰恰是由动态模型来描述的,因此动态模型与实现的不一致,直接降低了研制单位、开发人员对开发
, o& ^+ d/ V2 @& o5 N) I方法、工具与环境的信任程度。
3 G7 e8 z- q/ {& R  t# d    b)提供不同抽象层次的静态模型* \9 J) m0 @/ Z) D& G
    以往成功的军事电子信息系统开发经验表明,开发队伍中拥有对此类系统的框架十分熟悉的技术人员,以及能够根据这些框架实现系统总联与配置的技术人员,对于系统开发的成功是至关重要的。但是,这样的关键技术人员出现流动是不可避免的,如退休、调动、辞职等。一旦出现了关键技术人员的流动,就可能出现以下问题:已有文档中的框架描述和静态模型可能与程序不一致;正向建立的静态模型可能没有正确体现抽象层次较高的程序框架。/ K% u: a7 n6 B! Z9 V$ u
    最根本的解决办法是用工具从源程序中抽象出不同层次的静态模型,其中包括系统框架层。但是,目前Rational工具对源程序到类图的自动转换是机械的,有较大的局限性:5 _) }# w/ B+ H: ~5 I6 d
    如果该源程序过去就是用Rational工具产生的,则由于在其注释中加入了模型信息,使得逆向产生的类图与正向建立的相同(包括包结构)。但是在实际应用中,完全可以通过软件过程管理等手段要求开发人员先对类图进行修改,再重新生成源程序代码框架(这时Rational工具可以自动保证以前人工编制的程序保持不变),因此实际上这种情况下可以不用逆向工程工具。# }# ?# n9 }. o
    如果该源程序不是用Rational工具产生的,则使用逆向工程工具就是有意义的。但是,这时逆向产生的类图包含了许多并不是类的结构实体,对于类之间的关联也不加区分地展示,使得所产生的类图错综复杂、没有层次,如同蜘蛛网一般,需要有经验的设计人员进行较长时间的人工加工后才能使用,因此这种功能实际上很少在工程中应用。0 Z  A4 F( d7 f  q
4.2 需求分析* q7 Q" U( ^9 O
    针对第一个问题引出的需求是:提供一种工具,它具有一定的层次分析与过滤能力,能够根据不同的抽象层次要求,从同样的源程序中逆向地产生不同抽象层次的静态模型,对系统框架的理解起计算机辅助作用,并使得这样的静态模型在Rational开发环境中与正向建立的静态模型具有相同的表示,以便对其进行人工修改和自动生成士档。, |: [$ T6 x. g  c7 g7 A
    针对第二个问题引出的需求是:提供一组工具,以支持从源程序逆向地产生相应的动态模型77,如符合UML标准的序列图(Sequence Diagrams)、状态图(Statechart Diagrams)、协同图(Collaboration Diagrams)等,并使得逆向产生的上述动态模型在Rational开发环境中与正向建立的动态模型具有相同的表示,以便自动生成文档。6 r+ c  O* N% ~; \. Y
5 解决方法
) x7 s8 v7 O2 m& e. g. b+ R3 w- R6 W+ N    基于上述项目需求,逆向工程开发工具的研究目标如下:" P8 d3 j0 k1 p- `$ ]
    a)军事应用的研究目标:研制一组逆向工程工具,以提供符合UIVL标准的动态模型的逆向生成、符合UML标准的静态模型的逆向生成与分层抽象等方面的能力;将这一组工具无缝集成到Rational开发环境中,并与该环境中的其他工具协同工作,以扩充Rational开发环境在逆向工程工具方面的支持能力;在将研制结果应用于实际系统开发后,为提高我国各类军事电子信息系统的面向对象开发、维护和重用水平提供有效的、实用的支持。
8 T* p: P  v0 g: r: k& z% Z0 `3 P    b)技术发展的研究目标:突破所涉及的逆向工程关键技术;这些关键技术的突破,可以为军事电子信息系统及民用系统开发的其他方面提供相应的技术基础,如程序理解、遗产系统(Legacy Systems)改造、测试用例生成、自由软件重用、软件维护、程序验证等。

 楼主| 发表于 2010-3-16 09:06 | 显示全部楼层
唐伟 (山东大学机械学院,济南250061)2 P- @5 B2 [( Z0 a$ r+ }4 q( D
, b8 a. W  @. k/ k5 G5 P
摘要:本文介绍了逆向工程的工作过程、设备和主要技术,特别是三维激光扫描机和逆向工程软件,指出了逆向工程软件与普通CAD/CAM软件的不同,介绍了逆向工程的应用领域,对此项技术在我省的普及和应用,将会起到积极作用。
6 x" R: x6 I8 z# H, k) O  Y. R关键词:逆向工程;三维激光扫描(抄数)
- N+ a3 ~/ o) K% T( G" d
" g2 m: Y1 k: \2 d9 \一、什么是逆向工程) c9 f: N! v0 M7 ], }0 b- x' e7 w
    随着科技的发展和人们生活水平的提高,产品的性能和外形发生了很大的改变,原来粗大笨重的产品,正在被小巧玲珑,造型别致的产品所代替,工业产品设计正在成为一种热门的行业,根据人机工程学和美学原理设计的各种使用方便、线条流畅的产品,如轿车、家用电器等,随处可见,这些产品一般都是由一些空间自由曲面组成的,用传统的方法很难设计、制造出来;为了设计、制造这类产品和相应的工装具,必须使用CAD/CAM,多轴加工中心等先进技术,现代逆向工程技术就是在这祥的背景下产生的。) c! e' p) ^& |2 s8 o
    逆向工程RE (Reverse Engineering,也称反求工程),是对产品设计过程的一种描述。在工程技术人员的一般概念中,产品设计过程是一个从无到有的过程,即设计人员首先在大脑中构思产品的外形、性能和大致的技术参数等,然后通过绘制图纸建立产品的三维数字化模型,最终将这个模型转人到制造流程中,完成产品的整个设计制造周期。这样的产晶设计过程珊们欢去“正向设计”过程。
1 [( U7 B7 s+ I0 {$ f' Y1 r    逆向工程产品设计过程如图一所示,可以认为是一个“从有到无”的过程。简单地说,逆向工程产品设计就是根据已经存在的产品模型,反向推出产品设计数据(包括设计图纸或数字模型)的过程;它针对现有的工件(样品或模型)利用3D数字化量测仪器准确、快速的测量出工件的轮廓坐标,并加以编辑、修改、建构曲面后,传至一般的CAD/CAM系统.再由CAM软件产生刀具的NC加工路径送至CNC加工机床,制作出所需模具,或者送到快速原型成型机,将样品模型制作出来。逆向工程在某些方面很像我们常说的“仿制”;可以说,在我国正在成为世界制造中心的今天,逆向工程将大有用武之地。! x2 b2 B- }) I% j1 j$ [! k
, P* ?% X3 p+ Y
二、逆向工程系统的组成
+ g( ~! t& y% d% ^5 ~. [/ N* G    从逆向工程流程图(图一)可以看出,逆向工程首先须使用精密的量测系统将样品的三维轮廓尺寸快速地测量出来,然后依据得到的数据做出曲面造型及加工。故建立一套完整的逆向工程系统,须要下列基本配备:1、测量机(也称抄数机)2、点群数据处理软件,即逆向工程软件,玉CAD/CAM/CAE软件,,4,CNC机床,5、快速成型机或塑料射出成型机、轧出机、饭金成型机等。
. a6 T3 w) q5 l' V* o   常用的测量机有:三维激光扫描机、三座标测量机、多轴关节式机械臂等。其中。0 J6 O& q. D! M2 g: c
    三维激光扫描机:属于非接触式测量,具有测量速度快,可测量柔软物体,不会损坏工件表面等优点;但测量精度较低,一般10-100μm。多用于自由曲面的立体造型。
1 s. g% G: H! o: t    二座标测量排:属于接触式测量,精度较高,但测量速度慢,受接触力影响较大;一般多用于精密量。8 S, _  M% W( Z# }" _# j
    图二所示为台湾智泰公司生产的三维激光扫描机,它由激光探头、工作台和控制柜组成,激光探头是扫描机的关键部件,它包括两个CCD(光电偶合)传感器和一个半导体激光器;工作台具有三个线性位移和一个旋转运动,采用闭环控制,定位精度可达0.003mm,它带动CCD探头做逐行扫描,可扫描800×800×600mm的模型或工件;控制和系统采用开放式结构,工控机内插有图像采集卡;利用激光刀对物体表面进行扫描,由CCD摄像机采集被测表面朱我刀曲线,然后计算机根据空间三角法测量原理,最终计算出物体表面的三维几何数据,扫描精度为0.05mm。然后以.asc格式保存,供逆向工程软件处理。! }& u; _3 ?, p' j8 z2 o
+ p% |0 {! G0 E: r
    逆向工程软件主要完成点云处理、曲线处理和曲面处理三项功能,它的作用是接收来自测量设备的产品数据,通过一系列的编辑操作,得到品质优良的曲线或曲面模型,并通过标准数据格式将这些曲线曲面数据输送到现有CAD/CAM系统中,在这些系统中完成最终的品造型。用于逆向工程的软件包括两大类:一类是用于处理测量得到的点云的逆向工程软件,另一类就是用于造型和数控编程的通用CAD/CAM软件;在实际应用过程中,由于大多数工程技术人员对逆向工程技术了解不够,将逆向工程技术与现有CAD/CAM技术等同起来,用现有CAD/CAM系统的技术水平要求逆向工程技术,往往造成人们对逆向工技术的不信任和误解。3 x$ w& }- Z& r( G- w; u
    通常所说的逆向工程软件,是专指用于进行点云的噪声滤除、补点、内插补、细线化、曲线建构、曲面建构、曲面修改等操作的软件,可以IGES, .DXF、STL等多种格式输出,常用的有:UG/ImageWare(Surfacer),它作为UG NX中提供的逆向工程软件,具有强大的测量数据处理、曲面造型、误差检测功能。可以处理几万至几百万的点云数据。ImageWare的模型检测功能可以方便、直观地显示所构造的曲面模型与实际侧量数据之间的误差以及平面度、真圆度等几何公差。; F: z( Y3 ^" d2 p9 N2 T/ v
  CeoMagic是美国RainDrop毓丽逆向工fNC软件,具有丰富的数据处理手段,可以根据测量势据快助造出多张连续的曲面模型。软件的应拜领域包括了从工业设计到医疗仿真等诸多方面。
( z! y- U8 ]* e    CopyCAD是英国DELCAM公司系列CAD产品中的一个,主要进行测量数据的曲面造型ELCAM的产品涵盖了从设计到制造、检测的全过程。包括PowerSHAPE,PowerMIL LowerINSPECT, ArtCAM,CopyCAD、PS-TEAM等诸多软件产品·作为系列产品的一部分,CopyCAD与系列中的其他软件可以很好地集成。4 g8 [" S* b  s% }1 S
    以上介绍的是目前较常见的逆向工程软件在国内能够见到的商品化的逆向工程软件基本上均是国外的。
% q; D* |" g+ k3 x9 z' {4 ^3 ?. ~三、逆向工程技术的应用
) w3 R* K8 E& [3 \& A    逆向工程的应用模式主要包括给定产品样品,如家电的外壳、铸件等,采用逆向工程的手段,获取它的三维CAD模型、绘制产品图纸,完成产品的数榨编程及樟具设计,也就是人们常说的“产品仿制”;2、先用石膏等造型材料,按一定比例设计出产品的外形,然后,采用逆向工程的手段,获取它的三维CAD模型,这就是所谓的"工业产品设计";3、测量产品的三维点云,与CAD模型进行比较,分析产品的制造误差,即产品检测。
; \7 R/ X, b, m/ B9 c2 t* [5 }# {  从逆向工程的概念和技术特点以看出,逆向工程的应用领域如图三所示,主要是飞机、汽车、玩具、电子业、鞋业、艺术品翻制、铸模、人造皮革和家用电器等与模具相关的行业;近年来随着生物、材料技术的发展,逆向工程技术也开始应用在人工生物骨骼、美容等医学领域。但是其最主要的应用领域还是在模具行业。山东大学是省内最早从事逆向工程研究的单位之一,图四为山东大学机电工程实验室通过逆向工程技术完成的部分产品的三维造型。2 E+ l4 O4 k4 O% N$ S
2 q: H  P' y- c% M  }

5 [1 H5 z. L/ A3 n3 m4 u6 T6 U# k    由于模具制造过程中经常需要反复试冲和修改模具型面。若测量最终符合要求的模具并反求出其数字化模型,在重复制造该模具时就可运用这一备用数字模型生成加工程序,可以大大提高模具生产效率,降低模具制造成本。逆向工程技术在我国,特别是以生产各种汽车、玩具配套件的址区、企业有着十分广阔的应用前景。这些地区、企业经常需要根据客户提供的样件制造出模具或直接加工出产品。在这些企业,测量设备和CAD/CAM系统是必不可的,但是由于逆向工程技术应用不够完善,严重影响了产品的精度以及生产周期。因此,逆向工程技术与CAD/CAM系统匡结合对这些企业的应用有重要意义。这一点我们在多年的技术服务过程中深有体会。一方面各个模具企业非常欢迎在企业推广逆向工程技术,在另一方面又苦于缺乏必要的指导和合适的软件产品。这种情况严重制约了逆向工程技术在模具行业的推广。与CAD/CAM系统在我国几十年的应用时间相比,逆向工程技术为工程技术人员所了解只有十几年甚至几年的时间。时间虽短,但逆向工程技术广泛的应用前景已经为大多数工程技术人员所关注,这对提高我国模具制造行业的整体技术含量,进而提高产品的市场竞争力具有重要的推动作用。
# X. W1 l! y3 _2 X$ T$ F; n四、结论% \/ {- I8 i8 n; {5 V1 g
    本文简要论述了逆向工程技术的基本概念和发展,列举了主要的逆向工程设备和应用软件,分析了逆向工程技术的特点,对逆向工程技术和现有CAD/CAM系统的关系进行了较全面的介绍和总结。结合我们的实践经验.介绍了逆向工程技术的应用领域;由于逆向工程是一门较新的高技术,无论是测量设备,还是应用软件都还存在一些不很完善的方面,能够熟练掌握、应用这门技术的技术人员还不是很多,急需开展这方面的培训和普及工作。目前,我国正在成为世界制造中心,而我省也正在打造山东半岛制造基地,可以预见到逆向工程技术在我国,特别是在我省,将会有具大的发展前景。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-16 09:06 | 显示全部楼层

叶军君,王上游
! D. w2 w+ R! H5 }$ x; _! V(1.厦门大学 物理与机电工程学院,福建厦门361005; 2.福州模具厂,福建 福州350002)& l4 a$ ~1 p5 C! c' P' _2 V: ?
摘要:逆向工程技术应用于模具制造中,改变了传统的模具设计方法,可以大大缩短模具设计时间,显著提高模具设计及加工的质量。本文介绍应用该项技术的一个实际系统。
( O6 H1 m5 X  ?  ?$ r关键词: 逆向工程; 模具; 数模2 p4 |- a6 t4 h4 x+ Y

/ |9 o. x! u0 W1 Y$ F. o( w0 引言5 N2 |9 A8 h5 k% C
    逆向工程也称反求工程,它是通过有效的探测方法及精确的分析来定义零件的几何形状。通常是在缺乏原始数据的情况下,用来进行产品的改进或复制。无论是新产品的开发设计、备件的复制,还是整套模具的复制,均属逆向工程的范畴。具体地说,也就是在已经有了物理原形的情况下,将物理原形数据转换成设计数据,保证新产品与原物理模型的精确一致。建立数模是逆向工程的关键所在,也是其至关重要的一步。有了数模,零件就有了唯一和精确的定义,在计算机中这种用数学方法描述的零件几何图形,有利于在设计中进行CAE(计算机辅助工程)分析,在CAM(辅助制造)阶段可对其任意位置的坐标、曲率等儿何要素进行分析。同时数学模型数学的精度和数据的完整性,不会受时间的影响而发生变形。
2 X5 |( U% j( |  m% b    模具在摩托车、汽车产品换型工作中起着决定性作用。对整车来说,冲压件质量尤其是摩托车油箱的表面质量、型面、轮廓尺寸都直接影响着整车的整形和外观,以至影响整个车型在摩托车市场中的占有份额。
8 e; y2 A( _2 N$ q2 j. N; ^5 Z    鉴于市场的发展,以往的模具检测手段已经不能适应现代模具技术发展的需要,福州模具厂与厦门大学机电工程系联合开展了模具逆向工程应用的研究。在关于点群的区域分割,NURBS曲面模型的光顺处理,曲面的高斯、弦度偏差、角度偏差抽样过滤、曲面修匀等方面进行了研究,并将研究成果应用于摩托车新油箱模具的制造开发上,取得了实际的效果。
: @/ ^  W* Z: }  C/ g1 系统组成及工作流程# D8 d. e" ]5 n' a* `) `
    模具的逆向工程系统由三座标测量机、精密三维电子测头或激光扫描机、CAD工作站、专业分析软件、UGIICAD/CAM软件及数控编程软件等组成。图1为其工作流程示意图。
1 d5 V! E5 K; G' d+ ~  x4 W; L4 Z# B5 j/ M" p
    从流程图上可以看出,实现逆向工程首先需要在测量机上通过精密三维电子测头或激光扫描机进行三维数据采集,用专业软件生成初始面,然后通过UGIICAD/CAM软件对初始面进行光顺、编辑、修改,最终生成数模,传给CAD/CAM工作站生成NC加工程序及模具设计。3 a  e, l2 X) M5 M6 Q# C
2 系统应用实例7 a) ]' E4 w8 K8 W5 ]; w, D
    自该系统投人使用以来,福州模具厂已经利用这种逆向工程技术成功制做了几套新型摩托车油箱模具。如济南轻骑摩托车股份有限公司的QM125-2C摩托车油箱、广东大长江摩托车有限公司的EN125Y六档跑车油箱、南京金城铃木摩托车有限公司的GX 125跑车油箱。它们的木模都是在日本设计制造的,要求模具以此木模形状尺寸为准。通过采用本系统,仅用了两天时间在三座标测量机上采集了木模点数据,如图2所示:然后对点(云)阵数据进行点、线、面的编辑、进行光顺处理,建立其三维数学模型。如图3、图4、图5所示。再以新建立的三维模型为基础设计模具并生成NC程序,顺利地完成整套模具的设计制造任务,同时还向客户提供了准确的油箱数学模型,客户非常满意。原来这些模具都计划在日本制造,由于该系统的及时投人使用,采用了先进实际有效的逆向工程设计技术,大大缩短了模具的设计时间,提高了模具的设计质量。再由于福州模具厂本身具备了较好的制造、检测条件,并且制造技术过硬,因此,最终争取到了这批订单,替代了进口模具为用户节省了大量普用。
/ _, W$ J5 j1 T0 s- v7 Z9 X2 M9 |# _; w+ J5 a3 z( K# _

, q5 u5 D" i: l3 系统特点9 G5 \! @; _/ j% ~. x9 R
    本项目经过实际应用后,具备如下特点:
( g+ D0 j: [, ?    (1)实用性强。非常适合为汽车、摩托车行业制造的冲裁模具,操作简单,易于掌握。
0 p0 x6 j9 y3 d+ R    (2)完善了模具设计中数据输入方式(二维图纸、三维数据转换、逆向工程)。1 B/ l6 G$ E# s" u8 [( b- B
    (3)该系统可自定义座标系功能,工件不需看正即可测绘。0 Z9 }9 {' f7 f/ N3 _  s, m
    (4)可视化采样及采集数据的DXF,IGES输出。
9 m% e+ O/ \! ^    (5)对于测绘模型可自动生成二维平面图。+ A" m  F5 T" L( n/ v, _! O1 w; X8 W
    (6)轮廓自动分析评价。能够将测量点和理论模型或数据通过优化算法进行匹配,以消除座标系误差。评价结果可按图形或文本方式输出,图形上可显示理论曲线曲面、公差带及实测点。6 \, r  d: T  w, y; I% P
4 结束语
5 R5 _; c2 G' |# _6 Z/ e3 W3 k    通过该项目的应用扩大了企业的模具定单,到目前为止(大约8个月时间)用逆向工程设计制造的油箱模具有四套。为客户测绘、造型汽车零件多件,在厂方效益增加的同时,客户也拿到了可替代进口的模具,并节省了大量的外汇。
1 z( X  C# l" I4 F# l" z    实践证明,逆向工程是现代化模具生产的又一工艺手法,而且实用、有效;测量机则是实现这一方法的必需工具。该项技术的成功应用,表明其潜力很大,今后可在汽车、摩托车、模具制造业中广泛推广。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-16 09:06 | 显示全部楼层

董彤 王家民
2 {& H+ g8 S2 a$ E3 J& _1 W
' o) v7 a9 }1 ^' p( W0 H1引言/ M4 B; D0 ]* O3 C
    随着计算机技术的迅猛发展,我们己从工业化时代迈入信息化社会;对于设计师来说,设计己不再是手工工艺和工业生产的结果,而是借助于计算机作为媒体的一种创作。有了计算机的参与,包装容器的设计风格也有所改变,由以前的简单、传统型转换为复杂、新颖型,从而给人一种全新的视觉冲击。' q3 g. J* a: `8 d7 T2 F
    我国包装工业起步较晚,尽管近年来发展较快,但和国外一些国家相比,还存在一定的差距。因此,我们要积极从国外引进先进的技术,然后对其进行深入的研究、吸收消化和创新。在这一方面,逆向工程可以起到重要的作用。本文以包装容器为研究对象,探讨逆向工程在复杂包装容器设计制造中的应用。! T3 B1 y0 W+ j! o. E* ~+ y
2 逆向工程技术
4 x3 h' i- t+ \0 g$ ~) r  Q    传统几何模型的建立是基于产品或构件的功能和外形,由设计师在CAD软件中构造的,这即为正向工程。但在飞机、汽车、工艺美术品和模具等行业的设计和制造过程中,此类产品通常由复杂的自由曲面拼接而成,在概念设计阶段很难用严密、统一的数学语言来描述,因此,许多产品初始模型必须通过对事先制造出模型或样品进行数字化产生。这种以实物模型为依据来生成几何模型的设计方法即为逆向工程Reverse Engineering)。逆向工程的基本工作过程如图1所示。
& }7 q' w  x: r  E4 E& L# @2 B  K- j* X6 ~/ \
    创新设计是逆向工程的灵魂,模型的重建是创新的基础,而不是最终目的。总之,逆向工程的过程就是从认识产品到再现产品,进而再创新性地开发产品的过程。7 g. Q; X; f1 G- `/ V4 C
3 基于CMM的CAD建模  V( J/ L; e4 h5 {9 C/ R; U
3.1 数据采集一一产品对象数字化
* {7 O& p5 x, x2 w6 k4 O4 O    在表面数字化技术中,根据测试方式的不同可以将数据采集方法分为接触式和非接触式两大类。近几年来,随着计算机、传感、控制等技术的更新,出现了三角形法、结构光法、计算机视觉法、激光干涉法、激光衍射法、莫尔等高线法等,由于具有测量过程非接触和测量迅速等优点,越来越受到人们的重视。就目前的应用来看,逆向工程中数据的获取手段主要是依靠CMM。0 @- d* H* A- g* P0 l
    三坐标测量仪可以用来测量特征的空间坐标、扫描剖面、测量分型线以及轮廓线。此设备获得点的数据量不像激光扫描仪扫描的那么大,所以用一些非专业的逆向设计软件如:UG, Pro/ENGINEER, CATIA等)是很合适的。在确定测量方案时将测量与造型结合起来考虑,使得能表现出形体特征的数据点能最大限度地满足造型需要。一般原则是在曲率变化比较大的地方打点要密一些,平滑的地方则可以稀一些。由于一般的三坐标测量机取点的效率大大低于激光扫描仪,所以在零件测点时要做到有的放矢。值得注意的是除了扫描剖面、测分型线外,测轮廓线等特征线也是必要的,它会在构面的时候带来方便。测量时还应考虑尽量少地进行重新标定和再定位,保证多次测量的数据点在同一个坐标系下。1 V5 O2 |0 M, A7 B* s5 h& j' }
3.2 三维建模—对象的模型重构
& V9 q& i. `* U- L* H% _' ?    复杂几何形体的实体模型是由规则的实体(称为体素)经过多次拼合得到,拼合方法可以采用布尔运算----并、交、差。实际CAD /CAM系统中都把曲面造型与实体造型融合起来以构造精确描述的曲面实体(而不是多面体实体)。采用实体建模的方法来反求零件,好处是显而易见的:直接面向加工,方便增添各种几何特征,如倒角、凸台螺钉孔等,方便进行各种检验和性能分析。) W3 E/ |( F: r  p2 e- f
    根据测量的数据以及外形特点进行合理的数据组织是建模的关键。在这里主要是完成测量数据处理后由数据点形成曲线以及曲面的过程。一般测量机输出的测量数据量都很大,并带有一些测量“噪声”数据点,因此,需要对原始数据进行过滤、筛减、去噪、平滑、编辑等操作,使其满足后续模型重建的要求。利用逆向设计软件,可以实现由测量的数据点自动生成样条曲线。因测量有误差及样件表面不光滑等原因,连成样条曲线的曲率半径变化往往存在突变,对以后的构面的光顺性有影响。因此,曲线必须经过调整,使其光顺。再根据容器的结构特点选用合理的构面方式生成曲面。
) R9 L" N/ j; u5 z; ~! O    在构建曲面的过程中,有时还要再加连一些线条,用于构面。连线和构面经常要交替进行。. L' ?  S' P: _+ G
    曲面建成后,要检查曲面的误差,一般测量点到面的误差,对外观要求较高的曲面还要检查表面的光顺度。当曲面不光顺时,可求此曲面的一些Section剖面),调整这些Section使其光顺,再利用这些Section重新构面,效果会好些,这是常用的一种方法。也可以通过改变点的位置来顺滑曲面,这主要应用于云点构面。构面还要注意简洁,面要尽量做得大,张数少,不要太碎,这样有利于后面增加一些圆角、斜度、增厚等特征。
; o# R/ i+ m2 S6 f: p1 L    当外表面完成后,下一步就要构建实体模型。当模型比较简单且所做的外表面质量比较好时,用缝合增厚指令就可建立实体。但大多数情况却不能增厚,所以只能采用0ffset偏置)外表面。用0ffse指令可同时选多个面或用窗口全选,这样会提高效率。对于那些无法偏置的曲面,要学会分析原因:一种可能是由于曲面本身曲率太大,偏置后会自相交,导致0ffset失败,如小圆角;另一种可能是被偏置曲面的品质不好,局部有波纹,这种情况只能修改好曲面后再0Mffset还有一些曲面看起来光顺性很好,但就是不能0ffset遇到这种情况可用ExtractGecne呵提取几何体素)成B曲面后,再0ffset基本会成功。偏置后的曲面有的需要裁剪,有的需要补面,用各种曲面编辑手段完成内表面的构建,然后缝合内外表面成一实体(Solik)。最后再进行产品结构设计、渲染等。
$ T. c3 M, T1 {: i2 L4 应用实例& w' {2 z  k( h2 e8 `% l  S& N2 X
    按上述思路,采用UG软件对一个酒包装容器(图2)的测量数据进行三维再现。根据特征线进行测量,测量结束后,将测量得到的数据文件DFX)引入到UG中,最好软件中一层只存一条曲线的数据,以便今后修改,再利用UG中Curve巷曲线)工具构线,使用FreeFrom Feature自由曲面)工具构面,当曲面不光顺时,可以通过光顺曲线,即修正某些点的坐标值重构曲面,将光顺度提高,重复上述过程,直到满意为血图3)。当然,UG软件中还提供了不少重构曲面模型的方法,如通过云点和局部曲面的缝合,云点在曲面较简单的情况下使用方便,对于复杂曲面不一定合适,且测量费时;局部曲面的缝合,只有在相邻曲面相交处的曲率相近的情况下适用,否则缝合的曲面产生皱折。
" H3 y' S& Y6 k& l# d
+ f: O' Y9 X; x' y( Q9 b) j9 a7 \$ d: N- w: U9 {  E+ k
5结论  l: x) c3 s3 [( Y. i9 o
    随着生活质量的提高,人们对美的追求成为时尚,相应的以描述复杂自由曲面的三维造型技术的提高,使得逆向工程技术不仅必要而且可行。我国逆向工程应用水平比较高,但是相关的关键技术与国外相比还有一定的差距,特别是在应用软件上还有待提高。' D5 f+ D" V2 M0 b1 d$ q1 F$ e# C
    目前,国内外对逆向工程的研究仍然局限于某几个行业和部门,如模具制造等。有很多公司推出了较实用的系统象PTC公司的PRO/SCAN, MAGEWARE公司的SURFACER等。但都有一定的局限性。本文认为,逆向工程技术尚有待于在以下几个方面加以发展:
$ ~& R8 `8 N+ O! l" c. ~5.1 提高测量精度,找到较好的测量方法,以减少测量误差影响;
- [3 Z5 r& E( K+ u! D5.2 提高建模及成型速度;6 Q% W" H' t) K
5.3 应将逆向工程技术更好地与实际相结合,增强其实用性;
9 J+ h, E; u+ M; @# v5.4 拓广系统的应用范围,不能只限于某个产品或领域;
; |% W' ?, `5 E4 C; {7 c  g4 h/ F5.5 努力降低成本,提高加工质量。
" l, E! J/ S5 e/ Y7 |! z7 f总之,逆向工程这一先进技术的出现与发展必会给人们新的遐想,使工程领域产生新的革命。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-16 09:07 | 显示全部楼层
田竹友,简斌  J. D) {; L2 y& J/ J
(l北京机械工业学院机械工程系,北京100085 ;北京航空航天大学 机械工程系,北京100084)
4 x( T5 _; m7 i: |  V' r! b5 R; Q摘要:讨论了逆向工程中几种数据采集的方法以及经采集后的数据如何进行处理。测量中进行数据采集常用随机采集法、网格采集法、Hammersely点法和故障函数法等。数据处理的一个重要工作是对扫描点进行编辑,如补偿点产生、噪声点删除、数据点精化、数据点加密以及坐标转换等。还叙述了一般产品建模技术。+ A( u7 T! s1 B; E0 B
关键词:逆向工程;数据处理;建模技术9 M# D) z; r# U- Y5 c, o
$ O7 G9 q4 c+ x" r& F' B
    在逆向工程过程中,形状测量是最基本和必要的一步。实际问题中,许多模型具有非常复杂的自由曲面,其设计表达或数学模型的建立是非常困难的,因此,形状测量的速度和精度在逆向工程的全过程中占有很大的比重。测量的目的是将物理模型转化成测量数据点,然后根据数据点建立物体的CAD模型或直接产生NC加工轨迹。7 ]- Y$ Y% P" O1 t, c
    逆向工程中的数字化数据处理系统与常用的CAD/CAM系统相比,有2个显著的不同特点:首先在数据量上,输入的扫描点具有大量数据,并且密度很高,100万个扫描点的数据并非少见;其次是这些点的离散性。因此,逆向工程测量得到的数据量通常被形象地称为"点云"。  N" d/ L1 M) @2 n! R. h4 r
    对逆向工程中这种“点云”的处理,首先是要将数据量大幅度减少,并且前提条件是不能影响重构曲面的精度。通常的方法是用某种平滑滤波函数来大大减少数据量,这样可以剔除疵点、减少表面噪声,同时对比较粗糙的被测表面也能起到平滑作用。* B- z% v4 s" N0 ?: H0 e- w5 ~' P
1 数据采集5 V9 a" G* l+ f5 s
    逆向工程中的测量方法大体分为接触式与非接触式两类。目前,实现逆向工程的主要测量设备是坐标测量机和激光扫描仪。从测量方式来看,前者属于接触式测量,后者属于非接触式测量。一般来说,测量中进行数据采集的常用方法有以下几种。
, m7 }  a  K1 c( Q    随机采集法:使用坐标测量机对表面进行随机采集。通过响应表面构造来确定响应和多个收敛变量之间的关系。
' V6 K: ^& P( [( t# v. @9 D* E    网格采集法:通过事先确定好的网格图,沿着网格路径测量表面网格接点值。这种方法非常适合于Bezier和B样条这样一些拟合曲面。
5 s! B/ q$ g; f) k' \7 W/ C    Hammersely点法:Woo提出了一种使用Hammersely点来控制测量平均表面粗糙度的方法,用根均平方差比较测量结果,所需要的测量点与均匀分布的测量点相比,在数量上成平方减少的关系。' r7 Z' L4 ^" b. [; @. C, K
    故障函数法:Malloch提出的方法是利用一个故障函数来确定二维和三维测量位置。误差函数应预测所需要的测量点,这样就能够减少需要精确重构表面的点数。其缺点是故障函数难以确定,通常用表面曲率来作为故障函数。$ i' |3 v& f2 a" F- V- g
2 数据处理
  V! r& ^( ?' f$ I9 c8 I# i; l( ?    逆向工程数据处理的关键是利用平滑滤波函数来减少数据量,剔除疵点,减少噪声,起平滑作用。对数据滤波,已有几种方法:程序判断滤波、N点平均滤波以及采用预测递推识辩与卡尔曼滤波相结合的自适应滤波算法等。这些方法在滤除干扰信号和随机误差方面取得了较好的进展。最终实现用某种特定的数学形式唯一地表达出这个三维曲面,以便用丰富的CAD/CAM工程软件进行产品的设计工作。' e0 t4 x2 B0 v. V( o
2.1 数据的处理技术
: E$ p% u2 ?# a2 Q$ E$ f, W  M3 M    由于扫描仪的种类很多,输出数据的质量变化范围很大,因此需要通过编辑以获得高质量的数据。此外,即使数据的质量很高,仍然需要在曲面重构之前或根据刀具轨迹产生的不同需要对这些数据进行编辑。提供的编辑功能一般包括数据调整、复制、区域修剪、数据密度修改、数据光顺、噪音去除、尖角保留等。通过数据编辑,可以得到想要的数据。数据处理主要靠操作者的经验和实际需要灵活掌握,避免出现由于初始数据已发生改变,造成形状变形和精度降低等问题,一般要进行以下几个方面的工作。* t7 n( C, U4 d" U
    ①补偿点产生。由于输入的扫描数据来自不同的扫描设备,又具有不同的格式,因此,首先需要一个标准数据接口将这些数据转换成标准的数据格式。有2个重要的过程需要从输入点系产生补偿点。首先,对于接触扫描,需要恢复这些初始表面上的点,因为从接触扫描仪获得的坐标值并不真正代表接触点的坐标,而反映的是探头的中心或顶部的值。因此有必要对这些坐标值进行补偿转换;其次,建立刀具轨迹时,有些刀具,例如铣刀等,也需要与工件之间有一定的偏移。对于产生补偿点,先需要计算出标准点,而由于没有表面的数学表达公式,不能使用通常的方法计算出标准点。目前已开发出特殊的算法,能够在所规定的公差范围之内,获得近似的标准值。
! j1 c$ N6 v- V    ②噪声点删除。逆向工程测量过程中,由于受测量设备的精度、操作者经验和被测实物表面质量等诸多因素的影响,会造成测量数据误差点的产生。对这类误差点,习惯上被称为噪声点。因此,第一步是删除这些噪声点,这样能减少误差点对后续相邻区域平滑或细化等处理步骤不可预见的干扰和影响。通常删除噪声点的方法是首先通过图形交互显示,辨别明显疵点,可以采用手工删除或通过角度判断法进行去除噪声点处理。8 ?' l1 A. G' B5 Q7 L) O2 k1 `
    角度判断法的原理是在一定精度(有操作者设定)控制下先设定一个角度值δ然后将沿扫描线方向相邻三点所构成的角度α和δ进行比较若α<δ则中间点有可能是噪声点(断点)进行标注记录。顺序判断所有的扫描点最后由操作者根据实际情况判断这些记录点是否是噪声点,决定是否删除。扫描数据经过去除噪声处理后,可进行后续的数据点精化处理,消除数据波动,修改范围可由用户通过图形交互设定。. s: v" N3 ~+ Y
    ③数据点精化。在CAD系统中,需要对逆向工程中获得的扫描数据点进行曲面重构、数控加工或快速原型直接拷贝等后续工作。在进行这些操作之前,首先要对大量初始测量数据
, k, P- y" D5 n4 u1 F7 z, ^点进行精化处理,它包括对测量数据点过滤、平滑等操作。数据点过滤一般在平滑之前,这样能够减少由于数据点过密造成局部区域产生较大曲率等问题,并且有利于提高平滑过程的效率和精度。
" x9 r' x4 N: Z  m$ Z1 C    数据点过滤的原则是在扫描线曲率较小时减少点数,曲率较大时保留较多的点数。可以采用最小距离法,其原理是:只设定一个最小距离,然后沿扫描线方向顺序比较相邻两点之间的距离D若,则记录下后一个比较点,依次判断所有的扫描点,最后由操作者根据实际情况判断这些记录点是否要删除。3 W1 Q+ j* B' k3 ]
    数据点平滑可以采用三点比值法判断,其原理是:设定值,沿扫描方向顺序计算相邻三点所构成三角形的高宽比值λ=H/W若 gs4 ,则记录下中间点;仍然以第三点为起点,继续做三角形进行判断,依次完成对全部扫描点的操作,最后由操作者根据实际情况判断这些记录点是否要删除。6 s: W) ?" C" n% ^
    ④数据点加密。表面上数据点加密与数据点精化相矛盾,但实际上由于各种测量设备以及测量方式的不同,造成测量数据点分布的结果不同。通常测量机所采集的数据是自动计算拱高差得到的,即在较平缓的区域采集到的数据点较少或没有,造成曲线拟合时会出现失真现象;同时在重构曲面时,需要插值加密;否则在构造曲线、曲面时,会产生较大的波动。因此,对于某些局部数据的不足,应该允许用户采用屏幕方式和相邻点插值等方法来弥补。
  V! x" \$ t7 ]" E6 t0 g    ⑤坐标转换。逆向工程中,对扫描数据点通常要提供四种类型的坐标转换,它包括平移、旋转、缩放和镜面对称。平移和旋转常用于调整CNC机床坐标系的刀具轨迹位置。缩放功能除了用于测试和演示外,还可以用于塑料注射模具中,考虑由于塑料件的收缩,需要尺寸补偿的问题,还要求很容易地设定不同方向的缩放因子。镜面对称功能主要用于凸凹转换,凸凹转换在模具制造中很常见,例如冲压工艺的拉延凸、凹模,它们的形状相似,只是有一个板料厚度的差别。在模具设计和制造中,这种功能能够减少大量的重复性的劳动;此外它还能够用于具有镜面对称形状的零件中。: ~. W3 R  j8 j$ G- ~5 ~0 x
2.2 产品建模技术8 g; k$ t- I6 C( {' [
    当零件原形数字化形成一系列的空间离散点后,在此基础上,应用计算机辅助几何设计的有关技术,来构造零件原形的CAD模型。通常对于含有自由曲面的复杂型面,用一张曲面来拟合所有数据点是不可行的,一般首先按照原形所具有的特征,将测量数据点分割成不同的区域,各个区域分别拟合出不同的曲面,然后应用曲面求交或曲面间过渡的方法将不同的曲面连接起来构成一个整体。有效的三维测量数据分割和拟合技术是逆向工程中的重要内容。
$ N1 p" p  ^* ^6 c5 a$ a! U! X; ^7 V
5 V3 O, n! b9 E" W  e% f) s2.2.1 零件原形测量数据的分割技术
: Y) D( S, d& S# [- A    物体表面测量数据的分割方法一般可以分为基于边界的分割法和基于区域的分割法。其中基于边界的分割法首先估计出测量点的法向矢量或曲率,然后根据法向矢量或曲率的突变判定为边界的位置,并经边界跟踪等处理方法形成封闭的边界,将各边界所围区域作为最终的分割结果。由于在分割过程中只用到边界局部数据,以及存在微分运算,因此这种方法易受到测量噪声的影响。特别是对于型面缓变的曲面,该方法将不再适用。基于区域的分割法是将具有相似几何特性的空间点化为同一区域,由于这种方法分割依据具有明确的几何意义,因此是目前较为常用的分割方法。根据其分割过程的不同分为从下至上和从上至下两种。
& Q4 \8 G, @* `$ n4 N    (1)从下至上的区域分割方法。这种分割方法以若干个简单表面片作为种子区域,根据表面片的微分几何性质来判断其周围的数据点是否属于该表面片,将与之有相似几何性质的点化入该种子区域,并更新与种子区域对应的表面片的类型,当在该表面片周围没有几何性质一致的时候,种子区域停止生长。这种分割方法的优点在于分割结果的可靠性高,分割结束后,各个区域之间的关系也随之确定。应用该方法时应注意的问题是:①种子区域的选择与分布,这将影响到分割计算的效果与效率。②在区域生长过程中,区域的类型可能发生变化,因此能判断出与当前区域对应的表面类型。③采用何种依据来判断测量点是否属于一个区域将产生不同的分割结果。
5 J' g8 k* y, Q7 {! P    (2)从上至下的区域分割方法。这种分割方法首先假设所有的数据点属于同一个表面区域,然后根据提出性能指标做统计分析,进行假设检验,若假设成立,则分割结束;否则,将数据点集进行划分,并对各个子集重新作假设检验,如此划分直至各个区域满足性能指标。应用该方法应注意的问题是:①子区域的划分方法的选择。如果采用四叉树等分割方式,有时会产生过分割的结果,此时需作一个反向的融合过程,以产生区域分割数最少且满足性能要求的分割结果。②如果将区域表面拟合的精度作为依据,则在每次分割后,测量数据点需要重新参数化,使整个过程计算量过大。2.2.2 表面片的拟合技术根据实际情况,拟合曲面有隐形方程的形式表示,也有的用参数方程的形式表示。采用隐形方程表示的曲面一般是无界的,应根据需要限定范围。优点在于对于拟合曲面的离散数据点的分布形式没有提出要求,进行求交运算时比较方便。主要缺点在于不能用统一的方程表示所有类型的曲面。由一定的基函数和控制点定义的参数曲面(线),如贝齐尔曲面(线),B样条曲面(线)等,目前作为形状数学描述的标准形式广泛应用于对曲面(线)的表达中。但参数化曲面(线)一般要求拟合区域的形状是较为规整的四边形,对于分割获得的任意N边形区域需作进一步插值划分处理以获得若干较为规整的四边形。此外,参数化曲面(线)要求区域内数据点大体上呈矩形网格状的分布形式,因此对于区域内散乱分布的数据点,通常采用局部插值的方法来计算出规则的网格数据。
8 Q+ p$ n; F. w- p" ~4 F3 数据输出+ d8 `" r0 k1 g- W2 e
    当对扫描数据进行编辑处理以后,可以根据不同的条件和需要,以多种格式输出,如ASCII, IGES ,DFX, VDA,STL等。输出的数据主要有两方面的用途:一是利用这些数据直接产生NC轨迹进行机械加工或快速原型制造;二是建立CAD模型。% B) D1 w' _6 L" z$ j
4 操作示例
  _3 g, d7 ~3 a) r* u    图1-图4分别为2种实体模型及扫描后得到“点云”数据的操作示例。$ h8 X' N4 j7 ~
4 Z# `4 g7 q1 [* }2 f

3 M2 d0 j2 x% \5 结论; U# ^! B, I8 }% y, j
    逆向工程数据处理的关键是利用平滑滤波函数来减少数据量,滤除干扰信号和随机误差,使之平滑。数据处理的目的是获得输入数据的基本特性信息,包括扫描方向、扫描节距、3D空间极值、扫描最大和最小跨度、扫描点总数、扫描线总数、探头半径等。这些信息有助于操作者进行后续的曲面重构以及确定走刀轨迹的编辑程序和参数值等操作。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-16 09:07 | 显示全部楼层

王艳萍,胡金星(辽宁信诚产品技术开发有限公司,辽宁沈阳110035)
7 h$ [; `- g- B+ o摘要:利用激光扫描仪及相关CAD三维软件,并用最终产品做辅助,对陈旧的潜水面罩模具进行三维模型的设计,介绍了逆向工程在模具翻新中的应用方法。7 B0 c% X% ~4 y, C. C
关键词: 逆向工程; 模具; 翻新# r; u% L- V( `

6 s) P! g5 y; M0 C/ @- `, A) D+ A1 引言
2 ~1 i& S+ v& D7 w# H2 k% i    随着计算机技术、CAD/CAM技术及高精度测量机的不断发展,逆向工程(Reverse Engineering)技术在生产实践中得到了越来越广泛的应用。
' _0 e0 Y4 m1 \& U    逆向工程主要包括两方面内容:数字化技术和曲面重建技术。数字化技术是利用测量装置采集实物或模型的表面数据;曲面重建是根据测量所得到的几何形体特征的一系列离散数据,在计算机上构造出形体曲线、曲面,建立三维模型。
8 o- v9 T0 Y7 q3 T, h' r    在加工制造行业中,模具的磨损是经常遇到的问题,解决的方法一是修修补补,二是对磨损严重的模具进行重新制造。我们要翻新的是30多年前制造的潜水面罩模具。它被修补多次,且磨损严重,已经不能在生产中继续使用。由于该模具加工年代久,再加上当时以手工制造为主的生产条件的限制,保留下的技术文档只是几个主要曲面的剖面线型图。继续使用原方法进行加工,耗时费工,要达到原来的精度有一定的难度。应用现代的加工技术可以很方便地完成模具的制造,但必须首先测量该模具,建立产品的三维模型。
' J9 j4 S9 b; [' M! F2 模具型面原始数据的获取
  x! v0 H# v2 e# ?2.1 测量方案的确定
- O" n1 b$ _5 k' |$ h/ U( \    该模具由4部分组成(如图1所示),看似简单,实际曲面较复杂。面罩两鬓及面部厚度为4mm,鼻部厚度为1.5 mm,密封边和粘贴边厚度为1mm,其余部分厚度为3士0.2mm,要求各部位厚度均匀过渡,并且模具加工出的最终产品在-588--1 176Pa水压测试,1 961Pa气压测试。
4 _# z9 x, j2 s9 m) {
+ O+ a3 ^+ Z! @% \# ~    为保证获取所有区域的数据以及测量精度,使用CHITAI LSH600激光扫描仪对该模具进行3次扫描测量:面罩主体型芯、面罩主体型腔和面罩与脸部相贴的密封边型芯。
, k; Y4 J+ _5 x" U# [( f2.2 样件的前期处理* q) r1 t& R: |. m  Z& ?' _; P1 }
    作为光学测量方法,物体表面的光学特性对测量结果影响较大。因为原件表面为黑色,漫反射特性不好,不能确保所测量数据点的清晰度,对模具型腔、型芯表面进行了喷白漆处理。: e) u) s: p" X+ J" R
2.3 保证坐标系在多次扫描下的统一
1 U, }# a# j5 c6 f, H5 Z    模具翻新要解决的关键问题是坐标系的一致性。对于同一厚度的产品,只要扫描型芯或型腔即可,厚度在计算机三维软件中可采用偏距产生。而对于厚度不同的产品,需要分别对型腔、型芯进行多次扫描。这样做不能保证扫描点数据是在同一坐标系下,在曲面重建时需将这些数据转换到同一坐标系中,造成后期的数据处理及模具工艺编制的困难。为了能在同一坐标系中测量模具的几何数据,决定借助最终产品(材料为丁晴橡胶的潜水面罩)对这副潜水面罩模具进行3次扫描。采用了如下的方法:) p5 l& ~7 m/ e) k5 c
    (1)把面罩主体型芯固定在激光扫描仪的基座上,并作为3次测量的基准,进行测量,获得的型芯的点数据,如图2所示。
" T3 t$ L' P& b+ O5 ^7 s9 T# i6 L: `# O+ V% _7 ^8 C
    (2)把潜水面罩套在型芯上,进行扫描,这样就得到了潜水面罩型腔的点数据。
$ D! u! m+ r5 A$ g; ^2 }0 g    (3)取下潜水面罩和面罩主体型芯,对基座上与脸部相贴的密封边进行扫描。得到的与脸部相贴密封边的点数据,保证与面罩主体型芯在同一坐标系中,如图3所示。与脸部相贴密封边型腔含在面罩主体型芯下,因为密封边的厚度为1mm,型腔型面可以在后期曲面重建采用偏距产生。
* J! K% u4 q  C2 S/ F& ~* U. O    3 用Surface软件对点数据进行处理
- J: G7 H' i9 Y8 H- K' z    扫描获得的点数据以ISO格式调入Surfac。软件中,做进一步处理。( h( g& }* }1 z% K, K7 K
    3.1 数据点的筛选( }" i9 O5 G  \3 @+ w+ x9 B) E
8 y. @& [% f: P% v$ P8 [
    以面罩主体型芯的点数据为例,在大量的点云数据中含有许多杂点。首先用Ponit\Extract Point\Circle\Select Points命令把它滤掉。再利用模具的左右对称,对点数据优化,删除一些不必要的数据点,如图4所示。
7 k% g5 b" s2 ?/ i/ U! |+ W! r( B2 L# f9 @/ z, a* x, a5 |
3.2 特征线的提取5 F" J+ a& ]/ Y6 \
    特征线的提取是整个面片构建关键。根据曲面的复杂程度,把数据点分为二次曲面、过渡曲面和自由曲面,先易后难提取特征线。- }: j) a. b3 w7 ~% Y+ \
    对于二次曲面的区域,如:平面、圆柱面、球面等,直接做出特征线。平面可以以三点或两相交直线来确定。圆柱面以截面线和矢量来确定。
' V! t; u9 w- q" l    对于自由曲曲特址线的选取是便用Point\ CrossSections\ Project Curve on Cloud命令,通过曲线向点云投影,然后使用Curve\Create 3D w/clouds\Fit FreeFrom命令在截面点云上拟合成曲线。$ ?* b) _, j% G/ e  C% e
    当主要曲面特征线建完后,选取倒圆角和桥接命令,构建过渡曲面的特征线。& w/ Z0 M9 i% V/ E
3.3 特征线分析
) o/ Z. R. `$ M1 k    在任何一条特征线的构建过程中,随时用Curve\Diagnostics\Cvrve-cloud Differenc。命令检验点、线的公差,调整特征线在公差允许范围内,确保与原型的一致性,如图5所示。
* I+ K# U) v: j2 F* U! U" h( c" D3 ^. q9 j. ?2 Y" d4 |
    3次扫描的点数据,都按以上的取线原则处理。图6是完成提取后的型芯特征线。
: t( \( p$ w. r0 Y' ~( c  v3 r/ U* N4 n% k& `% [
4 曲面模型的构建7 a* k7 [3 N0 K( M, t
    最终曲面的构建是在UG软件中完成的。4 h; b* x- J. e! r8 q2 R
    以IGES的格式把在Surfac。中建好的特征曲线导入UG中,对曲线进行曲率分析,选取编辑\曲线\全部命令,对曲线光顺处理。如图7为曲线光顺前后的对比。由于该型面为左右对称,所以光顺完一侧曲线后,另一侧采用镜象的办法来获得。为保证曲率连续,桥接左右两侧曲线,并且保持曲率连续,这样就完成了曲线的重构。' u" T. f0 P5 @

9 ^- K0 ?% t8 I& o: _" l; \    接下来用光顺后的曲线构造曲面。首先构建二次曲面和自由曲面,自由曲面应尽量由四边曲面构成,这样便于以后操作,曲面也不容易发生扭曲。曲面和曲面之间应保持G2连续,如图8所示。6 A  w$ _( \- `! }3 V2 _( k

* F, E/ ?! q& L1 r    所有曲面建完后,再进行修剪、合并等操作。重构完大部分曲面后,再分别构建出嘴、鼻子、眼睛等处曲面。最后是经过裁剪后构建过渡曲面。过渡曲面大多由桥接和倒圆角曲面构成。图9所示为嘴部过渡曲面。5 y+ S5 J+ V- ~8 z% `
; g1 j6 h5 a/ b1 M' [! f
    在面罩主体型芯构建中,由于眼镜框部位曲面特殊(因为后期需要镶镜片),凹陷的表面存在测量盲区,测量的点数据不全。使用原图纸提供的二维图做出该截面,以眼镜框的轮廓特征线为辅助线,使二维截面垂直辅助线扫描,完成眼镜框部位的曲面造型。5 s$ g& S' L/ F" r/ V; t" j
    最后完成的3副模具型面如图10所示。
* W) Q1 h' y7 D: Z& N    模具加工单位根据设计经验,使用该型面的三维数据,直接在计算机上构造出模具分型面和工艺补正面,利用数控加工等先进的加工手段,完成该模具的制造。4 T6 h% x5 P4 `$ U# I6 A+ M3 X

& Y+ |' B* L: N. B. [, `" A    逆向工程应用面非常广,通过潜水面罩模具的翻新在这方面做了一次新的尝试。在很短的时间内,完成该模具复杂型面的测量与设计,为后期的加工提供了技术保证。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2024-11-23 10:02 , Processed in 0.064612 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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