求LISP下调整对象前置与后置的函数
求LISP下调整对象前置与后置的函数,谢谢。 (defun c:ff (/ b) (setq b(ssget))(command "draworder" b "" "f" )(prin1))(defun c:bb (/ b) (setq b(ssget))(command "draworder" b "" "b" )(prin1)) 回复 LLXXZZ 的帖子
谢谢,这个我知道,我不想调入命令的方式处理,速度太慢。不过还得谢谢你。 vla-MoveToTop
vla-MoveToBottom
回复 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
感觉调用命令的方式很简单哦! 回复 LLXXZZ 的帖子
能否做到只用一个命令,在选择对象后,按一下就前置,再按一下就后置呢?这样就更完美了。 完美的要等大侠来了 同求,。。。现身吧,大侠,呵呵 回复 LLXXZZ 的帖子
谢谢分享,很是感激~~~~
页:
[1]