明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8526|回复: 22

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

  [复制链接]
发表于 2014-2-22 17:22:19 | 显示全部楼层 |阅读模式
明经朋友们,你们好!
求助一个支持框选改文字高度同标注文字高度的代码,修改字高后能记忆,下次输入文字和标注时自动沿用上次记忆的高度,但不要将没有选中的文字高度同标注文字高度改变!非常感谢!

该贴已经同步到 lucas_3333的微博

评分

参与人数 1明经币 +1 收起 理由
wayne_myles + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2014-2-23 22:03:43 | 显示全部楼层
可怜啊,没人帮助啊
 楼主| 发表于 2014-2-24 18:45:36 | 显示全部楼层
找了一下论坛,只有这些
改字高的:
  1. (defun C:GZG ()
  2. (setvar "CMDECHO" 0)
  3. (prompt "\nSelection window")
  4. (setq p1 (getpoint "\n第一角点: "))
  5. (setq p2 (getcorner p1 "\n反向的角点: "))
  6. (setq XTX (ssget "W" p1 p2))
  7. (setq i -1)
  8. (setq TSZ (getreal "\n输入字高 :"))
  9. (repeat (sslength XTX)
  10. (setq i (1+ i))
  11. ;;;Changing textsize:
  12. (setq SZ (cons 40 TSZ))
  13. (setq ed (entget (ssname XTX i)))
  14. (setq ed (subst SZ (assoc 40 ed) ed ))
  15. (entmod ed)
  16. );repeat
  17. (princ)
  18. );eof

 楼主| 发表于 2014-2-24 23:58:29 | 显示全部楼层
一无所获啊,高手就帮帮忙呗
 楼主| 发表于 2014-2-25 19:25:07 | 显示全部楼层
本帖最后由 lucas_3333 于 2014-5-19 15:58 编辑

可是对单行与多行文字有效,对标注文字没有效果,默认标注时字高都是2.5,运行程序将标注文字高度改到1后,再次标注,还是2.5的字高
  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. )




发表于 2014-2-25 22:42:41 | 显示全部楼层
我先理一下思路。
实现目的1,提示选择文本标注改字高2,将文本和标注 默认字高变量改变。
文本有系统变量控制,而标注只能新建替换样式实现。
发表于 2014-2-25 23:02:02 | 显示全部楼层
简单一句改
如果当前标注文字的样式字高不为0.00则失效,无论是标注或者文字都一样。
  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.     (setvar "dimtxt" hi)
  11.     (setq hi (getvar "textsize"))
  12.   )
  13.   (if (ssget '((0 . "*Text,Dim*")))
  14.     (mapcar
  15.       '(lambda (x / typ)
  16.          (if (wcmatch (strcase (vla-get-objectname x))
  17.                       "*DIM*"
  18.              )
  19.            (vlax-put x "TextHeight" hi)
  20.            (vlax-put x "Height" hi)
  21.          )
  22.        )
  23.       (fy:cset->objs)
  24.     )
  25.   )
  26.   (fy:end)
  27.   (princ)
  28. )
 楼主| 发表于 2014-2-25 23:50:53 | 显示全部楼层
edata 发表于 2014-2-25 23:02
简单一句改
如果当前标注文字的样式字高不为0.00则失效,无论是标注或者文字都一样。

E大师,加载时显示“错误: 语法错误”
没想到标注这么难搞,我用燕秀工具箱时,有一个修改标注文字高度命令yx_dth ,使用后,再使用工具箱里的标注加强工具就能达到这个效果,用CAD自个的标注不行,不知这是什么原理?

本帖子中包含更多资源

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

x
发表于 2014-2-26 08:36:59 来自手机 | 显示全部楼层
这样画图不觉得累吗,画图要规范,你的图如果别人接手画,别人画得比你更累

点评

那你的方法是?那怎么又才叫规范的画图?  发表于 2014-2-26 17:10
发表于 2014-2-26 12:45:45 | 显示全部楼层
lucas_3333 发表于 2014-2-25 23:50
E大师,加载时显示“错误: 语法错误”
没想到标注这么难搞,我用燕秀工具箱时,有一个修改标注文字高度命 ...

没注意看代码;
  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.     (progn
  10.     (setvar "textsize" hi)
  11.     (setvar "dimtxt" hi)
  12.     )
  13.     (setq hi (getvar "textsize"))
  14.   )
  15.   (if (ssget '((0 . "*Text,Dim*")))
  16.     (mapcar
  17.       '(lambda (x / typ)
  18.          (if (wcmatch (strcase (vla-get-objectname x))
  19.                       "*DIM*"
  20.              )
  21.            (vlax-put x "TextHeight" hi)
  22.            (vlax-put x "Height" hi)
  23.          )
  24.        )
  25.       (fy:cset->objs)
  26.     )
  27.   )
  28.   (fy:end)
  29.   (princ)
  30. )

评分

参与人数 1明经币 +1 收起 理由
lucas_3333 + 1 很给力!

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-22 11:57 , Processed in 0.204886 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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