点选一个标注,如何获得其标注字高?
各位大师早上好,请教一个问题:点选一个标注,如何获得其标注字高?
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:29 编辑
(cdr (assoc 40 (entget (car (nentsel "\n选择标注文字:")))))
or
(vla-get-textheight (vlax-ename->vla-object (car(entsel "\n选择标注:"))))
Gu_xl 发表于 2018-8-9 11:26
(cdr (assoc 40 (entget (car (nentsel "\n选择标注文字:")))))
or
(vla-get-textheight (vlax-ename->vl ...
首先非常感谢G版的回复,我要的不是 40 ,因为已经改过全局比例 需要遍历标注*D的图块内容找到里面的MTEXT提取其高度
或者临时炸开标注提取MTEXT高度后撤销
kozmosovia 发表于 2018-8-9 11:45
需要遍历标注*D的图块内容找到里面的MTEXT提取其高度
或者临时炸开标注提取MTEXT高度后撤销
呃,那么麻烦啊,方便帮忙写一个么?:handshake 呃,那么懒啊,还是放弃吧 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大师多多指教 http://bbs.mjtd.com/thread-65615-1-1.html
yoyoho 发表于 2018-8-9 16:54
http://bbs.mjtd.com/thread-65615-1-1.html
非常感谢yoyoho长老 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