liminnet 发表于 2008-7-9 12:46:00

ZZXXQQ 发表于 2008-7-9 19:55:00

<p>看下变量MIRRTEXT</p>

liminnet 发表于 2008-7-10 09:19:00

liminnet 发表于 2008-7-12 10:31:00

liminnet 发表于 2008-7-12 10:43:00

liminnet 发表于 2008-7-12 21:13:00

ZZXXQQ 发表于 2008-7-13 20:59:00

先试试:


(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)
)

liminnet 发表于 2008-7-15 08:49:00

sailorcwx 发表于 2008-7-15 14:28:00

<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>

liminnet 发表于 2008-7-15 19:29:00

页: [1] 2
查看完整版本: ZZXXQQ大哥,你帮我写的程序怎么有时可以,有时又不行呀?