;;ÅؽºÆ® À§Ä¡º¯µ¿¾øÀÌ ºÐ¸®Çϱâ...(¿øÇÏ´Â À§Ä¡ ¼±ÅÃ)
(vl-load-com)
(defun c:tdv (/ entname ent entas1 stindex chkhan poslst poslst1 lot1 lot2
                  n nn TextBoxLst mLastText NewCons1 TextBoxLst- NewCons10 Nent kht10 new11)
  (setq entname (entsel "nºÐÇÒÇÒ ¹®ÀÚ¸¦ ¼±ÅÃÇϼ¼¿ä."))
  (if entname (setq entname (car entname)) (exit))
  (setq Ent (entget entname)
        EntAs1 (cdr (assoc 1 Ent))
        stindex 0 chkhan 0
  )
  (setq poslst (apply 'append
                 (mapcar '(lambda (x) (setq stindex (1+ stindex))
                            (if (or (> 128 x)(= 1 chkhan)) (progn (setq chkhan 0)(list stindex))
                              (progn (setq chkhan 1) nil)
                            )
                          )
                         (vl-string->list entas1)
                 )
               )
  )
  (if (= lot11 nil) (setq lot11 1))
  (if (= lot12 nil) (setq lot12 1))
  (setq lot1 (getint (princ (strcat "rºÐÇÒÀ» ÇÏ·Á´Â ù¹ø° À§Ä¡¸¦ ÀÔ·Â Çϼ¼¿ä. <1-" (itoa (strlen entas1)) ">[" (itoa lot11) "] : "))))
  (setq lot2 (getint (princ (strcat "rºÐÇÒÀ» ÇÏ·Á´Â µÎ¹ø° À§Ä¡¸¦ ÀÔ·Â Çϼ¼¿ä. <1-" (itoa (strlen entas1)) ">[" (itoa lot12) "] : "))))
  (if (= lot11 0) (setq lot1 1))
  (if (> lot12 (strlen entas1)) (setq lot2 (strlen entas1)))
  (if (= lot1 nil) (setq lot1 lot11 lot11 lot1) (setq lot11 lot1))
  (if (= lot2 nil) (setq lot2 lot12 lot12 lot2) (setq lot12 lot2))
  (setq poslst1 poslst)
  (if (> lot1 lot2)
    (progn
      (setq lot1 lot12)
      (setq lot2 lot11)))
  (if (and (> (strlen entas1) 2) (= lot1 1) (/= lot2 1)) (setq poslst1 (vl-remove 1 poslst1)))
  (if (> lot1 2)
    (progn
      (setq nn (- lot1 2))
      (setq n 0)
      (setq poslst1 (vl-remove 1 poslst1))
      (repeat nn
        (setq poslst1 (vl-remove (+ 1 n) poslst1))
        (setq n (1+ n)))))
  (if (>= (abs (- lot2 lot1)) 1)
    (progn
      (setq nn (- lot2 lot1))
      (setq n 0)
      (repeat nn
        (setq poslst1 (vl-remove (+ lot1 n) poslst1))
        (setq n (1+ n)))))
  (if (< lot2 (strlen entas1))
    (progn
      (setq nn (- (strlen entas1) lot2))
      (setq n 1)
      (repeat (- nn 1)
        (setq poslst1 (vl-remove (+ lot2 n) poslst1))
        (setq n (1+ n)))))
  (if poslst1
    (progn
  (foreach m (mapcar '(lambda (x y) (cons (+ x (- y)) (substr EntAs1 1 x))) poslst1 (cons 0 poslst1))
    (setq TextBoxLst (textbox (subst (cons 1 (cdr m)) (cons 1 EntAs1) Ent))
          mLastText (substr (cdr m) (+ (strlen (cdr m)) 1 (- (car m))))
          NewCons1 (cons 1 mLastText)
          TextBoxLst- (textbox (subst NewCons1 (cons 1 EntAs1) Ent))
          NewCons10 (cons 10 (polar (cdr (assoc 10 Ent)) (cdr (assoc 50 Ent)) (- (caadr TextBoxLst) (caadr TextBoxLst-))))

          Nent (subst (cons 11 (cdr NewCons10)) (assoc 11 ent) Ent)
          Nent (subst NewCons10 (assoc 10 nent) Nent)
          Nent (subst NewCons1 (cons 1 EntAs1) Nent)
    )
    (entmake Nent)
    (setq kht10 (assoc 10 (entget (entlast))))
    (setq new11 (list 11 (+ (cadr NewCons10) (- (cadr NewCons10) (cadr kht10))) (+ (caddr NewCons10) (- (caddr NewCons10) (caddr kht10))) 0))
    (entmod (subst new11 (assoc 11 (entget (entlast))) (entget (entlast))))
  )
  (entdel entname)))
  (princ)
)