liminnet 发表于 2008-7-5 18:18:00

ZZXXQQ 发表于 2008-7-5 18:45:00

五楼已改。

liminnet 发表于 2008-7-5 18:58:00

ZZXXQQ 发表于 2008-7-5 20:55:00

本帖最后由 作者 于 2008-7-6 21:32:52 编辑

再试试:


(defun c:tt ()
(setvar "CMDECHO" 0)
(setq oldos (getvar "OSMODE"))
(setvar "OSMODE" 0)
(setq i 0)
(if (setq ss (ssget '((0 . "TEXT"))))
(repeat (sslength ss)
   (setq en (ssname ss i)
            ent (entget en)
            temp (cadr(textbox(list(assoc 1 ent))))
            pt (cdr(assoc 10 ent))
            ang (cdr(assoc 50 ent))
            textw (cdr(assoc 41 ent))
            tmp_w (* (car temp) textw)
            tmp_h (cadr temp)
            inv (cdr (assoc 71 ent)))
   (cond
    ((= inv 2)
   (setq ptt (polar pt (+ ang pi) tmp_w)
            ent (subst (cons 10 ptt) (assoc 10 ent) ent)
            ent (subst '(71 . 0) (assoc 71 ent) ent))
   (entmod ent)
    )
    ((= inv 4)
   (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))
   (entmod ent)
    )
    ((= inv 6)
   (setq ptt (polar (polar pt (+ ang pi) tmp_w) (- ang (/ pi 2)) tmp_h)
            ent (subst (cons 10 ptt) (assoc 10 ent) ent)
            ent (subst '(71 . 0) (assoc 71 ent) ent))
   (entmod ent)
    )
   )
   (setq i (1+ i))
)
)
(setvar "OSMODE" oldos)
(setvar "CMDECHO" 1)
(princ)
)

liminnet 发表于 2008-7-5 23:34:00

liminnet 发表于 2008-7-5 23:48:00

ZZXXQQ 发表于 2008-7-6 21:35:00

<p>不早给图,浪费时间、空间和精力。14楼已改。</p>

liminnet 发表于 2008-7-6 23:14:00

liminnet 发表于 2008-7-7 09:14:00

liminnet 发表于 2008-7-7 09:21:00

页: 1 [2] 3 4
查看完整版本: 这个程序可以用文字的形心来旋转吗?