在线CAD(网页编辑DWG)中使用mxcad库绘制矩形向量圆角圆弧chamfer

在mxcad中绘制矩形,本质上还是绘制多段线,那如何用mxcad中的多段线去绘制一个支持倒角和圆角的矩形呢,在autocad中绘制一个矩形会通过一些命令或者输入关键字来确定是否需要倒角圆角或者通过面积,宽高去绘制。下面我们将模仿autocad的绘制矩形的交互绘制,完整的实现一个动态交互式的绘制一个矩形出来。

命令交互初始化工作

对于命令交互,我们用尽量简洁的方式实现,代码如下:

import{MxFun}from"mxdraw"constinput=document.createElement("input")consttip=document.createElement("div")constdis=document.createElement("div")document.body.appendChild(tip)document.body.appendChild(input)document.body.appendChild(dis)//命令交互input.addEventListener("keydown",(e:KeyboardEvent)=>{//讲输入框的值和按键信息传递给mxdraw中进行处理MxFun.setCommandLineInputData((e.targetasHTMLInputElement).value,e.keyCode);//回车清空输入if(e.keyCode===13)(e.targetasHTMLInputElement).value=""//接收提示信息和命令信息MxFun.listenForCommandLineInput(({msCmdTip,msCmdDisplay,msCmdText})=>{tip.innerText=msCmdTip+msCmdTextdis.innerText=msCmdDisplay绘制矩形

首先矩形一般由两个对角点来绘制出完整的矩形,所以,我们第一步自然是获取对角点。

我们可以用MxCADUiPrPoint获取到用户点击的对角点,以及其他的几个类获取到用户的不同输入,比如距离、数字、关键词等等。

根据这些用户输入,我们来一个动态可交互的确认一个矩形如何绘制

绘制矩形主要分为以下几个步骤:

1.先获取第一个对角点

2.然后看看用户是否输入了关键词,根据关键词获取对应的参数,比如获取倒角距离,圆角半径等等然后重新回到第一步重新获取角点

3.在有了第一个角度后,进行动态绘制矩形

4.获取第二个对角点,生成矩形并绘制

其中一些关键词可能导致不同的绘制方式,每个关键词对应不同处理。

首先获取对角点的代码比较简单,代码如下:

import{MxCADUiPrPoint}from"mxcad"constgetPoint=newMxCADUiPrPoint();constpt1=awaitgetPoint.go()console.log("对角点",pt1)

然后关键词就算有一些简单必要的格式:首先如果不需要给用户任何提示可以直接写关键词例如:AB用空格分隔每个关键词如果需要对应的说明提示则需要加[]然后里面的内容格式则是提示(关键词),最后用/分割每个关键词例如:[倒角(C)/圆角(F)/宽度(W)]

getPoint.setKeyWords("[倒角(C)/圆角(F)/宽度(W)]")//这里是点击,但是它也可能没有点击,而是输入了关键词,这时返回的是nullawaitgetPoint.go()//这里可以直接判断是否输入了某个关键词if(getPoint.isKeyWordPicked("C"))

然后我们对角点,倒角距离,圆半径这些参数来确定矩形的坐标点了。首先最普通的矩形坐标点,我们通过两个对角点生成:

