LISP移动选定对象
大家好,我有一个新的挑战:是否有一个Lisp可以将选定的对象移动到现有的指定层?
我希望能够在屏幕上选择对象,输入一个短命令,然后它们自动转到某个层(我们称之为“第1层”)。
在网上到处找了,我找不到任何类似的东西,我也不知道足够的AutoLISP,我自己也写不出来。。。
提前谢谢!
丹 在程序中有一些不使用lisp的方法,你可以使用COPYTOLAYER。如果您确定要使用lisp,那么您可以在本页底部的“类似线程”部分找到答案。 嗨,Dadgad,
谢谢你的建议。
COPYTOLAYER不起作用,因为我不想复制对象,我想将它们移动到指定的层。
至于下面的线程,我刚刚又看了一眼,什么也找不到。
肯定有Lisp程序的地方。
更改命令或属性。也可以编写脚本或动作录制宏。
你查过李的网站了吗?我打赌他一定有办法做到这一点。 也许是LAYMCH? 这就是那张票,从来没用过那张,打得好!我会在“快捷特性”选项板中执行此操作,该选项板始终处于打开状态。 谢谢大家的意见。LAYMCH确实有效,但我觉得它太慢了。我的道具。调色板总是关闭的,所以我可以最大限度地利用工作空间,而且它需要很长时间才能打开。
好消息是,我在另一个网站上发现了一个Lisp:
http://www.theswamp.org/index.php?topic=33195.0
代码如下:-
; Changes selected objects to Layer PL1
(defun c:setpl1 ()
(command "_.chprop"
(ssget ) "" "LA" "PL1" "")
)
感谢memerson的支持。谢谢大家的帮助。
丹 很高兴你把它整理好了,我讨厌属性调色板,我觉得这简直是一场噩梦。我喜欢QUICK PROPERTIES调色板,它是可自定义的,可以像你想要的那样小,可以随时获取你需要的所有信息,无需等待。 不使用命令的版本(运行速度更快)。如果不存在具有该名称的层,则会创建该层
; Changes selected objects to Layer PL1
(defun c:setpl1 ()
(tolayer
(ssget "_:L") ;;selection
"PL1" ;;Layer
)
(princ)
)
(defun tolayer ( ss lay / i e )
;;; ss - pickset
;;; lay -layer name
(repeat (setq i (sslength ss))
(entmod
(subst
(cons 8 lay)
(assoc 8 (entget (setq e (ssname ss (setq i (1- i))))))
(entget e)
)
)
)
)
为什么不选择你的对象,选择图层下拉菜单,然后选择图层;对象将移动到您选择的层:
页:
[1]
2