ÁÖ¸»³óºÎ´ÔíÂ

;;======================================
;  ¹®ÀÚ Á¤·ÄÇϱâ(»óÇÏÁ¿ì)
;  ->´ÙÁß¼±ÅÃµÈ ¹®ÀÚ¸¦ ±âÁØÁ¡À» Á¤ÇÏ¿© Á¿ì·Î Á¤·ÄÇÏ´Â ¸í·É¾î
;  ->¹®ÀÚÀÇ ½ÃÀÛÁ¡À̳ª ³¡Á¡À» ¸ÂÃß¾î Á¤·ÄÇÒ ¶§ »ç¿ë
;;------ Text Arrange -------------------------------------------
(defun c:ta(/ os ss n k pt pt1 pt1x pt2 ptx pty pyxy kw k en ed tx a)
;->*error* start
 (defun *error* (msg)(princ "error: ")(princ msg)
 (setvar "osmode" os)(setvar "blipmode" bl)
 (princ))
;-<*error* end
   (setq os (getvar "osmode"))
   (prompt " ¹®ÀÚ Á¤·ÄÇϱâ...")
   (setq ss (ssget '((0 . "text")))) (terpri)
   (setq n (sslength ss))
   (setq ptx (car (getpoint "nÁ¿ìÁ¤·ÄÁ¡ ¼±ÅÃ(»óÇÏ)->")))(terpri)
   (setvar "osmode" 0)
   (if (= ptx nil)
      (progn
         (setq ss (@ta_lst ss))
         (setq pt (dxf 10 (entget (ssname ss 0))))
         (setq pty (cadr pt))
         (setq k 1)
         (repeat (- n 1)
            (setq en (ssname ss k))
            (setq ed (entget en))
            (setq pt1 (dxf 10 ed))
            (setq pt1x (car pt1))
            (setq pt2 (list pt1x pty))
            (vl-cmdf "move" en "" pt1 pt2)
            (setq k (+ k 1))  )
      )
      (progn
         (setq a "ÀÚ¸®¸ÂÃ߱⠼±ÅÃ[¿ÞÂÊ(L)/Áß½É(C)/Áß°£(M)/¿À¸¥ÂÊ(R)] <¿ÞÂÊ>: ")
         (initget "Left Center Middle Right")
         (setq kw (getkword a))
         (if (= kw nil) (setq kw "Left"))
         (if (= kw "Left") (setq sn 10) (setq sn 11))
         (command "justifytext" ss "" kw) (terpri)
         (setq k 0)
         (while (<= 1 n)
            (setq en (ssname ss k))
            (setq ptxy (cdr (assoc 10 (entget en)))  )
            (setq pty (cadr ptxy))
            (setq pt2 (list ptx pty))
            (entmod (subst (cons sn pt2) (assoc sn (entget en))(entget en)))
            (setq n (- n 1))
            (setq k (+ k 1))  )
      )
   );if end
   (setvar "osmode" os)
(princ))
;  ->xÁÂÇ¥°¡ ÀÛÀº¼ø¼­·Î ¼±Åü¼Æ®À» ÀçÁ¤·Ä
(defun @ta_lst (ss / ssn n ss-x1 en en1y ss-x1 ss-x2 ss-x3 e1 e2)
   (setq ssn (sslength ss))
   (setq n 0)
   (setq ss-x1 '())
   (repeat ssn
       (setq en (ssname ss n))
       (setq en1x (list en (car (cdr (assoc 10 (entget en)) ) ) ))
       (setq ss-x1 (cons en1x ss-x1))
       (setq n (+ n 1))
   )
   (setq ss-x2 (vl-sort ss-x1 '(lambda (e1 e2) (< (cadr e1) (cadr e2))))  )
;;;»õ·Î¿î ¼±Åü¼Æ® ¸¸µé±â
   (setq n 0 ss-x3 (ssadd))
   (repeat ssn
      (setq ss-x3 (ssadd (car (nth n ss-x2)) ss-x3))
      (setq n (+ n 1))
   )
ss-x3)