找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 894|回复: 6

[求助] [求助]:抽空编写了个改字体高度的程序,但有点错误,请大家帮忙检查一下

[复制链接]
发表于 2006-9-3 10:53:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. (defun c:ttv()
  2.   (setq h(getdist "\n 输入文本新的字高:"))
  3.   (setq e(entnext))
  4.   (while e
  5.     (setq e1(entget e))
  6.      (if(= "text" (cdr(assoc 0 e1)))
  7.         (progn
  8.          (setq e1(subst (cons 40 h) (assoc 40 e1) e1))
  9.              (if (= 3 (cdr (assoc 72 e1)))
  10.                  (setq e1(subst (cons 72 0) (assoc 72 e1) e1))
  11.              )

  12.             (entmod e1)
  13.            )
  14.        )
  15.        (setq e(entnext e))
  16.        )
  17.        (princ)
  18.      )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-9-3 11:17:53 | 显示全部楼层
为什么不用 sclaetext  命令呢?

命令输入 scaletext

选择对象: 使用对象选择方法并在完成时按 ENTER 键

输入缩放的基点选项 [现有(E)/对齐(A)/调整(F)/中心(C)/中间(M)/右(R)/左上(TL)/中上(TC)/右上(TR)/左中(ML)/正中(MC)/右中(MR)/左下(BL)/中下(BC)/右下(BR)] <现有>: 指定一个位置作为缩放基点

按照基点提示,可以选择某个位置作为缩放基点,供每个选定的文字对象单独使用。 缩放基点位于文字选项的一个插入点处,但是即使选项与选择插入点时的选项相同,文字对象的对正也不受影响。

上面显示的基点选项在 TEXT 命令中有说明。 除了“对齐”、“调整”和“左”文字选项与左下 (BL) 多行文字附着点相同外,单行文字的基点选项与多行文字的基点选项类似。

指定文字高度或 [匹配对象(M)/缩放比例(S)] <0.5000>: 指定文字高度或输入选项

  

匹配对象
缩放最初选定的文字对象以与选定文字对象的大小匹配。

选择具有所需高度的文字对象: 选择要匹配的文字对象

  

比例因子
按参照长度和指定的新长度缩放所选文字对象。

指定比例因子或 [参照(R)]: 指定比例因子或输入 r

比例因子

通过输入比例因子的数值来缩放所选文字对象。

参照

相对参照长度和新长度来缩放选定的文字对象。

指定参照长度 <1>: 输入长度作为参照距离

指定新长度: 比较参照长度输入另一长度

选定文字将按新长度和参照长度中输入的值进行缩放。 如果新长度小于参照长度,选定的文字对象将缩小。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-3 11:19:31 | 显示全部楼层
把"text"改成"TEXT"应该就可以了,在我这里的cad2004可以通过使用。
(= "TEXT" (cdr (assoc 0 e1)))
这个可以通过设置断点知道没有进入IF里面来得知

水炮兄一直在3d版出没,有空也来Lisp版走走:)
这个程序采用entnext的方式来全图修改,好像灵活性不够,不过按键更少就是,另外,按照eachy版主的说法,把程序中的局部变量提取出来写是写程序的一个好习惯。
chtext.lsp也是改字高的好程序啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-3 12:58:14 | 显示全部楼层
有点不对啊!好像与修改"TEXT"无关,请看下面两张图


                               
登录/注册后可看大图



                               
登录/注册后可看大图
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-9-3 14:28:31 | 显示全部楼层
如果为了学编程,你就捣鼓吧!从这样的简单程序着手比较好,
如果为了实用,放弃吧!Scaletext比你这程序好用,

已经有的功能再去编,多此一举!
高版本已经增加了的功能不用继续不舍得抛弃自编的程序,固步自封!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-9-3 15:00:21 | 显示全部楼层
如果你为了编程就要好好看看 Help 中的 DXF 部分,Text 采用 Align 方式的时候,Height 是忽略的。这样写才是正解

  1. (defun c:ttv (/ ss ssl h i e el)
  2.   (if (and (setq h (getdist "\n Input Text Height: "))
  3.            (setq ss (ssget "x" '((0 . "text"))))
  4.       )
  5.     (progn
  6.       (setq ssl        (sslength ss)
  7.             i        -1
  8.       )
  9.       (repeat ssl
  10.         (setq e         (ssname ss (setq i (1+ i)))
  11.               el (entget e)
  12.         )
  13.         (princ "\rTotle ")
  14.         (princ ssl)
  15.         (princ " Text, Change No.")
  16.         (princ (1+ i))
  17.         (princ " Text...")
  18.         (if (= 3 (cdr (assoc 72 el)))
  19.           (setq el (subst '(72 . 0) (assoc 72 el) el))
  20.         )
  21.         (entmod        (subst (cons 40 h) (assoc 40 el) el))
  22.       )
  23.     )   
  24.   )
  25.   (princ)
  26. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-3 15:01:41 | 显示全部楼层
发老弟,高版本的功能我不是不知道,任何事情都得从简单的开始吗?

感谢eachy  大哥的帮忙!我去试一下,看看能否成功.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 11:17 , Processed in 0.264942 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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