 - (defun c:xx ()
- (setq zx-ent (ssget))
- (setq zx-ls (ssadd) ;设置空选集
- zx-ls2 (ssadd) ;setq可以连续写
- zx-n1 0
- )
- (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的过滤表。 |