陳清平,堯志青,胡 菡,陳方清
(1.湖北省測繪工程院,湖北 武漢 430074)
AutoCAD中一種自動處理懸掛的方法及其實現
陳清平1,堯志青1,胡 菡1,陳方清1
(1.湖北省測繪工程院,湖北 武漢 430074)

介紹了數字線劃圖生產過程中利用CAD二次開發(VB.NET+ObjectARX)自動檢查并處理懸掛線的技術,并對該技術存在的不足進行了分析。
懸掛點;懸掛線;懸掛容差;CAD二次開發
在矢量圖形的自動生產過程中,可能會遺漏、重復或錯誤定位某些點,從而產生懸掛線。例如,航測數據采集因受生產軟件和手輪角盤等硬件條件的制約,采集者為了貼附地物進行精確采集,將會放棄三維捕捉和二維捕捉,從而產生懸掛線。在線劃圖的編輯處理過程中,會遇到一些咬合精度達不到要求的懸掛線。僅與一條線段相連的節點稱為懸掛節點,與懸掛節點相連的線段稱為懸掛線。
利用AutoCAD 2007進行線劃圖的生產過程中,遇到的懸掛線可分為2種情況:懸掛線與參照線之間有縫隙(見圖1)、懸掛線超過了參照線(見圖2)。
這2種懸掛在生產的過程中會大量出現,需人工進行編輯處理以達到生產要求。本文分析和研究了一種自動處理懸掛線的方法,利用VB.NET和ObjectARX對AutoCAD進行二次開發,用程序實現懸掛線的自動處理。

圖1 懸掛類型之一

圖2 懸掛類型之二
在處理懸掛線前,首先要確定懸掛線、懸掛點的位置和坐標,即全圖查找懸掛點并定位每一個懸掛點。
定義一個容差范圍圓,超過容差圓半徑的懸掛可認作正常懸掛,保留懸掛查詢點,供人工判斷。在容差范圍內的懸掛可用程序改動。1∶1萬的數字線劃圖容差半徑設置為5 m時(圖面距離為0.5 mm),程序自動處理結果達到預計效果的99.9%。大比例尺數字線劃圖可根據精度情況減小容差半徑。
1)結合查詢出來的懸掛標示,遍歷DWG圖中的LWpolyline(輕量多段線)和Line(直線),通過對照懸掛標示的X、Y值與線段的首尾節點X、Y值,獲得懸掛標示Id與懸掛線Id相關聯的二維集合(此處不需考慮節點Z值),搜索需改動的懸掛對象和位置(如圖3所示)。

圖3 確認懸掛對象
2)根據比例尺大小和實際情況設置容差圓的半徑大小,該半徑即為自動處理懸掛改動距離的最大范圍。如果程序判斷改動范圍超過了該半徑,則放棄自動處理懸掛,保留懸掛標示,供人工判讀。
3)遍歷懸掛點列表,搜索出以懸掛點為中心的特定范圍內的多段線,判斷搜索出的多段線條數n。當n<2時表示該懸掛點已經超出改動范圍,不做處理;當n≥2時,計算求出懸掛線與各條參照線的交點或延長線的交點,從而求出懸掛處需延長或裁剪的距離集合。遍歷該集合得出最短距離值,如果該值沒超過容差圓半徑則執行懸掛點改動,延長或縮短到最近交點上,即給懸掛點賦交點的X、Y值和自身Z值以達到消除懸掛的效果。
在搜索以懸掛點為中心的特定范圍內的參照線時,程序可進行優化處理。如果把全圖線段作為參照線的集合,程序將會遍歷該集合進行解算求改動最小距離,使得計算量成平方級增長,非常費時;可將程序改進為利用懸掛點為中心,框選特定范圍內的(利用窗交工具)線段作為參照線集合解算結果,使得計算量大為減少,效果比較理想。對于不同標高的線段求交點消除懸掛,可通過正射投影到一個任意水平面上,獲得交點。提取交點的X、Y值,提供給懸掛點進行移動,從而消除懸掛。
4)分別標示出改動過和未改動的懸掛點位,供人工檢查和修改。圖4中綠色圓為改動處,紅色圓處因改動范圍超過容差所以未處理,交由人工判斷。具體實現流程如圖5所示。

1)查找懸掛點、懸掛線。

2)通過設定的容差批量延伸、裁剪多段線消除懸掛。



利用該算法編譯的程序經過測試和生產,遇到了以下問題:
1)由于原線劃圖中存在錯誤,導致程序依照算法判斷出的結果也出現錯誤。例如,一條地類界本應停靠在雙線路的虛線上,但由于原圖將其錯誤地穿過雙線路的虛線邊而停靠在實線附近,程序運行后,會依照算法將地類界咬合雙線路的實線邊而穿越了雙線路,使得最終結果錯誤。
2)判斷等高線的合理懸掛問題。由于等高線在坎線下方的懸掛是合理存在,所以使用該方法處理等高線懸掛時會出現錯誤。在其自動處理懸掛時,應先凍結等高線層,避免等高線的參與。如何有效地處理等高線懸掛問題還有待程序的更加完善。
3)AutoCAD 2007的數學精度問題。在2007版的CAD中其默認顯示精度為0.000 1個單位,而運算精度可以達到0.000 000 01個單位,所以在程序運算時應注意計算結果的四舍五入,以保證數據精度的統一。
[1] Watson K, Nagel C. Beginning Visual C#2005[M].北京:清華大學出版社,2006
[2] 楊德麟.大比例尺數字測圖的原理方法與應用[M].北京:清華大學出版社,1998
[3] 陳國良.并行算法的設計與分析[M].北京:高等教育出版社,2003
[4] 武漢大學測繪學院測量平差組.誤差理論與測量平差基礎[M].武漢:武漢大學出版社,2003
[5] (美)Coombs F. Visual Basic編程實用大全[M].北京:中國水利水電出版社,2005
[6] 李士雨.工程數學基礎——數據處理與數值計算[M].北京:化學工業出版社,2005
[7] 高春燕,李俊民,劉彬彬.Visual Basic程序開發范例寶典[M].北京:人民郵電出版社,2006
Research and Realization of Processing Suspension Automatically Technology in AutoCAD
byCHEN Qingping
This article introduced the technology of searching and processing suspension line automatically in the production process of DLG by the secondary development of CAD (via VB.NET& ObjectARX),and analyzed the weakness at the same time.
suspension point,suspension line,tolerance,secondary development of CAD
P208
B
1672-4623(2014)02-0067-03
10.11709/j.issn.1672-4623.2014.02.024
2012-11-19。
陳清平,高級工程師,研究方向為航空攝影測量。