刷新页面 加入收藏夹

经验技巧CAD界面中如何定义新命令?

2019-12-13 wx_139398 浏览 收藏 已收藏 手机访问 [复制转发]

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

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

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

昨天我们介绍了更改为随层(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个单位的圆。下表解释了定义此宏的组成部分。

CAD界面中如何定义新命令?

取消处于活动状态的命令

当单击用户界面中的按钮时,将在程序的当前上下文中执行指定到此按钮的宏。这意味着,该宏将尝试响应当前提示。如果要确保在执行宏时当前没有命令处于活动状态,则使用^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编程的知识,然后再来看相关帮助就简单了。

申明:内容来自机械5会员,著作权归原作者所有,如涉及侵权问题,请与我们联系,我们将及时处理!

分享至:

评论及评价 欢迎选择星级评价并提交评论