在之前的博文CAD圖DWG解析WebGIS可視化技術分析總結、CAD_DWG圖Web可視化一站式解決方案-唯傑地圖-vjmap中講解了如何把CAD的DWG格式的圖紙Web可視化的方案,那在Web前端能不能通過JavaScript建立或基于現在的CAD圖形進行修改呢?
建立修改CAD圖形,一般是基于AutoCAD進行二次開發,ObjectARX是AutoDesk公司針對AutoCAD平台上的二次開發而推出的一個開發軟體包,它提供了以C++為基礎的面向對象的開發環境及應用程式接口,能真正快速的通路AutoCAD圖形資料庫。 與以往的 AutoCAD 二次開發工具 AutoLISP 和ADS不同,ObjectARX應用程式是一個DLL(動态連結庫),共享AutoCAD的位址空間,對AutoCAD進行直接函數調用。是以,使用ARX程式設計的函數的執行速度得以大大提高。ARX 類庫采用了标準的C++類庫的封裝形式,這也大大提高了程式員程式設計的可靠度和效率。
運用ObjectARX進行二次開發,必須首先設定好ObjectARX的開發環境。常用的開發環境是Microsoft Visual C++ 6.0 、Microsoft visual studio 2005、Microsoft visual studio 2008、Microsoft visual studio 2010。同時,還需要安裝ObjectARX SDK。
Visual C++、ObjectARX等開發語言和環境肯定吓跑了不少開發者。那對于一些<code>簡單的場景</code>,如隻要根據<code>資料自動成圖</code>或者在現在的圖形上做一些很<code>簡單的修改</code>,有沒有一個簡單的辦法或語言和開發環境?
唯傑地圖在前端實作了常用的AutoCAD實體封裝,能通過JavaScript腳本建立新的CAD圖形。
類名稱
說明
DbLine
直線
DbCurve
曲線
Db2dPolyline
二維折線
Db3dPolyline
三維多段線
DbPolyline
多段線
BlockReference
塊參照
DbArc
圓弧
DbCircle
圓
DbEllipse
橢圓
DbHatch
填充
Text
單行文本
DbMText
多行文本
RasterImage
栅格圖檔
DbShape
型實體
Spline
樣條曲線
Wipeout
遮罩實體
Dimension
标注
Db2LineAngularDimension
角度标注[兩條線]
Db3PointAngularDimension
角度标注[三點]
DbAlignedDimension
對齊标注
DbArcDimension
圓弧标注
DbDiametricDimension
直徑标注
DbOrdinateDimension
坐标标注
DbRadialDimension
半徑标注
DbRadialDimensionLarge
半徑折線标注
DbRotatedDimension
轉角标注
DbLayer
圖層
DbTextStyle
文字樣式
DbDimStyle
标注樣式
DbLinetypeStyle
線型樣式
DbBlock
塊定義
DbDocument
資料庫文檔
下面以建立一個籃球場示意圖以例,相關代碼如下:
建立完後,Web顯示如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcugDM5kDM3UTOxgTMwETMyAjMtU2Zh1Wavw1cldWYtl2ZvxmYvwVbvNmLwFWbqZ3Lc9CX6MHc0RHaiojIsJye.png)
把建立的DWG圖形,在AutoCAD裡面可以打開此圖:
修改通過<code>from</code>屬性設定 來源于哪個圖,會在此圖的上面進行修改或新增删除,格式如 形式為 mapid/version,如 exam/v1 .
删除的話,指定圖中實體的<code>objectID</code>
示例代碼如下:
結果如下:
可以通路 demo位址 https://vjmap.com/guide/newmap.html 去體驗下效果
适用于在前端有資料,需要線上建立或基于現在CAD圖形進行修改或删除;如可擷取全國的GeoJson資料建立一個CAD圖形;對于一些經常變化的資料如工程進度圖紙根據進度資料實時繪制生成DWG圖紙等場景;對于專業複雜的圖形繪制或編輯工作,建議使用ObjectARX對AutoCAD進行二次開發實作!