乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 81|回复: 8

[编程交流] 帮帮我,显示高程点!

[复制链接]

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 17:16:37 | 显示全部楼层 |阅读模式
大家好。
我有问题,或者需要你的帮助。
我画了一张有点的图,有一个高程Z的点。
现在我想要一个文本来显示点的Z值。以原文为中心点。
请参阅附图。
衷心感谢您。
文件:
满的图纸
 
 
181640mtgq507x9jxaa97y.jpg
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 17:27:10 | 显示全部楼层
这是我很快整理好的东西。希望有帮助。
 
  1. (defun c:test ()
  2. (setq ss (ssget '(( 0 . "POINT"))))
  3. (if ss
  4.    (progn
  5.      (setq ms (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
  6.      (setq n 0)
  7.      (repeat (sslength ss)
  8. (setq pobj (vlax-ename->vla-object (ssname ss n)))
  9. (setq p (vlax-safearray->list (vlax-variant-value (vlax-get-property pobj 'Coordinates))))
  10. (setq z (caddr p))
  11. (setq tobj (vlax-invoke-method ms 'AddText (rtos z 2 2) (vlax-3d-point p) 6.0))
  12. (setq n (+ n 1))
  13. )
  14.      )
  15.    )
  16. (princ)
  17. )
回复

使用道具 举报

16

主题

73

帖子

57

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
80
发表于 2022-7-5 17:35:26 | 显示全部楼层
 
非常感谢Hippe013!祝你好运!
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:45:53 | 显示全部楼层
或者:
  1. (defun C:test ( / SS i e en )
  2. (if (setq SS (ssget "_:L" (list (cons 0 "POINT")(cons 410 (getvar 'ctab)))))
  3.         (repeat (setq i (sslength SS))
  4.                 (setq e (ssname SS (setq i (1- i))))
  5.                 (setq en (entget e))
  6.                 (entmakex
  7.                         (list
  8.                                 (cons 0 "TEXT")
  9.                                 (assoc 10 en)
  10.                                 (cons 40 (getvar 'textsize))
  11.                                 (cons 1 (rtos (last (assoc 10 en)) 2 2))
  12.                         )
  13.                 )
  14.         )
  15. )
  16. (princ)
  17. )       
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:52:33 | 显示全部楼层
 
考虑:
  1. (cons 10 (cdr (assoc 10 en))) == (assoc 10 en)
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 17:55:51 | 显示全部楼层
 
Z轴值可以缩短为:
  1. (setq z (last (assoc 10 en)))

 
我只是吹毛求疵。
 
-大卫
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 18:08:01 | 显示全部楼层
在我上班之前,我写得很快。
后来我想起了大卫·贝瑟尔的评论,cdr可能没用,我错过了李注意到的那部分,很好的李连杰!
更新了前一篇文章中的代码。
顺便说一句,我第一次尝试将文本对象/名称的对正设置为“MiddleCenter”,这似乎比使用多行文字对象/名称困难得多。尝试使用72和73个GC值,但所有文本均在0,0,0处创建,并具有正确的对齐方式,而不是在实际点上。(我提出这个问题只是出于好奇)
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 18:13:47 | 显示全部楼层
尝试:
 
  1. (cons 10 mid_pt)(cons 11 mid_pt)(cons 72 4)(cons 73 0)

 
  1. (cons 10 mid_pt)(cons 11 mid_pt)(cons 72 1)(cons 73 2)

 
-大卫
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:22:47 | 显示全部楼层
我已经开始这样重复了对不起,忘了我第一次看到谁这样做了,也是用坐标的另一种方式。
 
  1. (defun c:test ()
  2. (setq ss (ssget '(( 0 . "POINT"))))
  3. (if ss
  4.    (progn
  5.      (setq ms (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
  6.      (repeat (setq n (sslength ss))
  7. (setq pobj (vlax-ename->vla-object (ssname ss (setq n (- n 1)))))
  8. (setq p (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates pobj))))
  9. (setq z (caddr p))
  10. (setq tobj (vlax-invoke-method ms 'AddText (rtos z 2 2) (vlax-3d-point p) 6.0))
  11. )
  12.      )
  13.    )
  14. (princ)
  15. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-23 10:11 , Processed in 2.267104 second(s), 74 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表