H5云图后台读写CAD文件-在线CAD,网页CAD,网页浏览编辑CAD
说明
后台提供MxFileConvert.exe程序,它可以将CAD图纸转换成前台能加载显示的格式,程序调用方法见: https://help.mxdraw.com/?pid=32中的“如何在自己系统中浏览dwg文件”章节,该程序还可以在转换过程中,使用JS编程,读写CAD文件,而读取的CAD图纸数据可以写成json文件,方便传给前台使用。
原理说明: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
如下截图:

日志文件内容:

H5云图后台读写CAD文件-在线CAD,网页CAD,网页浏览编辑CAD的更多相关文章
- 基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程
大家好,又见面了. 在构建业务系统的时候,经常会涉及到对附件的支持,继而又会引申出对附件在线预览.在线编辑.多人协同编辑等种种能力的诉求. 对于人力不是特别充裕.或者项目投入预期规划不是特别大的公司或 ...
- 怎么在线预览.doc,.docx,.ofd,.pdf,.wps,.cad文件以及Office文档的在线解析方式。
前言 Office文件在线预览是目前移动化办公的一种新趋势.Office在线预览指的是Office系列的文件在线查看而不依附域客户端的存在.在浏览器或者浏览器控件中可以预览查看Word.PDF.Exc ...
- 免费在线CAD文件转换
AnyCAD Exchange Cloud 提供在线的CAD文件转换服务,包括二维图纸和三维模型的数据转换. 支持的格式有: DWG/DGN/DXF 到 PDF, SVG, DAE等的转换 STEP/ ...
- 编程读写CAD文件验证
背景 B/S应用系统,根据用户上传数据:业务数据和CAD坐标数据,经过一系列运筹算法运算后,输出一批坐标数据,作为给用户的规划结果.此时需要方便直观的给用户展示坐标数据.可选方式有两个: web页面画 ...
- PDF怎么转换为CAD文件?这两种方法你的会
在日常的办公中,我们最常见的文件格式就是PDF格式的,因为PDF文件的安全性是比较高的,可以防止不小心触碰到键盘修改文件内容,而且PDF文件便于进行文件的传输.但是有时候也需要将PDF转换成CAD,那 ...
- AD10 怎样精确导入CAD 文件
1. 在 AD10 中 PCB 的形状根据实际情况设定,设定的尺寸等信息略.2. CAD 导入的格式要 CAD2004 以下的版本,AutoCAD 文件(*.DXF 或*.DWG)即可. 3. ...
- CAD文件导入AD09
1.首先将CAD图纸倒出为DXF格式的文件. 2.在altium designer 的pcb编辑中点菜单文件--导入,在弹出的对话框中,选择导入文件的类型,选择 DWG,DXF类型.然后确定,再弹出的 ...
- 如何将CAD文件导入到Protel和PADS中
一. 如何把CAD中的板框图纸导入到Protel中? a. 在CAD中单位设置为“毫米”,并做简单的处理,板框图是有合并还是分解都无所谓,另存为R12(*dxf)格式文件. b. 打开DXP,新建PC ...
- arcgis10.2 打开CAD文件注记乱码
1.使用ARCGIS10.2打开CAD文件,图面显示的注记内容为乱码,属性表中的注记内容正常2.同样的CAD文件在ARCGIS9.3中打开正常出现此情况影响历史数据使用,请求ESRI技术支持注:系统添 ...
- C#、AE开发入门之打开CAD文件并显示
加载CAD文件稍显复杂一些,总体还是和前面基本类似 private void button3_Click(object sender, EventArgs e) { axMapControl1.Cle ...
随机推荐
- Technique to Read Source Code
Technique to Read Source Code Excerpted from http://ruby-hacking-guide.github.io/intro.htm Any progr ...
- [COCI2015-2016#2] VUDU
题目传送门 思路 这是一种简单的树状数组解法. 我们设偏移值表示 \(a_i\) 与目标平均数 \(p\) 的差值,显然,一个区间若能满足条件,需要满足此区间的偏移值之和 \(\ge 0\). 看到区 ...
- 钓鱼攻击之:Lnk 文件钓鱼
钓鱼攻击之:Lnk 文件钓鱼 目录 钓鱼攻击之:Lnk 文件钓鱼 1 Lnk 钓鱼小试牛刀 2 Lnk 图标处理 3 进阶利用方式 3.1 PDF利用 3.2 txt利用,突破Lnk文件目标字符长度限 ...
- LKWA靶机学习
LKWA靶机学习 目录 LKWA靶机学习 1 下载地址 2 Blind RCE 2.1 利用Burpsuite Collaborato模块来查看输出. 2.2 尝试利用dnslog进行回显 3 XSS ...
- LeetCode 39. 组合总和 40.组合总和II 131.分割回文串
欢迎关注个人公众号:爱喝可可牛奶 LeetCode 39. 组合总和 40.组合总和II 131.分割回文串 LeetCode 39. 组合总和 分析 回溯可看成对二叉树节点进行组合枚举,分为横向和纵 ...
- .NET依赖注入之一个接口多个实现
前言 最近又在项目中碰到需要将原本单实现的接口改造成多个实现的场景,这里记录一下常见的几种改法. 假设已经存在如下接口ICustomService和其实现CustomService,由于只有一种实现, ...
- 在vs code中进行本地调试和开启本地服务器
https://blog.csdn.net/tangxiujiang/article/details/80927699
- PostGIS之几何有效性
1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...
- 基于C++的OpenGL 12 之多光源
1. 引言 本文基于C++语言,描述OpenGL的多光源 前置知识可参考: 基于C++的OpenGL 11 之投光物 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者这里不过多描 ...
- 工业仿真:Chai 3D之点云技术
推荐:将 NSDT场景编辑器 加入你的3D开发工具链. 介绍 点云是三维坐标系中的一组数据点.在 CHAI3D 中,这些点由 X.Y 和 Z 坐标定义,通常用于表示对象的外表面. 点云可以由3 ...