在我的电脑上面不好用 这个程序在很久以前就有人做过了,在本论坛就能找到,作者的名字一时拼不出来,请作者见谅 这个程序我也保存了一份,现在贴上 (defun c:scl (/ DXF48 EDATA INDEX INPUTDATA SCALEDATA SS) (while (progn (initget 7) (= 1.0 (setq ScaleData (getreal "\n输入缩放系数:")))) (princ "\n缩放系数为不能为1。") ) (if (setq ss (ssget '((0 . "*LINE")))) (while (progn (princ "\r放大[+]/缩小[-]/退出[回车]") (setq InputData (grread)) (not (equal InputData '(2 13))) ) (setq Index 0) (if (or (equal InputData '(2 61)) (equal InputData '(2 45))) (repeat (sslength ss) (setq Edata (entget (ssname ss Index)) Dxf48 (assoc 48 Edata) Edata (if Dxf48 (subst (cons 48 (* (if (equal InputData '(2 61)) (+ 1 ScaleData) (if (> ScaleData 1) (/ 1.0 ScaleData) (- 1 ScaleData) ) ) (cdr Dxf48) ) ) Dxf48 Edata ) (append Edata (list (cons 48 (if (equal InputData '(2 61)) (+ 1 ScaleData) (if (> ScaleData 1) (/ 1.0 ScaleData) (- 1 ScaleData) ) ) ) ) ) ) Index (1+ Index) ) (if (not (entmod Edata)) (*error* (strcat "不能更新对象数据“" (vl-princ-to-string Edata) "”。")) ) ) ) ) ) (princ) )
|