说明

后台提供MxFileConvert.exe程序,它可以将CAD图纸转换成前台能加载显示的格式,程序调用方法见: https://help.mxdraw.com/?pid=32中的“如何在自己系统中浏览dwg文件”章节,该程序还可以在转换过程中,使用JS编程,读写CAD文件,而读取的CAD图纸数据可以写成json文件,方便传给前台使用。

 
 
后台如何写JS程序

原理说明:MxFileConvert.exe启动Node.js,先加载我们提供的CAD模块,再加载js程序,然后提取CAD图纸数据。

开发步骤:

A.安装vs2019,node.js,TypeScript运行环境

B.打开安装目录下,Bin\MxDrawNode\MxDrawNode.sln工程

如下图:

例子中用DoGetEntityData得到图纸上对象数据,比如文本数据,然后写到json文件,该文件前台可以使用Get协议获取,然后使用。

得到指定层上的文字代码如下:

export class TestGetEntityData {
private sDwgFileName: string;
private getDataFilePath(): string {
return mxConvert.getConvertPath() + this.sDwgFileName + ".json";
} // 得到图层"飘檐"上的文本
private getText1() {
// 把得到数据,写到sDataFile.
let sDataFile = this.getDataFilePath(); 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<Mx.McDbText>(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;
dataObject[txt.layer].push(txtData);
}
} // 保存数据文件.
MxFun.writeFile(sDataFile, JSON.stringify(dataObject));
} public Do(filename: string) {
this.sDwgFileName = filename;
this.getText1();
}
}

C.编译程序,生成MxConvert.js

把dist\mxconvert目录下的所有js程序拷到Bin\Release\mxconvert目录下,覆盖原来的文件,如下图:

D.启动程序

命令行入MxDrawCloudServer\Bin\Release目录

执行代码:

MxFileConvert.exe {"srcpath":"0008.dwg","nodejs":1,"nodeparam":"4"}

运行提取程序,如下图:

成功执行..\Test目录,生成数据文件,如下图:

生成的 json文件内容:

E.错误查看,日志文件位置

在程序运行过程,出现错误信息,会自动写到日志文件中,日志文件,默认在如下目录:

C:\Users\MxDraw\AppData\Local\Temp\MxCloudDebug

如下截图:

日志文件内容:

 

最新文章

  1. Android开发笔记之《特斯拉-Tesla 代码分析》
  2. centos 防火墙配置
  3. 关于thinkphp 中的字段自动检查机制
  4. 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件
  5. hdu 2049 不容易系列之(4)——考新郎
  6. Lucene教程具体解释
  7. MySQL 常用字段类型,介绍及其建表使用方法经验分享
  8. jquery设置元素的readonly和disabled【转】
  9. iOS开发寻找最近公共view
  10. vue.js 生命周期
  11. 【canvas学习笔记一】基本认识
  12. Spring注解依赖注入的三种方式的优缺点以及优先选择
  13. SpriteBuilder中粒子发射器的reset on visibility toggle选项解释
  14. Delphi调用C#编写的WebService 注意事项
  15. Hystrix浅谈
  16. Linux配置Supervisor 配置遇到的坑
  17. MyBatis学习笔记(三) Configuration类
  18. dblogin userid ogg ERROR: Unable to connect to database using user ogg
  19. this、new,容易混淆的地方
  20. 分享一个shell脚本的坑:grep匹配+wc取值 在脚本执行后的结果与手动执行结果不一致

热门文章

  1. 【雅礼联考DAY01】数列
  2. JZOJ 5347. 【NOIP2017提高A组模拟9.5】遥远的金字塔
  3. unity resMgr
  4. 数据库原理-SQL查询语句
  5. 2.3 在DispatcherServlet的构造方法中解析applicationContext.xml配置文件
  6. 如何删除Word文档中的空白页
  7. Centos7安装Docker 及 Docker-compose
  8. tp save()的用法
  9. less 4-7
  10. 安全测试-WEB安全渗透测试基础知识(一)