概要
AutoCAD应用环境下通过第三方软件加密的DWG图纸,在解密过程中容易遇到图块无限缩小隐藏和背景颜色一致隐藏两种漏洞。本软件旨在通过扫描解密的DWG图纸,根据用户设置的阀值遍历图纸中的图块和进行颜色的相似度比较。如果发现异常情况,则生成报告提示使用者。
二、系统开发环境
01.Visual Studio C++ 2008。
02.Microsoft Foundation Class(MFC)。
03.AutoCAD ObjectARX2008/ObjectARX2010。
三、系统运行环境
01.AutoCAD2008/AutoCAD2010。
02..NetFramework2.0/.NetFrameWork3.5。
03.MFC基础运行库。
四、系统工作流程图
本软件共分为三层,第一层是界面(UI)层,采用MFC技术实现。主要负责和用户的交互操作。第二层是COM层,主要是负责MFC和核心层(ObjectARX)层的通讯。同时完成AutoCAD后台启动、退出、DWG文件的打开和关闭等基础操作。
第三层是核心层,主要负责实现系统的核心功能,文件的遍历、图块参数读取、阀值比较、颜色的读取、颜色的相似度比较、生成报告等操作。
五、系统界面设计
本系统采用了尽量简化的用户操作界面,第一个导入文件按钮,选择以后会弹出文件选择对话框,用户选择需要扫描的DWG文件。
第二个是图块扫描部分,需要输入图块缩小的阀值,如0.05,则系统负责识别所有插入的XYZ比例小于0.05的图块。
第三个按钮执行图块扫描工作,生成图块扫描报告。
第四个是颜色相似度选择分为精度高,精度低两等级。精度高执行背景颜色和实体颜色完全一致的遍历工作。精度低执行背景色和实体颜色近似的比较工作,扫描出的实体可能较多。
六、系统实现关键技术
01.单独的可执行文件操作,AutoCAD后台运行,对用户透明。
独立的ObjectARX技术开发出的.arx文件是一种动态连接库文件,他和AutoCAD本身需要运行在一个进程内部,它具有开发接口强大,运行速度快的优点。但是必须以AutoCAD菜单和命令的形式进行操作,AutoCAD属于前台操作。本软件由于采用了COM层,把AutoCAD作为一个自动化对象进行操作。这样就可以把AutoCAD置在后台,通过独立的EXE文件进行用户操作。同时由于核心层采用了ObjectARX,保留了接口强大和速度快的优点。
02.多文件扫描技术。
MFC的CFileDialog类支持多文件选择。用户选择文件以后,需要通过Vector得到所有文件名称,然后通过COM接口逐个执行文件的打开,发送遍历命令和关闭操作。
03.DWG图形遍历技术。
DWG的图形遍历放置在了核心层(ARX层)。由于AutoCAD的DWG文件本身是一种数据库,所有的图形实体是以数据库对象的形式存储于DWG文件中。而对于图块我们只关心插入比例,对于图形我们关心的是颜色,所以需要写专门的遍历图块和其他图形的函数,完成遍历工作。
04.图块嵌套遍历技术。
如果把图块缩小以后嵌入另外一个图块中,然后把另外这个图块按照1:1插入,这样的情况是比较难发现的。这需要嵌套遍历技术,核心是递归技术的利用。对于每一个图块进行深度遍历如果发现图块内部也有缩小的图块,同样给出报告。
05.颜色相似度比较技术。
如果图形和背景的颜色的RGB值完全一致,可以完全遮盖图形的颜色。这种情况很好判断,只需要比较三者是否一致即可。但是对于图形的颜色和背景色非常接近但不一致的情况,需要颜色相似度比较。目前通用的公式如下:
COLOR1 R1, G1, B1
COLOR2 R2, G2, B2
abs(R1*R1-R2*R2)*0.299 + abs(G1*G1-G2*G2)*0.587+abs(B1*B1-B2*B2)*0.114
七、可扩展性建议
01.本系统以报告的形式提示使用者微小图块的插入点和颜色和背景一致的实体位置。这样可以有效完成图纸的识别工作。但是不具备直观性,如果把微小的图块的插入点设置的距离图块本身距离很远,那么该图块的查找也具有一定的难度。基于这种考虑,未来软件可以采用直接把图块恢复原型,设置图块的比例为XYZ三向1:1.或者扩大显示。
02.背景颜色一致的情况也是不利于根据报告去查找实体的具体位置。特别是在图纸比较大的情况下。今后可以考虑新建一个图层,并把这些发现异 常的实体单独复制到该图层。这样使用者可以直接通过图层看到所有有异常的实体。
03.另外由于核心层采用了AutoCAD强大的二次开发工具ObjectARX,所以本系统具有很大的可扩展空间,例如:
第一,可以和数据库结合,建立公司常用标准图块,标准文件的数据库,通过系统界面统一管理,统一调用。
第二,再需要进行数据统计,特别是生成报表,材料表(BOM)的时候,可以进行遍历,快速而准确的生成标准格式的表。
概要
AutoCAD应用环境下通过第三方软件加密的DWG图纸,在解密过程中容易遇到图块无限缩小隐藏和背景颜色一致隐藏两种漏洞。本软件旨在通过扫描解密的DWG图纸,根据用户设置的阀值遍历图纸中的图块和进行颜色的相似度比较。如果发现异常情况,则生成报告提示使用者。
二、系统开发环境
01.Visual Studio C++ 2008。
02.Microsoft Foundation Class(MFC)。
03.AutoCAD ObjectARX2008/ObjectARX2010。
三、系统运行环境
01.AutoCAD2008/AutoCAD2010。
02..NetFramework2.0/.NetFrameWork3.5。
03.MFC基础运行库。
四、系统工作流程图
本软件共分为三层,第一层是界面(UI)层,采用MFC技术实现。主要负责和用户的交互操作。第二层是COM层,主要是负责MFC和核心层(ObjectARX)层的通讯。同时完成AutoCAD后台启动、退出、DWG文件的打开和关闭等基础操作。
第三层是核心层,主要负责实现系统的核心功能,文件的遍历、图块参数读取、阀值比较、颜色的读取、颜色的相似度比较、生成报告等操作。
五、系统界面设计
本系统采用了尽量简化的用户操作界面,第一个导入文件按钮,选择以后会弹出文件选择对话框,用户选择需要扫描的DWG文件。
第二个是图块扫描部分,需要输入图块缩小的阀值,如0.05,则系统负责识别所有插入的XYZ比例小于0.05的图块。
第三个按钮执行图块扫描工作,生成图块扫描报告。
第四个是颜色相似度选择分为精度高,精度低两等级。精度高执行背景颜色和实体颜色完全一致的遍历工作。精度低执行背景色和实体颜色近似的比较工作,扫描出的实体可能较多。
六、系统实现关键技术
01.单独的可执行文件操作,AutoCAD后台运行,对用户透明。
独立的ObjectARX技术开发出的.arx文件是一种动态连接库文件,他和AutoCAD本身需要运行在一个进程内部,它具有开发接口强大,运行速度快的优点。但是必须以AutoCAD菜单和命令的形式进行操作,AutoCAD属于前台操作。本软件由于采用了COM层,把AutoCAD作为一个自动化对象进行操作。这样就可以把AutoCAD置在后台,通过独立的EXE文件进行用户操作。同时由于核心层采用了ObjectARX,保留了接口强大和速度快的优点。
02.多文件扫描技术。
MFC的CFileDialog类支持多文件选择。用户选择文件以后,需要通过Vector得到所有文件名称,然后通过COM接口逐个执行文件的打开,发送遍历命令和关闭操作。
03.DWG图形遍历技术。
DWG的图形遍历放置在了核心层(ARX层)。由于AutoCAD的DWG文件本身是一种数据库,所有的图形实体是以数据库对象的形式存储于DWG文件中。而对于图块我们只关心插入比例,对于图形我们关心的是颜色,所以需要写专门的遍历图块和其他图形的函数,完成遍历工作。
04.图块嵌套遍历技术。
如果把图块缩小以后嵌入另外一个图块中,然后把另外这个图块按照1:1插入,这样的情况是比较难发现的。这需要嵌套遍历技术,核心是递归技术的利用。对于每一个图块进行深度遍历如果发现图块内部也有缩小的图块,同样给出报告。
05.颜色相似度比较技术。
如果图形和背景的颜色的RGB值完全一致,可以完全遮盖图形的颜色。这种情况很好判断,只需要比较三者是否一致即可。但是对于图形的颜色和背景色非常接近但不一致的情况,需要颜色相似度比较。目前通用的公式如下:
COLOR1 R1, G1, B1
COLOR2 R2, G2, B2
abs(R1*R1-R2*R2)*0.299 + abs(G1*G1-G2*G2)*0.587+abs(B1*B1-B2*B2)*0.114
七、可扩展性建议
01.本系统以报告的形式提示使用者微小图块的插入点和颜色和背景一致的实体位置。这样可以有效完成图纸的识别工作。但是不具备直观性,如果把微小的图块的插入点设置的距离图块本身距离很远,那么该图块的查找也具有一定的难度。基于这种考虑,未来软件可以采用直接把图块恢复原型,设置图块的比例为XYZ三向1:1.或者扩大显示。
02.背景颜色一致的情况也是不利于根据报告去查找实体的具体位置。特别是在图纸比较大的情况下。今后可以考虑新建一个图层,并把这些发现异 常的实体单独复制到该图层。这样使用者可以直接通过图层看到所有有异常的实体。
03.另外由于核心层采用了AutoCAD强大的二次开发工具ObjectARX,所以本系统具有很大的可扩展空间,例如:
第一,可以和数据库结合,建立公司常用标准图块,标准文件的数据库,通过系统界面统一管理,统一调用。
第二,再需要进行数据统计,特别是生成报表,材料表(BOM)的时候,可以进行遍历,快速而准确的生成标准格式的表。