网易首页 > 网易号 > 正文 申请入驻

在线CAD中根据图框拆分DWG图纸和转成pdf打印

0
分享至

前言

有的CAD图纸中有许多的图框,用户需要将图纸按图框进行拆分成,或拆分完成再自动转成PDF进行打印,桌面端的CAD软件可以实现,但WebCAD中如何根据图框拆分DWG图纸并转成pdf打印呢?

启动云图开发包Node服务

1.要将图纸框选的部分打印成pdf或者保存为dwg文件,就需要使用到云图开发包中提供的Node服务,首先下载云图开发包: https://www.mxdraw.com/download.html

2.启动梦想云图Node.JS服务: https://help.mxdraw.com/?pid=115

3.DWG图纸要在网页上显示需要安装转换程序,如果不熟悉原理,请查看快速入门(https://help.mxdraw.com/?pid=32)中的《如何在自己系统中浏览dwg文件》章节,如下图所示:

4.如果还有疑问可以查看:https://help.mxdraw.com/?pid=107中《mxdraw前端库预览图纸》章节,如下图:

前端选框选取

首先我们通过mxdraw库来预览图框,并且可以绘制一个选框来选择需要裁剪的内容,然后通过梦想云图NodeJS服务中对应的API接口进行处理,得到一个裁剪后的图纸或者pdf文件,前端代码如下:

import { MrxDbgUiPrPoint, MxFun, MxDbRect } from "mxdraw"
MxFun.setIniset({
"EnableGripEidt": true,
MxFun.createMxObject({
canvasId: "mxcad", // canvas元素的id
// 转换后的cad图纸文件 实际访问的是../../demo/buf/$hhhh.dwg.mxb[index].wgh
cadFile: "./buf/hhhh.dwg"
// 绘制临时的选框, 然后通过回调函数 根据框选的CAD坐标 请求云图Node服务对于API完成本地的转PDF功能
drawSelectBox((pt1, pt2) => {
const params = new URLSearchParams();
params.append('cmd', 'cutcad');
// file 参数对应的是要拆分的目标图纸文件, 这里D:/hhhh.dwg是指的后台服务 部署的主机D盘下的hhhh.dwg文件; out参数同理
params.append('param', `file=D:/hhhh.dwg out=D:/hhhh_1.pdf lbx=${pt1.x} lby=${pt1.y} rtx=${pt2.x} rty=${pt2.y}`);
fetch('http://localhost:1337/users/tools', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: params.toString()
}).then(async (res) => {
const { code } = await res.json()
if(code === 0) {
alert("剪切成功")
}else {
alert("剪切失败")
}).catch((err) => {
console.error(err)
// 临时绘制一个选择框用于选择可以剪切的部分内容
async function drawSelectBox(callback: (pt1, pt2) => void) {
const getPoint = new MrxDbgUiPrPoint()
getPoint.go(() => {
const pt1 = getPoint.value()
// 需要将THREE.JS坐标转文档坐标.
const cadPt1 = MxFun.docCoord2Cad(pt1.x, pt1.y, pt1.z)
getPoint.setBasePt(pt1);
const rect = new MxDbRect()
rect.color = "#f00"
rect.pt1 = pt1
getPoint.setUserDraw((currentPoint, pWorldDraw) => {
rect.pt2 = currentPoint
pWorldDraw.drawCustomEntity(rect)
getPoint.go(async () => {
const pt2 = getPoint.value()
const cadPt2 = MxFun.docCoord2Cad(pt2.x, pt2.y, pt2.z)
await callback(cadPt1, cadPt2)
调用MxWebDwg2Jpg.exe 程序剪切图纸

我们把测试的图纸放在D盘下,该文件在demo示例(zip下载地址)的public目录下,要对CAD图纸剪切,并将剪切结果输出为pdf和dwg格式,需要用到云图开发包中名称为MxWebDwg2Jpg.exe的程序,具体位置如下:

MxDrawCloudServer\Bin\Release\tool\MxWebDwg2Jpg.exe

要正确启动它需要对应的参数,首先需要一个cmd 这里我们的cmd就是 cutcad,其次还需要一些参数, 这些参数统一存放在一个txt文件中, 比如现在在D盘创建一个叫cutcad_param.txt的文件内容如下:

file=D:/hhhh.dwg out=D:/1.pdf lbx=60009.152793 lby=42457.503649 rtx=120145.567345 rty=85507.693766

这里out参数可以是.dwg的图纸文件, 那么就会剪切成图纸,如下图:

现在我们直接进入到MxDrawCloudServer\Bin\Release\tool目录, 运行如下命令:

MxWebDwg2Jpg.exe cutcad fileparam=D:/cutcad_param.txt

cutcad_param.txt可以是任意格式的文件, 执行后如果命令行返回的结果中code是0, 则说明执行成功, 否则失败.无论成功或者失败cutcad_param.txt都将被自动删除,如下图:

NodeJS后端实现拆分剪切pdf打印和dwg图纸

云图开发包中的NodeJs服务中对应的接口我们可以在MxDrawCloudServer\Bin\MxDrawServer\Windows\routes目录中查看对应源码,其他user.js文件中定义了tools接口,在上面前端代码中就是用这个接口进行的测试,而在tools接口中是调用了convert.js文件中的callCADTools函数,如下图:

根据上图callCADTools函数的代码, 我们可以看到,其实就是生成存放参数的文件,然后调用一下我们提供的MxWebDwg2Jpg.exe就可以了。

剪切后的实际效果图

剪切红色选框中的内容:

剪切部分转换成pdf和dwg文件打开显示内容:

需要注意的事项

* 部分图纸裁剪可能无效, 有问题的图纸可以反馈给我们

* 前端mxdraw库实现裁剪需要将坐标转成CAD文档坐标, 然后后端通过转换前的原图纸进行裁剪

* 云图开发包Node服务中的API接口只是简单的测试一下功能是可以正常使用的, 具体使用的时候需要根据实际需求进行修改

* 剪切的内容可以通过out参数 来存放在一个pdf格式或者dwg格式的文件中

Demo源码:

https://gitee.com/mxcadx/mxdraw-article/tree/master/%E6%A0%B9%E6%8D%AE%E5%9B%BE%E6%A1%86%E6%8B%86%E5%88%86%E5%9B%BE%E7%BA%B8%E8%BD%AC%E6%88%90pdf%E6%89%93%E5%8D%B0

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
1000个IQ!意大利高智商角球:短短5秒,3个人3脚1头,对手懵了!

1000个IQ!意大利高智商角球:短短5秒,3个人3脚1头,对手懵了!

风过乡
2024-06-16 06:24:44
乌兹别克斯坦夫人给韩国夫人上了一堂出访课,这次遇到了强对手!

乌兹别克斯坦夫人给韩国夫人上了一堂出访课,这次遇到了强对手!

小毅讲历史
2024-06-15 19:11:33
极致黑丝诱惑 | Alexander Wang 2025早春度假系列

极致黑丝诱惑 | Alexander Wang 2025早春度假系列

CFW服装设计
2024-06-12 17:37:29
王思聪回应私生女事件,网友炸开了锅!

王思聪回应私生女事件,网友炸开了锅!

拾点先生
2024-06-15 19:00:02
数学老师说姜萍属于勤奋型选手,中考数学没答完卷,数学天赋在中专才逐渐显现出来

数学老师说姜萍属于勤奋型选手,中考数学没答完卷,数学天赋在中专才逐渐显现出来

封面新闻
2024-06-15 15:40:29
深圳出租车司机哭诉:出车几小时拉不到一个乘客,能否给一碗饭吃

深圳出租车司机哭诉:出车几小时拉不到一个乘客,能否给一碗饭吃

火山诗话
2024-06-16 06:24:37
事态升级!黄一鸣已找律师,高调放话法庭见,王思聪新动静曝光!

事态升级!黄一鸣已找律师,高调放话法庭见,王思聪新动静曝光!

古希腊掌管月桂的神
2024-06-13 19:54:17
中国女排3-2土耳其赛后,朱婷伤情更新,蔡斌收到两个好消息

中国女排3-2土耳其赛后,朱婷伤情更新,蔡斌收到两个好消息

极度说球
2024-06-15 23:24:25
巨亏百亿,关店11万家!昔日购物天堂,无力回天

巨亏百亿,关店11万家!昔日购物天堂,无力回天

金错刀
2024-06-14 14:28:04
“坐滩”舰终迎大结局?封锁见效,菲驻军或撤离,中方:允许离开

“坐滩”舰终迎大结局?封锁见效,菲驻军或撤离,中方:允许离开

国学聚焦
2024-06-15 14:41:15
160国受邀,最终92国参加瑞士和平峰会,乌克兰外交获得小胜利

160国受邀,最终92国参加瑞士和平峰会,乌克兰外交获得小胜利

山河路口
2024-06-15 11:01:58
世联赛最新排名出炉,中国女排第六,三球队争最后一个总决赛席位

世联赛最新排名出炉,中国女排第六,三球队争最后一个总决赛席位

湘楚风云
2024-06-16 02:19:01
两性羞羞:女生长期不啪啪,到底会怎么样?

两性羞羞:女生长期不啪啪,到底会怎么样?

喜马拉雅主播暮霭
2024-06-16 11:32:30
赵蕊蕊探班中国女排,被李盈莹喊阿姨,袁心玥应该取经

赵蕊蕊探班中国女排,被李盈莹喊阿姨,袁心玥应该取经

跑者排球视角
2024-06-15 18:56:37
再见曼城!1.2亿标王挂牌出售!顶撞瓜帅,不道歉,或转投大巴黎

再见曼城!1.2亿标王挂牌出售!顶撞瓜帅,不道歉,或转投大巴黎

阿泰希特
2024-06-16 11:34:34
洗衣机“快洗”模式需慎用

洗衣机“快洗”模式需慎用

参考消息
2024-06-15 19:12:11
刘亦菲新剧播出后,她与陈金飞旧事再被扒,两人很多黑历史被挖出

刘亦菲新剧播出后,她与陈金飞旧事再被扒,两人很多黑历史被挖出

花哥扒娱乐
2024-06-15 23:23:16
凯特王妃携3宝亮相,对话被唇语专家破译,没有一句跟威廉有关

凯特王妃携3宝亮相,对话被唇语专家破译,没有一句跟威廉有关

红袖说事
2024-06-16 09:52:11
“母亲借钱买的”电瓶车不合标准被没收,女孩哭得撕心裂肺!

“母亲借钱买的”电瓶车不合标准被没收,女孩哭得撕心裂肺!

走读新生
2024-06-15 07:25:14
薛之谦演唱会突发意外!医生提醒:这两类人需重点防护

薛之谦演唱会突发意外!医生提醒:这两类人需重点防护

北青网-北京青年报
2024-06-16 14:29:14
2024-06-16 15:36:49
CAD梦想画图
CAD梦想画图
是一款极速轻量级的CAD软件
574文章数 121关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

牛弹琴:梅洛尼和马克龙吵了一架 晚宴上眼神可"杀人"

头条要闻

牛弹琴:梅洛尼和马克龙吵了一架 晚宴上眼神可"杀人"

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

教育
家居
手机
时尚
公开课

教育要闻

无一入围决赛 据经济观察报 依据赛事官方统计,参与竞赛的AI队伍的平均分为18分,已赶上人类选手的平...

家居要闻

空谷来音 朴素留白的侘寂之美

手机要闻

父亲节送礼不纠结,华为畅享 70系列值得重点考虑,实用性拉满

女人年过40岁,会不会打扮差异太大了,穿对显年轻、穿错显老

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版