print1985
发表于 2012-7-19 15:51:57
本帖最后由 print1985 于 2012-7-19 15:54 编辑
凑个热闹,带对话框的,以前写的。DCL文件请放到cad支持目录下,命令zg。
1993063
发表于 2012-7-21 23:28:51
本帖最后由 1993063 于 2012-7-21 05:30 编辑
(DEFUN C:TH (/ SSET I TXTHEIGHT TEXTSIZE) (VL-LOAD-COM) (SETQ I 0)
(SETQ SSET (SSGET ":s" '((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))))
(IF SSET
(PROGN
(SETQ TEXTSIZE (* (GETVAR "DIMTXT") (GETVAR "DIMSCALE")))
(SETQ TXTHEIGHT (GETDIST (STRCAT "\n指定文字的高度 字高:<< " (RTOS TEXTSIZE) " >> ")))
(IF (= TXTHEIGHT NIL)(SETQ TXTHEIGHT TEXTSIZE))
(REPEAT (SSLENGTH SSET)
(VLA-PUT-HEIGHT (VLAX-ENAME->VLA-OBJECT (SSNAME SSET I)) TXTHEIGHT)
(SETQ I (1+ I))
)
)
)(if (= nil sset)(princ"\n*没选择文字*"))
(PRINC)
) ;改字高到当前标注文字高度
xyp1964
发表于 2012-7-22 00:24:20
(defun c:tt ()
(setq th (Udist 7 "" "字高<输入或鼠标直接量取>" th nil))
(if (setq ss (ssget '((0 . "*TEXT"))))
(xyp-SubUpd ss 40 th)
)
(princ)
)
pzweng
发表于 2012-7-22 09:28:00
xyp1964 发表于 2012-7-22 00:24 static/image/common/back.gif
简洁了,用了一个2个自定义函数
pzweng
发表于 2012-7-22 09:30:53
1993063 发表于 2012-7-21 23:28 static/image/common/back.gif
这个思路不错
pzweng
发表于 2012-7-22 09:31:27
print1985 发表于 2012-7-19 15:51 static/image/common/back.gif
凑个热闹,带对话框的,以前写的。DCL文件请放到cad支持目录下,命令zg。
嗯,还不错,我可以学学
preone
发表于 2012-7-23 19:45:56
x_s_s_1 发表于 2012-7-18 09:56 static/image/common/back.gif
支持源码,搞了一个短点的,但是只针对text,共同学习
(entmod(reverse(cons new_num (reverseent))))
请教 上句是做什么用的? 是把new_num放至ent联合列表的末尾么?这样会不会ent联合列表里有两个new_num点对表?这样的话 entmod后的效果是什么样的?不明白~
半听可乐
发表于 2012-7-23 20:59:15
很好的程序,感谢楼主分享!提个小建议:1.“选取两点(D)”这个选项选择之后,两点之间的高差(y坐标差值)应该就是想要的字高,但如果选择两点的高差比较小(比如200),得到的字体最终高度貌似大于200;2.能不能增加个动态字体大小选项?
duuudu
发表于 2012-7-23 21:58:05
1993063 发表于 2012-7-21 23:28 static/image/common/back.gif
这个不错,看来还是要多用用vla函数,真简洁
duuudu
发表于 2012-7-23 21:59:42
x_s_s_1 发表于 2012-7-18 09:56 static/image/common/back.gif
支持源码,搞了一个短点的,但是只针对text,共同学习
(apply '(lambda (x) (ch_dxf x 40 ww))
应该不需要apply函数,直接(ch_dxf (ssname SS (setq N (1- N))) 40 ww)不是也可以么