我想出来了。
注意:使用编辑动态块(在块编辑器中)。
- (defun c:test ( / ss->lst action ss )
- (vl-load-com)
- (defun ss->lst ( ss flag / id lst )
- (if (eq 'PICKSET (type ss))
- (repeat (setq id (sslength ss))
- (
- (lambda ( name )
- (setq lst
- (cons
- (if flag (vlax-ename->vla-object name)
- name
- )lst
- )
- )
- )(ssname ss (setq id (1- id)))
- )
- )
- )
- )
- (if
- (and (or (eq 1 (getvar 'blockeditor))(prompt "\n**Must be in block editor to use!**"))
- (setq action (car (entsel "\nSelect an Action Entity: ")))
- (setq action (vlax-ename->vla-object action))
- (setq ss (ss->lst (ssget) t))
- )
- (
- (lambda ( group )
- (vlax-invoke-method action 'SetSelectionSet
- (vlax-make-variant
- (vlax-safearray-fill
- (vlax-make-safearray vlax-vbobject
- (cons 0 (1- (length group)))
- ) group
- )
- )
- )
- )
- (append
- (vlax-safearray->list
- (vlax-variant-value
- (vlax-invoke-method action 'SelectionSet)
- )
- ) ss
- )
- )
- ) (princ)
- )
|