求可记忆的修改文字与标注文字高度的代码
明经朋友们,你们好!求助一个支持框选改文字高度同标注文字高度的代码,修改字高后能记忆,下次输入文字和标注时自动沿用上次记忆的高度,但不要将没有选中的文字高度同标注文字高度改变!非常感谢!
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 lucas_3333的微博 可怜啊,没人帮助啊 找了一下论坛,只有这些
改字高的:
(defun C:GZG ()
(setvar "CMDECHO" 0)
(prompt "\nSelection window")
(setq p1 (getpoint "\n第一角点: "))
(setq p2 (getcorner p1 "\n反向的角点: "))
(setq XTX (ssget "W" p1 p2))
(setq i -1)
(setq TSZ (getreal "\n输入字高 :"))
(repeat (sslength XTX)
(setq i (1+ i))
;;;Changing textsize:
(setq SZ (cons 40 TSZ))
(setq ed (entget (ssname XTX i)))
(setq ed (subst SZ (assoc 40 ed) ed ))
(entmod ed)
);repeat
(princ)
);eof
一无所获啊,高手就帮帮忙呗 本帖最后由 lucas_3333 于 2014-5-19 15:58 编辑
可是对单行与多行文字有效,对标注文字没有效果,默认标注时字高都是2.5,运行程序将标注文字高度改到1后,再次标注,还是2.5的字高
(defun c:tt (/ hi ss)
(fy:begin)
(if (setq hi (getdist (strcat "\nTextSize<"
(vl-princ-to-string (getvar "textsize"))
">: "
)
)
)
(setvar "textsize" hi)
(setq hi (getvar "textsize"))
)
(if (ssget '((0 . "*Text,Dim*")))
(mapcar
'(lambda (x / typ)
(if (wcmatch (strcase (vla-get-objectname x))
"*DIM*"
)
(vlax-put x "TextHeight" hi)
(vlax-put x "Height" hi)
)
)
(fy:cset->objs)
)
)
(fy:end)
(princ)
)
我先理一下思路。
实现目的1,提示选择文本标注改字高2,将文本和标注 默认字高变量改变。
文本有系统变量控制,而标注只能新建替换样式实现。 简单一句改
如果当前标注文字的样式字高不为0.00则失效,无论是标注或者文字都一样。
(defun c:tt (/ hi ss)
(fy:begin)
(if (setq hi (getdist (strcat "\nTextSize<"
(vl-princ-to-string (getvar "textsize"))
">: "
)
)
)
(setvar "textsize" hi)
(setvar "dimtxt" hi)
(setq hi (getvar "textsize"))
)
(if (ssget '((0 . "*Text,Dim*")))
(mapcar
'(lambda (x / typ)
(if (wcmatch (strcase (vla-get-objectname x))
"*DIM*"
)
(vlax-put x "TextHeight" hi)
(vlax-put x "Height" hi)
)
)
(fy:cset->objs)
)
)
(fy:end)
(princ)
) edata 发表于 2014-2-25 23:02 static/image/common/back.gif
简单一句改
如果当前标注文字的样式字高不为0.00则失效,无论是标注或者文字都一样。
E大师,加载时显示“错误: 语法错误”
没想到标注这么难搞,我用燕秀工具箱时,有一个修改标注文字高度命令yx_dth ,使用后,再使用工具箱里的标注加强工具就能达到这个效果,用CAD自个的标注不行,不知这是什么原理?
这样画图不觉得累吗,画图要规范,你的图如果别人接手画,别人画得比你更累 lucas_3333 发表于 2014-2-25 23:50 static/image/common/back.gif
E大师,加载时显示“错误: 语法错误”
没想到标注这么难搞,我用燕秀工具箱时,有一个修改标注文字高度命 ...
没注意看代码;
(defun c:tt (/ hi ss)
(fy:begin)
(if (setq hi (getdist (strcat "\nTextSize<"
(vl-princ-to-string (getvar "textsize"))
">: "
)
)
)
(progn
(setvar "textsize" hi)
(setvar "dimtxt" hi)
)
(setq hi (getvar "textsize"))
)
(if (ssget '((0 . "*Text,Dim*")))
(mapcar
'(lambda (x / typ)
(if (wcmatch (strcase (vla-get-objectname x))
"*DIM*"
)
(vlax-put x "TextHeight" hi)
(vlax-put x "Height" hi)
)
)
(fy:cset->objs)
)
)
(fy:end)
(princ)
)