如何在网页打开CAD,DWG文件,(在线CAD)在线CAD平台,H5前端显示CAD,网页CAD

发布时间:2026/10/19 21:40:22

如何在网页打开CAD,DWG文件,(在线CAD)在线CAD平台,H5前端显示CAD,网页CAD 简介MxDraw云图是成都梦想凯德科技推出的一款整套的在线CAD解决方案它主要包括MxDraw开发包MxCAD开发包后端服务程序图纸转换程序4个部分其详细说明如下1.MxDraw前端二维绘图开发包详细参考文档https://mxcadx.gitee.io/mxdraw_docs/https://mxcadx.gitee.io/mxdraw_docs/2.MxCAD是基于mxdraw开发的在线CAD开发包详细参考文档https://mxcadx.gitee.io/mxcad_docs/zh/https://mxcadx.gitee.io/mxcad_docs/zh/3.图纸转换程序用于将CAD图纸转换为我们特有的网页格式mxweb详细参考文档MxDraw帮助https://help.mxdraw.com/?pid1074.后端服务程序详细参考梦想云图Node.JS服务MxDraw帮助https://help.mxdraw.com/?pid1155.支持国产操作系统支持平台Windows系统、Linux系统、国产操作系统、iOS、安卓。支持CPU架构X86、ARM、龙芯。支持浏览器Chrome,Edge,Firefox, Safari, 360, QQ等浏览器。建议使用最新版本的chrome浏览器或edge浏览器入门开发指导1.在网页中绘图其详细操作请参考快速入门 | mxdraw (gitee.io)https://mxcadx.gitee.io/mxdraw_docs/start/abstract.html2.在网页中加载编辑CAD图纸其详细操作请参考快速入门 | mxcad (gitee.io)https://mxcadx.gitee.io/mxcad_docs/zh/1.%E5%BC%80%E5%A7%8B/2.%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8.html主要功能支持AutoCAD R14 到AutoCAD 2024的所有dwg图纸格式未来也将支持新出现的AutoCAD文件格式。三维支持创建锥、柱、环等基本几何体, 对几何体进行布尔操作相加、相减、相交运算)、倒角、斜切、镂空、偏移、扫视,、几何空间关系计算法线、点积、叉积、投影、拟合等、几何体分析质心、体积、曲率等、空间变换平移、缩放、旋转等功能。二维支持CAD图纸信息搜索提取、测距离、算面积、批注、捕捉、正交、曲线离散、偏移、打断、阵列、扩展数据读写、扩展记录读写、构造选择集、动画、自定义实体、组、超连接、Undo、Redo、字典、图层、标注样式、线型样式、文字样式、视口、布局、用户坐标系、系统变量、图纸比较、动态提示等。主要实体有直线、圆弧、Polyline、样条线、圆、椭圆、椭圆弧、IMAGE、点、块引用、外部块参照、射线、云线、文本、多行文本、对齐标注、旋转标注、半径标注、直径标注、角度标注、布局、视口、图层、线型、文字样式、命名字典、标注、自定义实体、代理实体、反应器等。主要编辑有移动、夹点拉伸、偏移、删除、复制、粘贴、旋转、缩放、镜向、离散、图案填充、实心填充、打碎、计算曲线长、面积、最近点、交点、导角、文字变线条等。几何运算面积、夹角、向量、矩阵、旋转、缩放、最近点、最近距离、垂足、参数、镜向、平移、交点、打断、延伸、最短路径、最长路径。项目示例重要提示使用最新的chrome浏览器或edge浏览器访问如下网址。1、在线MxDrawembedmxcadhttps://www.mxdraw3d.com/sample/vuebrowse/2、在线MxCAD梦想网页CAD实时协同平台https://cad.mxdraw3d.com/3、CAD与GIS结合演示在线CAD梦想画图https://demo.mxdraw3d.com:3000/mxcad/?maptruemaptypegdslwzjMxDraw云图GIShttps://www.mxdraw3d.com/sample/mx-vuemap/?cmdMx_CADGISDemo4、MxCAD云图图库CAD梦想画图_DWG图库CAD梦想画图(MxCAD)支持所有版本CAD图纸的在线浏览、批注等操作可以同时在网页手机电脑上跨平台使用并实现在线CAD看图与协同https://www.mxdraw3d.com/drawinglibrary.html功能演示1.下载点击下载 MxDraw 云图开发包。2.解压下载好 MxDraw 云图开发包的压缩包后使用解压软件解压建议解压位置的路径使用英文路径不要太长由于开发包的内容很多解压需要时间请耐心等待解压开发包后其文件目录如下所示3.运行演示双击解压文件目录下的 Mx3dServer.exe 程序其启动界面如下按照界面提示步骤操作启动服务在启动之前我们需要设置防火墙允许这两个服务程序能访问网络Bin\Release\node.exe 和SRC\TsWeb\nodejs\node.exe其设置如下注意在启动前可能需要关闭杀毒软件它会误报和拦截我们服务器程序访问网络。4.启动效果1服务程序后端网站服务程序该服务为用户提供后端支持如果用户有自己网站服务可以不启动该程序。MxDrawNodeJS服务程序该服务用于后端上传文件转换文件格式。MxCAD文件上传保存服务程序CAD图纸编辑后保存到服务器的服务2效果演示点击“启动浏览器查看演示”展示前端在线预览CAD图纸选择本地DWG文件打开DWG文件在线预览点击“VueBrowse”运行Browse模式点击“启动MxCAD”演示前端在线编辑CAD图纸点击“CAD GIS”运行MxGIS点击“启动MxCAD3D”运行Mx3D图纸转换原理云图的前端网页基于JSHtml5进行开发不需要安装任何插件其中CAD图形的渲染是基于WebGL使用Three.js三维开源平台。后端使用Node.js、TS、C语言开发将DWG图纸格式解析成我们平台特有的mxweb文件格式最后将文件传送给前端编辑其编辑原理如下上述原理中涉及到了mxweb 格式的文件该文件格式是针对DWG、DXF文件体积大、版本多、网页加载效率慢、空间内存大、容易加载失败等一系列问题而专门设计的网页CAD格式。mxweb与CAD文件可以通过云图开发包相互转换相关步骤请参考下面的图纸转换。图纸转换CAD文件转成编辑格式mxweb1. Windows系统a. 调用云图开发包目录Bin\MxCAD\Release\mxcadassembly.exe 路径中的应用程序转换文件格式。b. 调用命令mxcadassembly.exe目标CAD图纸文件或mxcadassembly.exe{srcpath: 转换的文件路径,outpath:输出文件路径,outname:输出文件名, compression:0}将目标CAD图纸文件转成mxweb格式其中json传参调用命令中的“compression为0表示不压缩, 不写该属性表示压缩。2. Linux系统a. 将Mxdraw云图开发包目录 Bin\Linux\BinMxCAD 路径下的文件拷到 Linux系统上执行如下命令增加文件的执行权限。sudo chmod -R 777 mxcadassemblysudo chmod -R 777 ./mx/so/*sudo cp -r -f ./mx/locale /usr/local/share/localeb. 再调用命令./mxcadassembly目标CAD图纸文件或./mxcadassembly {srcpath:转换的文件路径,outpath:输出文件路径,outname:输出文件名, compression:0}将目标CAD图纸文件转成mxweb格式其中json传参调用命令中的“compression为0表示不压缩, 不写该属性表示压缩。使用json传参调用如下./mxcadassembly {srcpath:/home/mx/test.dwg,outpath:/home/mx/Test,outname:xxx}3.也可以直接调用我们梦想云图Node.JS服务转换详见MxDraw帮助中的A条说明。4. JAVA调用后台JAVA程序如何调用mxcadassembly.exe转换CAD文件格式a. Windows系统后台JAVA程序调用代码https://demo.mxdraw3d.com:3562/linux_main_dwg_to_mxweb.7zimport java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; public class MyTest { // 后面java程序调用我们exe程序转换dwg文件格式. public static String CallMxFileConvert(String sDwgFile) { // 我们转所程序路径. String command Bin/MxCAD/Release/mxcadassembly.exe; Runtime rn Runtime.getRuntime(); Process process null; // 转换参数。 String sJsonParam {\srcpath\:\ sDwgFile \}; String[] sRetJson new String[1]; try { // 启动一个进程序调用转换程序。 process rn.exec(new String[] { command, sJsonParam }); final InputStream ins process.getInputStream(); final InputStream errs process.getErrorStream(); //确保子进程与主进程之间inputStream不阻塞 new Thread() { Override public void run() { BufferedReader inb null; String line null; try { inb new BufferedReader(new InputStreamReader(ins, gbk)); while ((line inb.readLine()) ! null) { sRetJson[0] line; //System.out.println(executeMxExe - InputStream : line); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (null ! inb) inb.close(); if (null ! ins) { ins.close(); } } catch (IOException e) { e.printStackTrace(); } } } }.start(); //确保子进程与主进程之间ErrorStream不阻塞 new Thread() { Override public void run() { BufferedReader errb null; String line null; try { errb new BufferedReader(new InputStreamReader(errs, gbk)); while ((line errb.readLine()) ! null) { System.out.println(executeMxExe - ErrorStream : line); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (null ! errb) errb.close(); if (null ! errs) { errs.close(); } } catch (IOException e) { e.printStackTrace(); } } } }.start(); int retCode process.waitFor(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { if (null ! process) { OutputStream out process.getOutputStream(); if (null ! out) { try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } process.destroy(); } } // 返回转换结果。 return sRetJson[0]; } public static void main(String[] args) { String sDwg e:/1.dwg; String sRetJson CallMxFileConvert(sDwg); System.out.println(sRetJson); } };b. Linux系统后台JAVA程序调用代码 https://demo.mxdraw3d.com:3562/linux_main_dwg_to_mxweb.7zimport java.io.*; import java.util.ArrayList; import java.util.List; import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; class Cad2MxwebConvert { // 后面java程序调用我们exe程序转换dwg文件格式. public static String CallMxFileConvert(String sourceFile,String outPath,String outFile){ String mxcadassembly/usr/local/mxcad; Process processnull; // 转换文件路径. String command ./mxcadassembly; // 转换参数。 String path{srcpath:sourceFile,outpath:outPath,outname:outFile}; System.out.println(########################path:path); try { ProcessBuilder pbnew ProcessBuilder(); pb.redirectErrorStream(true); ListString commands new ArrayList(); commands.add(command); commands.add(path); pb.command(commands).directory(new File(mxcadassembly)); process pb.start(); process.waitFor(); //阻塞当前线程直到进程退出为止 InputStream inputStream process.getInputStream(); //将字节流转成字符流 InputStreamReader inputStreamReader new InputStreamReader(inputStream, utf-8); //字符缓冲区 char[] c new char[1024]; int len -1; while ((len inputStreamReader.read(c)) ! -1) { String s new String(c, 0, len); System.out.print(s); } inputStream.close(); inputStreamReader.close(); //阻塞当前线程直到进程退出为止 BufferedReader bufrError new BufferedReader(new InputStreamReader(process.getErrorStream(), utf-8)); while ((len bufrError.read(c)) ! -1) { String s new String(c, 0, len); System.out.print(s); } bufrError.close(); int exitValue process.exitValue(); if (exitValue 0) { System.out.println(进程正常结束); } else { System.out.println(进程异常结束); } } catch (Exception e) { log.print(执行autocad转换出错); } finally{ if(null !process ){ OutputStream out process.getOutputStream(); if(null ! out){ try { out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } process.destroy(); } } // 返回转换结果。 return success; } }; public class Main { public static void main(String[] args) { Cad2MxwebConvert.CallMxFileConvert(/data/home/mxdraw/autocad/2.dwg,/data/home/mxdraw/autocad,2.mxweb); } }5.Node.js调用/* POST upload listing. */router.post(/, upload.single(file), function (req, res, next) { // 得到上传文件 var file req.file; // MxFileConvert.exe在服务器的路径 var pathConvertExt __dirname /../../../Bin/MxCAD/Release/mxcadassembly.exe ; // 准备调用参数json格式srcpath是dwg在服务器上的路径. var param: any {}; param.srcpath file; var cmd pathConvertExt JSON.stringify(param) ; const exec child_process.exec; //调用MxFileConvert.exe进程进行文件格式转换. exec(cmd, (err, stdout, stderr) { if (err) { res.json({code: 1, message: exec cmd failed}); } else { // 转换成功通过命令输出json格式字符串. res.json(stdout); } }); });通过程序转换后的文件默认与目标文件存放在同一目录下比如D:/test/test.dwg 转换后生成 mxweb 文件目录为D:/test/test.mxweb将这些生成的文件放到Web服务的目录下需能够直接在网页中下载这些文件示例如下https://demo.mxdraw3d.com:3000/mxcad/test3.mxwebhttps://demo.mxdraw3d.com:3000/mxcad/test3.mxwebmxweb格式转CAD图纸我们还可通过上述操作将mxweb格式的文件纸转换为dwg格式的文件以调用mxcadassembly.exe程序执行如下命令为例其中参数outname必须加上CAD图纸的后缀名一般为.dwg。mxcadassembly.exe {srcpath:D:\test.mxweb,outpath:D:\,outname:test.dwg}
延伸阅读

