Command: tl
Alignment point:
Justification – Left/Center/Middle/Right
Select text…
Select objects: Specify opposite corner: 9 found
9 were filtered out.
Error: bad argument type: lselsetp nil
아래 리습을 썼습니다..
————————————————————————-
(defun dtr (a) (* pi (/ a 180.0)))
;;————————
(defun c:TL (/ a ap kw sty ss1 index elist a10 a11 a11n new a72 a10n b)
(defun errhand (err)
(if (/= err “Function cancelled”)
(princ (strcat “nError: ” err)))
(setvar “cmdecho” 1)
(setq *error* nil)
(princ)
)
(setvar “cmdecho” 0)
(setq *error* errhand)
(setq a (strcat “nAlignment point” (if *ap ‘”
(setq ap (getpoint a))
(setq a “nJustification – Left/Center/Middle/Right
(initget “Left Center Middle Right”)
(setq kw (getkword a))
(cond ((= kw “Left”) (setq sty (cons 72 0)))
((= kw “Center”) (setq sty (cons 72 1)))
((= kw “Middle”) (setq sty (cons 72 4)))
((= kw “Right”) (setq sty (cons 72 2)))
(t (setq sty nil))
)
(prompt “Select text… “)
(setq ss1 (ssget ‘((0 . “TEXT”)) ))
(setq index 0)
(repeat (sslength ss1)
(setq elist (entget (ssname ss1 index)))
(if (or (= (cdr (assoc 50 elist)) 0.0)
(= (cdr (assoc 50 elist)) (dtr 90)) )
(progn
(if (/= sty nil)
(progn
(setq a10 (assoc 10 elist))
(setq a11 (assoc 11 elist))
(setq a11n (cons 11 (cdr a10)))
(setq new (subst a11n a11 elist))
(setq a72 (assoc 72 elist))
(setq elist (subst sty a72 new))
))
(setq a10 (assoc 10 elist))
(setq a11 (assoc 11 elist))
(if (equal ap nil)
(setq ap *ap)
)
(if (= (cdr (assoc 50 elist)) 0.0)
(setq *ap (list (car ap) (cadr (cdr a10))))
(setq *ap (list (car (cdr a10)) (cadr ap)))
)
(setq a10n (cons 10 *ap))
(setq a11n (cons 11 *ap))
(if (equal (assoc 72 elist) (cons 72 0))
(setq new (subst a10n a10 elist))
(setq new (subst a11n a11 elist))
)
(entmod new)
)
(if (and (= (cdr (assoc 0 elist)) “TEXT”) (= b nil)) (progn
(princ “nCannot ALIGN non-horizontal or non-vertical text”)
(setq b T)
))
)
(setq index (1+ index))
);;repeat
(setvar “cmdecho” 1)
(setq *error* nil)
(prin1)
)