谁能修改批量文本调整高度的程序,使之可以独立运行
;; pgzd(批改字高) 批量文本调整高度(defun c:pgzd (/ ss i s1 th rt)
(CMDLASC0)
(setq ss (ssget '((0 . "MTEXT")))
i-1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq th (xyp-get-dxf 40 s1)
rt (cond ((and (>= th 0) (<= th 350)) (* xyp-sc 300))
((and (> th 350) (<= th 550)) (* xyp-sc 500))
((and (> th 550) (<= th 750)) (* xyp-sc 700))
((and (> th 750) (<= th 950)) (* xyp-sc 900))
)
)
(xyp-SubUpd s1 40 rt)
)
(CMDLA1)
)
闲着也是闲着,写一个:
(defun c:tt(/ ss len i hh sc en ent e40)
(princ "\n选择需要改变高度的文本:")
(setq ss(ssget '((0 . "*text"))))
(if ss
(progn
(setq len (sslength ss) i -1)
(initget 1 "S")
(setq hh (getdist "\n输入文本新高度或[比例缩放(S)]:"))
(cond
((= hh "S")
(initget 5)
(setq sc (getreal "\n文字放缩倍数:"))
(repeat len
(setq i (1+ i)
en(ssname ss i)
ent(entget en)
e40(cdr (assoc 40 ent))
ent(subst (cons 40 (* sc e40)) (assoc 40 ent) ent)
)
(entmod ent)
)
)
(t
(repeat len
(setq i (1+ i)
en(ssname ss i)
ent(entget en)
ent(subst (cons 40 hh) (assoc 40 ent) ent)
)
(entmod ent)
)
)
)
(princ (strcat "\n共修改" (itoa len) "个文本。"))
)
(princ "\n未选择文本。")
)
(princ)
)
应该 把“ (setq ss (ssget '((0 . "MTEXT")))”换成“ (setq ss (ssget '((0 . "*TEXT")))” 这样更好一些吧 这里 xyp-sc 900是什么意思呀 品茗新秀 发表于 2013-3-22 08:05 static/image/common/back.gif
这里 xyp-sc 900是什么意思呀
属于学院派的函数 1993063 发表于 2013-3-24 07:44 static/image/common/back.gif
属于学院派的函数
能不能写一个看看 ll_j大侠,很感谢啊! 非常感谢ll_j大侠,这个功能找了很久了,终于找到了,两个选项可选,设定固定高度或者按比例缩放,想法很周到 Maybe you can try TSCALE command of Express Tool ^^
页:
[1]