一种比较图纸之间的异同的方法

文档序号:6466078阅读:215来源:国知局

专利名称::一种比较图纸之间的异同的方法
技术领域
:本发明涉及一种比较图纸之间的异同的方法,尤其涉及以电子文档的方式保存的两件图纸的异同的比较方法,进一步地,涉及使用CAD制图软件生成的图纸的对比方法。
背景技术
:图纸是设计企业用来表达设计思想以及和施工企业之间进行技术交流的主要方式,因此被广泛应用在建筑设计、制造、水利、装修等各个行业。但是数量繁多的图纸,给管理工作带来了重大挑战。图纸管理的困难不仅在于数量多,而且版本也非常多。因为图纸从设计完成到施工完成,往往需要一个反复修改和验证的过程设计图纸-审图-提交施工-在施工过程中发现错误-设计师修改图纸-相关人员再审核-再提交…,如此反复。在这众多的环节中,随时有可能会因为用错版本,导致程度不等的损失。最为严重的,如果施工方拿到错误的图纸,往往会导致工程质量问题。在CAD技术出现之前,图纸主要存在于纸介质上,这种错误的几率相对还小一些;而在CAD技术高度普及的今天,电子文件已经成为重要的交换介质,发生版本差错的几率就明显增大了。版本管理的一个重要工具就是图纸比较。图纸比较的难度远高于文本比较,因为图纸里面的图元是分布在二维,甚至是三维空间,展现差异比较困难;图元的外观属性繁多,判断异同的标准很复杂。图纸比较工具通过比较图形元素的外观和细节属性,能明确告诉用户两张图的差异所在。现在市场上已经出现了一些用于图纸比较的工具。这些用于图纸比较软件都是针对当前流行的CAD设计软件-AutoCAD的DWG文件格式来进行的,操作也比较相似,都是把两张图纸的相同和不同之处复制到另外一个图里,再通过改色来展现。虽然基本能比较出图纸的差异,但是都存在以下问题第一,只能比较分散的元素,不能比较图块和引用文件。图块是图纸中的一类特殊元素,相当于由若干图元组成的一个单位,在图纸中被整体操作。引用文件则是把一个图纸中的所有图元作为一个整体,融和到另外一张图纸中,是一种特殊的图块。图块和引用文件的出现,是制图软件的一大进步,大大方便了绘图操作过程中的外部引用,同时也方便了多个设计师之间进行协同工作。现在外部引用的使用已经越来越普遍,例如,很多设计单位的标准图签是采用外部引用的格式引入的,专业之间进行协作,也往往是采用这种方式。例如设计者改变自己的设计后,就可以直接体现在引用它的图纸里,非常方便。图块和引用文件比较功能的缺失,会使得比较功能的应用受到严重限制。图块和引用文件的特殊之处在于在CAD软件中既能作为一个整体对待,又能管理其中的单个图元。由于它的整体性,在进行比较和展现块内图元的差异的时候,将遇到极大的困难。比如比较,现有用于图纸比较的软件都是按照图元的句柄进行比较,但比较图块和引用文件的时候,两个图档的对应图块内的图元的句柄不能再作为比较的依据它们完全有可能是不相同的,这是因为在打开图档的时候,引用文件中的图元的句柄,需要合并到引用它的图档中去,而合并的规则并不是固定的,这将导致每次打开图档,引用文件的图元句柄都有可能不同。再比如变色块内图元的颜色既可以单独控制,也可以由图块统一控制。因此要控制图块内的图元颜色,比控制普通图元的颜色要困难得多。第二,只能按照图元的句柄(handle,即图元在图纸中的唯一标识)进行配对比较,不能仅根据图元的具体属性(即按图形比较)比较。这些软件在比较之前都是基于一个前提,即两张图是由同一张图修改而来,总体有可比性,改动只是局部的。但是实际上还存在一种情况用户把图纸中的部分内容复制到另外一张图中。这时图元的句柄发生了变化,不能再作为判断的依据。另夕卜,如果是直接比较图块和引用文件里面的图元,句柄也往往会发生变化。现有用于图纸比较的同类软件都不支持按图形比较,因为理论上来说,所谓图形比较,一个图中的某个图元,需要和另外一个图的所有同类图元进行比较,才能确定是否有相同的。这样比较的次数会随图元个数增加而呈几何级数上升,将达NxN数量级,远远超过按照句柄比较的时间。特别是在图元数量达到几十万以上时,比较的时间将令人无法忍受,失去了实用的意义。第三,不能比较自定义图元。除了CAD本身定义的图元类型以外,用户还可以根据需要自行定义其它的图元类型。这些图元往往只能取得少数外在属性,内部的复杂属性无法获得,所以现有的比较软件也无法进行深入的比较。第四,不能在当前图纸展现差异,给用户工作造成很大的不便。为了查找差异,用户必须打开软件生成的另外一张或多张图纸,通过颜色的特征,找到差异之处,再回到当前图纸,仔细比对。复制到另外一张图纸的图元,虽然仍然可以保持其外观,但是具体的属性,比如句柄、图块名称等,都发生了变化。给定位和修改带来很多不便
发明内容本发明的目的在于克服现有用于图纸比较的软件的不足之处,提出一种比较图纸之间的异同的方法,迅速准确地比较并标识出图纸的异同。本发明公开的一种比较图纸之间的异同的方法,由电脑自动执行,包括如下步骤第一步,在待比较图纸中确定待比较的图元、待比较的图元选项;第二步,读取所述待比较图纸中的待比较的图元范围内的每一个待比较图元的每一个待比较图元选项;第三步,在所述待比较图纸中选择一个图纸,对整体空间范围进行区域划分并为每一个待比较图纸的每一个图元分配空间序号;根据所述空间序号对所述图元选项数据进行排序;第四步,把一个待比较图纸中的每一个所述图元的所述选项数据与另一个图纸的所述空间序号相同的所述图元的所述选项数据进行比较并确定异同。本发明公开的比较图纸之间的异同的方法,还包括如下从属技术特征在所述第二步和第三步之间,插入步骤曱首先在所述待比较图纸中选择一个图纸并且判断其中所述待比较图元范围内是否存在图块、引用文件或自定义图元,如果存在,则分解所述的图块、引用文件或自定义图元为独立图元;再执行后续第三步和第四步;如果不存在所述的图块或者引用文件,则不执行后续第三步和第四步,而是执行步骤乙建立所述待比较图元的句柄和图元数据地址的对应表;把另一个待比较图纸中的每一个所述图元的句柄与所述句柄和图元数据地址的对应表中相同句柄的图元数据——进行比较并且确定异同。所述第一步中,同时还可以在待比较图纸中确定待比较的基点,根据所述基点建立比较过程中采用的相对坐标。所述第一步中,同时还在待比较图纸中确定待比较的区域范围,根据所述范围筛选出需要进行比较的图元。在所述第三步中,所述根据所述空间序号对所述图元选项数据进行排序的同时还进行重组,把所述空间序号相邻的图元选项数据保存在内存中的相邻位置。在所述第四步之后或者步骤乙之后,执行第五步直接在所述待比较图纸中展现比较后的差异部分,把相异的图元以不同的颜色加亮显示,或者用红色闪烁方框围起来,或者把相同的所述图元改成一种颜色,不同的所述图元改成另外一种颜色。本发明的比较图纸之间的异同方法,因为在待比较图纸中先对整体空间范围进行区域划分并为每一个待比较图纸的每一个图元分配空间序号并进行排序,再把空间序号相同的选项数据进行比较并确定异同,而且,同时还可以针对每个图纸给出一个区域范围,根据区域范围,篩选出落在这个区域范围内的图元然后再进行比较。这样对于复杂的图纸,可以不耗费大量时间进行整图比较,而是仅仅比较局部,减少了计算量提高了比较速度,从而可以比较含有图块和引用文件的图纸,并能直接在当前图纸中展现差异,直观方便。图1是本发明的图纸比较方法的流程图。图2是本发明按图形比较的分析过程流程图。图3是图元比较的具体过程流程图。图4是计算图元空间范围的示意图。具体实施方式下面结合附图和具体实施方式对本发明做进一步详细说明。本发明是一个计算机的自动处理过程,通过读取、整理和分析工程图纸中的图元信息,比较出两个工程图纸中各图元的属性差异,并以多种方式直观、快速地展现出来,辅助用户进行图纸的版本管理。本发明可以应用在由AutoCAD生成的DWG文件的比较,但是用到的方法和模块并不限于DWG文件,只要其它格式的电子文件能提供相应的接口即可。如图1所示是本发明的图纸比较方法的流程图,现在逐步说明该比较过程的每一阶段(l)打开图纸,接收用户的输入信息,确定比较的选项。比较选项主要有几种>图元的哪些信息需要比较,哪些不比较。如图层、线型、线宽、字体样式、Z坐标等。>图元的选择范围用户可以框选其中一部分图元进行比较,也可以选择全部图元进行比较,还可以按照某些条件的组合,过滤出部分图元来进行比较。>选择两图比较的基点有的图在不同版本之间,整体发生了位移,或者采用了用户坐标系。指定基点,可以使得比较过程采用相对坐标,而不是绝对坐标进行比较。一个图纸定义了基点之后,其所有的图元的坐标均采用相对坐标,即图元坐标值减去基点坐标值,如图元坐标(3,4,0),基点(1,1,0),则相对坐标为(2,3,0)。>比较的模式按照句柄进行比较,还是按照图形进行比较。句柄是图元在图纸中的唯一标识,按句柄比较,是把两图中句柄相同的图元——配对然后进行比较;按图形比较,则是按照图元的具体属性,在两图中寻找能完全配对的。比较的模式,即按句柄比较/按图形比较,直接影响到整个比较过程采用的流程和算法。其它的选项是确定比较的时候需要忽略或调整哪些属性。(2)根据用户的选择,读取图纸中的部分或全部图元信息。在读取图元信息的时候,如果遇到图块或引用文件,还需要进行分解,把块内的图元作为独立图元来对待。因为块和引用是可以嵌套的,即图块里面还可以有图块,所以处理过程也是递归的。(3)根据比较的选项,对读取的信息进行整理分析。比较之前,数据需要进行预处理,以达到最优的比较速度和效果。预处理的策略主要是根据按句柄比较还是按照图形比较。如果是按照句柄比较,则需要在其中一个图纸的数据中建立句柄和图元数据地址的对应表,一般采用哈希表。这样在另外一张图中,每获得一个图元,就可以在这个对应表中快速定位与其句柄相同的图元。比如,第一个图纸有三个图元,句柄分别为Oxl,0x2,0x3,其图元^:据的具体地址为0x0001,0x0005,0x001A,则对应表中存在三个条目图元句柄对应图元数据地址<table>tableseeoriginaldocumentpage9</column></row><table>建立了这个对应表之后,在第二个图档中每取出一个图元,就把它的句柄和这个对应表中的进行对比,就能在^f艮短的时间内找到第一个图中和它对应的图元。如果是按照图形进行比较,则需要对两张图的图元类型进行排序。理论上来说,一个图中的某个图元,如果不进行排序和筛选,则需要和另外一个图的所有同类图元进行比较,才能确定是否有相同的,这样比较的次数将达NxN数量级,远远超过按照句柄比较的时间。本发明在开始比较之前,先根据一定的规则对图元进行排序。如图2所示是按图形比较的分析整理过程,包括顺序进行的如下步骤首先读取每个图元的空间信息,再计算整体的空间范围,然后对整体空间范围进行区域划分并进行编号,这样每个实体根据其所属的空间区域,获得一个编号,根据每个图元的空间区域编号,对图元进行排序和重组,把相邻空间区域的图元,保存在内存的相邻位置。这里排序的规则是经过精心选择的,首先读取每个图元的空间信息,计算整体的空间范围。这个空间范围就是完整包含该图元的最小矩形,比如图4所示的计算图元空间范围的方法,一条直线20,其两个端点坐标为(-1,2,0),(4,-3,O),那么它的空间范围是由(-1,-3,0)和(4,2,0)两个对角点组成的矩形10,然后对整体空间范围进行区域划分并进行编号,根据每个实体所属的空间区域获得一个编号,即根据图元的二维或三维的位置属性,进行必要的运算,得到一个空间的序号;然后根据这个序号的大小对图元位置进行重新排列,即根据每个图元的空间区域编号,对图元进行排序和重组,相邻空间区域的图元,保存在内存的相邻位置。这时从一个图中取出一个图元,在另外一个图中,筛选出空间区域编号与之相同的图元,平均只有10~50个图元需要与之进行比较(与图元总数无关),而且这些图元信息在内存中的存储位置是相邻的,这就使得算法具有良好的局部性,能有效利用中央处理器的高速緩存进行运算。经过这个预处理以后,比较的次数降低到N的数量级,花费的时间和按句柄比较的模式几乎相等,达到了非常好的实用性能。(4)进行属性比较对图元进行分类,采用一定的遍历策略对相同类型的图元进行比较。如果是按句柄比较,则在遍历第一个图的所有图元时,在建立的对应表中快速找到第二个图中的对应图元,然后进行比较。如果是按照图形比较,则两个图的所有图元都是按照一定的空间顺序进行排序的。按照这个空间顺序遍历第一个图的图元,然后在第二个图中找到和第一个图的某个图元具有相同空间编号的图元,再逐一比对,直至全部比较完成。具体的流程见图3。针对图块和引用文件,需要进行深入的比较。被引用文件里面的图元句柄,由于需要融合到引用文件中去,所以句柄往往发生了变化。这种情况下,图块和引用文件的比较,固定采取"按图形比较"的模式。对于"自定义图元",CAD的标准接口往往无法取得全部的自定义属性,但是CAD软件也提供了"分解"的统一接口,可以把自定义图元临时分解成基本的图元。本发明同时利用了这两个接口,首先比较CAD能读取的标准属性;如果相同则把这个图元当成一个图块,继续进行分解,比较分解后的单个基本图元的属性。(5)展现比较的结果不同于其它比较软件,本发明用了多种方式直接在图纸中展现比较后的差异部分,使得用户可以直接在当前图纸中进行定位和修改,大大提高了工作效率。例如亮显把不同的颜色加亮显示,利用了CAD的"亮显"接口(highlight)用红色闪烁方框进行提示在不同颜色的附近用红色方框标识。计算出需要^l是示的图元的具体位置信息,然后在附近画出红色的闪烁方框。临时变色把相同的图元改成一种颜色,不同的图元改成另外一种颜色。由于是在原图操作,因此变色要具有非常高的可靠性,变色之后,能保证恢复成原状,不改变图纸中的任何内容。对于图块和自定义图元,直接改色往往是行不通的。可行的方法是根据图块里面的图元,复制一个图块出来,把里面的图元进行相应的变色。这样恢复颜色的时候,改变的只是复制的图块,对原来的图元也没有任何影响。自定义图元也可以作为一个特殊的图块,进行对应的处理。怎样确认所比较的图元相同或者不同呢?就是两个图元的所有属性都相同,或者根据比较选项,忽略了某些属性以后,其它的属性全部相同。如果选择"按句柄比较",则认为句柄相同的是对应的图元,才可以进行比较;如果选择"按图形比较",则在比较之前,无法判断哪些是对应的图元;只有在比较之后,两个属性完全相同的才认为是对应的图元。和CAD软件的接口>获取图元的图形属性>获取图元句柄>计算图元的空间范围>根据句柄读取图元属性>对图元进行亮显(highlight)这些都是普通CAD文件的基本功能。根据这些接口,本发明可以很容易的移植到AutoCAD以外的其它CAD设计软件中。权利要求1.一种比较图纸之间的异同的方法,其特征在于,包括如下步骤第一步,在待比较图纸中确定待比较的图元、待比较的图元选项;第二步,读取所述待比较图纸中的待比较的图元范围内的每一个待比较图元的每一个待比较图元选项;第三步,对一个所述待图纸的整体空间范围进行区域划分并为每一个待比较图纸的每一个图元分配空间序号;根据所述空间序号对所述图元选项数据进行排序;第四步,把一个待比较图纸中的每一个所述图元的所述选项数据与另一个图纸的所述空间序号相同的所述图元的所述选项数据进行比较并确定异同。2.根据权利要求1所述的比较图纸之间的异同的方法,其特征在于,在所述第二步和第三步之间,插入步骤曱首先在所述待比较图纸中选择一个图纸并且判断其中所述待比较图元范围内是否存在图块、引用文件或自定义图元,如果存在,则分解所述的图块、引用文件或自定义图元为独立图元;再执行后续第三步和第四步;如果不存在所述的图块或者引用文件,则不执行后续第三步和第四步,而是执行步骤乙建立所述待比较图元的句柄和图元数据地址的对应表;把另一个待比较图纸中的每一个所述图元的句柄与所述句柄和图元数据地址的对应表中相同句柄的图元数据——进行比较并且确定异同。3.根据权利要求1或者2所述的比较图纸之间的异同的方法,其特征在于,所述第一步中,同时还可以针对每个图纸给出一个区域范围,根据区域范围,筛选出落在这个区域范围内的图元作为待比较图元。4.根据权利要求3所述的比较图纸之间的异同的方法,其特征在于,所述第一步中,同时还在待比较图纸中确定待比较的基点,根据所述基点建立比较过程中采用的相对坐标。5.根据权利要求4所述的比较图纸之间的异同的方法,其特征在于,在所述第三步中,所述根据所述空间序号对所述图元选项数据进行排序的同时还进行重组,把所述空间序号相邻的图元选项数据保存在内存中的相邻位置。6.根据权利要求1所述的比较图纸之间的异同的方法,其特征在于,在所述第四步之后,执行第五步直接在所述待比较图纸中展现比较后的差异部分,把相异的图元以不同的颜色加亮显示,或者用红色闪烁方框围起来,或者把相同的所述图元改成一种颜色,不同的所述图元改成另外一种颜色。7.根据权利要求5所述的比较图纸之间的异同的方法,其特征在于,在所述步骤乙之后,执行步骤丙直接在所述待比较图纸中展现比较后的差异部分,把相异的图元以不同的颜色加亮显示,或者用红色闪烁方框围起来,或者把相同的所述图元改成一种颜色,不同的所述图元改成另外一种颜色。全文摘要本发明公开了一种比较图纸之间的异同的方法,由电脑自动执行并按照比较结果显示出图纸中的异同之处,包括第一步,在待比较图纸中确定待比较的图元范围、待比较的图元选项;第二步,读取所述待比较图纸中的待比较的图元范围内的每一个待比较图元的每一个待比较图元选项;第三步,在所述待比较图纸中选择一个图纸对整体空间范围进行区域划分并为每一个待比较图纸的每一个图元分配空间序号;根据所述空间序号对所述图元选项数据进行排序;第四步,把一个待比较图纸中的每一个所述图元的所述选项数据与另一个图纸的所述空间序号相同的所述图元的所述选项数据进行比较并确定异同。本发明的比较图纸之间的异同的方法计算量小速度快。文档编号G06F17/50GK101630335SQ20081014164公开日2010年1月20日申请日期2008年7月18日优先权日2008年7月18日发明者黄天祥申请人:纬衡浩建科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1