(defun c:tt ()
(setvar "CMDECHO" 0)
(setq oldos (getvar "OSMODE")
txtsz (getvar "TEXTSIZE"))
(setvar "OSMODE" 0)
(setq i 0)
(if (setq ss (ssget '((0 . "TEXT"))))
(repeat (sslength ss)
(setq en (ssname ss i)
ent (entget en))
(setvar "TEXTSIZE" (cdr(assoc 40 ent)))
(setq temp (textbox(list(assoc 1 ent)))
pt (cdr(assoc 10 ent))
ang (cdr(assoc 50 ent))
textw (cdr(assoc 41 ent))
tmp_w (* (- (caadr temp) (caar temp)) textw)
tmp_h (- (cadadr temp) (cadar temp))
pt (polar (polar pt ang (caar temp)) (+ (/ pi 2) ang) (cadar temp))
inv (cdr (assoc 71 ent)))
(cond
((= inv 2)
(setq ptt (polar pt (+ ang (/ pi 2)) tmp_h)
ent (subst (cons 10 ptt) (assoc 10 ent) ent)
ent (subst '(71 . 0) (assoc 71 ent) ent)
ent (subst (cons 50 (- ang pi)) (assoc 50 ent) ent))
(entmod ent)
)
((= inv 4)
(setq ptt (polar pt ang tmp_w)
ent (subst (cons 10 ptt) (assoc 10 ent) ent)
ent (subst '(71 . 0) (assoc 71 ent) ent)
ent (subst (cons 50 (- ang pi)) (assoc 50 ent) ent))
(entmod ent)
)
((= inv 6)
(setq ent (subst '(71 . 0) (assoc 71 ent) ent)
ent (subst (cons 50 (- ang pi)) (assoc 50 ent) ent))
(entmod ent)
)
)
(setq ent (entget en)
pt (cdr(assoc 10 ent))
pt (polar (polar pt ang (caar temp)) (+ (/ pi 2) ang) (cadar temp))
ang (cdr(assoc 50 ent)))
(if (> (* pi 1.5) ang (/ pi 2)) (progn
(setq pc (polar (polar pt ang (/ tmp_w 2)) (+ (/ pi 2) ang) (/ tmp_h 2)))
(command ".rotate" en "" pc "180")
))
(setq i (1+ i))
)
)
(setvar "TEXTSIZE" txtsz)
(setvar "OSMODE" oldos)
(setvar "CMDECHO" 1)
(princ)
)
<p>只有在左对齐的时候 (entmod <font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/subst.htm" target="_black"><font color="#0000ff">subst</font></a>
<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/cons.htm" target="_black"><font color="#0000ff">cons</font></a>
<font color="#008000">10</font> ptt<font color="#ff0000">)</font>
<font color="#ff0000">(</font><a href="http://www.mjtd.com/object/autolisp/assoc.htm" target="_black"><font color="#0000ff">assoc</font></a>
<font color="#008000">10</font> ent<font color="#ff0000">)</font> ent<font color="#ff0000">))才有效</font></p>
页:
[1]
2