本帖最后由 newer 于 2017-5-7 18:12 编辑
 - (defun XD::PICKSET:SS->VlaSS (SS SSnm / i L SScoll SfArrayObjs vSS)
- (cond
- ((not (eq 'PICKSET (type SS)))
- nil
- )
- ((not (and
- (eq 'STR (type SSnm))
- (snvalid SSnm)
- )
- )
- nil
- )
- (T
- (repeat (setq i (sslength SS))
- (setq L (cons (vlax-ename->vla-object (ssname SS (setq i
- (1- i)
- )
- )
- ) L
- )
- )
- )
- (setq SScoll (vla-get-SelectionSets (vla-get-ActiveDocument
- (vlax-get-acad-object)
- )
- )
- )
- (if (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-Item
- (list SScoll SSnm)
- )
- )
- )
- (vla-Delete (vla-Item SScoll SSnm))
- )
- (setq vSS (vla-Add SScoll SSnm))
- (setq SfArrayObjs (vlax-make-safearray vlax-vbObject (cons 0
- (1-
- (length L)
- )
- )
- )
- )
- (setq i -1)
- (foreach o L
- (vlax-safearray-put-element SfArrayObjs (setq i (1+ i))
- o
- )
- )
- (vla-AddItems vSS SfArrayObjs)
- vSS
- )
- )
- )
命令: (XD::PICKSET:SS->VLASS (ssget "p") "ss1")
#<VLA-OBJECT IAcadSelectionSet 1b81ba74>
|