hdlyt11 发表于 2011-6-22 16:03:47

谁能修改批量文本调整高度的程序,使之可以独立运行

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

ll_j 发表于 2013-3-24 20:35:47

闲着也是闲着,写一个:

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


springwillow 发表于 2011-10-4 08:30:27

应该 把“ (setq ss (ssget '((0 . "MTEXT")))”换成“ (setq ss (ssget '((0 . "*TEXT")))”

springwillow 发表于 2011-10-4 08:31:06

这样更好一些吧

品茗新秀 发表于 2013-3-23 02:05:28

这里 xyp-sc 900是什么意思呀

1993063 发表于 2013-3-24 07:44:49

品茗新秀 发表于 2013-3-22 08:05 static/image/common/back.gif
这里 xyp-sc 900是什么意思呀

属于学院派的函数

品茗新秀 发表于 2013-3-24 14:35:36

1993063 发表于 2013-3-24 07:44 static/image/common/back.gif
属于学院派的函数

能不能写一个看看

vlisp2012 发表于 2013-3-26 19:43:34

ll_j大侠,很感谢啊!

hehaidizhi 发表于 2013-11-1 20:42:06

非常感谢ll_j大侠,这个功能找了很久了,终于找到了,两个选项可选,设定固定高度或者按比例缩放,想法很周到

ketxu 发表于 2019-12-24 10:04:41

Maybe you can try TSCALE command of Express Tool ^^
页: [1]
查看完整版本: 谁能修改批量文本调整高度的程序,使之可以独立运行