明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2585|回复: 35

[提问] 可否实现智能标注

[复制链接]
发表于 2020-3-16 00:41 | 显示全部楼层 |阅读模式
200明经币
本帖最后由 ddqzmpaxlozc 于 2020-3-18 13:04 编辑

求大佬给加个标注避让的功能
避让规则:如图效果,确实是比较难实现
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

随便搞了一下,不要悬赏,避让不好搞,您自己琢磨吧

点评

我还真没把这几行代码当回事,也就是看着有趣,写着练手。问题在于您直接让别人参见某楼代码就好了,不要把我的代码放到您的主题里。换了其他人也不舒服是不是?我想办法把币还给您。  发表于 2020-3-19 11:37
还有这种操作?最起码的尊重呢?  发表于 2020-3-19 10:42
发表于 2020-3-16 00:41 | 显示全部楼层
随便搞了一下,不要悬赏,避让不好搞,您自己琢磨吧


  1. (defun c:test1 (/ ss1 n en ent lst1a lst1b ss2 lst2 lst3 m p pa pb pc)
  2.   (prompt "\n选择定位线:")
  3.   (setq ss1 (ssget '((0 . "line"))))
  4.   (repeat (setq n (sslength ss1))
  5.     (setq en  (ssname ss1 (setq n (1- n)))
  6.     ent (entget en)
  7.     )
  8.     (if  (equal (car (cdr (assoc 10 ent)))
  9.          (car (cdr (assoc 11 ent)))
  10.          1e-6
  11.   )
  12.       (setq lst1a (cons en lst1a))
  13.       (setq lst1b (cons en lst1b))
  14.     )
  15.   )
  16.   (prompt "\n选择标示物:")
  17.   (setq ss2 (ssget '((0 . "*line,point,circle,arc"))))
  18.   (repeat (setq n (sslength ss2))
  19.     (setq en  (ssname ss2 (setq n (1- n)))
  20.     ent (entget en)
  21.     )
  22.     (cond ((member (cdr (assoc 0 ent)) '("POINT" "CIRCLE"))
  23.      (setq lst2 (cons (cdr (assoc 10 ent)) lst2))
  24.     )
  25.     ((member (cdr (assoc 0 ent)) '("LINE" "ARC"))
  26.      (setq lst2 (cons (vlax-curve-getstartpoint en) lst2))
  27.      (setq lst2 (cons (vlax-curve-getendpoint en) lst2))
  28.     )
  29.     ((member (cdr (assoc 0 ent)) '("LWPOLYLINE" "POLYLINE"))
  30.      (setq m (vlax-curve-getendParam en))
  31.      (while (>= m 0)
  32.        (setq lst2  (cons (vlax-curve-getpointatparam en m) lst2)
  33.        m  (1- m)
  34.        )
  35.      )
  36.     )
  37.     )
  38.   )
  39.   (while lst2
  40.     (setq p    (car lst2)
  41.     lst  (cdr lst2)
  42.     lst3 (cons p lst3)
  43.     )
  44.     (if  lst2
  45.       (setq lst2 (vl-remove-if '(lambda (x) (equal p x 1e-6)) lst2))
  46.     )
  47.   )
  48.   (setq  lst3 (vl-sort lst3
  49.           '(lambda (p1 p2)
  50.        (if (equal (car p1) (car p2) 1e-6)
  51.          (< (cadr p1) (cadr p2))
  52.          (< (car p1) (car p2))
  53.        )
  54.            )
  55.        )
  56.   )
  57.   (foreach n lst3
  58.     (setq
  59.       lst2 (mapcar
  60.        '(lambda (x) (list n (vlax-curve-getclosestpointto x n t)))
  61.        lst1a
  62.      )
  63.       lst2 (vl-sort lst2
  64.         '(lambda (p1 p2)
  65.            (< (distance (car p1) (cadr p1))
  66.         (distance (car p2) (cadr p2))
  67.            )
  68.          )
  69.      )
  70.     )
  71.     (setq p  (car lst2)
  72.     pa (car p)
  73.     pb (cadr p)
  74.     pc (polar pa (* 0.5 pi) 500)
  75.     )
  76.     (command "dimlinear" pa pb pc)
  77.     (setq
  78.       lst2 (mapcar
  79.        '(lambda (x) (list n (vlax-curve-getclosestpointto x n t)))
  80.        lst1b
  81.      )
  82.       lst2 (vl-sort lst2
  83.         '(lambda (p1 p2)
  84.            (< (distance (car p1) (cadr p1))
  85.         (distance (car p2) (cadr p2))
  86.            )
  87.          )
  88.      )
  89.     )
  90.     (setq p  (car lst2)
  91.     pa (car p)
  92.     pb (cadr p)
  93.     pc (polar pa 0 500)
  94.     )
  95.     (command "dimlinear" pa pb pc)
  96.   )
  97. )




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

算了,还是给你设为最佳吧,省得你说我不尊重你,还是拜托你有空的时候能帮我想想怎么实现类似图中的这种避让吧,我觉得你完全可以具备这个水平,只是不愿意费那么大力气帮我。。。  发表于 2020-3-19 10:54
我想给你设最佳答案你不要啊。。。我没有不尊重你啊  发表于 2020-3-19 10:48
回复

使用道具 举报

发表于 2020-3-16 08:55 | 显示全部楼层
做过管道平面布置图的自动标注功能,只要规则确定,是可以实现的.
回复

使用道具 举报

发表于 2020-3-16 11:41 | 显示全部楼层
本帖最后由 cable2004 于 2020-3-16 11:42 编辑

初稿,可能还有bug。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2020-3-16 12:36 | 显示全部楼层
cable2004 发表于 2020-3-16 11:41
初稿,可能还有bug。

大神可以啊,是我想要的效果,你这个是对象只是圆心吗,可以是选择点吗,或者是一段线的端点,折点呢,可以实现吗
回复

使用道具 举报

 楼主| 发表于 2020-3-16 12:38 | 显示全部楼层
cable2004 发表于 2020-3-16 11:41
初稿,可能还有bug。

发来瞧瞧嘛
回复

使用道具 举报

 楼主| 发表于 2020-3-16 17:23 | 显示全部楼层
cable2004 发表于 2020-3-16 11:41
初稿,可能还有bug。

大佬加油啊!
回复

使用道具 举报

发表于 2020-3-17 01:53 | 显示全部楼层

学习一下喽
回复

使用道具 举报

 楼主| 发表于 2020-3-17 12:58 | 显示全部楼层
cable2004 发表于 2020-3-16 11:41
初稿,可能还有bug。

大佬你研究的咋样了
回复

使用道具 举报

 楼主| 发表于 2020-3-17 20:54 | 显示全部楼层
x_s_s_1 发表于 2020-3-17 19:08
随便搞了一下,不要悬赏,避让不好搞,您自己琢磨吧

感谢大佬支持,我先下载测试一下
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-20 21:57 , Processed in 0.364575 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表