CAD中界面中定义新命令的方法

cyc 8月 24, 202111:04:06
评论
1,715 10103字阅读33分40秒

如果我们要定义一个全新的命令,可以利用CAD提供的二次开发工具:LISP / VBA/ .NET/ ARX等来编程,但这不是大多数人能做到的。这里要介绍的是如何利用CAD的自定义界面(CUI)命令,利用简单的宏来调用现有命令并添加一下简单的参数和设置。

在CUI自定义界面中可以根据需要重新设置菜单、工具栏、命令面板,可以调整现有命令在界面中的位置,这些在之前已经写文章介绍过。

AUTOCAD定制界面的简单技巧

如何定制CAD功能区界面中的命令?

这里就简单介绍一下如何利用宏,利用现有命令来定义一个新的命令。

昨天我们介绍了更改为随层(SETBYLAYER)的命令,是设置所有对象属性都随层。其实默认状态下图形的属性都是随层的。但假如我们改变了颜色、线宽、线型的当前设置项恢复成随层设置,我们也自己定制类似的命令,执行命令后让颜色、线宽、线型的当前值都恢复成随层。

直接输入CUI,回车,打开用户自定义界面对话框,在命令列表的任意命令上鼠标右键单击,选择新建命令。

CAD中界面中定义新命令的方法

然后在特性选项中将名称更改为“属性图层”,接下来将通过宏命令来告诉它需要做的事。在宏输入框中输入“

^C^C(setvar “cecolor” “ByLayer”) (setvar “celweight”-1) (setvar “celtype” “ByLayer”),如图片所示。

CAD中界面中定义新命令的方法

^C^C的功能是取消还未完成的其他操作,和按两次esc键功能类似。然后setvar设置变量告诉AutoCAD改变现在对象的颜色、线宽、和线型属性为随图层。

我们可以在“说明”一栏添加上功能的说明文字,自己用的话可以不用填写了。

为了在工具栏或命令面板中添加命令,我们可以给命令设置好大图像和小图像,大图像分辨率是32X32的,小图像是16X16的,我们可以从CAD提供的图像列表中选一种类似的,或者选择其中一个图标后直接在CUI对话框中进行简单编辑,也可以输入我们自己绘制的图像。

CAD中界面中定义新命令的方法

当然还根据需要设置:显示命令名、标签等等。设置好后,单击底部的应用按钮,就可以将自定义的命令添加到命令列表中,然后我们就可以在命令列表中搜索到新建的命令,将它添加到命名面板、工具栏或菜单中,如下图所示。

CAD中界面中定义新命令的方法

其实我对宏也不是了解,不过我们可以先查看一下CUI中已有命令定义的宏,先参照做一些简单的定制,下面我整理了一些关于宏的资料,希望对大家有帮助。

CAD宏的简单介绍

命令宏可以包含命令、特殊字符、DIESEL 表达式或 AutoLISP 编程代码。

宏将定义使用用户界面元素时应执行的动作。它可以像命令一样简单(例如 circle),并且可以包含特殊字符(例如 ^C^C)。

例如,宏 ^C^C_.circle 1,它可以绘制一个半径为 1 个单位的圆。下表解释了定义此宏的组成部分。

CIRCLE 宏中的部件
部件 部件类型 结果
^C^C 特殊控制字符序列 序列,效果类似于按两次 Esc 键。
_ 特殊控制字符 应使用全局命令名而非本地化的命令名来指示跟随的命令。
. 特殊控制字符 应使用命令的标准定义而非可能存在的重定义命令来指示跟随的命令。
CIRCLE 命令名 启动 CIRCLE 命令。
特殊字符 空格的效果类似于在使用命令时按空格键。
特殊控制字符 创建暂停以请求用户输入;在此样例中,它是指暂停以请求输入圆的圆心。
1 输入值 响应输入圆的半径的提示;在此样例中,它为 1 个单位。

取消处于活动状态的命令

当单击用户界面中的按钮时,将在程序的当前上下文中执行指定到此按钮的宏。这意味着,该宏将尝试响应当前提示。如果要确保在执行宏时当前没有命令处于活动状态,则使用 ^C 命令序列作为宏的前缀。虽然单个 ^C 能取消大多数命令,但要从标注命令返回命令提示必须使用 ^C^C,并且根据 -LAYER 命令的当前选项需要使用 ^C^C^C。^C^C 可以取消大多数命令序列,而且是推荐您使用的序列。

验证宏字符

宏中的每个字符(即使是空格)都有重要意义。如果在宏的末尾加了一个空格,将视为您已按了空格键或 Enter 键来完成命令。

在宏中使用标准命令

作为 AutoCAD 或基于 AutoCAD 的产品一部分的命令应使用句点字符 (.) 作为前缀。句点字符使用户可以使用标准命令,即使已使用 UNDEFINE 命令取消其定义。这种预防措施使宏在共享同一自定义 (CUI/CUIx) 文件的其他计算机上使用时仍可被识别。

