首页 > 其他分享 >网页WEB前端实现CAD图纸比较功能

网页WEB前端实现CAD图纸比较功能

时间:2024-08-21 20:04:01浏览次数:11  
标签:图纸 WEB 功能 网页 背景 mxcad 点击 比较 CAD

前言

设计师在工作中需要对图纸进行多次改版或审核,图纸迭代后,修改的内容与之前内容之间需要比对,因此mxcad 提供给了CAD图纸比对功能,用户使用该功能能够快速识别图纸改版前后的具体差异,另外我们为用户提供了图纸比对相关的的API,用户可根据自身需求对该功能进行深入的二次开发。

图纸比对步骤

1. 打开mxcad在线示例demo:https://demo.mxdraw3d.com:3000/mxcad/

2. 点击【打开文件】,打开目标CAD图纸,如下图所示:

 3. 点击【工具(A)】菜单栏,选择【图纸比对】按钮,如下图所示:

 4. 在弹出的文件选择器中,选择需要比对的图纸。点击【确定】按钮后,等待比对结果,如下图所示:

 5. 查看比对结果,如下图:

 

图纸比对功能详解

1.工具栏命令和选项

图纸比较完成是,项目界面会出现"DWG比较"工具栏。

2. 比对结果详情

点击“DWG比对”,显示出设置面板,设置面板位置可根据个人习惯调整。以及,针对后期的图纸频繁更改,用户可以选择固定面板位置,如下图:

设置面板功能详解:

此外,mxcad的图纸比对功能还提供了修改实体定位功能。用户点击比对结果中的实体,可直接定位到该实体所在的位置,能够更加直观的观察到两张图纸之间的差异。

3. 差异

用户点击“灯泡”图标可以用来切换比较结果中对象的可见性,能够更加直观的观察到图纸的变化。

4. 完成图纸比较

点击“√”,结束图纸比较,关闭面板和工具栏,展示原图纸。

此外,在比对期间用户对图纸做的修改也将被保留。

 

二次开发

mxcad 图纸比对功能中运用的核心思想是通过[McObject.loadDwgBackground()]方法将比对图纸当做当前控件的背景对象绘制,并通过[MxCompare]将当前图纸与背景图纸(即比对图纸)进行比较获取到两张图纸中的差异数据。

其中,我们能够根据[McObject.getBackgroundEntity()]获取到当前的[McDbBackgroundEntity]背景对象,然后根据自身需求去设置背景对象相关的属性与方法。例如,通过[McDbBackgroundEntity.setShow]方法来控制是否显示背景对象,代码如下:

// 比对图纸
// 把要比较的图纸,当着背景加载当前内存中,方便查看不一样的地方.
  const mxcad = MxCpp.getCurrentMxCAD();
  mxcad.mxdraw.makeCurrent();
  mxcad.loadDwgBackground(
    fileUrl,// 比对图纸所在路径
    async (isok: boolean) => {
      let backgroundEntity = mxcad.getBackgroundEntity();
      // 暂时隐藏背景图纸的显示。
      backgroundEntity.setShow(fileUrl, false);
      // 获取背景图纸上的数据信息
      let database = backgroundEntity.getBackgroundDatabase(fileUrl);
      if (database == null) {
        return;
      }
      // 开始把当前图纸与背景图纸进行比较。
      let cmp = new MxCompare();
      if (cmp.do(database)) {
        // 得到比较结果.
        let result = cmp.getResult();
        // 自主处理得到的比较结果
    },
    0xc90696969 // 设置背景图纸颜色
  );
}

 

标签:图纸,WEB,功能,网页,背景,mxcad,点击,比较,CAD
From: https://www.cnblogs.com/yzy0224/p/18372418

相关文章

  • C++实现web token加密生成验证
    代码 #include"jwt-cpp/traits/boost-json/traits.h"#include<boost/json/src.hpp>//Youmayrequirethisifyouarenotbuildingitelsewhere#include<iostream>#include<sstream>voidtestToken(){ usingsec=std::chrono::......
  • 软件测试-web端测试-代码起步
    记录学习笔记第一步、导包web自动化测试常用selenium,这是必要的。fromseleniumimportwebdriver 第二步、确定要使用的浏览器浏览器有很多,常用Chrome,这里看你下载的webdriver是谁的,我用的是edge。用谷歌,那就把Edge改为Chrome,用火狐就改为Firefoxdriver=webdriver.Ed......
  • 软件测试-web自动化测试-前期环境搭建
    记录学习笔记web端自动化测试也就是网页自动化测试。主要在PyCharm软件里编写代码,前期需要准备python+selenium的基础环境搭建。1、下载安装python,下载最新版检查环境:在cmd里python -v和pip -v可以正常出现。√2、PyCharm安装,下载社区免费版直接next安装即可,打开软......
  • 短视频生成与AI的结合应用,Web/App RPA 智能化应用
    在这个日新月异的时代,人工智能(AI)与自动化技术的融合正以前所未有的速度重塑着各行各业。你是否梦想过,在信息的海洋中自动筛选出精华,用创意点亮每一篇内容,同时让繁琐的工作流程变得轻松高效?我们诚邀您参加即将开启的“AI自动化应用开发”公开课第3期,一同探索如何用好AI与自动化,让您......
  • WebDriver API剖析----元素、鼠标、键盘的操作
    一、元素的操作1、清除元素的内容clear()方法用于清除元素中已有的内容。fromseleniumimportwebdriverfromtimeimportsleepfromselenium.webdriver.common.byimportBydriver=webdriver.Firefox()driver.get("https://www.baidu.com")driver.find_element(......
  • centos7安装FreeRadius3及WEB管理界面DaloRadius
    一、基础环境安装1.安装基础环境yum-yinstallgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-......
  • 基于html2canvas实现网页保存为图片及图片清晰度优化
    一、实现HTML页面保存为图片1.1已知可行方案现有已知能够实现网页保存为图片的方案包括:方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含图片展示的dataURI方案2:使用html2canvas.js实现(可选搭配Canvas2Image.js实现网页保存为图片)方案3:使用raster......
  • 网络增加安全策略,兼容模式下打不开网页的问题,用到了js中的获取时间
    1、遇到了403的问题,查到原因是因为要url转义,可是转义后,发现极速模式可以用,兼容模式依然是403的问题。所以认为兼容模式与极速模式的解析url中存在很大差异,通过比较兼容模式与极速模式的url,发现兼容模式有中文字符,极速模式下是转义的,所以将中文字符换成英文,发现可以打开链接了。......
  • 2.可视化web页面
    1.1.基本元素与布局_文本与标题1.2.基本元素与布局_图片与媒体1.3.基本元素与布局_表格2.1.交互组件_按钮与触发事件2.2.交互组件_输入框与表单2.3.交互组件_下拉框与选择器3.1.数据可视化_绘图与图表3.2.数据可视化_Matplotlib、Plotly等集成4.使用Markdown增强......
  • ace markdown editor 原生web components
    src/index.html:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document&......