返回介绍

指南

MxCAD API 文档

6. 系统变量

发布于 2024-07-31 21:40:00 字数 7909 浏览 0 评论 0 收藏 0

系统变量

CAD 系统变量是在计算机辅助设计(CAD)软件中使用的一种设置。 CAD 系统变量可以控制 CAD 软件的行为、外观和功能。它们可以是全局变量,用于控制整个 CAD 系统的行为,也可以是局部变量,只对特定的 CAD 对象或操作起作用。

CAD 系统变量可以控制各种参数,例如图形显示的单位、精度和颜色,绘图对象的默认属性,工具栏和菜单的布局,以及各种命令的行为。通过修改系统变量的值,用户可以根据自己的需要调整 CAD 软件的功能和外观。

每个 CAD 软件都有自己的一套系统变量,并且可以根据需要添加新的系统变量。用户可以通过设置 CAD 软件的选项或使用相应的命令来修改系统变量的值。

mxcad也提供了对应CAD变量的获取和设置方法。

根据不同的变量类型, 我们分了四种不同方式设置:

获取浮点数变量getSysVarDouble,

获取长整数变量getSysVarLong

获取点变量getSysVarPoint

获取字符串变量getSysVarString

设置就是方法的get改成set, 传入变量名和对应类型的值。

动态捕捉相关的系统变量

举一个应用系统变量的例子

示例项目: https://demo.mxdraw3d.com:3000/mxcad/

最右下方按钮开关,它们都是长整数系统变量: Alt text

export enum SysVarLongSketchSettings {
  /** 栅格 */
  GRIDMODE = "栅格",
  /** 正交 */
  ORTHOMODE = "正交",
  /** 极轴 */
  AUTOSNAP = "极轴",
  /** 对象捕捉 */
  OSMODE = "对象捕捉",
  /** 对象追踪 */
  DYNTRACE = "对象追踪",
  /** DIY */
  DYNINPUT = "DYN",
  /** 线宽 */
  LWDISPLAY = "线宽"
}

除了OSMODE对象捕捉变量, 其他变量设置的值都是0表示关闭, 1 表示开启

import { MxCpp, McGePoint3d } from "mxcad"
const mxcad = mxcad.MxCpp.getCurrentMxCAD()
// 开启栅格
mxcad.setSysVarDouble("GRIDMODE", 1)
// 开启正交
mxcad.setSysVarLong("ORTHOMODE", 1)
// 关闭线宽
mxcad.setSysVarLong("LWDISPLAY", 0)

而动态捕捉, 因为存在各种捕捉, 需要多个开关, 我们获取到的动态捕捉值, 是根据这些开关是否开启运算得到的总值。

因此我们需要设置动态捕捉的开启关闭,各种捕捉是否开启, 代码如下:

import { MxCpp, McGePoint3d } from "mxcad"
const mxcad = mxcad.MxCpp.getCurrentMxCAD()
const osModeVal = mxcad.setSysVarLong("OSMODE")
export enum SysVarLongSketchSettingsOsMode {
  /** 端点捕捉 */
  End = 1,
  /** 中点捕捉 */
  Mid = 2,
  /** 圆心点捕捉 */
  Cen = 4,
  /** 节点捕捉 */
  Node = 8,
  /** 象限点捕捉 */
  Quad = 16,
  /** 交点捕捉 */
  Int = 32,
  /** 插入点捕捉 */
  Ins = 64,
  /** 垂足点捕捉 */
  Perp = 128,
  /** 切点捕捉 */
  Tan = 256,
  /** 最近点捕捉 */
  Near = 512,
  /**外观交点捕捉*/
  App = 2048,
  /**延伸点捕捉*/
  Ext = 4096,
  /** 平行点捕捉 */
  Par = 8192,
  /**捕捉关闭 */
  Off = 16384,
}
// 关闭捕捉 0 或 1
const osModeOff = osModeVal & SysVarLongSketchSettingsOsMode.Off
// 平行点捕捉 0 或 1
const osModePar = osModeVal & SysVarLongSketchSettingsOsMode.Par

// 是否开启平行点捕捉
const isOpenOsModePar = true
// 设置
mxcad.setSysVarLong("OSMODE", 
    isOpenOsModePar 
    ?
    (osModeVal | SysVarLongSketchSettingsOsMode.Par) 
    :
    (osModeVal & ~SysVarLongSketchSettingsOsMode.Par)
)

// 其他捕捉开关设置与上面代码一样
// ...

通过上述代码运行, 这是固定的规则。

在CAD存在各种各样的变量,我们只需要通过调用mxcad提供的这几个方法就可以设置它们。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文