找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5591|回复: 17

[已解决] 求可记忆的修改文字与标注文字高度的代码

[复制链接]

已领礼包: 3199个

财富等级: 富可敌国

发表于 2014-2-24 19:00:01 | 显示全部楼层 |阅读模式
悬赏100D豆已解决


求助一个支持框选改文字高度同标注文字高度的代码,修改字高后能记忆,下次输入文字和标注时自动沿用上次记忆的高度,但不要将没有选中的文字高度同标注文字高度改变!非常感谢!

最佳答案

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2014-2-24 19:00:02 | 显示全部楼层

用这个试试
  1. (defun c:tt (/ hi ss)
  2.   (fy:begin)
  3.   (if (setq hi (getdist        (strcat        "\nTextSize<"
  4.                                 (vl-princ-to-string (getvar "textsize"))
  5.                                 ">: "
  6.                         )
  7.                )
  8.       )
  9.     (setvar "textsize" hi)
  10.     (setq hi (getvar "textsize"))
  11.   )
  12.   (if (ssget '((0 . "*Text,Dim*")))
  13.     (mapcar
  14.       '(lambda (x / typ)
  15.          (if (wcmatch (strcase (vla-get-objectname x))
  16.                       "*DIM*"
  17.              )
  18.            (vlax-put x "TextHeight" hi)
  19.            (vlax-put x "Height" hi)
  20.          )
  21.        )
  22.       (fy:cset->objs)
  23.     )
  24.   )
  25.   (fy:end)
  26.   (princ)
  27. )

点评

Free-Lancer ,谢谢你的代码,我用2010同2007测试过,对于文字可以,对于标注还是不行,默认标注时字高都是2.5,运行程序将标注文字高度改到1后,再次标注,还是2.5的字高  详情 回复 发表于 2014-2-25 19:11
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 651个

财富等级: 财运亨通

