(DEFUN C:TKQ() (command ".UNDO" "BE") ;; 检查Express Tools函数是否存在 (if (not acet-geom-ss-extents) (progn (alert "未检测到Express Tools!\n请先安装AutoCAD Express Tools。") (exit) ) ) (if (< (setq os (getvar 'osmode)) 16384) (setvar 'osmode (+ os 16384))) (setq xtk(car(entsel"\n选择对齐参照图框"))) (setq ww(ssadd xtk)) (setq BLK_BOUND (ACET-GEOM-SS-EXTENTS ww t)) (setq P0 (car BLK_BOUND)) (setq tk(entget xtk)) (setq EE(assoc '2 tk)) (setq kn(cdr(assoc '2 tk))) ;(setq EE(list 2 kn)) (print"框选要对齐的所有图框") (setq s(ssget (list '(0 . "insert") (cons 2 kn)))) (setq n (sslength s)) (setq k 0 ) (while (< k n) (setq name (ssname s k)) (setq vv(ssadd name)) ;(setq a (entget name)) ;---------------- (setq BLK_BOUND (ACET-GEOM-SS-EXTENTS vv t)) (setq P1 (car BLK_BOUND)) (setq P2 (cadr BLK_BOUND)) ;---------------- ;(if(= k 0)(setq p0 p1)) (setq k (+ k 1)) ;(command"line" p1 p2"") (mov p1 p2) ) (if (> (setq os (getvar 'osmode)) 16383) (setvar 'osmode (- os 16384))) (command ".UNDO" "E") (print"完成!") (princ) ) (defun mov(p1 p2 / ss) (setq ss(ssget "w" p1 p2)) (setq pm(list(car p1)(cadr p0))) (command"move" ss ""p1 pm"") )