乐筑天下

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

[编程交流] 标记点X、Y、Z

[复制链接]

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 16:31:28 | 显示全部楼层 |阅读模式
亲爱的大家;
 
我的最终目标是找到一个Lisp,当你选择如图所示的点时,该Lisp将自动标记X、Y、Z,并用引线标记多行文字,而不重叠
 
提前感谢您的帮助/建议
湿婆
173133iofx6r6goxtg5gfo.jpg
 
 
“如果所有领导者都是45度天使,那就更好了”
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:37:06 | 显示全部楼层
替代建议:
1.创建动态块,报告XYZ坐标
2.将该块插入pointslist的顶部
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:43:08 | 显示全部楼层
使用包含引用块插入点的字段的属性值创建属性化块。
 
然后,您可以使用我的点管理器程序在选择中的所有点插入这样的块。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 16:49:24 | 显示全部楼层
哦,是的,我完全忘记了李的点管理器-标记XYZ坐标的人不会想象没有它的生活。
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 16:50:26 | 显示全部楼层
非常感谢李的建议,我的线程Mac
&谢谢Grrr
 
再见
湿婆
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 16:58:22 | 显示全部楼层
Siva,这可能会有所帮助-它适用于附加的DWG:
 
  1. (defun c:test ( / *error* eea-cpp-6-2d getpoints nthmassocsubst ucsf fn pl p1p2 d le xdata assocl xdatan )
  2. (defun *error* ( msg )
  3.    (if ucsf
  4.      (command "_.UCS" "_P")
  5.    )
  6.    (if msg
  7.      (prompt msg)
  8.    )
  9.    (princ)
  10. )
  11. (defun eea-cpp-6-2d (l / D D1 I Q)
  12.                   ;|
  13. *****************************************************************************************
  14.   
  15.     by ElpanovEvgeniy
  16.     last edit 19.07.2012
  17.   
  18.     the library function
  19.     find a pair of points with the smallest distance between them
  20.    
  21. *****************************************************************************************
  22.   
  23.     argument - list points
  24.     returne  - list pair points
  25.    
  26.     For the first time it is published
  27.     http://www.theswamp.org/index.php?topic=40592.0
  28.    
  29. *****************************************************************************************
  30.   |;
  31.    (setq l  (vl-sort l (function (lambda (a b) (<= (car a) (car b)))))
  32.          d  (distance (list (caar l) (cadar l)) (list (caadr l) (cadadr l)))
  33.          d1 (+ d 1e-
  34.          q  nil
  35.          i  -1
  36.    )
  37.    (if (and (nth 200 l)
  38.             (progn (repeat 20 (setq q (cons (nth (setq i (1+ i)) l) q)))
  39.                    (apply (function <=)
  40.                           (mapcar (function -)
  41.                                   (apply (function mapcar) (cons (function max) q))
  42.                                   (apply (function mapcar) (cons (function min) q))
  43.                                   '(0 0)
  44.                           )
  45.                    )
  46.             )
  47.        )
  48.      (defun f (p l / di)
  49.        (while (and l (equal (cadr p) (cadar l) d1))
  50.          (cond ((equal (setq di (distance (list (car p) (cadr p)) (list (caar l) (cadar l)))) d 1e- (setq q (cons (list p (car l)) q)))
  51.                ((< di d)
  52.                 (setq d  di
  53.                       d1 (+ d 1e-
  54.                       q  (list (list p (car l)))
  55.                 )
  56.                )
  57.          )
  58.          (setq l (cdr l))
  59.        )
  60.      )
  61.      (defun f (p l / di)
  62.        (while (and l (equal (car p) (caar l) d1))
  63.          (cond ((equal (setq di (distance (list (car p) (cadr p)) (list (caar l) (cadar l)))) d 1e- (setq q (cons (list p (car l)) q)))
  64.                ((< di d)
  65.                 (setq d  di
  66.                       d1 (+ d 1e-
  67.                       q  (list (list p (car l)))
  68.                 )
  69.                )
  70.          )
  71.          (setq l (cdr l))
  72.        )
  73.      )
  74.    )
  75.    (foreach a l (f a (cdr l)) (setq l (cdr l)))
  76.    (list d q)
  77. )
  78. (defun getpoints ( ss / i l a b c )
  79.    (if ss
  80.      (repeat (setq i (sslength ss))
  81.        (setq a (ssname ss (setq i (1- i))))
  82.        (setq b (entget a))
  83.        (setq c (cdr (assoc 10 b)))
  84.        (setq l (cons c l))
  85.      )
  86.    )
  87.    l
  88. )
  89. (defun nthmassocsubst ( n key value lst / k slst p j plst m tst pslst )
  90.    (setq k (length (setq slst (member (assoc key lst) lst))))
  91.    (setq p (- (length lst) k))
  92.    (setq j -1)
  93.    (repeat p
  94.      (setq plst (cons (nth (setq j (1+ j)) lst) plst))
  95.    )
  96.    (setq plst (reverse plst))
  97.    (setq j -1)
  98.    (setq m -1)
  99.    (repeat k
  100.      (setq j (1+ j))
  101.      (if (equal (assoc key (member (nth j slst) slst)) (nth j slst) 1e-6)
  102.        (setq m (1+ m))
  103.      )
  104.      (if (and (not tst) (= n m))
  105.        (setq pslst (cons (cons key value) pslst) tst t)
  106.        (setq pslst (cons (nth j slst) pslst))
  107.      )
  108.    )
  109.    (setq pslst (reverse pslst))
  110.    (append plst pslst)
  111. )
  112. (if (eq (getvar 'worlducs) 0)
  113.    (progn
  114.      (command "_.UCS" "_W")
  115.      (setq ucsf t)
  116.    )
  117. )
  118. (if (not (tblsearch "BLOCK" "label leader"))
  119.    (if (findfile "label leader.dwg")
  120.      (progn
  121.        (command "_.-INSERT" "label leader.dwg" "_non" '(0.0 0.0 0.0))
  122.        (while (< 0 (getvar 'cmdactive)) (command ""))
  123.        (entdel (entlast))
  124.      )
  125.      (progn
  126.        (setq fn (getfiled "Select "label leader.dwg" file..." "\" "dwg" 16))
  127.        (command "_.-INSERT" fn "_non" '(0.0 0.0 0.0))
  128.        (while (< 0 (getvar 'cmdactive)) (command ""))
  129.        (entdel (entlast))
  130.      )
  131.    )
  132. )
  133. (if (setq pl (getpoints (ssget '((0 . "POINT")))))
  134.    (progn
  135.      (setq p1p2 (caadr (eea-cpp-6-2d pl)))
  136.      (setq d (distance (list (caar p1p2) (cadar p1p2)) (list (caadr p1p2) (cadadr p1p2))))
  137.      (foreach p pl
  138.        (command "_.-INSERT" "label leader" "_non" p d)
  139.        (while (< 0 (getvar 'cmdactive)) (command ""))
  140.        (command "_.EXPLODE" (entlast))
  141.        (while (< 0 (getvar 'cmdactive)) (command ""))
  142.        (setq le (car (vl-remove-if-not '(lambda ( x ) (eq (cdr (assoc 0 (entget x))) "LEADER")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))))
  143.        (setq xdata (assoc -3 (entget le '("*"))))
  144.        (setq assocl (cdr (cadr xdata)))
  145.        (setq assocl (nthmassocsubst 0 1040 (* (cdr (assoc 1040 assocl)) d) assocl))
  146.        (setq xdatan (list -3 (cons "ACAD" assocl)))
  147.        (entupd (cdr (assoc -1 (entmod (subst xdatan xdata (entget le '("*")))))))
  148.      )
  149.    )
  150. )
  151. (command "_.-PURGE" "_B" "label leader" "_N")
  152. (while (< 0 (getvar 'cmdactive)) (command ""))
  153. (*error* nil)
  154. )
HTH,M.R。
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 16:59:47 | 显示全部楼层
你好,marko_ribar;
 
在某些情况下,空间问题和重叠问题,为了避免这种情况,我更喜欢这种方式

 
 
问题的例子:

 
谢谢
湿婆
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:07:42 | 显示全部楼层
你必须重新定义我发布的块DWG。。。只要用字段更改属性的位置——我认为可以通过命令BEDIT来实现。
回复

使用道具 举报

30

主题

81

帖子

59

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
146
发表于 2022-7-5 17:11:01 | 显示全部楼层
只是一条评论,我们所有的土建项目都标有pt编号,而不是xyz,原因很简单,你可以将其上传到调查数据采集器中,以便进行设置。我们通常创建一个包含XYZ详细信息和描述的表。这是内置在CIV3d中的,但我们仍然有旧的例程,可以创建点调整pt编号导出到csv并重新导入到表中。
173137yp18anpxjm3xvvzj.jpg
173138qs6ctj464qh28y66.jpg
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 17:15:27 | 显示全部楼层
 
我也这么做了,但出现了错误消息,我再次查看您的程序,我发现我不应该更改cad文件名,我将再次尝试。。。。。。。。
 
谢谢
湿婆
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-6 14:47 , Processed in 0.824396 second(s), 86 queries .

© 2020-2025 乐筑天下

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