;==================================== ;根据选择对象的标注比例来设置当前尺寸标注比例 (defun c:dsa( / ss1 ss0 oldDscale ) (setvar "cmdecho" 0) (setq ss0 (ssget ":s" (list (cons 0 "dimension")))) (setq ss1 (entget (ssname ss0 0) '("ACAD"))) (setq oldDscale (cdr (assoc 1040 (cdadr (assoc -3 ss1))))) (if (= oldDscale nil) (princ "\n当前尺寸全局比例已改为1.00") (setvar "dimscale" 1) ) (setvar "dimscale" oldDscale) (setvar "cmdecho" 1) ) 不过这个程序有个BUG,就是当选择对象的DIMSCALE为1时,程序会出错,也就是程序中的变量"oldDscale"的值会为空,故我在程序中加了一个IF判断语句。还望高手可以指正。非常感谢! |