669423907 发表于 2018-8-9 10:43:25

点选一个标注,如何获得其标注字高?

各位大师早上好,请教一个问题:
点选一个标注,如何获得其标注字高?



file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\669423907\QQ\WinTemp\RichOle\56O3($NETN]1B357NEV(}8Y.png
(princ"\n请点选一个标注:")
(setq ss (ssget":e:s"))
?????
(princ(strcat"\n此标注字高为"))

Gu_xl 发表于 2018-8-9 11:26:18

本帖最后由 Gu_xl 于 2018-8-9 11:29 编辑

(cdr (assoc 40 (entget (car (nentsel "\n选择标注文字:")))))
or
(vla-get-textheight (vlax-ename->vla-object (car(entsel "\n选择标注:"))))

669423907 发表于 2018-8-9 11:39:08

Gu_xl 发表于 2018-8-9 11:26
(cdr (assoc 40 (entget (car (nentsel "\n选择标注文字:")))))
or
(vla-get-textheight (vlax-ename->vl ...

首先非常感谢G版的回复,我要的不是 40 ,因为已经改过全局比例

kozmosovia 发表于 2018-8-9 11:45:58

需要遍历标注*D的图块内容找到里面的MTEXT提取其高度
或者临时炸开标注提取MTEXT高度后撤销

669423907 发表于 2018-8-9 12:04:33

kozmosovia 发表于 2018-8-9 11:45
需要遍历标注*D的图块内容找到里面的MTEXT提取其高度
或者临时炸开标注提取MTEXT高度后撤销

呃,那么麻烦啊,方便帮忙写一个么?:handshake

kozmosovia 发表于 2018-8-9 12:33:13

呃,那么懒啊,还是放弃吧

669423907 发表于 2018-8-9 14:14:58

kozmosovia 发表于 2018-8-9 12:33
呃,那么懒啊,还是放弃吧

:lol(defun c:13(/ s1 s2 en h)
(princ"\n请点选一个标注:")
(if (setq s1 (ssget ":e:s" '((0 . "dimension")))) (progn
(command "undo" "be" "_explode" s1 "" "undo" "e")

(setq s2 (ssget ":e:s"'((0 . "*text"))))
(setq en (entget (ssname s2 0)))
(setq h (cdr (assoc 40 en)))
(command "u" 1)
(princ (strcat"\n此标注字高为 "(rtos h) ) )
) )
(princ) )

我分开写还可以,但是要连起来不会。如何让程序自动选择中炸开标注后的文字呢?还望kozmosovia大师多多指教

yoyoho 发表于 2018-8-9 16:54:09

http://bbs.mjtd.com/thread-65615-1-1.html

669423907 发表于 2018-8-9 17:44:10

yoyoho 发表于 2018-8-9 16:54
http://bbs.mjtd.com/thread-65615-1-1.html

非常感谢yoyoho长老

669423907 发表于 2018-8-9 17:57:01

yoyoho 发表于 2018-8-9 16:54
http://bbs.mjtd.com/thread-65615-1-1.html

请教一个问题:如何改为 ssget 选择模式 谢谢

;获取标注字高 楚留香 2008-1-27 http://bbs.mjtd.com/thread-65615-1-1.html
(defun c:1w (/ ss en dim wzgd bl wzh)
(if (setq ss (ssget ":e:s" '((0 . "dimension")))) (progn

;(setq dim (vlax-ename->vla-object (car (entsel))))
( setq wzgd (vla-get-textheight dim));得到标注样式的文字高度
(setqbl(vla-get-scalefactor dim));得到标注的调整比例
(setq wzh (* wzgd bl))                ;得到真正的文字高度
(princ (strcat"\n此标注字高为 "(rtos wzh) ) )
) )
(princ) )
页: [1] 2
查看完整版本: 点选一个标注,如何获得其标注字高?