;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;幕匠LISP实验室;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;程序功能：文字串合并  [备注：文字串合并]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun update (mode txt el1 / ent el1)
  (setq ent (subst (cons mode txt) (assoc mode el1) el1))
  (entmod ent)
)

(DEFUN C:MJ168 (/ ent1 el1 e1 txt1 ent2 el2 e2 txt2 txt tst ent)
(setvar "CMDECHO" 0)
(setq tst T)
(setq ent1 (car (entsel "\nPick first text: ")))
(if (/= ent1 nil)
  (progn
    (setq el1 (entget ent1))
    (setq e1 (cdr (assoc -1 el1)))
    (if (= "TEXT" (cdr (assoc 0 el1)))
      (progn
        (while tst
          (setq txt1 (cdr (assoc 1 (entget e1))))
          (setq ent2 (car (entsel "\nPick next Text: ")))
          (if (/= ent2 nil)
            (progn
              (setq el2 (entget ent2))
              (setq e2 (cdr (assoc -1 el2)))
              (if (= "TEXT" (cdr (assoc 0 el2)))
                (progn
                  (setq txt2 (cdr (assoc 1 el2))) 
                    (command "erase" e2 "")
                    (setq txt (strcat txt1 txt2))
                    (update 1 txt el1)
                )
                (princ "\nNext object is not a TEXT !")  
              )
            )
            (setq tst nil)
          )
        )
      )
      (princ "\nFirst object is not a TEXT !")  
    )
  )
)
(redraw)
(princ)
)