更多相关文章

2026/10/20 11:51:41

shell编程---替换运算符

替换运算符1、{: }运算符规则:1、若未定义该变量或者该变量值为空,则将用运算符后面的值赋值给该变量2、变量值不为空,不更新变量值。#! /bin/bash PRINT"Remind some import things" echo $PRINTecho ${STRING1:hello}…

2026/10/20 11:50:59

CH9102与CP2102应用注意事项

文章目录概述应用差异说明驱动说明GPIO使用说明硬件差异说明CH9102F VS CP2102N-GQFN24CH9102X VS CP2102CH9102X VS CP2102N-GQFN28其他说明CH9102资料链接概述 CH9102(WCH)与CP2102的不同子型号之间可实现pintopin兼容,可以在不更改硬件设…

2026/10/19 3:56:26

常用办公脚本工具

1 前言 本文基于 Android 自动化测试项目、adb常用命令总结,整理了一些常用办公脚本,后续会根据工作需求持续更新。 脚本资源见→常用办公脚本工具 脚本目录如下: base:基础工具包apply:具体应用场景 注意:…

2026/10/20 11:48:27

锥束CT重建FDK算法:Matlab实现与工业应用避坑指南

简介:这份资源面向医学影像重建方向的学习者与研究人员,聚焦三维锥束CT(CBCT)的投影与反投影重建,核心是FDK算法的Matlab实现。FDK流程被拆解为投影数据加权、加权后滤波、滤波后反投影三步,最终输出各方向…

