以梦为马,不负韶华

搜索
查看: 789|回复: 1
收起左侧

梦想云图Node.JS服务 (2023.4.19)

[复制链接]
 楼主| 发表于 2023-4-19 14:18:07 显示全部楼层 |阅读模式
[color=var(--text-color)]




视频教程
视频如下:



说明
后台提供梦想Node.JS服务,方便调用控件后台功能,Windows服务程序所在目录:Bin\MxDrawServer\Windows,Linux服务程序所在目录:Bin\Linux\MxDrawServer

                               
登录/注册后可看大图


                               
登录/注册后可看大图



启动服务
Windows:进入Bin\MxDrawServer\Windows目录,运行start.bat启动服务,如下图:

                               
登录/注册后可看大图
Linux: 进入Bin\Linux\MxDrawServer,
执行如下命令,增加文件的执行权限
  1. <table class="hljs-ln"><tbody><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="1" style="user-select: none; text-align: center; color: rgba(255, 255, 255, 0.3); border-right-color: rgba(0, 0, 0, 0.66); vertical-align: top; margin-right: 1rem; padding: 0px;"><div class="hljs-ln-n" data-line-number="1"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="1" style="padding: 0px;"><span class="hljs-attribute" style="color: rgb(231, 197, 71);">su</span> root</td></tr><tr><td class="hljs-ln-line hljs-ln-numbers" data-line-number="2" style="user-select: none; text-align: center; color: rgba(255, 255, 255, 0.3); border-right-color: rgba(0, 0, 0, 0.66); vertical-align: top; margin-right: 1rem; padding: 0px;"><div class="hljs-ln-n" data-line-number="2"></div></td><td class="hljs-ln-line hljs-ln-code" data-line-number="2" style="padding: 0px;"><span class="hljs-attribute" style="color: rgb(231, 197, 71);">chmod</span> -R <span class="hljs-number" style="color: rgb(231, 140, 69);">777</span> *</td></tr></tbody></table>
复制代码

如下:

                               
登录/注册后可看大图
运行: ./node app.js 启动服务
服务启动后,默认会在1337端口监听,目录下有个ini.js文件,编辑该文件,配置服务参数,如下图:

                               
登录/注册后可看大图

给我们的转换程序设置执行权限:
如下:
进入
Bin\Linux\Bin
目录
执行如下命令,增加文件的执行权限
su root

chmod -R 777 *

cp -r ./mx /mx

chmod -R 777 /mx/*

如下:


                               
登录/注册后可看大图




                               
登录/注册后可看大图



服务使用
A.上传文件,DWG文件格式转换
服务接口说明:
直接调用POST对服务器上的文件进行转换:
服务接口说明:
*  POST users { cmd: "convert", file: "O:/1.dwg" }
*  file:  需要转的cad文件路径

后台调用服务如下代码:
  1. $.ajax({
  2.             url: 'http://localhost:1337/users',
  3.             data: { cmd: "convert", file: "O:/1.dwg" },
  4.             method: 'post'
  5.         }).success(function (res) {
  6.             console.log(res);
  7.         })
复制代码

前端上传文件转换代码如下:
  1.   var that = this;
  2.         var urlpath = window.location.origin;
  3.         var files = !!this.files ? this.files : [];
  4.             if (!files.length || !window.FileReader) {
  5.                 console.log("浏览器不支持HTML5");
  6.                 return false;
  7.             };
  8.         var fileName = this.files[0].name;
  9.         var fileName = encodeURIComponent(fileName);
  10.         var fd = new FormData();
  11.             fd.append('file', files[0]);
  12.         let param = { fileName: fileName };
  13.         fd.append('param', JSON.stringify(param));
  14.         $("#mxpopup2").css("display","block");
  15.         $("#mxpopup").css("display", "none");
  16.            $.ajax({
  17.                 url: 'http://localhost:1337/convert',
  18.                 data: fd,
  19.                 method: 'post',
  20.                 contentType: false,
  21.                 /*async:false,*/
  22.                 processData: false
  23.             }).success(function (res) {
  24.                 console.log(res);
  25.                 var ret = res;
  26.                 if (ret.code == 0) {
  27.                     $('#shareLink').val(urlpath + '/file/' + ret.resultFile + '_mxresult.json');
  28.                     $("#mxpopup1").css("display", "block");
  29.                     $("#mxpopup2").css("display", "none");
  30.                 }
  31.                 else {
  32.                     alert("上传失败");
  33.                     $("#mxpopup2").css("display", "none");
  34.                     $("#mxpopup").css("display", "block");
  35.                 }
  36.             }).error(function () {
  37.                 alert("上传失败");
  38.                 $("#mxpopup2").css("display", "none");
  39.                 $("#mxpopup").css("display", "block");
  40.             });
复制代码

