(defun c:TJ(/ ss n MergeText ent Txt ent2)
(setvar "cmdecho" 0)
(prompt "합칠 텍스트 선택...")
(setq ss (ssget '((0 . "text"))))
(if (/= ss nil)
(progn
(setq ss (subTextSort ss))
(mapcar '(lambda (x)
(setq n 0 MergeText "")
(repeat (length x)
(setq ent (entget (nth n x)))
(setq Txt (cdr (assoc 1 ent)))
(if (> n 0)
(progn
(setq MergeText (strcat MergeText "x" Txt))
(entdel (cdr (assoc -1 ent)))
)
(setq MergeText Txt)
)
(setq n (1+ n))
)
(setq ent2 (entget (nth 0 x)))
(entmod (subst (cons 1 MergeText) (cons 1 (cdr (assoc 1 ent2))) ent2))
)
ss
)
)
)
(princ)
)
;;;달수님 코드를 조금 가감 하였습니다.
(defun subTextSort (ss / tH sL nL tp Y tL L)
(defun sAs (num x)(cdr (assoc num x)))
(defun sE (x) (vl-remove-if 'listp (mapcar 'cadr (ssnamex x))))
(defun sI (x / a72 a73)
(setq a72 (sAs 72 x) a73 (sAs 73 x))
(if (not (and (= a72 0)(= a73 0)))(sAs 11 x)(sAs 10 x))
)
(defun sSo (x)(vl-sort x '(lambda (x1 x2)(< (caar x1) (caar x2)))))
(defun sYS (x)(vl-sort x '(lambda (y1 y2)(> (cadaar y1) (cadaar y2)))))
(defun sRan (x)(if (< (- (cadr x) tH) Y (+ (cadr x) tH)) T nil))
(defun sLs (x)(if (sRan (car x))(setq sL (cons x sL))(setq tp (cons x tp))))
(defun sLf (x)
(setq Y (cadar x))(mapcar 'sLs nL)
(setq sL (sSo sL) tL (cons sL tL) nL tp sL '() tp '())
)
(defun sEn (x)(cdr (assoc -1 (entget (cadr x)))))
(setq L (mapcar '(lambda (x) (list (sI (entget x)) x))(sE ss)))
(setq L (sSo L) tH (sAs 40 (entget (cadar L))) nL L)
(mapcar '(lambda (x)(if (member x nL)(sLf x))) L)
(mapcar '(lambda (x) (mapcar 'sEn x)) (sYS tL))
)
첫댓글 우와...수고 하셨습니다.. 아폴로님...
많이 배우고 갑니다^^ 즐거운 설연휴 보내세요
많은 도움 되었습니다....apollo님 감사합니다...^^
수고하셨습니당^^*