看了这个之后应该没啥问题了吧
 - ;;;;;;选择集的操作 by 菜卷鱼
- ;;ssp 判断是否为选择集
- ;;enamep 判断是否为图元
- ;;sslist 选择集变成图元表
- ;;sspack 图元表打包成选择集
- ;;ss+ss 选择集加上选择集
- ;;ss-ss 选择集减去选择集
- ;;ss-en 选择集减去图元
- (defun ssp (ss)
- (= (type ss) 'PICKSET)
- )
- (defun enamep (obj)
- (= (type obj) 'ENAME)
- )
- (defun sslist (ss / i lst)
- (setq i -1)
- (if (ssp ss)
- (repeat (sslength ss)
- (setq lst (cons (ssname ss (setq i (1+ i))) lst))
- )
- )
- (reverse lst)
- )
- (defun sspack (lst / pack)
- (setq pack (ssadd))
- (foreach x lst
- (if (enamep x)
- (setq pack (ssadd x pack)))
- )
- pack
- )
- (defun ss-ss (ss1 ss2 / sl1 sl2)
- (setq sl1 (sslist ss1))
- (setq sl2 (sslist ss2))
- (foreach x sl2
- (setq sl1 (vl-remove x sl1))
- )
- (if (null sl1)(ssadd)(sspack sl1))
- )
- (defun ss+ss (ss1 ss2)
- (sspack (append (sslist ss1) (sslist ss2)))
- )
- (defun ss-en (ss en)
- (sspack (vl-remove en (sslist ss)))
- )
|