lostbalance 发表于 2013-11-16 13:07:55

提取标注尺寸进行替换

本帖最后由 lostbalance 于 2013-11-16 13:52 编辑

编了一个提取标注的尺寸,并替换文本的程序,适用于线性、对齐、半径、直径、角度和弧长标注。
注:弧长标注老版本的cad,比如04版之类的,没这个功能。(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)
)

lostbalance 发表于 2017-8-21 08:59:41

梦里水香 发表于 2017-8-18 16:56
标注前面有文本的话替换失败,有没有解决办法呢?

用(wcmatch dimss "*<>*)定位<>,暂存其他的文字,然后计算并替换<>为数值。
有兴趣的话,还可以试着扩充一下功能,对于原来就是文字+数值的,分离出文字,然后重新计算并替换数值。

梦里水香 发表于 2017-8-18 16:56:43

标注前面有文本的话替换失败,有没有解决办法呢?

161650 发表于 2017-9-17 22:26:10

很好用,不过坐标能不能也加进去?

zhl0123321 发表于 2013-11-17 10:55:39

东西太好了

diy2005 发表于 2014-5-11 12:38:05

楼主英明啊

lengxiaxi 发表于 2014-11-8 17:19:30

看不了东西啊

scnjlwb 发表于 2015-1-15 23:50:23

支持,谢谢分享!

HHJJ9898 发表于 2015-1-16 07:45:29

太棒啦!!!!

xiang19751218 发表于 2015-4-10 22:54:57

支持源码。

hbgsw 发表于 2015-5-13 17:59:51

这个源码不错,谢谢分享。

水仙的错 发表于 2016-2-18 11:11:21

看看如何,学习下
页: [1] 2
查看完整版本: 提取标注尺寸进行替换