帮帮我,显示高程点!
大家好。我有问题,或者需要你的帮助。
我画了一张有点的图,有一个高程Z的点。
现在我想要一个文本来显示点的Z值。以原文为中心点。
请参阅附图。
衷心感谢您。
文件:
满的图纸
这是我很快整理好的东西。希望有帮助。
(defun c:test ()
(setq ss (ssget '(( 0 . "POINT"))))
(if ss
(progn
(setq ms (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
(setq n 0)
(repeat (sslength ss)
(setq pobj (vlax-ename->vla-object (ssname ss n)))
(setq p (vlax-safearray->list (vlax-variant-value (vlax-get-property pobj 'Coordinates))))
(setq z (caddr p))
(setq tobj (vlax-invoke-method ms 'AddText (rtos z 2 2) (vlax-3d-point p) 6.0))
(setq n (+ n 1))
)
)
)
(princ)
)
非常感谢Hippe013!祝你好运! 或者:
(defun C:test ( / SS i e en )
(if (setq SS (ssget "_:L" (list (cons 0 "POINT")(cons 410 (getvar 'ctab)))))
(repeat (setq i (sslength SS))
(setq e (ssname SS (setq i (1- i))))
(setq en (entget e))
(entmakex
(list
(cons 0 "TEXT")
(assoc 10 en)
(cons 40 (getvar 'textsize))
(cons 1 (rtos (last (assoc 10 en)) 2 2))
)
)
)
)
(princ)
)
考虑:
(cons 10 (cdr (assoc 10 en))) == (assoc 10 en)
Z轴值可以缩短为:
(setq z (last (assoc 10 en)))
我只是吹毛求疵。
-大卫 在我上班之前,我写得很快。
后来我想起了大卫·贝瑟尔的评论,cdr可能没用,我错过了李注意到的那部分,很好的李连杰!
更新了前一篇文章中的代码。
顺便说一句,我第一次尝试将文本对象/名称的对正设置为“MiddleCenter”,这似乎比使用多行文字对象/名称困难得多。尝试使用72和73个GC值,但所有文本均在0,0,0处创建,并具有正确的对齐方式,而不是在实际点上。(我提出这个问题只是出于好奇) 尝试:
(cons 10 mid_pt)(cons 11 mid_pt)(cons 72 4)(cons 73 0)
(cons 10 mid_pt)(cons 11 mid_pt)(cons 72 1)(cons 73 2)
-大卫 我已经开始这样重复了对不起,忘了我第一次看到谁这样做了,也是用坐标的另一种方式。
(defun c:test ()
(setq ss (ssget '(( 0 . "POINT"))))
(if ss
(progn
(setq ms (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
(repeat (setq n (sslength ss))
(setq pobj (vlax-ename->vla-object (ssname ss (setq n (- n 1)))))
(setq p (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates pobj))))
(setq z (caddr p))
(setq tobj (vlax-invoke-method ms 'AddText (rtos z 2 2) (vlax-3d-point p) 6.0))
)
)
)
(princ)
)
页:
[1]