明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3656|回复: 11

[求] [助] 文字原位缩放

  [复制链接]
发表于 2011-11-26 00:05:46 | 显示全部楼层 |阅读模式
如题,在论坛中找了许久,但一直找不到合适的.....哪位有时间帮忙一下,谢谢....

点评

直接用SCALE命令不就结了?  发表于 2011-11-26 01:32
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-11-5 22:42:48 | 显示全部楼层
cuyongping 发表于 2011-12-3 13:53
我是这样做的(defun C:tt();中心点缩放文字
(setq scl (getreal "\n缩放比例:"))
(setq ss (ssget '(( ...

能以左方缩放文字吗
发表于 2011-11-26 04:34:33 | 显示全部楼层
本帖最后由 cabinsummer 于 2011-11-26 09:34 编辑

就是一个改字高的程序,论坛里多如牛毛。以下部分只改一般文本,多行文本自己动手吧。

  1. (setq scl (getreal "\n缩放比例:"))
  2. (setq ss (ssget '((0 . "TEXT"))))
  3. (setq n 0)
  4. (repeat (sslength ss)
  5.   (setq ename (ssname ss n))
  6.   (setq edata (entget ename))
  7.   (setq height (assoc 40 edata))
  8.   (setq edata (subst (cons 40 (* scl (cdr height))) height edata))
  9.   (entmod edata)
  10.   (entupd ename)
  11.   (setq n (1+ n))
  12. )

发表于 2011-11-26 09:15:26 | 显示全部楼层
cabinsummer 发表于 2011-11-26 04:34
就是一个改字高的程序,论坛里多如牛毛。以下部分只改一般文本,多行文本自己动手吧。

试了下还是不行,让你见笑了...
发表于 2011-11-26 09:34:39 | 显示全部楼层
无痕月色 发表于 2011-11-26 09:15
试了下还是不行,让你见笑了...

ssname函数写反了,你再试一下
发表于 2011-11-26 10:35:27 | 显示全部楼层
原位缩放,是否指在文字中心缩放?
发表于 2011-11-26 10:52:23 | 显示全部楼层
本帖最后由 byghbcx 于 2011-11-26 10:53 编辑

  1. (defun tt();中心点缩放文字
  2. (setq scl (getreal "\n缩放比例:"))
  3. (setq ss (ssget '((0 . "TEXT"))))
  4. (setq n 0)
  5. (repeat (sslength ss)
  6.   (setq ename (ssname ss n))
  7.   (setq edata (entget ename))
  8.   (setq height (assoc 40 edata))
  9.   (setq pt (cdr (assoc 10 edata)))
  10.   (setq corn (textbox edata))
  11.   (setq mid (midpt (car corn) (cadr corn)))
  12.   (setq pt_n (mapcar '+ pt mid))
  13.   (setq edata (subst (cons 40 (* scl (cdr height))) height edata))
  14.   (setq edata (subst (cons 72 4) (assoc 72 edata) edata))
  15.   (setq edata (subst (cons 11 pt_n) (assoc 11 edata) edata))
  16.   (entmod edata)
  17.   (entupd ename)
  18.   (setq n (1+ n))
  19. )
  20.   )
发表于 2011-12-2 17:03:35 | 显示全部楼层
byghbcx 发表于 2011-11-26 10:52

6楼的程序好像有点问题!
发表于 2011-12-3 11:50:36 | 显示全部楼层
midpt是求中点函数,(defun midpt (pta ptb)
   (mapcar '(lambda (x y) (/ (+ x y) 2.0)) pta ptb)
  )
另针对有角度的文字处理,自己再修改一下即可。
发表于 2011-12-3 13:53:24 | 显示全部楼层
byghbcx 发表于 2011-12-3 11:50
midpt是求中点函数,(defun midpt (pta ptb)
   (mapcar '(lambda (x y) (/ (+ x y) 2.0)) pta ptb)
  )
...

我是这样做的(defun C:tt();中心点缩放文字
(setq scl (getreal "\n缩放比例:"))
(setq ss (ssget '((0 . "TEXT"))))
(setq n 0)
(repeat (sslength ss)
  (setq ename (ssname ss n))
  (setq edata (entget ename))
  (setq height (assoc 40 edata))
  (setq pt (cdr (assoc 10 edata)))
  (setq corn (textbox edata))
  (setq p1 (car corn))
  (setq p3 (cadr corn))
  (setq p2 (list (car p3)(cadr p1)))
  (setq p4 (list (car p1)(cadr p3)))
  (setq dda (+ (/ (distance p1 p2) 2)))
  (setq cen (inters p1 p3 p2 p4 ))
  (setq pt_n (mapcar '+ pt cen))
  (setq edata (subst (cons 40 (* scl (cdr height))) height edata))
  (setq edata (subst (cons 72 4) (assoc 72 edata) edata))
  (setq edata (subst (cons 11 pt_n) (assoc 11 edata) edata))
  (entmod edata)
  (entupd ename)
  (setq n (1+ n))
)
  )
也可以实现
发表于 2011-12-3 13:53:58 | 显示全部楼层
lambda函数我就不会用!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-17 14:14 , Processed in 0.194990 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表