背景
AutoCAD是國際上著名的二維和三維CAD設計軟體,用于二維繪圖、詳細繪制、設計檔案和基本三維設計,現已經成為國際上廣為流行的繪圖工具,.dwg檔案格式成為二維繪圖的事實標準格式,
但由于AutoCAD是私有格式,只能在CAD軟體上編輯查看,如何發布至Web上,并在上面做應用開發,如資料展示,GIS分析等,一直是業內頭疼的事情,
決議DWG格式
DWG與DXF
DWG格式檔案是Auto CAD 軟體的專有格式,類似于doc,是封閉的不開放的,且是二進制的,而 DXF 格式則是文本格式的,用于交換資料的,使用Auto CAD軟體本身就可將 DWG檔案另存為 DXF檔案,
現有的能決議DWG格式的開源 CAD專案:
1、FreeCAD:開源,2D支持較好,對DXF支持較好,
需要使用 TeighaFileConverter(商業軟體)將 DWG格式轉換為 DXF格式,因為 FreeCAD 基本不支持DWG格式,
參考:https://www.freecadweb.org/wiki/index.php?title=FreeCAD_and_DWG_Import
-
其它 github 決議、瀏覽CAD檔案的一些專案,未驗證是否有效:
https://github.com/LibreCAD/LibreCAD
https://github.com/janopontarollo/DXF2JSON
https://github.com/wanttobeno/dwg2dxf
https://github.com/apendua/dxf2svg
https://github.com/haplokuon/netDxf
https://github.com/mozman/ezdxf -
采用OpenDwg Toolkit實作對DWG檔案的決議,由于ObjectDBX應用程式只能在Windows平臺上采用Visual C++來開發,而網路應用開發環境要比AutoCAD單個軟體運行的環境要復雜的多,OpenDwg Toolkit簡稱ODT,
-
GDAL中也部分支持dwg. https://gdal.org/drivers/vector/dwg.html
決議完dwg檔案是很重要的第一步,那如何Web展示?
下面就一些常見的方法做下分析和總結:
Web展示方法
方法根據實作的方式不同,大致可以分為兩類:
有插件ActiveX方式
ActiveX控制元件是Microsoft的ActiveX技術的一部分,是一種很早的技術,只能適合于windows平臺,
實作原理大致是:
決議AutoCAD圖形繪制,并封裝成AcitveX控制元件,用于PC端和Web端顯示,比較典型的有夢想CAD控制元件
優點:性能好,功能全,能編輯二次開發
缺點:Web端需要安裝插件,只支持windows,而Chrome已不再支持ActiveX技術,同時無法利用html5做展示效果,效果一般
無插件Html5方式
HTML5是互聯網的下一代標準,是構建以及呈現互聯網內容的一種語言方式.被認為是互聯網的核心技術之一,
實作原理大致是:
決議AutoCAD圖形格式,然后轉成html5所能繪制的格式如svg,geojson,柵格瓦片,在前端渲染,
這塊如果從底層去實作,有很大的作業量,一般利用GIS生態圈的開源專案來搭建,
例如可以利用 GDAL把dwg或dxf格式導成shp或GeoJson,后端利用 GeoServer或MapServer發布成服務,前端利用Leaflet或OpenLayers去展示,
技術堆疊:
后端 GeoServer或 MapServer
前端 Leaflet或OpenLayers
但CAD與GIS在資料結構上存在較大的差異,CAD資料型別較為豐富,支持簡單點、線、面、多義線、橢圓、塊、文字等多種資料型別,而轉換到GIS中,只轉換為點、線、面、注記等型別,這使得CAD圖形資料不能很好的滿足GIS的要求,如:CAD中的Text資料型別,直接轉換后只轉換為GIS中的Point,通過這種轉換去繪制,會導致和原始CAD圖形繪制不太一樣, 同時CAD里面有線型、字體也會導致繪制上的差異性,
同時對于GIS而言,有個地理坐標系的概念,而一些圖紙,如戶型圖等就沒有地理坐標系的概念,
此方案優缺點如下:
優點:能利用GIS生態圈,容易實作;能利用html5做應用開發,開發簡單,效果好
缺點:存在著和真實CAD圖形繪制差異的問題;坐標系也是個問題
結論
上述兩種方案各有利弊,前者主要應用于圖形的編輯展示,后面應用于基于圖形的可視化開發展示,各有優缺點,貌似魚和熊掌不可兼得!
那有沒有一種方案,既能在Web端和真實CAD圖形繪制一樣,同時不能安裝插件,也能利用html5做應用開發呢?
其實也是可以的,不過技術難度比較大,
實作原理大致是在后端決議CAD的圖形資料不進行轉換直接渲染,同時保存圖形的幾何資料至空間資料庫用于以后查詢分析;前端不用安裝插件,加載渲染出的柵格和矢量資料,完美解決上述問題;
比較典型的有 唯杰地圖vjmap
具體原因細節可查看 https://vjmap.com/guide/service.html
效果如下:

還有一個方案是利用AutoCAD的自有云產品 Autodesk Forge,能在瀏覽器中渲染 3D 和 2D 模型資料,不過其資料得保存在AutoCAD公有云上,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315991.html
標籤:其他
上一篇:前端常見面試題
