H5在线CAD后台读写CAD文件
說明
后臺提供mxconvert.js程序,該程序使用JS編程,可以在后臺實現讀寫CAD文件、讀取CAD圖紙數據等操作。
如何使用mxconvert.js轉CAD圖紙到夢想格式
1.Windows調用,進入?Bin\Release目錄,命令行調用 node.exe mxconvert.js 1.dwg
?生成后的文件
?2.Linux調用,進入Bin\Linux\Bin目錄
?
如何后臺寫JS程序
原理說明:mxconvert.js,windows在Bin\Release目錄,linux在Bin\Linux\Bin目錄。
調用方式:node mxconvert.js command ?param=value。
調用原理如下,加載我們提供的CAD模塊和js程序。
?
開發步驟:
A.安裝vs2019,node.js,TypeScript運行環境,
B.打開安裝目錄下,Bin\MxDrawNode\MxDrawNode.sln工程
如下:
?
例子中,DoGetEntityData得到圖紙上的對象數據,比如文本數據,然后寫到json文件。
得到指定層上的文字代碼如下:
??export?class?TestGetEntityData?{public?sOutfile:?string;//?得到圖層"飄檐"上的文本private?getText1()?{//?把得到數據,寫到sDataFile.let?sDataFile?=?this.sOutfile;let?ss:?Mx.MrxDbgSelSet?=?new?Mx.MrxDbgSelSetClass();//?創建一個選擇過濾條件.let?filter:?Mx.MrxDbgRbList?=?new?Mx.MrxDbgRbListClass();//?只選擇文字對象.filter.addString("TEXT",?5020)//?圖層過濾.//filter.addString("飄檐",?8);//?得到圖上所有文字對象.ss.allSelect(filter);let?dataObject:?any?=?{};let?iCount?=?ss.count;for?(let?i?=?0;?i?<?iCount;?i++)?{//?選擇集不為空.let?txt:?Mx.McDbText?=?Mx.MxType.MxCast(ss.item(i),?Mx.MxType.TypeString.kMcDbText);//?得到文字對象,文字內容.if?(txt)?{if?(!dataObject[txt.layer])?{dataObject[txt.layer]?=?[];}//?把文字對象數據返回.let?txtData:?any?=?{};txtData.txt?=?txt.textString;txtData.posx?=?txt.position.x;txtData.posy?=?txt.position.y;txtData.alignmentPointx?=?txt.alignmentPoint.x;txtData.alignmentPointy?=?txt.alignmentPoint.y;dataObject[txt.layer].push(txtData);}}//?保存數據文件.MxFun.writeFile(sDataFile,?JSON.stringify(dataObject));return?{?ret:?0?};}public?Do(filename:?string)?{this.sOutfile?=?filename;return?this.getText1();} } 增加命令,getcaddata
?
C.編譯程序,生成MxConvert.js
把dist\mxconvert目錄下的所有js程序拷到Bin\Release\mxconvert目錄下,覆蓋原來的文件,如下:
?
拷到如下目錄:
D.啟動程序
命令行入MxDrawCloudServer\Bin\Release目錄,執行:node.exe mxconvert.js getcaddata cadfile=1.dwg outfile=1.dwg.json?運行提取程序,如下:
?
成功執行,當前目錄生成一個1.dwg.json文件:
生成的 json文件內容:
?
E.錯誤查看,日志文件位置
在程序運行過程,出現錯誤信息,會自動寫到日志文件中的日志文件,默認在如下目錄:C:\Users\MxDraw\AppData\Local\Temp\MxCloud如下截圖:
?
日志文件內容:
?
總結
以上是生活随笔為你收集整理的H5在线CAD后台读写CAD文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解析:浏览器事件冒泡及事件捕获
- 下一篇: python如何做敏感度分析_1stop