yixinexin 发表于 2014-9-19 12:56:52

批量选择文字,改文字,代码用不了

批量选择文字,改文字,代码用不了。本人刚学LISP,是逻辑错误还是函数用错了啊,求帮忙看下。
(DEFUN C:dff ()
(DEFUN TEXTJOIN (E1 E2 / T1 T2)
    (SETQ T1 (ENTGET E1)
          T2 (ENTGET E2)
    )
    (ENTMOD
      (SUBST (CONS 1 (STRCAT (CDR (ASSOC 1 T1)) (CDR (ASSOC 1 T2))))
             (ASSOC 1 T1)
             T1
      )
    )

    (ENTDEL E2)
)
(SETQ        E1 (SSGET "X" '((0 . "*TEXT") (1 . "宗地代码*")))
        E2 (SSGET "X" '((0 . "*TEXT") (1 . "513*")))
)
(TEXTJOIN E1 E2)
)




http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 yixinexin的微博

lsjj 发表于 2014-9-19 13:14:24

你的E1丶E2各只有一個嗎,如果是也要用到ssname

香田里浪人 发表于 2014-9-19 18:47:20

怎么改?将“ T1”改为“ T2”?发个图说明一下。

ZZXXQQ 发表于 2014-9-20 08:22:51

(defun c:tt ()
(defun TEXTJOIN (E1 E2 / T1 T2)
(setq T1 (entget E1)
         T2 (entget E2))
(entmod
   (subst (cons 1 (strcat (cdr (assoc 1 T1)) (cdr (assoc 1 T2))))
         (assoc 1 T1)
         T1
   )
)
(entdel E2)
)
(while (and(setq E1 (ssget ":E:S" '((0 . "*TEXT") (1 . "宗地代码*"))))
            (setq E2 (ssget ":E:S" '((0 . "*TEXT") (1 . "513*")))))
(TEXTJOIN (ssname E1 0) (ssname E2 0))
)
(princ)
)
页: [1]
查看完整版本: 批量选择文字,改文字,代码用不了