CAD插件LSP
大神帮忙怎么实现一个命令打到两个效果,我需要输入SS命令,单开图层并自动设置我所选择对象设置为当前图层?;****************************************************单开图层
(DEFUN C:SS (/ ES EN EL A)
(princ "请选择对象,未被选中的对象所在的层将被关闭")
(setq ES (ssget)
A 0
EN ""
EL nil
FL nil
)
(while (/= EN nil)
(setq EN (ssname ES A)
EL (cons EN EL)
A (1+ A)
)
)
(setq EL (cdr EL)
FL (cdr (assoc '8 (entget (car EL))))
EL (cdr EL)
)
(repeat (- A 2)
(setq EN (cdr (assoc '8 (entget (car EL))))
FL (strcat EN "," FL)
EL (cdr EL)
)
)
(command "LAYER" "off" "*" "y" "on" (eval FL) "")
(princ)
)
;****************************************************设置当前层
(defun c:CL (/ i lyset sa len lyn)
(prompt "请选择对象设置当前图层")
(setq sa (ssget)
len (sslength sa)
i 0
)
(while (< i len)
(setq lyn (cdr (assoc 8 (entget (ssname sa i))))
i (+ i 1)
)
(if (null (member lyn lyset))
(setq lyset (cons lyn lyset))
)
)
(command "layer" (setq lyn (car lyset)
lyset (cdr lyset)
)
(command "layer" "on" lyn "")
)
(command "layer" "s" lyn "")
) dg1989 发表于 2019-7-25 19:52
move all回车0,0回车38100000,2000000能帮我编一个?
一次输入都要按这多多数字,可以弄一个一 ...
(defun C:move2 ()
(command "MOVE" "ALL" "" "0,0" "2000000")
)
编辑为LSP文件即可,输入命令 MOVE2 就帮帮你秒完成.命令可以自己修改 move all回车0,0回车38100000,2000000能帮我编一个?
一次输入都要按这多多数字,可以弄一个一件按以上的程序吗 路过没看懂 没看懂,但是大概意思明白 你把帖子描述的详细一点,我们基本都没有看懂呢 学习一下 支持原创!楼主加油啊! 在前面程序插入后的程序调用就行了 315215 发表于 2019-7-17 09:29
在前面程序插入后的程序调用就行了
可是我就要选择2次对象了,我想选一次达到两个效果
支持原创!楼主加油啊! 不明觉厉
页:
[1]
2