(网页系统集成CAD功能)在线CAD中配置属性的使用教程

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
注册配置 MSE Nacos/ZooKeeper,182元/月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: 本文介绍了Mxcad SDK在线预览和编辑CAD图纸的功能及配置方法。通过Vite、CDN或Webpack实现集成,用户可自定义设置以满足项目需求。主要内容包括:1)`createMxCad()`方法的初始属性配置,如画布ID、WASM文件路径、字体加载路径等;2)`MxFun.setIniset()`方法提供的更多CAD初始配置;3)`McObject`对象API用于动态调整视图背景色、浏览模式等。此外,还提供了在线Demo(https://demo2.mxdraw3d.com:3000/mxcad/)供用户测试实时效果。

一、前言

Mxcad SDK 能够在线预览编辑CAD图纸,用户可根据项目需求选择不同的实现方式,如通过Vite、CDN、webpack分别使用mxcad。如果不清楚mxcad实现在线预览编辑CAD图纸的方法,可参考mxcad开发文档:https://www.mxdraw3d.com/mxcad_docs/zh/。
成功创建mxcad对象后,在后续的开发过程中可能会遇到设置图纸操作习惯、监听图纸完全打开、设置图纸多选等一系列配置,mxcad内部为了方便用户的操作实现了上述一些类配置相关的方法或属性API,用户可自定义设置相关配置来满足自己项目的需求。本章就为大家介绍mxcad中与图纸操作相关的配置属性。

二、配置属性

Mxcad在创建初始就可以直接设置配置属性,在创建mxcad对象的时候配置的属性将作为CAD项目加载的默认设置。下面以在vue3+ts构建的项目中创建mxcad对象并设置初始属性为例。

1.createMxCad()
在创建mxcad对象的时候,可以在createMxCad()方法内设置配置属性。

import {
    onMounted } from "vue";
import {
    createMxCad } from "mxcad";
onMounted(() => {
   
  const mode = "SharedArrayBuffer" in window ? "2d" : "2d-st";
  createMxCad({
   
    canvas: "#myCanvas",
    locateFile: (fileName) => {
   
      return new URL(
        `../../node_modules/mxcad/dist/wasm/${
     mode}/${
     fileName}`,
        import.meta.url
      ).href;
    },
    fileUrl: new URL("../../public/test2.mxweb", import.meta.url).href,
    fontspath: new URL("../assets/fonts", import.meta.url).href
  });
});

createMxCad方法中的初始必要属性:
A. canvas:canvas画布实例的id名
B. locateFile:mxcad的核心依赖mxcad库中/mxcad/dist/wasm目录下对应分类(2d|2d-st)中的 wasm 文件(该文件是c++编译生成的),其中 2d 目录下为多线程程序、2d-st 目录下为单线程程序,该参数用来指定 wasm 程序的网络路径。
C. fontspath:指定cad图纸中的字体文件加载路径。默认路径为dist/fonts,你可以在该目录中添加打开图纸需要的各种字体文件。
D. fileUrl:指定打开mxweb图纸的网络路径。
初始运行效果演示:
image-20250327170421832.png

其他属性:
1.1、openParameter:设置打开文件的参数,可以设置打开文件是否使用缓存,或者是否使用工作线程打开文件等。

   // 设置打开文件不使用缓存
   openParameter:{
   fetchAttributes:FetchAttributes.EMSCRIPTEN_FETCH_LOAD_TO_MEMORY}

1.2、onOpenFileComplete:监听打开文件成功的回调事件,在图纸打开完成后进行的操作可在该方法内执行。

   // 在图纸完全打开后控制台输出信息
   onOpenFileComplete:()=>{
   
       console.log('图纸完全打开!')
   }

1.3、viewBackgroundColor:设置视区背景颜色,值为rgb。

   // 初始打开图纸的背景颜色设置为白色
   viewBackgroundColor:{
   red:255,green:255,blue:255}

1.4、browse:是否设置为浏览模式,值为true或1时启用浏览模式,且CAD对象不能选中;值为2时启用浏览模式,CAD对象能选中,但不能夹点编辑;值为false时启用编辑模式。

   // 启动用浏览模式,图纸中的CAD对象均不能被选中和编辑
   browse:true
   /**
    或
    browse:1
    */
   // 启动用浏览模式,CAD对象能被选中显示夹点但并不能进行夹点编辑
   browse:2
   // 编辑模式,图纸中的所有CAD对象均能被选中编辑
   browse:flase

1.5、middlePan:设置移动视区的操作方式。设置为0,点击鼠标左键移动视区;设置为1,点击鼠标中键移动视区;设置为2,点击鼠标中键和鼠标左键均可移动视区。

   // 点击鼠标中键移动视区
   middlePan:1
   // middlePan:2
   // middlePan:0

1.6、enableUndo:是否启用回退功能。设置为true则可以调用Mx_Undo命令回退操作;设置为false则禁用回退命令。默认设置为false。

   //设置启用回退功能
   enableUndo:true

1.7、enableIntelliSelect:是否启用对象选择功能。设置为true则启用;设置为false则不启用。

   // 启用对象选择功能
   enableIntelliSelect:true

1.8、multipleSelect:是否启用多选。设置为true则启用;设置为false则不启用。

   // 启用多选
   multipleSelectL:true

更多createMxCad方法内部的属性设置可参考:
https://www.mxdraw3d.com/mxcad_docs/zh/api/interfaces/2d.MxCadConfig.html

2.MxFun.setIniset()
由于mxcad是依赖于mxdraw去显示的图纸,因此mxdraw中也提供了实现各种初始配置的方法:MxFun.setIniset(),我们可以在该方法中配置更多CAD项目的初始配置,其调用方法如下:

import {
    MxFun } from "mxdraw"
MxFun.setIniset({
   
    // 启动夹点编辑功能, 开启单选图形(mxcad默认开启)
    "EnableGripEidt": true,
    // 开启多选
    "multipleSelect": true
    /**
     * ......可配置更多iniConfig参数
     */
})

常用iniConfig参数:

2.1、 EnableIntelliSelect:是否启用智能选择。设置为true则启用;设置为false则不启用。

   // 启用智能选择
   EnableIntelliSelect:true

2.2、EnableGripEdit:是否启动夹点编辑。设置为true或1表示启用,设置为0或fase表示禁用,设置为2表示选中对象后只显示夹点,但不响应响应夹点编辑。

   // 启用夹点编辑
   EnableGripEdit:true

2.3、multipleSelect: 是否启动多选,启动多选设置后用户一次选择多个实体。设置为true则启用;设置为false则不启用,其默认值是false。

   // 启动多选-框选
   multipleSelect:true

2.4、IntelliSelectType:多选方式控制。设置为1:多选,但不支持连续多选,设置为2:多选,并支持连续多选,默认值为1。该设置生效的前提是要先启动多选。

   // 多选方式可以连续点选
   IntelliSelectType:2

2.5、autoResetRenderer:是否启用自动重置渲染器。设置为true则启用;设置为false则不启用

   // 启用自动重置渲染器
   autoResetRenderer:true

2.6、ForbiddenDynInput:是否禁用动态输入框。设置为true为禁用;设置为false则启用。

   //禁用动态输入框
   ForbiddenDynInput:true

2.7、inputRectWidth:设置夹点和拾取框的宽度,其单位是屏幕上的像素。

   //将夹点宽度设置为5px
   inputRectWidth:5

2.8、gripPointColor: 设置夹点颜色,其值为十六机制颜色值,如:0xFFFFFFFF,0xNRGB等。

   // 将夹点颜色设置为白色
   gripPointColor:0xFFFFFFFF

2.9、EnableDrawingViewAngle:是否使用图纸中的视区角度设置,默认为true 。

   // 不使用图纸中的视区角度
   EnableDrawingViewAngle:flase

更多MxFun.setIniset()方法内部的属性设置可参考:
https://mxcad.github.io/mxdraw_api_docs/interfaces/iniConfig.html

3.McObject对象方法API
处理了上面介绍的两种方式外,mxcad中的McObject对象里也提供了设置CAD项目配置参数的方法。下面以常用的几种设置方法为例:
3.1、McObject.setBrower():是否设置为浏览模式。

   import {
    MxCpp } from 'mxcad';
   // 设置为浏览模式
    MxCpp.getCurrentMxCAD().setBrowse(true);
   // 设置为编辑模式
    MxCpp.getCurrentMxCAD().setBrowse(false);

3.2、McObject.setViewBackgroundColor():设置视区的背景色。

   import {
    MxCpp } from 'mxcad';
   // 将视区背景色设置为白色,值为rgb
    MxCpp.getCurrentMxCAD().setViewBackgroundColor(255,255,255);

3.3、McObject.setAttribute():设置mxcad对象的一些属性设置。

   import {
    MxCpp } from 'mxcad';
    MxCpp.getCurrentMxCAD().setAttribute({
   
        //启用回退功能
        EnableUndo:true,
        //显示精度设置,默认为0,可以取0 ~1000,1000为最高精度
        DisplayPrecision:1000
    });

更多McObject方法设置可参考:
https://www.mxdraw3d.com/mxcad_docs/zh/api/classes/2d.McObject.html

三、在线演示

用户可在我们提供的在线demo的编辑器中直接运行设置,查看实时效果。在线demo地址:https://demo2.mxdraw3d.com:3000/mxcad/

实时运行效果演示:

import {
    MxCpp } from 'mxcad';
// 将视区背景色设置为白色,值为rgb
 MxCpp.getCurrentMxCAD().setViewBackgroundColor(255,255,255);

如下图:
image-20250328120924230.png

相关文章
|
2月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
1289 123
|
6月前
|
测试技术 数据处理 调度
Dataphin功能Tips系列(57)「预览」vs「运行」:离线集成的神奇按钮
在数据开发过程中,使用Dataphin处理离线集成任务时,可能遇到数据过滤和字段计算组件配置正确性的验证问题。通过「预览」功能,可快速验证处理逻辑而不影响目标表;对于需要调度的任务,担心资源占用和耗时超出预期时,可使用「运行」功能进行全流程测试,评估实际耗时与资源消耗。「预览」适合逻辑验证,「运行」用于真实环境模拟,两者结合助力高效开发与调试。
173 5
|
6月前
|
SQL Java 关系型数据库
Dataphin功能Tips系列(53)-离线集成任务如何合理配置JVM资源
本文探讨了将MySQL数据同步至Hive时出现OOM问题的解决方案。
165 5
|
2月前
|
SQL 运维 关系型数据库
【产品升级】Dataphin V5.0版本发布:助力出海业务、增全量一体集成、异步调用API等更多功能等你发现
Dataphin是瓴羊推出的智能数据建设与治理平台,基于阿里巴巴内部实践,提供一站式数据建设与治理能力。V5.0版本研发新增支持Databricks作为离线计算引擎、支持MySQL数据库一键增全量同步、支持管理Hudi、Delta Lake表等;资产运营与消费持续提效,支持批量编辑目录名称及描述、Quick BI仪表板的上架管理等功能,增加资产可用性与盘点效率。
218 8
|
3月前
|
存储 JSON 前端开发
Django集成图片验证码功能:基于django-simple-captcha实现
在Web应用开发中,验证码是防止恶意攻击、自动化脚本滥用的重要手段。本文将介绍如何使用django-simple-captcha库在Django项目中快速集成图片验证码功能,包括安装配置、核心实现代码及使用方法。
139 0
|
6月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
433 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
6月前
|
传感器 供应链 物联网
农业单亩价值创造功能技术集成的概念与内涵
农业单亩价值创造的技术集成,通过系统性创新打破传统单一模式,融合现代科技与生态理念,提升资源效率、经济效益和生态价值。其核心在于技术协同,实现精准农业、智能装备和生物强化等多维联动,推动经济、生态和社会价值统一。同时,注重资源集约化与循环化利用,延伸产业链并升级价值链,从短期高产转向长期可持续发展。政策与制度创新支撑技术普惠,未来需因地制宜解决技术适配性和成本收益平衡问题,重塑农业评价体系,实现高质量发展。
|
5月前
|
监控 安全 Java
Java 开发中基于 Spring Boot 3.2 框架集成 MQTT 5.0 协议实现消息推送与订阅功能的技术方案解析
本文介绍基于Spring Boot 3.2集成MQTT 5.0的消息推送与订阅技术方案,涵盖核心技术栈选型(Spring Boot、Eclipse Paho、HiveMQ)、项目搭建与配置、消息发布与订阅服务实现,以及在智能家居控制系统中的应用实例。同时,详细探讨了安全增强(TLS/SSL)、性能优化(异步处理与背压控制)、测试监控及生产环境部署方案,为构建高可用、高性能的消息通信系统提供全面指导。附资源下载链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)。
876 0
|
6月前
|
JSON JavaScript API
MCP 实战:用配置与真实代码玩转 GitHub 集成
MCP 实战:用配置与真实代码玩转 GitHub 集成
1444 4
|
6月前
|
存储 分布式计算 供应链
Dataphin功能Tips系列(51)-支持增全量一体实时集成
本文介绍了基于增全量一体实时集成的库存管理与分析解决方案。通过将业务中台的库存表同步至MaxCompute Delta表,实现离线与实时分析的统一支持。相比传统方案,该方法确保数据一致性,优化存储成本,降低维护复杂度,并大幅提升实时性,满足高效库存管理需求。
143 5