import{McGePoint3d}from"mxcad"constgetRectPoints=(pt1:McGePoint3d,pt3:McGePoint3d):McGePoint3d[]=>{constpt2=newMcGePoint3d(pt1.x,pt3.y,pt1.z);constpt4=newMcGePoint3d(pt3.x,pt1.y,pt3.z);return[pt1,pt2,pt3,pt4];

有了四个点,这个时候我们要考虑如果要对矩形进行倒角,我们就需要8个坐标点构成也就是根据xy轴倒角的距离去做偏移,把一个坐标生成两个偏移后坐标,代码如下:

然后我们就要考虑圆角了,在上面我们已知矩形倒角后的坐标集合,那么我们把相当于要把矩形倒角点的四个角从原来的直线变成圆弧。在cad中多段线去绘制圆弧我们只需要计算它的凸度就可以形成圆弧了,现在已经知道矩形的倒角连成的直线,那么也就知道了圆弧的开始点和结束点。我们根据mxcad中提供的一些运算方法计算出对应的凸度:

那么有了凸度,我们就可以为多义线新增具有凸度的点,两点相连就形成了一个圆弧,具体代码如下:

import{McDbPolyline}from"mxcad"constpl=newMcDbPolyline()//bulge就算凸度值通过给多段线添加两个点就形成了一个圆弧pl.addVertexAt(startPoint,bulge)pl.addVertexAt(endPoint)

通过上述关键代码的讲解,结合如下完整绘制矩形的交互式代码阅读可以更好的理解mxcad中绘制矩形的具体实现方式下面结合上述步骤描述实现了一个包含倒角/圆角/面积/尺寸四种不同的绘制方式,形成了根据用户的输入以不同方式绘制矩形的功能,代码如下:

THE END
1.实现solidworks和CAD图纸Web在线预览功能在之前的一个项目中需要实现solidworks工程图和模型的网页在线浏览 测试了很多方式最后实现了比较完美的模式 基本思路是再上传文件后立刻调用传化为网页格式 在文档上传的时候调用组件转化为web格式 然后就可以浏览了 支持所有的solidworks文件和cad文件 然后客户的要求既然实现了图纸的在线预览 那office文档也一起做掉 https://blog.csdn.net/2404_89475218/article/details/144382517
2.CAD梦想画图(在线CAD)上传文件梦想CAD控件在线CAD中如何上传本地CAD文件到CAD梦想画图上,以便可以手机扫码浏览图纸。 执行方式 打开CAD梦想画图软件,点击主页,点击上传文件。如图: 操作步骤 (1)单击上传文件按钮后,系统会弹出如下图所示“上传文件”对话框: (2)点击“选择本地文件”弹出“打开文件”对话框,如下图所示: https://www.cnblogs.com/yzy0224/p/14849298.html
3.cad快速来自画图中不出现墙体肿么显示?检查一下是否有关闭的图层,把全部图层都打开了再看看有没有 https://ask.zol.com.cn/x/23597754.html
4.CAD迷你画图下载CAD迷你画图v2024R2简洁易用画图工具中文免费安装支持并兼容通用的CAD快捷命令;支持微信、链接等多种协同分享,同时微信可在线查看图纸。 常见问题 为什么我安装了"CAD迷你看图/CAD迷你画图",出现打开图纸是黑屏,或闪烁不停? 回复: 一、因为CAD迷你看图/画图默认是采用OpenGL图形引擎,少部分显示卡不支持CAD专业图形显示模式,您可以按如下图示在软件的【设置】中调整显https://www.jb51.net/softs/55012.html
5.cad快速制图绘图免费下载cad快速制图绘图官方版介绍 cad快速制图绘图是一个高效使用的看工程图软件,提供cad看图、cad制图、cad手机看图、cad测绘、cad图纸标注的功能,在线cad手机看图、手机画图的工程制图、手机制图、工程画图的看图软件。让手机也能随时看图制图,提高办公效率。 cad快速制图绘图app特点 【cad测绘】 提供线性标注和矩形标注,智能http://www.2265.com/soft/521479.html
6.MacAppStore上的“CAD迷你画图”?专业CAD技术团队持续维护更新 ?提供7*24小时QQ群(536967146)技术服务,技术支持QQ 2685698114 【产品主要功能】 画图: -新建图纸功能; -支持.dwg .dxf .dws .dwt文件格式的打开,包括加密图纸; -关联相关图纸格式,双击快速打开图纸; -支持线段(L)、多段线(PL)、圆(C)、椭圆(EL)、矩形(REC)、样条曲线(https://itunes.apple.com/cn/app/foxcad/id951718596
7.html在线预览cad图纸插件(手机小程序浏览DWG)CAD二次开发图层表的const colorVal = layerRec.color // 设置图层颜色为红色 layerRec.color = new McCmColor(255,0,0) // 更新显示 mxcad.updateDisplay() 1. 2. 3. 4. 5. 在线示例 示例项目地址:在线CAD梦想画图,点击图标打开图层特性管理器,可操作当前图纸内的所有图层,如下图所示:https://blog.51cto.com/u_10455293/10792986
8.网页CAD实现图纸比较功能(html在线预览cad)网页CAD实现图纸比较功能(html在线预览cad) 前言 设计师在工作中需要对图纸进行多次改版或审核,图纸迭代后,修改的内容与之前内容之间需要比对,因此mxcad 提供给了CAD图纸比对功能,用户使用该功能能够快速识别图纸改版前后的具体差异,另外我们为用户提供了图纸比对相关的的API,用户可根据自身需求对该功能进行深入的二次https://cloud.tencent.com/developer/article/2447283
9.网页CAD,在线CAD结合GIS,MxDraw云图平台2022.08.24更新网页CAD,在线CAD结合GIS,MxDraw云图平台 2022.08.24更新 SDK开发包下载地址:https://www./ndetail_30187.html 1. 增加对像扩展数据功能 2. 增加CAD GIS使用功能 https://www./sample/vuemapbox/?cmd=Mx_CADGISDemo&autoinit=n 3. 增加批注保存到dwg图纸功能 http://www.360doc.com/content/22/0902/16/31948907_1046288026.shtml
10.MxDraw云图平台2021.10.28更新,H5在线CAD,网页CAD,网页浏览编辑14. 修改三维图块,带OCS坐标系时显示位置有可能不对问题 15. 修改个别有OCS坐标系的填充对象显示位置发生成偏移的错误 16. createCanvasImageData函数,把当前显示内容转成图片数据 17. 增加在图上动态制标记,并响应标记点击事件的demo SDK开发包下载地址:咨询CAD梦想画图官网客服https://www.jianshu.com/p/72d32b106554
11.cad画图兼职兼职猫cad画图兼职频道为大家提供大量真实可靠的cad画图兼职在招岗位,帮助大家更快找到合适的cad画图兼职工作,同时还为大家推荐了更多企业直招、急招等岗位信息,找兼职找工作就上兼职猫。https://www.jianzhimao.com/sou/cadhtjz/
12.「cad招聘」2024年最新cad招聘信息智通人才网cad招聘频道,为cad求职者提供2024年最新最全且真实有效的cad招聘信息,2000个优质职位正在热招中!cad招聘求职,找工作,就上智通人才网.https://www.job5156.com/index/zhaopin_zpcad/
13.cad迷你画图免费版下载CAD迷你画图v2024R4官方版v2024R4 官方版cad迷你画图免费版下载评分:6.8分下载地址 软件大小:59.4M 软件语言:中文 更新时间:2024-10-21 10:45 软件类别:免费/CAD图形 软件性质:PC软件 软件厂商:上海晓材科技有限公司 运行环境:WinAll 软件等级: 官方网址:暂无 本地下载软件大小:59.4M 点赞68%(26) 差评32%(12) CAD迷你画图2020https://www.qqtn.com/down/36298.html?t=1495344407212
14.CAD迷你画图v2020R4官方免费版CAD迷你画图是一款经典的CAD快速制图软件,小巧轻快、简单好用、功能齐全,完全脱离AutoCAD快速完成CAD的编辑修改、测量算量和设计制图工作。更多个性打印,PDF随心转换、云图库、云 CAD迷你画图 v2020R4官方版2020-12-15 上传大小:32.00MB 所需:50积分/C币 https://www.iteye.com/resource/weixin_38528939-13693072
15.CAD迷你画图formac(轻量级cad绘图工具)3.4.6免激活版CAD迷你画图 for mac(轻量级cad绘图工具) 3.4.6免激活版 FoxCAD 是一款优秀的CAD迷你画图工具。兼容 AutoCAD R14 到 2018 各版本的 dwG 二维三维图纸。有软件小、功能强、速度快等特点,支持添加多行文本,命令行输入MTEXT等等功能。https://www.meipian.cn/4tpzhg8s