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)不是也可以么
页: 1 [2] 3 4
查看完整版本: 批量改文字高度