回复 scry_wxj 的帖子
- ;;;移到最上显示 By Gu_xl 示例: (MovetoTop (ssget))
- (defun MovetoTop (ss / ObjLst Sortents dict i)
- (cond ((= 'pickset (type ss))
- (repeat (setq i (sslength ss))
- (setq ObjLst (cons (vlax-ename->vla-object
- (ssname ss (setq i (1- i)))
- ) ;_ vlax-ename->vla-object
- ObjLst
- ) ;_ cons
- ) ;_ setq
- ) ;_ repeat
- )
- ((= 'ename (type ss))
- (setq ObjLst (list (vlax-ename->vla-object ss)))
- )
- ((= 'vla-object (type ss)) (setq ObjLst (list ss)))
- ) ;_ cond
- (if
- (cond
- ((not
- (VL-CATCH-ALL-ERROR-P
- (setq Sortents
- (VL-CATCH-ALL-APPLY
- 'vla-item
- (list
- (setq dict
- (vla-GetExtensionDictionary
- (vla-ObjectIDtoObject
- (vla-get-ActiveDocument (vlax-get-acad-object))
- (vla-get-OwnerID (car ObjLst))
- ) ;_ vla-ObjectIDtoObject
- ) ;_ vla-GetExtensionDictionary
- ) ;_ setq
- "ACAD_SORTENTS"
- ) ;_ list
- ) ;_ GXL-CATCHAPPLY
- ) ;_ setq
- ) ;_ VL-CATCH-ALL-ERROR-P
- ) ;_ not
- )
- ((not
- (VL-CATCH-ALL-ERROR-P
- (setq Sortents
- (VL-CATCH-ALL-APPLY
- 'vla-AddObject
- (list dict "ACAD_SORTENTS" "AcDbSortentsTable")
- ) ;_ GXL-CATCHAPPLY
- ) ;_ setq
- ) ;_ VL-CATCH-ALL-ERROR-P
- ) ;_ not
- )
- ) ;_ cond
- (not (vla-MovetoTop
- Sortents
- (vlax-make-variant
- (vlax-safearray-fill
- (vlax-make-safearray
- vlax-vbobject
- (cons 0 (1- (length ObjLst)))
- ) ;_ vlax-make-safearray
- ObjLst
- ) ;_ vlax-safearray-fill
- ) ;_ vlax-make-variant
- ) ;_ vla-MovetoTop
- ) ;_ not
- ) ;_ if
- ) ;_ defun
|