esc0rp 发表于 2024-7-27 17:43:12

网页三维CAD参数化建模研发框架的搭建教程


    <h1 style="color: black; text-align: left; margin-bottom: 10px;"><strong style="color: blue;">前言</strong></h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">mxcad3d是基于mxdraw的<span style="color: black;">基本</span>上,<span style="color: black;">运用</span>TypeScript和C++语言<span style="color: black;">研发</span>的一个网页三维CAD参数化建模框架,<span style="color: black;">咱们</span>为<span style="color: black;">研发</span>者<span style="color: black;">供给</span>了丰富的参数化建模的<span style="color: black;">研发</span>接口,用户<span style="color: black;">能够</span><span style="color: black;">有效</span>、<span style="color: black;">方便</span>的对基本图元进行创建、<span style="color: black;">同期</span>丰富的JS<span style="color: black;">研发</span>接口方便了用户实现<span style="color: black;">繁杂</span>的模型创建和CAD二次<span style="color: black;">研发</span>。网页测试DEMO链接如下:https://demo.mxdraw3d.com:3000/mxcad3d/。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;"><strong style="color: blue;">功能简介</strong></h1>参数化创建:方块、圆柱、圆锥、球体、圆环、楔形、拉伸、旋转体、放样、管道等。几何运算: 形位变换、平移、缩放、旋转、镜像。布尔运算:交集、差集、并集、相交轮廓。倒角运算:圆角、斜角。几何绘线:直线、圆、椭圆、双曲线、抛物线、B样条曲线、Bezier曲线等的绘制。几何绘面:平面、B样条曲面、Bezier曲面的创建。<h1 style="color: black; text-align: left; margin-bottom: 10px;"><strong style="color: blue;">支持格式</strong></h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">step/stp,iges/igs,stl,obj,vrml/wrl,gltf等格式文件。</p>
    <h1 style="color: black; text-align: left; margin-bottom: 10px;"><strong style="color: blue;">程序、运行</strong></h1>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">新建项目、安装依赖</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">首要</span>,在某路径下新建一个文件夹TestMxCad3D<span style="color: black;">做为</span>项目文件夹,在TestMxCad3D 目录中打开cmd命令行程序运行以下命令来初始化项目并安装 vite和 mxcad。</p><strong style="color: blue;">npm init -y</strong><strong style="color: blue;">npm install vite -D</strong><strong style="color: blue;">npm install mxcad@latest</strong>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">新建index.html文件</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">而后</span>,在项目根目录下新建index.html文件,并绘制canvas画布,参考代码如下:</p>&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&gt;vite use mxcad&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;div style="height: 800px;"&gt; &lt;canvas id="myCanvas"&gt;&lt;/canvas&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">新建index.ts文件</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在src目录下新建index.ts文件(vite默认支持ts),代码如下:</p>import { MxCAD3DObject } from "mxcad"// 创建mxcad3d对象const mxcad3d = new MxCAD3DObject()// 初始化mxcad3d对象mxcad3d.create({ // canvas元素的css<span style="color: black;">选取</span>器字符串(示例中是id<span style="color: black;">选取</span>器),或canvas元素对象 canvas: "#myCanvas", // 获取加载wasm<span style="color: black;">关联</span>文件(wasm/js/worker.js)路径位置 locateFile: (fileName)=&gt; new URL(`/node_modules/mxcad/dist/wasm/3d/${fileName}`, import.meta.url).href,})// 初始化完成mxcad3d.on("init", ()=&gt;{ console.log("初始化完成");});<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">index.html中引入index.ts</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">mxcad3d中的create()<span style="color: black;">办法</span>需要等canvas元素在页面加载完成后<span style="color: black;">才可</span>调用,<span style="color: black;">因此呢</span>需要将 script 标签放在 body 标签内部,让浏览器先完成HTML页面的解析,再下载并执行script标签中的代码。</p>&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&gt;vite use mxcad&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;div style="height: 800px; overflow: hidden;"&gt; &lt;canvas id="myCanvas"&gt;&lt;/canvas&gt;&lt;/div&gt; &lt;script type="module" src="./src/index.ts"&gt;&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">起步</span>网页服务、运行网页</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">完成以上<span style="color: black;">过程</span>后,运行下面的命令<span style="color: black;">起步</span>项目,输入命令:npx vite,打开网页.如下图:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q9.itc.cn/images01/20240708/748e790183a84485862b98d04e73bfe3.png" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">以上代码会创建一个MxCAD3DObjectl类型的对象mxcad3d,并在初始化完成后输出一条<span style="color: black;">信息</span>,mxcad3d<span style="color: black;">表率</span>的是一个文档视图对象,能把创建的模型数据<span style="color: black;">保留</span>到文档,并且<span style="color: black;">表示</span>到视图上。此时你将会在浏览器中看到一个三维视图窗口,如下图:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q3.itc.cn/q_70/images01/20240708/8257e0624f0443a48cc547eb56f1cb38.png" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">绘制方块</strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">要在视图中绘制一个方块,<span style="color: black;">能够</span><span style="color: black;">经过</span>以下代码实现:</p>import { MxCAD3DObject, Mx3dMkBox, Mx3dGePoint } from "mxcad"// 创建按钮function createButton(text: string, fn: (...args) =&gt; void) { const button = document.("button"); button.innerText = text; document.body.(button); button.onclick = fn;}/** * 绘制方块 */function drawBox(){ // 获取文档 const doc = mxcad3d.getDocument(); const pt1 = new Mx3dGePoint(5, 5, 5); const pt2 = new Mx3dGePoint(15, 15, 15); // 构造BOX const boxMaker = new Mx3dMkBox(pt1, pt2); // 获取拓扑形状 const boxShape = boxMaker.Shape(); // 文档中创建一个标签 const boxLabel = doc.addShapeLabel(); // 添加拓扑形状到标签中 boxLabel.setShape(boxShape); // 更新<span style="color: black;">表示</span>(会更新canvas中<span style="color: black;">表示</span>的模型) mxcad3d.update();}// 创建mxcad3d示例对象const mxcad3d = new MxCAD3DObject()// 初始化mxcad3d.create({ // canvas元素的css<span style="color: black;">选取</span>器字符串(示例中是id<span style="color: black;">选取</span>器),或canvas元素对象 canvas: "#myCanvas", // 获取加载wasm<span style="color: black;">关联</span>文件(wasm/js/worker.js)路径位置 locateFile: (fileName)=&gt; new URL(`/node_modules/mxcad/dist/wasm/3d/${fileName}`, import.meta.url).href,})// 初始化完成mxcad3d.on("init", ()=&gt;{ console.log("初始化完成"); createButton("绘制方块", drawBox);});<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">以上代码新增了一个名为drawBox的函数,该函数会在画布中绘制一个方块。<span style="color: black;">经过</span>创建一个按钮,并在按钮的单击事件中调用drawBox函数,<span style="color: black;">能够</span>触发方块的绘制。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">经过</span>以上<span style="color: black;">过程</span>,你<span style="color: black;">能够</span>在浏览器中看到一个带有三维视图窗口的页面,点击"绘制方块"按钮,<span style="color: black;">就可</span>在视图中绘制一个方块,如下图所示:</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="//q4.itc.cn/images01/20240708/54c6557268ac4425999b3e12e2aac634.png" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">mxcad3d<span style="color: black;">供给</span>了强大的功能和灵活的<span style="color: black;">研发</span>接口,<span style="color: black;">经过</span>这些接口能够创建<span style="color: black;">更加多</span><span style="color: black;">繁杂</span>的三维模型。<a style="color: black;"><span style="color: black;">返回<span style="color: black;">外链论坛:www.fok120.com</span>,查看<span style="color: black;">更加多</span></span></a></p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">责任编辑:网友投稿</span></p>




听听海 发表于 2024-8-26 18:54:50

你的话语真是温暖如春,让我心生感激。

4lqedz 发表于 2024-10-3 19:34:09

你的见解独到,让我受益匪浅,非常感谢。
页: [1]
查看完整版本: 网页三维CAD参数化建模研发框架的搭建教程