szx025 发表于 2014-5-13 16:04:31

帮忙看看程序

(defun C:DimReplace( / dim bl jd len diment dimss dimty )
(princ "\n选择标注: ")
(setq dim (ssget '((0 . "DIMENSION"))))
(setq bl (getreal "\n标注比例: <1>"))
(if (not bl) (setq bl 1))
(setq jd (getint "\n标注精度: <0>"))
(if (not jd) (setq jd 0))
(if dim
    (progn
      (repeat
      (setq len (sslength dim))
      (setq diment (entget (ssname dim (setq len (1- len)))))
      (setq dimss (cdr (assoc 1 diment)))
      (if (or (= dimss "") (= dimss "<>"))
          (progn
            (setq dimty (cdr (assoc 70 diment)))
            (setq dimss (cdr (assoc 42 diment)))
            (cond
            ((or (= dimty 32) (= dimty 160);线性
                  (= dimty 33) (= dimty 161);对齐
                  (= dimty 37) (= dimty 165);弧长
                )
                (setq dimss (rtos (* dimss bl) 2 jd))
            )
            ((or (= dimty 34) (= dimty 162));角度
                (setq dimss (strcat (rtos (WYB-rtod dimss) 2 jd) "%%D"))
            )
            ((or (= dimty 35) (= dimty 163));直径
                (setq dimss (strcat "%%C" (rtos (* dimss bl) 2 jd)))
            )
            ((or (= dimty 36) (= dimty 164));半径
                (setq dimss (strcat "R" (rtos (* dimss bl) 2 jd)))
            )
            )
            (entmod (subst (cons 1 dimss) (assoc 1 diment) diment))
          )
      )
      )
    )
)
(princ "\n完成标注的文本替换")
(princ)
)


(defun WYB-rtod(r)
(/ (* r 180) pi)
)

这个程序有两个问题请叫高手
1,如何在选中尺寸时先显示尺寸的标准比例,然后再修改这个数据。
2,这个程序只能修改一次尺寸,修改或的尺寸就不能用这个程序再修改了
页: [1]
查看完整版本: 帮忙看看程序