Author Topic: Selection Set Join/Union  (Read 5866 times)

0 Members and 1 Guest are viewing this topic.

taner

  • Guest
Re: Selection Set Join/Union
« Reply #15 on: October 03, 2008, 08:19:51 PM »
Code: [Select]
(defun th-all-ssset-union (sslst / lst ss)
  (setq ss (ssadd))
  (foreach each sslst
    (setq lst (append
(hao-ss2lst each)
lst
      )
    )
  )
  (foreach each lst
    (ssadd each ss)
  )
  ss
)
(defun hao-ss2lst (ss / n l)
  (if (and
ss
(< 0 (sslength ss))
      )
    (repeat (setq n (sslength ss))
      (setq n (1- n)
    l (cons (ssname ss n) l)
      )
    )
  )
)
(defun th-lst2ss (l / ss)
  (setq ss (ssadd))
  (foreach e l
    (if (= (type e) 'ename)
      (ssadd e ss)
    )
  )
  (if (> (sslength ss) 0)
    (eval ss)
    nil
  )
)
(defun hao-all-ssset-union (sslst)
  (th-lst2ss (apply
       'append
       (mapcar
(function (lambda (x)
     (hao-ss2lst x)
   )
)
sslst
       )
     )
  )
)

« Last Edit: October 03, 2008, 08:34:06 PM by taner »

BrunoToniutti

  • Guest
Re: Selection Set Join/Union
« Reply #16 on: October 08, 2008, 09:26:54 AM »
mine
Code: [Select]
(defun BT0:ssUnion (sslst / s x n)
  (setq sslst (vl-remove-if-not '(lambda (x) (= (type x) 'PICKSET)) sslst))
  (cond
    ((= (length sslst) 0) nil)
    ((= (length sslst) 1) (eval (car sslst)))
    (T
     (setq s (ssadd))
     (foreach x sslst
       (repeat (setq n (sslength x))
         (ssadd (ssname x (setq n (1- n))) s)
       )
     )
     (eval s)
    )
  )
)

Bruno Toniutti