;;(yad-chgdraworder 图块空间 (list WIPEOUT对象 ...) nil 1) ;;修改对象次序[space-空间 lst-对象列表 ent-目标对象或nil key-更改方式(1-前置 2-后置 3-对象之上 4-对象之下) ==>返回:nil] (defun yad-chgdraworder(space lst ent key / extdic sretbl) (if (= (type (car lst)) 'ename) (setq lst (mapcar 'vlax-ename->vla-object lst))) (if (and ent (= (type ent) 'ename)) (setq ent (vlax-ename->vla-object ent))) (setq key (yad-dxf '((1 . MoveToTop) (2 . MoveToBottom) (3 . MoveAbove) (4 . MoveBelow)) key)) (setq extdic (vla-getextensiondictionary space)) (if (vl-catch-all-error-p (setq sretbl (vl-catch-all-apply 'vla-item (list extdic "acad_sortents")))) (setq sretbl (vla-addobject extdic "acad_sortents" "acdbsortentstable")) ) (cond ((member key '(MoveToTop MoveToBottom)) (vlax-invoke sretbl key lst) ) (ent (vlax-invoke sretbl key lst ent) ) (T) ) nil ) |