拼凑的,谁帮忙在改改,实在没辙了
获取文档名后,以#号拆分,分别替换图纸中的文本目前不能直接替换数字与字母,哪位能帮改改
(defun c:tt( / e22 e2 sn1 sn2i)
(vl-load-com)
(setq zf (vl-filename-base(getvar"dwgname")))
(setqm (vl-string-position (ascii "#") zf))
(setq zf1 (substr zf 1 m) zf2 (substr zf (+ m 2)))
(setq e22 nil)
(while (or (= e22 nil) (/= (cdr (assoc '0 (entget (car e22)))) "TEXT"))
(setq e22 (entsel "目标1"))
)
(setq e2 (entget (car e22)))
(setq sn1 (cdr (assoc '1e2)))
(setq i 1)
(repeat (strlen sn1)
(cond
((= (substr sn1 i 1) "") (setq sn2 zf1))
)
(entmod (setq e2 (subst (cons 1 sn2) (assoc 1 e2) e2))))
(setq e22 nil)
(while (or (= e22 nil) (/= (cdr (assoc '0 (entget (car e22)))) "TEXT"))
(setq e22 (entsel "目标2"))
)
(setq e2 (entget (car e22)))
(setq sn1 (cdr (assoc '1e2)))
(setq i 1)
(repeat (strlen sn1)
(cond
((= (substr sn1 i 1) "") (setq sn2 zf2))
)
(entmod (setq e2 (subst (cons 1 sn2) (assoc 1 e2) e2))))
(PRINC)
)
dwg文档名必须带有#才能正常加载 本帖最后由 gaics 于 2019-11-25 09:21 编辑
为什么要对sn1进行循环?不知道你的目的,貌似无意义。而且没有对“i”进行递增处理,一直在判断第一个字符。
(defun c:tt (/ zf m e22 e2 zf1 zf2)
(vl-load-com)
(setq zf (vl-filename-base (getvar "dwgname")))
(setq m (vl-string-position (ascii "#") zf))
(setqzf1 (substr zf 1 m)
zf2 (substr zf (+ m 2))
)
(setq e22 (entsel "目标1"))
(setq e2 (entget (car e22)))
(entmod (setq e2 (subst (cons 1 zf1) (assoc 1 e2) e2)))
(setq e22 (entsel "目标2"))
(setq e2 (entget (car e22)))
(entmod (setq e2 (subst (cons 1 zf2) (assoc 1 e2) e2)))
(PRINC)
)
gaics 发表于 2019-11-25 09:20
为什么要对sn1进行循环?不知道你的目的,貌似无意义。而且没有对“i”进行递增处理,一直在判断第一个字符 ...
非常感谢,:victory:还是要像你们多学习学习
页:
[1]