wlt179 发表于 2019-11-23 15:33:24

拼凑的,谁帮忙在改改,实在没辙了

获取文档名后,以#号拆分,分别替换图纸中的文本

目前不能直接替换数字与字母,哪位能帮改改




(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)
)


wlt179 发表于 2019-11-23 15:36:11

dwg文档名必须带有#才能正常加载

gaics 发表于 2019-11-25 09:20:15

本帖最后由 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)
)


wlt179 发表于 2019-11-25 18:48:28

gaics 发表于 2019-11-25 09:20
为什么要对sn1进行循环?不知道你的目的,貌似无意义。而且没有对“i”进行递增处理,一直在判断第一个字符 ...

非常感谢,:victory:还是要像你们多学习学习
页: [1]
查看完整版本: 拼凑的,谁帮忙在改改,实在没辙了