CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

关于命令宏字符串

2024-5-18 19:15| 发布者: admin| 查看: 21| 评论: 0|原作者: admin|来自: AutoCAD

关于命令宏字符串

命令宏字符串用于指示 AutoCAD 要执行哪些命令和系统变量以及在命令提示下允许的任何预期输入。特殊字符、DIESEL 表达式和 AutoLISP 编程代码也可以包含在命令宏字符串中。

可以创建自定义命令宏字符串,以帮助:

  • 减少重复性任务
  • 实施 CAD 标准
  • 简化工作流

使用以下命令定义和编辑命令宏字符串:

  • 自定义用户界面编辑器(AutoCAD 和 AutoCAD LT for Windows)
  • 命令宏编辑器(仅限 AutoCAD for Windows;在基于 AutoCAD 的工具集或 AutoCAD LT 中不受支持)
  • “自定义”对话框(仅限 AutoCAD for Mac OS)

命令宏字符串基础知识

命令宏字符串定义为一系列命令以及具有专用语法的预期选项和值,但与在 AutoCAD 命令提示下输入的内容类似。与程序的用户界面交互时(如单击功能区上的按钮或快捷菜单上的项目),将执行命令宏字符串。命令宏的语法可以简单得仅包含一个命令名(如 CIRCLE),也可以更复杂,包含特殊字符(如 ^C^C_.circle \1)。

下面列出了命令宏字符串中最常用的特殊字符:

  • ^C - 表示按 Esc 键。
  • .(句点)- 指示 AutoCAD 使用命令的标准定义。命令的行为可以使用编程语言(如 AutoLISP 和 ObjectARX)进行更改。
  • _(下划线)- 让 AutoCAD 知道提供的命令或选项是全局/英语名称。这是宏在多种语言中正常工作所必需的。
  • ;(分号)- 表示按 Enter 键。
  • \(反斜杠)- 表示暂停以等待用户输入;允许用户输入值、指定点或选择对象。
  • (空格)- 表示按空格键。
注: AutoLISP 在 AutoCAD LT for Mac OS 中不可用,ObjectARX 在 AutoCAD LT for Windows 或 Mac OS 中不可用。

以下是在 AutoCAD 命令提示下启动 CIRCLE 命令并绘制半径为 5 的圆的外观,以及相同的输入如何显示为命令宏字符串:

命令提示序列 宏字符串语法等效项
Command: CIRCLE
Specify center point for circle or [3P/2P/Ttr (tan tan radius)]:
Specify radius of circle or [Diameter] <2.5000>: 5
CIRCLE;
\
5;

最终的命令宏字符串可能如下所示:



序号 语法 说明
1 ^C^C ^C^C 表示在执行宏之前按 Esc 键两次
2 _CIRCLE; 启动 CIRCLE 命令,与当前 AutoCAD 语言包无关
3 \ 提示输入要绘制圆的中心点
4 5; 指定圆的半径并退出 CIRCLE 命令

前面的宏字符串也可以写为以下形式,而不使用分号,因为宏中的空格键与在 AutoCAD 命令提示下按空格键类似:

^C^C_.circle \5
注: 在宏字符串中使用分号可以更轻松地读取和了解何时应出现 Enter,因为空格可以指示在提供给上一个命令或系统变量的输入中的实际空间。

下面是使用 MOCORO 命令复制并在 AutoCAD 命令提示下旋转这些复制的对象的另一个示例,以及命令序列如何显示为命令宏字符串:

命令提示序列 宏字符串语法等效项
Command: MOCORO
Select objects:
Specify opposite corner:
Select objects:
Base point:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: C
Second point of displacement/Undo/<eXit>:
Second point of displacement/Undo/<eXit>: 
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: R
Second Point or Rotation angle:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>:
MOCORO;
\
\
;
\
C;
\
; 
R;
\
;

最终的命令宏字符串可能如下所示:



序号 语法 说明
1 ^C^C ^C^C 表示在执行宏之前按 Esc 键两次
2 ._MOCORO; 启动 MOCORO 命令,与当前 AutoCAD 语言包无关
3 \\; 提示选择对象;此处的两个反斜杠允许为窗选或框选指定两个点
4 \ 提示输入应用于复制选定对象的基点
5 _C; 使用“复制”选项
6 \; 提示输入位移的第二个点
7 _R; 使用“旋转”选项
8 \ 提示输入旋转角度
9 ; 退出 MOCORO 命令

取消处于活动状态的命令

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

在宏中使用标准命令

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

注: 从 AutoCAD LT 2024 开始,可以取消定义命令。

验证宏字符

宏中的每个字符(即使是空格)都有重要意义。空格被解释为按空格键,这可能导致在提供的输入中出现空格字符,或者如同按 Enter 键一样。结果与在命令提示下使用命令或系统变量时的结果相同。

注: 如果在宏的末尾加了一个空格,将视为您已按了 Enter 来完成命令。

宏的国际语言支持

首次创建宏时,通常会使用命令名称和选项值并以您所熟悉产品的语言来创建它。每个命令和选项都具有一个本地和全局名称,可让您的宏由产品的其他语言使用。非英文版支持不需要在您执行太多其他操作,您只需在每个命令或选项前添加下划线字符 (_) 即可。下划线字符向程序发出信号,表示命令名称或选项值应在执行命令或选项前转换为产品的本地语言。

使用单一对象选择模式

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

请考虑以下样例中的宏:

^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 的原点或 [面(F)/命名(NA)/对象(OB)/上一个(P)/视图(V)/世界(W)/X/Y/Z/Z 轴(ZA)] <世界>:

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

在宏中禁用回显和提示

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

父主题:

  1. 关于命令自定义

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-6-27 15:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部