上面那个我在2007下试了,可以用,如果要将线性改为对齐,可用下面的代码,但尺寸位置可能就变了。 (defun c:l-g (/ ss n lst) (setq ss (ssget '((0 . "dimension")))) (if ss (progn (setq n 0) (repeat (sslength ss) (setq lst (entget (ssname ss n))) ;;; (setq ang (angle (cdr (assoc 13 lst)) (cdr (assoc 14 lst)))) (setq lst (list (assoc 0 lst) '(100 . "AcDbEntity") '(100 . "AcDbDimension") (assoc 2 lst) (assoc 10 lst) (assoc 11 lst) '(70 . 33) (assoc 1 lst) (assoc 3 lst) '(100 . "AcDbAlignedDimension") (assoc 13 lst) (assoc 14 lst) (cons 50 0) ;;; '(100 ;;; . ;;; "AcDbRotatedDimension" ;;; ) );list );setq (entdel (ssname ss n)) (entmake lst) (setq n (1+ n)) );repeat );progn );end if (princ"\n转换完成!") (princ) )
|