逆向工程:从实物到数字模型的转化技术

需积分: 10 24 下载量 70 浏览量 更新于2024-07-25 收藏 9.31MB PPT 举报
"逆向工程PPT" 逆向工程是一种从现有产品或设计出发,通过分析、理解和重构,以创建新的或改进的设计的技术。在工程领域,特别是在机械、电子和软件开发中,逆向工程扮演着重要的角色。这一过程通常用于在没有原始设计数据的情况下复制或改进产品,或者为了学习和理解竞争对手的技术。 主讲人张开兴指出,逆向工程主要针对形状复杂、难以通过传统CAD软件直接设计的零件。传统的正向设计是从概念到实体的创新过程,而逆向工程则是从已有的产品出发,通过消化、理解并创新来实现设计的再创造。广义的逆向工程涵盖了从硬件、软件到情报等多方面信息的回溯和分析,以寻求改进和创新。狭义的逆向工程则更多地关注于通过坐标测量数据构建实物的数字化模型,通常涉及几何形状的反求。 逆向工程的关键技术主要包括数字化测量、CAD模型重构以及相关的软硬件工具。测量设备分为接触式和非接触式,如三坐标测量仪和工业CT测量机,它们能够获取物体表面的精确数据。逆向设计软件如Imageware、Raindrop、Geomagic Studio等,用于处理这些测量数据,构建三维模型。同时,CAD/CAM系统如UG、ProE和Cimatron也提供了逆向工程模块,帮助将数字化模型转化为实际的制造数据。 逆向工程的流程通常包括以下几个步骤:首先,使用测量设备对实物进行数字化扫描,获取其表面点云数据;接着,利用逆向工程软件将点云数据整理成有序的几何模型;然后,将这个模型导入CAD系统,进一步完善和优化设计;接下来,可以通过CAD/CAE系统进行结构分析和性能评估;随后,CAM系统将设计数据转换为机床可读的指令,用于快速成型或模具制作;最后,通过快速成型技术制造产品样件,并可能结合PDM系统进行产品数据管理。 逆向工程的应用实例广泛,可以用于汽车零部件的复制、艺术品的复原、飞机结构的分析,甚至在软件领域中用于理解并改进代码。它不仅能够帮助企业在没有原始设计资料的情况下复制产品,还可以推动技术创新,提高设计效率,并在知识产权保护的框架内进行合法的学习和借鉴。 逆向工程是一个综合了测量技术、数字建模、设计创新和制造工艺的复杂过程,对于产品开发和制造业具有深远的影响。通过逆向工程,工程师们能够跨越设计的障碍,创造出更优秀的产品,同时也能促进技术的传承和进步。
2018-06-24 上传
逆向工程(又名反向工程,Reverse Engineering-RE)是对产品设计过程的一种描述。 通俗解释: 对于软件项目的逆向工程就如同盖楼一样,一栋大楼摆在面前,在不知道大楼图纸(图纸其实就是程序的架构)的前提下,仿照现有的大楼结构(发布好的项目结构)盖出相同的大楼。 1、在eclipse中建立maven项目(单击链接查看教程) 2、打开建立的该项目所在文件夹:项目右击->Properties 3、找到该文件夹所在位置,并找到src目录 4、还原webapp文件夹(前台页面内容)中的内容:将放在服务器tomcat中的webapps文件夹下的.war文件拷贝出来解压将解压的内容放到原webapp文件夹中 5、还原resources文件夹(配置文件信息)中的内容:依然在解压的.war文件中找:WEB-INF->classes中的内容(除了com该文件,这个文件其实是本项目命名的存放java类的文件;其它项目有可能不同) 6、还原java文件夹(项目中的类包)内容:将5中的com文件夹中的内容直接打开任意一个最下面的子文件,将其拖到我们之前下载好的反编译软件中 7、通过eclipse重新加载该项目,将反编译出来的每一个类按照相应的结构、命名在原项目中建立 8、引入相关的jar包:jar包文件在解压的.war文件中:WEB-INF->lib文件夹下;项目右击->build path->Configure build path->Libraries->Add External JARs.. 选择jar包所在的文件也就是上面的lib文件夹位置 9、更新项目,并在eclipse中添加tomcat(点击链接查看教程) 10、解决项目中的问题,小编遇到的最多的问题是因为继承关系用到了泛型,所以在反编译的时候丢失了List或者set返回值类型,找到错误上面定义的地方,将对应的类型添加到上面就ok了! 11、appserver端代码搭建的时候,用到了hadoop技术,可能编译的时候会出现本地没有hadoop的错误(单击链接查看解决方法) 注:反编译完成之后,在测试功能的时候,发现导出excel中的逻辑有所错误,这方面还没有搞懂是当时人为问题还是反编译过程中的问题,不过最后跟了代码也解决了! 【总结】 以上是小编在研究完成之后属于教程性的东西,将其中小编实践以及思考的部分过程省略了。 活儿干完之后,得到经理和领导的大大赞扬是少不了的,另外吃肉也是少不了的。 但是更多的是,小编在解决这个大问题的时候的思考过程,其中困难部分: 1、研究生成war包之后,对应的文件的结构 2、研究java类的打包形式,对应的jar包的存放位置 3、对于该项目框架的梳理过程 4、整合过程,对于每一步操作细心的要求 5、整合完成,解决编译报错的过程 虽然活儿干完了,项目也跑了起来,但是对于里面的技术点自己还是得深入到代码中去研究,去感受,还有其中业务逻辑的梳理,以及设计思想的升华都需要去了解去学习。 只要相信自己,并付出与行动,终究会取得胜利的桂冠,加油O(∩_∩)O~