乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 108|回复: 0

H5云图后台读写CAD文件-网页CAD,webcad,H5CAD

[复制链接]

135

主题

144

帖子

4

银币

中流砥柱

Rank: 25

铜币
684
发表于 2022-7-15 15:00:00 | 显示全部楼层 |阅读模式
说明后台提供MxFileConvert.exe程序,它可以将CAD图纸转换成前台能加载显示的格式,程序调用方法见: 中的“如何在自己系统中浏览dwg文件”章节,该程序还可以在转换过程中,使用JS编程,读写CAD文件,而读取的CAD图纸数据可以写成json文件,方便传给前台使用。
后台如何写JS程序
原理说明:MxFileConvert.exe启动Node.js,先加载我们提供的CAD模块,再加载js程序,然后提取CAD图纸数据。

napp51bigws.png

napp51bigws.png

开发步骤:A.安装vs2019,node.js,TypeScript运行环境B.打开安装目录下,Bin\MxDrawNode\MxDrawNode.sln工程如下图:

ai0aj1naxll.png

ai0aj1naxll.png

例子中用DoGetEntityData得到图纸上对象数据,比如文本数据,然后写到json文件,该文件前台可以使用Get协议获取,然后使用。得到指定层上的文字代码如下:
  1. export class TestGetEntityData {
  2.     private sDwgFileName: string;
  3.     private getDataFilePath(): string {
  4.         return mxConvert.getConvertPath() + this.sDwgFileName + ".json";
  5.     }
  6.     // 得到图层"飘檐"上的文本
  7.     private getText1() {
  8.         // 把得到数据,写到sDataFile.
  9.         let sDataFile = this.getDataFilePath();
  10.         let ss: Mx.MrxDbgSelSet = new Mx.MrxDbgSelSetClass();
  11.         // 创建一个选择过滤条件.
  12.         let filter: Mx.MrxDbgRbList = new Mx.MrxDbgRbListClass();
  13.         // 只选择文字对象.
  14.         filter.addString("TEXT", 5020)
  15.         // 图层过滤.
  16.         filter.addString("飘檐", 8);
  17.         // 得到图上所有文字对象.
  18.         ss.allSelect(filter);
  19.         let dataObject: any = {};
  20.         let iCount = ss.count;
  21.         for (let i = 0; i (ss.item(i), Mx.MxType.TypeString.kMcDbText);
  22.             // 得到文字对象,文字内容.
  23.             if (txt) {
  24.                 if (!dataObject[txt.layer]) {
  25.                     dataObject[txt.layer] = [];
  26.                 }
  27.                 // 把文字对象数据返回.
  28.                 let txtData: any = {};
  29.                 txtData.txt = txt.textString;
  30.                 txtData.posx = txt.position.x;
  31.                 txtData.posy = txt.position.y;
  32.                 dataObject[txt.layer].push(txtData);
  33.             }
  34.         }
  35.         // 保存数据文件.
  36.         MxFun.writeFile(sDataFile, JSON.stringify(dataObject));
  37.     }
  38.     public Do(filename: string) {
  39.         this.sDwgFileName = filename;
  40.         this.getText1();
  41.     }
  42. }

C.编译程序,生成MxConvert.js把dist\mxconvert目录下的所有js程序拷到Bin\Release\mxconvert目录下,覆盖原来的文件,如下图:

                               
登录/注册后可看大图


owe2vd3xerd.png

owe2vd3xerd.png

D.启动程序命令行入MxDrawCloudServer\Bin\Release目录执行代码:复制代码
运行提取程序,如下图:

k3rphn3sz44.png

k3rphn3sz44.png

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

zq1aonr14gq.png

zq1aonr14gq.png

生成的 json文件内容:

o1ijfi3jfbt.png

o1ijfi3jfbt.png

E.错误查看,日志文件位置在程序运行过程,出现错误信息,会自动写到日志文件中,日志文件,默认在如下目录:C:\Users\MxDraw\AppData\Local\Temp\MxCloudDebug如下截图:

xr0bjryx2re.png

xr0bjryx2re.png

日志文件内容:

                               
登录/注册后可看大图


本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 06:02 , Processed in 0.797228 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表