飞哥,请进!
如何重新定义一旧选择集???(比如有选择集SS,经过排序后得到选择集SSA,现在我要把SSA赋值给SS,即SS选择集与SSA内容相等!好象不能用SETQ。但对还不是VAL对象的选择集SS又无法释放元素??) 我是用,pt1 pt2作为全局变量。窗选选择集,通过二次窗选来实现的。我试了能用。(setq pt1 (getpoint "\n窗口选择要修剪的墙体:")<BR> pt2 (getcorner p1 "\n选择窗口的另一角:"))<BR> (setq ss (ssget "W" pt1 pt2 '((0 . "line")(8 . "墙体")))
。。。。。。。
。。。。。。。
(setq ssa (ssget "W" pt1 pt2 '((0 . "line")))) 为什么不能setq?????
(defun c:test( / ss ssa i)<BR> (setq ss (ssget))<BR> (setq ssa ss)<BR> (setq i 0)<BR> (repeat (sslength ssa)<BR> (redraw (ssname ssa i) 3)<BR> (setq i (1+ i))<BR> )<BR> (princ)<BR>) 哎,我现在弄出来的程序都是肥得不得了。慢慢地学,慢慢地可以减肥。呵呵。 飞哥,在你的程序后面假如经过一系列的变动(/= ss ssa)还能重新(setq ss ssa)注意是对已有的的选择集你上面的ssa不算是我所说的?
好象对于选择集不可以在单纯的等于来处理哈!<BR> 那你就试试我的吧。我曾这么用过。编了一个,但程序肥得太厉害了,象个大肥婆。二吨半。 选择集的比较使用equal
无论ss原来是什么,(setq ss ssa)之后,ss都变成跟ssa一样 我想问是不是子程序的实参数(是一选择集,但不是他的局部变量而是主程序的局部变量),不能在子程序的结尾处重新赋值??? 把参数重新赋值做什么?
使用返回值就可以了。。。
(setq ss (mod ss))
(defun mod(ss)
(setq ssa ss)
...;改变ssa
ssa;最后一个表达式的值,作为函数Mod的返回值
) 尽量学习一下大佬的经验
页:
[1]