请教高手,该段程序哪里出错了,请教
(defun c:xx()(setq zx-ent (ssget ))
(setq zx-ls (ssadd)) ;设置空选集
(setq zx-n1 0)
(repeat (sslength zx-ent)
(if (= (cdr (assoc 0 (entget (ssname zx-ent zx-n1)))) "LINE")
(PROGN
(setq zx-ls(ssadd (ssname zx-ent zx-n1) zx-ls))
(setq zx-ent (ssdel (ssname zx-ent zx-n1) zx-ent))
)
)
(setq zx-n1 (1+ zx-n1))
)
(princ zx-ent)
(princ zx-ls)
) 反复试验,出错的应该在(setq zx-ent (ssdel (ssname zx-ent zx-n1) zx-ent)),这句,请问是什么问题 (defun c:xx ()
(setq zx-ent (ssget))
(setq zx-ls(ssadd) ;设置空选集
zx-ls2 (ssadd) ;setq可以连续写
zx-n10
)
(repeat (sslength zx-ent)
(if (= (cdr (assoc 0 (entget (setq en (ssname zx-ent zx-n1)))))
"LINE"
)
(ssadd en zx-ls)
(ssadd en zx-ls2)
)
(setq zx-n1 (1+ zx-n1))
)
(princ zx-ent)
(princ zx-ls)
(princ)
)
几个问题:
1.对选择集的ssname操作,选择集在操作过程中应该保持不变,否则i值会和总长度不匹配。
2.选择集的变量和普通的变量不同,在使用ssadd和ssdel时会直接“修改”选择集本身,不需要使用setq来“回收”返回值。
3.如果仅仅要选择某种类型的选择集,可尝试ssget的过滤表。 ll_j 发表于 2014-1-8 07:48 static/image/common/back.gif
几个问题:
1.对选择集的ssname操作,选择集在操作过程中应该保持不变,否则i值会和总长度不匹配。
2.选 ...
ll_j 就是热心 而且详尽 非常感谢楼主,昨晚苦思冥想了一晚上,衷心感谢!
页:
[1]