POST convert file;file是<input id="input" type="file"> 选择的文件.
该接口后台源码在Bin\MxDrawNode\MxDrawNode\src\mxconvert\MxConvert.ts 中的CadToMx
参考例子:Bin\MxDrawServer\Test\sample.html
代码如下:

                               
登录/注册后可看大图
默认文件转换后存放位置如下图:

                               
登录/注册后可看大图
B. 保存批注到DWG文件
服务接口说明:
*  POST savecomment {filename:保存到的DWG文件;savefile :保存后的dwg, userConvertPath:false}
*  userConvertPath: 默认值是false,把当前图上的批注内容保存到指定的dwg文件中
*  filename: 是个相对路径,默认是相对于后台程序所在目录Bin\Release(windows),Bin\Linux\Bin(linux)
*  如果userConvertPath为接true,相对于Bin\Release\ini.json [linux:Bin\Linux\Bin\ini.json] 中的nodeConvert.path设置值
*  savefile: 也是个相对路径,同filename。该接口后台源码在Bin\MxDrawNode\MxDrawNode\src\mxconvert\SaveCommentToDwg.ts 中的SaveCommentToDWG.do

参考例子:SRC\sample\Browse\VueBrowse,代码如下:

                               
登录/注册后可看大图
demo运行后,点击“保存到DWG文件”,查看接口调用效果:

                               
登录/注册后可看大图
C. 得到到DWG文件中信息
参考例子: Bin\MxDrawServer\Test\sample.html
服务接口说明:
POST users {cmd:"getcaddata",cadfile:"1.dwg",outfile:"1.dwg.json"}

代码如下:
  1. function TestPost(){
  2.         $.ajax({
  3.             url:'http://localhost:1337/users',
  4.             data:{cmd:"getcaddata",cadfile:"1.dwg",outfile:"1.dwg.json"},
  5.             method:'post'
  6.         }).success(function (res){
  7.             console.log(res);
  8.                 })
  9.         }
复制代码

getcaddata的实现,参见“梦想控件2-后台读写CAD文件.doc”执行结果如下:

                               
登录/注册后可看大图
D.  DWG文件转成PDF
参考例子: Bin\MxDrawServer\Test\sample.html
服务接口说明:
POST tools { cmd: "cadtopdf", param: "file=O:/1.dwg" },

代码如下:
  1. $.ajax({
  2.             url: 'http://localhost:1337/users/tools',
  3.             data: { cmd: "cadtopdf", param: "file=O:/1.dwg" },
  4.             method: 'post'
  5.         }).success(function (res) {
  6.             console.log(res);
  7.         })
复制代码

E.  DWG文件转成JPG
参考例子: Bin\MxDrawServer\Test\sample.html
服务接口说明:
POST tools { cmd: "cadtopdf", param: "file=O:/1.dwg" },

代码如下:
  1. $.ajax({
  2.             url: 'http://localhost:1337/users/tools',
  3.             data: { cmd: "cadtojpg", param: "file=O:/1.dwg" },
  4.             method: 'post'
  5.         }).success(function (res)
  6.             console.log(res);
  7.         })
复制代码

F.  对CAD图纸剪切,剪切输出pdf,dwg
参考例子: Bin\MxDrawServer\Test\sample.html
服务接口说明:
POST tools { cmd: "cutcad", param: "file=O:/hhhh.dwg out=O:/1.pdf lbx=60009.152793 lby=42457.503649 rtx=120145.567345 rty=85507.693766"},

out传的值扩展名是pdf输出pdf文件,是dwg时输出dwg
代码如下:
  1. $.ajax({
  2.             url: 'http://localhost:1337/users/tools',
  3.             data: { cmd: "cutcad", param: "file=O:/hhhh.dwg out=O:/1.pdf lbx=60009.152793 lby=42457.503649 rtx=120145.567345 rty=85507.693766"},
  4.             method: 'post'
  5.         }).success(function (res) {
  6.             console.log(res);
  7.         })
复制代码

G. 根据图框,折分pdf
参考例子: Bin\MxDrawServer\Test\sample.html
服务接口说明:
POST tools { cmd: "cadtopdf", file: "tk.dwg"},

调用代码如下:
  1. $.ajax({
  2.             url: 'http://localhost:1337/users',
  3.             data: { cmd: "cadtopdf", file: "O:/tk.dwg"},
  4.             method: 'post'
  5.         }).success(function (res) {
  6.             console.log(res);
  7.         })
复制代码

该功能的源码在:
Bin\MxDrawNode\MxDrawNode\src\mxconvert\CADToPDF.ts



发表于 2023-4-19 14:18:07 显示全部楼层
感谢无私分享,辛苦。。。
回复 支持 反对

使用道具 举报

不想打字就选择快捷回复吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|以梦为马,不负韶华

GMT+8, 2025-4-5 20:11

Powered by 以梦为马,不负韶华

© 2024-2099 Meng.Horse

快速回复 返回顶部 返回列表