規劃測繪類生產的電子成果數據多采用CAD格式進行標準分幅或者任意分區存儲成多個dwg文件。數據中含有豐富的實體類型,包含了塊參照、線、填充、標註、文字、圓弧等,如下圖。
在對數據進行格式轉換和座標轉換時也需要模板文件,模板文件也可以是原始的dwg文件,但只能是一個dwg文件。
根據實際情況,經常需要對CAD數據進行合併操作,若涉及多個dwg數據的合併,此時必須要一個完整的模板文件(模板文件是AutoCAD轉換過程中用於定義圖層、線型、塊和圖形定義的文件)保證相應的塊符號、線型、填充等能夠無損轉換。
一般來說相應管理部門都會有標準的符號庫,但是可能由於管理上的問題或者版本的更新造成了文件遺失或者未及時更新。這時面對幾百上千的dwg文件,又得使用傳統人工方法逐圖進行查看和複製粘貼,這種方法不但費時費力,有時也不能保證其完整性。
對於該問題的解決主要基於FME生成lisp腳本並調用cad進行執行,具體流程和參數如下:
A、在FME中我們主要使用“path”讀模塊獲取相應的文件信息。
B、通過轉換器生成lisp代碼用於。
生成的lsp腳本
C、使用systemcaller轉換器調用腳本。如下圖所示。
D、之後會調用autocad自動執行FME生成好的腳本對文件進行合併
合併好之後的圖
合併好的dwg保證了原來的所有實體類型,包含塊、填充、標註等要素無損完成了合併。在FME中對比合並前的多幅圖與合併後的圖。
轉換前多個dwg通過FME打開
轉換後mergedwg通過FME打開
通過前後對比發現只有0圖層差了6條要素,這6條要素是“autocad_proxy”,代理圖元,由於使用了基於cad的飛時達插件,而我電腦未安裝這個,因此有的代理圖元信息描述缺了,但是不影響我們在cad打開查看,cad打開查看前後是一致的。