网站首页 > 技术文章 正文
mxdraw 前端库预览图纸
mxdraw 的作用就是预览图纸,也可以绘制一些批注或者其他图形,首先进行安装,如果你没有前端工程化的基础,请先看MxDraw帮助基础知识,mxdraw有详细的文档,建议点击简介 | mxdraw 查看使用说明,然后我们讲一下转换后的图纸用mxdraw库显示的步骤:
1)新建工程
这里我们就用vite来创建一个前端工程化的项目
先创建一个目录vite-mxdraw 然后进入命令行输入以下命令:
# 初始化项目
npm init -y
# 创建vite 项目
npm create vite@latest
# 安装mxdraw库
npm install mxdraw
更多关于创建vite项目的说明,请参考: 开始 | Vite 官方中文文档MastodonTwitterDiscordGitHubMastodonTwitterDiscordGitHub
2)使用mxdraw
在vite创建的项目中你选择了其中一种框架,而mxdraw它是不依赖于任何框架的,所以我们只需要在canvas元素创建完成后就可以直接使用mxdraw提供的方法,在页面中直接显示转换后的图纸文件。
如果你不知道mxdraw转换的图纸文件是什么,或怎么转换的,可以先看MxDraw帮助
一般情况下我们不要只使用一个canvas元素,而是定义一个父级元素,并且这个父级的高度一定需要是固定的(不能使用百分比单位),宽度也必须有(可以是百分比单位),像下面这样:
<div style="width: 100%;height: 90vh"><canvas id="myCanvas"></canvas></div>
然后我们可以在js/ts文件(根据前端框架的不同写的位置也不一样,但是只要canvas元素创建挂载,那么就可以使用下面的代码),输入如下代码:
import { MxFun } from "mxdraw"
MxFun.createMxObject({
canvasId: "myCanvas", // canvas元素的id
cadFile: "./demo/buf/$hhhh.dwg",
useWebsocket: false,
});
这里cadFile 对应的就算转换后的文件缩写,它会自动去请求转换后对应的多个文件,详细的入门文档请参考:快速入门 | mxdraw
mxcad 在线编辑图纸
如果只是在网页中显示、批注图纸,mxdraw就足够了,如果需要直接修改源图纸,就必须用到mxcad这个库,mxcad依赖mxdraw库,为mxdraw库赋予了编辑图纸的能力。
要使用mxcad,同样需要先有转换后的图纸文件,但这个文件和mxdraw显示的转换后的图纸文件是不一样的,下文只是简单尝试使用mxcad,如果你希望更多的使用它,建议你直接查看mxcad | mxcad & 提供在线CAD编辑能力GitHubGitHub 。
1)先初始化项目和创建vite项目
与使用mxdraw是一样,建议使用vite作为打包工具,如果使用其他打包工具或者不使用打包工具请直接查看mxcad | mxcad & 提供在线CAD编辑能力GitHubGitHub,mxcad是基于WebAssembly | MDNMDN Web DocsMDN logoMozilla logo的,我们需要找到vite.config.ts文件如果没有就在根目录创建一个,输入如下代码:
import { defineConfig } from "vite"
export default defineConfig({
server: {
headers: {
"Cross-Origin-Opener-Policy": "same-origin",
"Cross-Origin-Embedder-Policy": "require-corp",
}
}
})
服务器配置了这样的响应头,我们才能使用,如果不配置也可以,但打开图纸期间会阻塞js线程,详细的使用请查看mxcad | mxcad & 提供在线CAD编辑能力GitHubGitHub。
2)编辑CAD图纸
安装好mxcad后,我们就可以直接使用可以在页面中显示并编辑cad图纸,输入如下代码:
import { createMxCad } from "mxcad"
createMxCad({
canvas: "#myCanvas",
locateFile: (fileName)=> new URL(`/node_modules/mxcad/dist/wasm/2d/${fileName}`, import.meta.url).href,
fileUrl: new URL("../assets/test.mxweb", import.meta.url).href
}).then((mxcad)=> {
// 我想换一个文件显示?
// mxcad.openWebFile(new URL("../assets/test2.mxweb", import.meta.url).href)
// 保存文件?必须放在用户操作的事件(如点击)中调用它,因为这个行为必须是用户操作去触发
// mxcad.saveFile()
})
fileUrl 以及openWebFile的参数都是指的转换后的文件,如何转换文件在mxcad | mxcad & 提供在线CAD编辑能力GitHubGitHub中有对应的说明,而更详细的可以看MxDraw帮助中的相关内容。
使用示例源码合集
如果你仍然无法完成图纸展示或者编辑,建议在github上看我们写好的对应示例源码,然后直接git clone 我们在github上提供的示例代码来参考或者进行开发。
mxdraw相关示例:GitHub - mxcad/mxdraw-sample: mxdraw 使用示例
mxcad相关示例: mxcad_docs/examples at master · mxcad/mxcad_docs · GitHub
如果你不了解git 请参考:Git - 瀹夎 Git
注意:使用mxcad 你需要克隆的是GitHub - mxcad/mxcad_docs: mxcad 文档仓库,而不是mxcad_docs/examples at master · mxcad/mxcad_docs · GitHub,具体如何启动这些示例,在示例项目中有详细说明。
猜你喜欢
- 2024-11-11 一行JS代码实现一个简单的模板字符串替换「实践」
- 2024-11-11 14个 JavaScript 代码优化技巧 页面代码优化方法及技巧
- 2024-11-11 Web 端实时防挡脸弹幕(基于机器学习)
- 2024-11-11 聊聊苹果营销页中几个有趣的交互动画
- 2024-11-11 由浅入深,66条JavaScript面试知识点(一)
- 2024-11-11 前端JS实现字符串/图片/excel文件下载
- 2024-11-11 吃透 Vue 项目开发实践|16个方面深入前端工程化开发技巧【上】
- 2024-11-11 「前端进阶」高性能渲染十万条数据(时间分片)
- 2024-11-11 我是如何零基础入门前端开发的(2021 版)
- 2024-11-11 简单实现一个虚拟形象系统 虚拟形象制作软件下载
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-