2026/10/20 11:48:27

MiniMax Token Plan新购续订9折权益码使用指南与避坑实操

看到这个标题点进来的朋友,多半是正在用 MiniMax 的 API,或者刚打算把应用接入进去,结果被 Token 计费和套餐续订这事绕得有点晕。MiniMax 开放平台的 Token Plan 本质上是一种预付费的 Token 套餐,适合调用量稳定、不想被按量付费…

2026/10/20 11:48:27

AI记忆为何总是出错?合成人生评测揭露系统性缺陷

“我明明已经跟它说过不吃香菜,结果三天后它又给我推荐了香菜牛肉。”这类对话我们见得太多了。AI助手记错用户不是偶然,而是记忆系统的系统性缺陷。为了搞懂AI到底怎么记、为什么记错,我们团队做了个内部测试项目“合成人生”(Si…

2026/10/20 11:48:27

自愈合防水材料销售平台:选型、交易与施工全流程指南

树千晶自愈合防水材料销售平台,乍一听像是普通的建材电商,但做久了建材这行的人都清楚,防水材料不是快消品,客户不敢闭眼买,卖家也没法简单标个价就完事。尤其是自愈合防水材料这类偏功能型的产品,买家需要…

2026/10/20 11:48:27

Python学数学源码报错排查:环境配置与NumPy/SymPy避坑指南

简介:配套《程序员数学》一书的完整源码程序包,面向需要借助编程理解线性代数与微积分的学习者,尤其适合初中级程序员与数据科学入门人群,用可运行的代码化解抽象概念。压缩包共一百零四个文件,总体积约十三点五五兆字…

2026/10/20 11:43:27

GET和POST到底有什么区别?从语义契约到工程实践一次讲清

面试官抛出“GET 和 POST 到底有什么区别”这类问题时,往往不是真想听你把 RFC 文档背一遍。这题表面问的是两个 HTTP 方法,实际上是在试探你对 HTTP 协议底层语义、浏览器行为约束、工程落地取舍这三层东西的理解深度。可惜大多数人答完第一层就停了&am…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