CAD轉CAD注意事項

2021-08-20 18:47:57 字數 1463 閱讀 6655

剛處理一批資料,在visualizer裡面檢視結果好好的,數目也正確,可到輸出結果一看,亂七八糟,牛頭不對馬嘴,鬱悶了一陣子之後,開始找原因。

是這樣:cad中的綠地只是簡單的用一系列綠地符號表示,綠地的邊界由各種線狀地物構成,包括房屋邊界線,道路邊界線等。此次欲將綠地邊界線提取出來,思路自然是將各類邊界線構面,然後用綠化符號去跟這些面做空間運算,存在疊置的面就被當做綠地邊界線了,理論上就是這樣的(會存在錯誤,原因為原始資料的問題,後面會提到)。

於是,我想當然的就動手了。乙個areabuilder,乙個pointonareoverlayer,再加上幾個tester,結果出爐,輸出到shape檔案中的結果完全正確,輸出到dwg中的卻存在問題。找原因吧。

錯誤:輸出的面變成了亂七八糟的符號。由於cad中符號是個圖塊,曾經和麵做過overlayer運算,而且輸入時候也暴露了 autocad_blockname屬性,而我的輸出麵中有遺留的乙個屬性(由dgn轉dwg時候設定的),剛好是 autocad_blockname,首先我就想到是不是這個原因導致的,是不是fme自動把輸入輸出的這兩個屬性連線起來了呢?所以用了乙個屬性移除,在輸出前移除autocad_blockname,再在輸出中刪掉這個屬性。執行,結果變了,可還是不正確。我沒有去考證(是不是fme自動把輸入輸出的這兩個屬性連線起來了呢)這個猜想是否正確,別拍磚,改天再研究這玩意。

接著找原因。既然在visualizer中是正確的,為什麼輸出又不對呢。查詢了所有輸出,發現個數正確,就是表現方式不對。有點糾結,開visualizer,選擇乙個看屬性,驚天發現:autocad_entity屬性居然是 autocad_insert,就是你了小子,馬上把輸出的autocad_entity手動賦值為antocad_line,重新執行,開啟結果一看,ok,正確了。

總結:cad轉cad的時候,做了疊置等各類空間運算後,由於都是cad資料,可能某些相同的屬性會彼此被沖掉,而被另外一方的相同屬性替代,這樣可能導致輸出結果不正確。例如上面的邊界線本身是線狀地物,但它的這個屬性變為insert之後,你讓一條線輸出後變為乙個insert(圖塊),不就亂套了嗎?

同理,dgn轉dgn應該也會存在相同的問題,記錄於此,以後少走彎路。

先不要急,又發現一問題,上面的結果看起來正確了,實際上是錯誤的——整個綠地面或線被縮小了一倍。

剛聽到這訊息,我差點崩潰,這到底是腫麼了?

一般來說,線面直接轉線面,肯定不會出這個問題,肯定又是圖塊搞的鬼。開啟圖塊的屬性類表,看到一比較眼熟的屬性:autocad_scale,趕快把它暴露出來,執行除錯,發現此值為0.5,剛好和縮小一倍相等,於是將該屬性複製為1。看結果,此屬性對了,但是圖形還是不對,再看結果屬性:autocad_xscale,autocad_yscale,兩個的值均為0.5。就是這傢伙了,手動設定為1,結果正確。原因是在cad的輸入裡面,reader預設是不顯示autocad_xscale、autocad_yscale兩個屬性的,得手動暴露一下,否則,圖塊和麵一空間運算,就把圖塊的這兩個屬性沖掉了面的對應兩個屬性的值,所以。。。***。

pdf轉cad格式工具控制項pdf2cad

pdf2cad控制項是乙個專門用於把pdf檔案轉換到dxf格式的工具,pdf轉cad轉換後的dxf可以用於常規的cad工具中,比如autocad 和microstation。pdf2cad將向量pdf工程圖轉化為dxf格式,並作為可縮放和可編輯的物件匯入至autocad unigraphics mi...

CAD塊參照轉實體

經常,需要在cad中插入塊,比如圖框,它的型別是insert,而不是line和polyline。一般情況下,我們是不會去編輯它的,但有的時候需要選擇它,比如在選擇列印範圍時,預設為過濾掉insert型別 其實這是不合理的,考慮不周全的 所以現在要將塊轉為實體。直接使用cad分解 explode 命令...

CAD轉GIS方法總結

gis中資料組織結構為註記 點 線 面 多面 annotation point polyline polygon multipatch 運用export data 命令輸出shape資料。這種方法簡單快速,且能儲存完整cad資料資訊,但對cad資料要求較高,需要cad多線段閉合成面,否則會出現資料丟...