发表于 2014-2-24 21:00:01 | 显示全部楼层
方法应该有,可以把上次文字高度写入到外部文件,下次输入文字时调入外部文件,设置文字高度
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-25 00:04:00 | 显示全部楼层
据说可以用“字典” ,还请元老st788796出手帮忙解决,万分感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-25 00:20:46 | 显示全部楼层
  1. (defun c:tt (/ hi ss)
  2.   (if (setq
  3.         hi (getdist (if        **XDTextSize**
  4.                       (strcat "\nTextSize<"
  5.                               (vl-princ-to-string **XDTextSize**)
  6.                               ">: "
  7.                       )
  8.                       "\nTextSize: "
  9.                     )
  10.            )
  11.       )
  12.     (setq **XDTextSize** hi)
  13.     (setq hi **XDTextSize**)
  14.   )
  15.   (if (and **XDTextSize**
  16.            (setq ss (ssget '((0 . "*Text,Dim*"))))
  17.       )
  18.     (mapcar
  19.       '(lambda (x / typ)
  20.          (setq typ (strcase (xdrx_getpropertyvalue x "IsA")))
  21.          (cond
  22.            ((wcmatch typ "*MTEXT")
  23.             (xdrx_setpropertyvalue
  24.               x
  25.               "TextHeight"
  26.               hi
  27.             )
  28.            )
  29.            ((wcmatch typ "*TEXT")
  30.             (xdrx_setpropertyvalue x "Height" hi)
  31.            )
  32.            (t
  33.             (xdrx_setpropertyvalue
  34.               x
  35.               "Dimtxt"
  36.               (/ hi (xdrx_getpropertyvalue x "Dimscale"))
  37.             )
  38.            )
  39.          )
  40.        )
  41.       (xdrx_pickset->ents ss)
  42.     )
  43.   )
  44.   (princ)
  45. )

点评

谢谢元老出手相助!关于记忆可能我解释的不清楚,我的意思是假如我将一个标注的文本高度由2.5改为5之后,我再次使用标注命令时,文字默认高度就是5,或者我将一单行文本高度由5改为3之后,当我再次运行text命令时,  详情 回复 发表于 2014-2-25 08:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-25 08:52:52 | 显示全部楼层

谢谢元老出手相助!关于记忆可能我解释的不清楚,我的意思是假如我将一个标注的文本高度由2.5改为5之后,我再次使用标注命令时,文字默认高度就是5,或者我将一单行文本高度由5改为3之后,当我再次运行text命令时,不用键入字高,默认就应该是3,不知道这样能不能做到?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-25 08:59:41 | 显示全部楼层
本帖最后由 st788796 于 2014-2-25 09:04 编辑

改成设置 textsize 系统变量
  1. (defun c:tt (/ hi ss)
  2.   (if (setq hi (getdist        (strcat        "\nTextSize<"
  3.                                 (vl-princ-to-string (getvar "textsize"))
  4.                                 ">: ")
  5.                )
  6.       )
  7.     (setvar "textsize" hi)
  8.     (setq hi (getvar "textsize"))
  9.   )
  10.   (if (setq ss (ssget '((0 . "*Text,Dim*"))))
  11.     (mapcar
  12.       '(lambda (x / typ)
  13.          (setq typ (strcase (xdrx_getpropertyvalue x "IsA")))
  14.          (cond
  15.            ((wcmatch typ "*MTEXT")
  16.             (xdrx_setpropertyvalue
  17.               x
  18.               "TextHeight"
  19.               hi
  20.             )
  21.            )
  22.            ((wcmatch typ "*TEXT")
  23.             (xdrx_setpropertyvalue x "Height" hi)
  24.            )
  25.            (t
  26.             (xdrx_setpropertyvalue
  27.               x
  28.               "Dimtxt"
  29.               (/ hi (xdrx_getpropertyvalue x "Dimscale"))
  30.             )
  31.            )
  32.          )
  33.        )
  34.       (xdrx_pickset->ents ss)
  35.     )
  36.   )
  37.   (princ)
  38. )

点评

谢谢大师,文字的可以了,可是标注的不行  详情 回复 发表于 2014-2-25 12:57
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-25 12:57:30 | 显示全部楼层
st788796 发表于 2014-2-25 08:59
改成设置 textsize 系统变量

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-25 14:11:56 | 显示全部楼层
lucas3 发表于 2014-2-25 12:57
谢谢大师,文字的可以了,可是标注的不行

2014测试通过

点评

我这儿用的2010  详情 回复 发表于 2014-2-25 14:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-25 14:19:40 | 显示全部楼层
本帖最后由 lucas3 于 2014-2-25 14:25 编辑

我这儿用的2010,刚刚又测试过,还是不行,这是什么原因呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-25 19:11:53 | 显示全部楼层

Free-Lancer ,谢谢你的代码,我用2010同2007测试过,对于文字可以,对于标注还是不行,默认标注时字高都是2.5,运行程序将标注文字高度改到1后,再次标注,还是2.5的字高
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-25 20:34:25 来自手机 | 显示全部楼层
lucas3 发表于 2014-2-25 19:11
Free-Lancer ,谢谢你的代码,我用2010同2007测试过,对于文字可以,对于标注还是不行,默认标注时字高都 ...

标注要用标注样式,改字高不是一个规范制图

点评

如果改标注样式,那不是所有基与此标注样式的字高都改变呢?  详情 回复 发表于 2014-2-25 20:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-25 20:38:22 | 显示全部楼层
st788796 发表于 2014-2-25 20:34
标注要用标注样式,改字高不是一个规范制图

如果改标注样式,那不是所有基与此标注样式的字高都改变呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-25 20:43:49 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2014-2-25 22:05 编辑
lucas3 发表于 2014-2-25 20:38
如果改标注样式,那不是所有基与此标注样式的字高都改变呢?


设dimtxt系统变量试试看,标注都是基于样式的,这样就会出现"替代样式"
标注文字高度受字高及标注比例影响,变换样式后会有不同表现,除非你的标注只用一种,随时改字高

点评

谢谢大侠,我将FL的代码转到明经,edata帮我改好了,用的是“样式替代”的方式  详情 回复 发表于 2014-2-26 13:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3199个

财富等级: 富可敌国

 楼主| 发表于 2014-2-26 13:19:07 | 显示全部楼层
st788796 发表于 2014-2-25 20:43
设dimtxt系统变量试试看,标注都是基于样式的,这样就会出现"替代样式"
标注文字高度受字高及标注比例 ...

谢谢大侠,我将FL的代码转到明经,edata帮我改好了,用的是“样式替代”的方式

点评

很混乱的标注  详情 回复 发表于 2014-3-1 17:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 06:34 , Processed in 0.205399 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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