LISP设置当前层
我想知道是否有人能帮我解决这个问题。例如,我有3层,层“0”、层“1”和层“2”
我想创建一个简单的命令来更改我正在工作的当前层。例如,如果我只键入“2”,则我的当前层会自动设置为层“2”。
由于我总是只在3或4层上工作,这将使它们之间的更改非常容易。。。
我不希望一个命令自动识别层的名称,我会为4个不同的层发出4个命令。
有什么建议吗?
谢谢
(defun _SetCLayer (layerName)
(if (tblsearch "layer" layerName)
(setvar 'clayer layerName)
(prompt
(strcat "\n** Layer \"" layerName "\" not found ** ")
)
)
(princ)
)
(defun c:0 () (_SetCLayer "0"))
(defun c:1 () (_SetCLayer "1"))
(defun c:2 () (_SetCLayer "2"))
(defun c:3 () (_SetCLayer "3"))
但是,如果您确实在使用AutoCAD LT 2012,lisp代码可能无法工作。 嗨,黑匣子!
谢谢你的快速回复。。。
我觉得你的代码正是我需要的,但我对autocad代码完全陌生,所以我想知道你是否可以告诉我4个示例中的1个,我必须如何准确地将其放入我的用户界面中。。。
我尝试了一些方法,但似乎没有一种方法能够识别该命令(我在第0层中进行了尝试) 正如Dave指出的,如果您使用LT,lisp代码将不会在其中运行。你必须求助于使用宏。
layer命令的命令行版本(-layer)有一个名为Set的选项。这就是你可以做到的。
该宏将层1设置为当前。
^C层;设置1.
宏可以指定给按钮。
如果您的个人资料不正确,请更改它?谢谢 谢谢你的评论,
从命令行安装宏后,是否可以运行宏,或者只能在指定按钮时运行宏? 我会将其分配给一个按钮,并将其放置在自定义工具栏上。
您想过只使用“使对象的层成为当前”按钮吗? 如果你确实使用LT,听起来你需要一个可编程的鼠标和/或键盘。 对不起,德梅斯,我很少检查别人在用什么,当他们特别要求帮助LISP,我应该有。
正如DBroada和ReMark所表明的那样,您只能在LT中使用宏/脚本,因此对于这种情况,我将遵循这里的ReMarks建议:
这里有一个工具栏,但你需要自己制作一个名为0lay等的图标
***MENUGROUP=layers
***TOOLBARS
**Layers
ID_ALAN
0 lay^c^c^c(layer s "0")
1 lay^c^c^c(layer s "1")
页:
[1]