宏的国际语言支持

首次创建宏时,通常会使用命令名称和选项值并以您熟悉的语言来创建它。每个命令和选项都具有一个本地和全局名称,以允许在 AutoCAD 支持的所有不同语言中使用宏。非英文版支持不需要在您执行太多其他操作,您只需在每个命令或选项前添加下划线字符 (_) 即可。该下划线字符指示 AutoCAD,应先转换命令名称和选项值,然后才能执行它。

使用单一对象选择模式

单一对象选择模式取消了编辑命令中“选择对象”提示的普通重复。选择一个对象并响应其他所有提示后,命令将结束。

请看以下样例中的宏:

^C^C._erase single

该宏将终止当前命令,并启动单一对象选择模式中的 ERASE 命令。在启动宏后,可以选择单个对象,也可以单击图形中的空白区域,然后指定窗口/窗交选择。将删除使用这些方法选择的任何对象。

在宏中重复执行的命令

一旦创建了宏,您可能想要多次重复使用它,然后再继续其他命令。在宏中,可以使用前导星号 (*) 来指明应重复使用的宏中的命令,直到按 Esc 键或开始另一个以 ^C 开头的宏。

以下样例中的宏将重复执行命令:

*^C^C._move Single

*^C^C._copy Single

*^C^C._erase Single

*^C^C._stretch Single Crossing

*^C^C._rotate Single

*^C^C._scale Single

注意:不能使用此功能选择选项,或者将其用于图像平铺菜单中的宏。

终止宏

某些宏需要使用特殊结束符。例如,需要按 Enter 键而不是空格键来终止 TEXT 命令,需要多次按空格键或 Enter 键才能完成某些命令。

以下两条特殊约定解决了这些问题。

· 宏中的分号 (;) 相当于按 Enter 键。

· 如果某一行以控制字符、反斜杠 () 或分号 (;) 结尾,将不在其后添加空格。

请比较下面的宏:

ucs

ucs ;

第一个样例中UCS后有一个空格,将启动 UCS 命令,并且将模拟按空格键(因为行以空格结束)。将显示以下提示:

指定 UCS 的原点或 [面(F)/命名(NA)/对象(OB)/上一个(P)/视图(V)/世界(W)/X/Y/Z/Z 轴(ZA)] <世界>:

第二个样例后面有一个空格和分号,将启动 UCS 命令,然后依次模拟按空格键和按 Enter 键,这个操作将接受默认值(世界)。

在宏中禁用回显和提示

宏中的字符将会在命令提示下显示,就像用户通过键盘键入这些字符一样。这种显示重复称为回显。您可以使用 MENUECHO 系统变量禁用宏回显。如果项目输入的回显和提示处于打开状态,则在宏之前添加 ^P 就可以临时关闭它们。您也可以使用宏中的 ^Q 来隐藏命令行历史记录中的所有提示和输入。

关于宏的相关知识还有很多,要想对宏有比较深入的了解,需要对CAD的编程有一定了解,这里就不再详细介绍了,如果真对宏感兴趣,首先要有学习一些CAD编程的知识,然后再来看相关帮助就简单了。

cyc
  • 本文由 发表于 8月 24, 202111:04:06
  • 转载请务必保留本文链接:http://wg678.cn/42483.html
CAD字体库下载,下载后应该怎么用? CAD字体

CAD字体库下载,下载后应该怎么用?

很多人因为打开图纸的时候缺少字体导致文字无法显示或显示为问号而烦恼,于是会去网上去搜索和下载字体库,网上的CAD字库确实不少,少的有几百种,多的有将近2500种,比如比较流行的是:
CAD字段的背景色怎么去掉? CAD字体

CAD字段的背景色怎么去掉?

将字段 FIELD插入 到CAD 中,不管 是直接插入 ,还是 在文本 或属性 文本 中插入 ,该字段 将带有 白色背景 颜色 ,如下图所示 。 将字段 FIELD插入 到CAD 中,不管 是直接插入...
CAD里的外部参照和图块看不到怎么办? CAD图纸

CAD里的外部参照和图块看不到怎么办?

问题综述 一位网友提了这样一个问题,他想在布局空间插入一个图框,可是无论怎么插入都看不到,但打开外部参照原图或从外部参照原图里复制粘贴图框却都能看到。之前我也没有注意过这个问题,等网友将图纸发过来后才...
cad顶部标题栏显示空白怎么办? CAD技巧

cad顶部标题栏显示空白怎么办?

问题综述 安装AUTOCAD2010-2014这些版本的时候,顶部的标题栏显示空白,无法使用快速访问工具栏的功能,也无法切换工作空间,如下图所示。 光标移动到上面,通过提示或单击,可以发现这些按钮是存...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: