로테이션 된 문자 정렬 리습 수정부탁드려요..
컨텐츠 정보
- 204 조회
- 0 추천
- 0 비추천
- 목록
본문
가로방향으로 된 텍스트는 아래 위로 정렬이 되는데 세로방향으로 로테이션 되있는 텍스트는 아래위로 정렬이 되지않고 글씨가 겹쳐셔 정렬이 됩니다. 리습중 어느부분을 고쳐야 하는건지 모르겠습니다
세로방향 텍스트가 로테이션 되 있는 상태로 정렬 할 수 있도록 하고 싶습니다. 도움 부탁드립니다…
(defun c:AT nil (c:AlignText))
(defun c:AlignText ( / *error* _StartUndo _EndUndo a acdoc e h i l p spcf ss )
(setq spcf 1.5) ;; Line Spacing Factor
(defun *error* ( msg )
(if acdoc (_EndUndo acdoc))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "n** Error: " msg " **")))
(princ)
)
(defun _StartUndo ( doc ) (_EndUndo doc)
(vla-StartUndoMark doc)
)
(defun _EndUndo ( doc )
(if (= 8 (logand 8 (getvar 'UNDOCTL)))
(vla-EndUndoMark doc)
)
)
(setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (setq ss (ssget "_:L" '((0 . "TEXT"))))
(progn
(_StartUndo acdoc)
(setq l
(vl-sort
(repeat (setq i (sslength ss))
(setq l (cons (list (LM:GetTextInsertion (setq e (entget (ssname ss (setq i (1- i)))))) e) l))
)
(function (lambda ( a b ) (> (cadar a) (cadar b))))
)
)
(setq p (caar l)
h (* spcf (cdr (assoc 40 (cadar l)))) a (/ (* 3. pi) 2.) i 0
)
(foreach x (cdr l) (LM:PutTextInsertion (polar p a (* (setq i (1+ i)) h)) (cadr x)))
(_EndUndo acdoc)
)
)
(princ)
)
;;————————————————————;;
(defun LM:GetTextInsertion ( elist )
(cdr
(assoc
(if
(and
(= 0 (cdr (assoc 72 elist)))
(= 0 (cdr (assoc 73 elist)))
)
10 11
)
elist
)
)
)
;;————————————————————;;
(defun LM:PutTextInsertion ( point elist )
(
(lambda ( key )
(entupd
(cdr
(assoc -1
(entmod
(subst (cons key point) (assoc key elist) elist)
)
)
)
)
)
(if
(and
(= 0 (cdr (assoc 72 elist)))
(= 0 (cdr (assoc 73 elist)))
)
10 11
)
)
)
(vl-load-com) (princ)