[LISP]此程序如何才能複選物件
请问此程序如何才能复选物件,现在只能单选完就执行了,如何在我复选完之后才执行另<BR>(defun c:gt( / ent lname)<BR> (setvar "cmdecho" 0)<BR> (setq ent (entsel "\n请选择要关闭的图层: "))<BR> (if ent <BR> (progn<BR> (setq ent (entget (car ent)))<BR> (setq lname (cdr (assoc 8 ent)))<BR> )<BR> (setq lname (getstring "\n未选取 , 请输入图层名: "))<BR> ) ;if ent<BR> (if (= (getvar "clayer") lname) <BR> (setvar "clayer" "0")<BR> )<BR> (command "layer" "off" lname "")<BR> (princ)<BR>)回复
参考:test dwg file:
lsp program:
大大可以解释一下这个程序每一句的意思吗?小弟是菜鸟,有些不理解,如果不要\n未选取 , 请输入图层名: 这个功能 ,应当怎么做呢?
回复
你不是已经做了吗?我只是在你的代码基础上改了一些.我觉得不用每一句都解释,你用过几次,这些代码的意思就不言自明了.
先从功能看它能实现什么,不必刻意记每一句什么意思. 再请问大大,这个程序遇到是当前层时就起不了作用,如何才能实现遇见是当前层时一样可以关闭,而图层自动切换到0层或其它层呢?
回复
上面的程序是你写的吗?(if (= (getvar "clayer") lname) <BR> (setvar "clayer" "0")<BR> )<BR> (command "layer" "off" lname "")
这些代码不就是你所问的问题吗? 上面的程序并不是小弟所写,是网上看到的,只是想依小弟的需要做修改,只能到此拜託大大们帮帮忙,虽然大大回覆了,但问题仍在,依旧不能关闭当前层的物件耶! 再请问大大,这个程序如何改成保留图层,而不是关闭图层 没人理我?!鸣~~~~
回复
什么叫保留图层,AutoCAD中可没有这样的术语.你还是讲清楚你的要求,并且自己多多动手写一写.
页:
[1]
2