AutoCAD中过近顶点的自动溶合
2010-11-14顾有兵
顾有兵
(蚌埠市勘测设计研究院,安徽蚌埠 233000)
AutoCAD中过近顶点的自动溶合
顾有兵
(蚌埠市勘测设计研究院,安徽蚌埠 233000)
在基于AuotoCAD的图形中,采用多边形过近顶点的自动溶合方式,可有效地消除多边形的拓扑问题,提高内业数据处理速度和数据质量。
多边形;拓扑;自动溶合
一、引 言
在地籍测量中,要求宗地线、图斑线、房屋线等之间拓扑关系正确,即不能有悬挂点、重叠、交叉等问题存在,利用文献[1-2]可有效地发现存在的拓扑问题,进而以手工方式逐个进行处理。在文献[1]中也提到,这种错误是人工操作时造成的,一般问题较小。另外,不同的软件之间相互转换数据,因取位问题,多边形之间看似完全重合,但放大之后有极小差异;再就是图形之间的相互复制,其定位点的微小差异也会引起微小的拓扑问题。尽管这些问题在测量误差的允许范围内,但在整个图形数据中是不允许存在的。虽然这些拓扑问题极小,反不如大的问题容易处理,而且这些微小的拓扑问题可能因系统问题大量存在,尽管采用文献 [1-2]的方法可以快速发现,但因数量大,处理起来也非常麻烦。如图 1所示,多边形A与多边形B之间存在缝隙,因点 1、2之间的间距极小 (实际编程时可以自由设定),无论是点 1靠近到点 2上,还是点 2靠近到点 1上,或者点 1、点 2靠近到两点的连线中点上,都可以满足要求,而不需人工辅助判断,这就为自动处理提供了可能。
图1 拓扑问题示例
二、顶点自动溶合的目的
顶点的自动溶合是将在设定范围内的若干个顶点溶合为一个顶点,从而消除多边形的拓扑错误。如图 2所示,多边形 A、B、C、D在顶点A3、B4、D1、C2处存在微小的拓扑错误,顶点的自动溶合即是将顶点 A3、B4、D1、C2自动溶合为相同坐标值的点,从而消除多边形之间的微小拓扑错误。
图2 多边形之间的微小拓扑错误
三、AutoCAD中多边形的分析
在AutoCAD中多边形均是由若干个顶点构成,多边形的形状、位置等则是由顶点的坐标值确定。如图 2所示,多边形A由顶点A1、A2、A3、A4构成;多边形B由顶点B1、B2、B3、B4构成;多边形 C由顶点C1、C2、C3、C4构成;多边形 D由顶点 D1、D2、D3、D4构成。多边形之间的关系只是位置上的关系,这种关系隐含在顶点坐标值中,需要通过坐标分析来获得,而不是记录在多边形或图形的某种属性中,并可以直接读取。如点 A2和点 B1位置相同,这种位置相同只有通过坐标分析才可以计算得到,而在图形或多边形某个属性中没有记录。所以在AutoCAD中分析或处理多边形必须从分析或处理顶点坐标开始。
四、顶点自动溶合的方案设计
通过AutoCAD多边形的分析可知,预分析或处理多边形需从顶点坐标开始,顶点自动溶合的具体方案流程如下:
1)设定自动溶合的限差,即距离小于多少的顶点才会相互溶合。
2)生成预留顶点坐标库。逐个处理多边形,分析多边形的每一个顶点,如果当前顶点与顶点库中所有顶点的最小距离大于设限差,则将当前顶点加入到顶点库中去,否则不加入,最后形成需保留顶点的顶点库。如图 2所示,假设处理多边形的顺序是按照A、B、C、D进行的,分析各顶点也是按照 1、2、3、4顺序进行的。处理多边形 A时,首先分析顶点A1,因顶点库中当前为空,则顶点 A1加入到顶点库中去,分析点 A2时,与顶点库中最小距离为和点A1的距离,大于限差,加入顶点库,A3、A4也会加入顶点库。处理多边形B时,分析顶点 B1,因 B1与顶点库中最小距离(和A2的距离)为 0,所以顶点B1被忽略,没有加入顶点库。设点B4、D1、C2与点A3距离均小于限差,则都不加入顶点库,最后加入顶点库中所有的顶点为A1、A2、A3、A4、B2、B3、D3、D4、C2。
3)顶点的溶合处理。顶点库生成后再次逐个处理多边形,对多个顶点进行分析处理。如果当前顶点与顶点库中点的最小距离不为 0,则用最小距离对应的点替换当前顶点坐标,相当于把当前顶点移动到距离顶点库中距离最小的顶点上。如图 2所示,仍然假设处理多边形的顺序是按照A、B、C、D进行的,分析各顶点也是按照 1、2、3、4顺序进行的。处理多边形A时,首先分析顶点 A1,顶点 A1在顶点库中存在,则顶点A1距离顶点库中距离所有点的最小距离为 0,不用调整,保持原位置不动,顶点 A2、A3、A4相同。处理多边形 B时,点 B1、B2、B3距离顶点库中距离所有点的最小距离均为 0,不作调整,分析顶点B4时,因点B4没有加入到顶点库,且和顶点库所有点的最小距离为和 A3的距离,不为 0,则将B4移动到点 A3上。逐个多边形逐顶点进行分析处理,顶点D1、C2会移动到点 A3上,其他顶点位置不会调整。
4)优先图层的设置。在顶点的自动溶合处理过程中,如前所述,各多边形处理顺序是无法预知的,处理的顺序不同,则选择的顶点库中顶点就不同,处理的结果就不同,在大批量数据处理中人为设置顺序的可能性也不大,尽管这种自动处理的限差设置会很小,对测量误差来说毫无意义,但对于拓扑处理来说会存在问题。如在地籍图中,假设街坊的边界已经设定,则在处理街坊线和宗地线时,街坊界是不能被调整的,即使和宗地边界有微小缝隙,只能调整宗地界线。为此,在顶点库构建时,设置一优先图层。首先处理优先图层中的多边形,再处理其他图层上的多边形,则位置调整时,参照点优先是使用了优先图层上的顶点,确保其他图层上的点向优先图层上的点靠近。在实际处理问题时,首先将街坊界进行独立自动处理,确保街坊界拓扑没有问题,再将街坊和宗地界联合处理,将街坊界设为优先图层,则街坊和宗地之间有微小拓扑问题时,是宗地界线靠近到街坊界线上。以此逐级处理宗地与图斑、图斑与房屋等。
五、顶点自动溶合的程序设计
通过以上的分析,采用 Visual Studio 2008中VB.net语言基于 AutoCAD 2008进行程序设计,程序的主要语句如下:
六、结束语
1)使用以上设计的程序对图 2进行顶点溶合处理,未设置优先图层,结果如图 3所示。设置多边形B所在图层为优先图层,其他多边形不在优先图层上,处理结果如图 4所示。通过优先图层的设置,可确保处理结果按设定目标处理,达到处理结果的可控性。
2)因为顶点位置的自动调整,为不影响图形本身的数学精度,所以限值设定一般小于 0.001 m,确保不影响测量成果精度。
3)顶点自动溶合不仅用于图形微小拓扑错误的自动处理,还可用于多边形边长的滤波处理,自动删除多边形过短边长,减小数据量。如图 5、图 6所示。
图 3 多边形顶点自动溶合结果(无优先图层)
图 4 多边形顶点自动溶合结果(B为优先图层)
图5 多边形滤波前情况
图6 多边形滤波后情况
[1] 陈重奎,李乃良.基于 AutoCAD的多边形间的间隙核查[J].测绘通报,2009(8):44-46.
[2] 陈重奎,李乃良.AutoCAD中利用区域计算实现多边形的重叠与空洞检查 [J].城市勘测,2009(4): 117-119.
[3] STEVEN J,牛力,等.Visual Basic 6编程宝典[M].北京:电子工业出版社,2004.
Automatic Gathering of Polygon Apexes in AutoCAD
GU Youbing
0494-0911(2010)07-0062-03
P271
B
2010-02-22;
2010-06-06
顾有兵(1957—),男,安徽蚌埠人,高级工程师,主要研究方向为工程测量。