天天看點

如何在前端通過JavaScript建立修改CAD圖形

在之前的博文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顯示如下:

如何在前端通過JavaScript建立修改CAD圖形

把建立的DWG圖形,在AutoCAD裡面可以打開此圖:

如何在前端通過JavaScript建立修改CAD圖形

修改通過<code>from</code>屬性設定 來源于哪個圖,會在此圖的上面進行修改或新增删除,格式如 形式為 mapid/version,如 exam/v1 .

删除的話,指定圖中實體的<code>objectID</code>

示例代碼如下:

結果如下:

如何在前端通過JavaScript建立修改CAD圖形

可以通路 demo位址 https://vjmap.com/guide/newmap.html 去體驗下效果

适用于在前端有資料,需要線上建立或基于現在CAD圖形進行修改或删除;如可擷取全國的GeoJson資料建立一個CAD圖形;對于一些經常變化的資料如工程進度圖紙根據進度資料實時繪制生成DWG圖紙等場景;對于專業複雜的圖形繪制或編輯工作,建議使用ObjectARX對AutoCAD進行二次開發實作!