找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 170|回复: 3

[编程申请] 【已解决】求批量矩形中心点与限定范围内直线的连接线

[复制链接]
发表于 2024-3-27 01:44:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本帖最后由 261789003 于 2024-4-3 03:02 编辑

QQ图片20240327014137.png 求批量矩形中心点与限定范围内直线的连接线,求大神出手

测试图.rar

59.12 KB, 下载次数: 3, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2024-3-29 03:37:17 | 显示全部楼层

Rec 0349.gif


  1. (defun c:xdtb_rect_connect_line ( / _nearpt _tol box ents ints n pts rects ss v x)
  2.   (defun _get-rectang (ss)
  3.     (vl-remove nil
  4.                (mapcar '(lambda        (x)
  5.                           (if (XD::Polyline:IsRectang x)
  6.                             x
  7.                             nil
  8.                           )
  9.                         )
  10.                        (xdrx-pickset->ents ss)
  11.                )
  12.     )
  13.   )
  14.   (defun _safezoom (pts)
  15.     (if        (not
  16.           (xdrx_points_isinscreen (setq pts (xdrx-points-box pts)))
  17.         )
  18.       (xdrx-document-zoomwindow (nth 0 pts) (nth 2 pts))
  19.     )
  20.   )
  21.   (defun _safezoom (pts)
  22.       (xdrx-document-safezoom box)
  23.   )
  24.   (defun _extend-and-connect (ents)
  25.     (defun _connect (x n)
  26.       (xdrx-line-make
  27.         _nearpt
  28.         (xdrx-getpropertyvalue x "centroid")
  29.       )
  30.       (xdrx-entity-matchprop n (entlast))
  31.     )
  32.     (defun _extend (n _nearpt)
  33.       (or (xdrx-curve-extend n _nearpt nil)
  34.           (xdrx-curve-extend n _nearpt t)
  35.       )
  36.     )
  37.     (mapcar
  38.       '(lambda (x)
  39.          (setq box (xdrx-entity-box x)
  40.                box (xd::pnts:close box)
  41.                box (xdrx-points-offset _tol box)
  42.          )
  43.          (if (setq ss (ssget "cp" box '((0 . "line"))))
  44.            (progn
  45.              (foreach n        (xdrx-ss->ents ss)
  46.                (if (setq ints (xdrx-get-inters n x 3))
  47.                  (progn
  48.                    (setq
  49.                      _nearpt (xdrx-points-nearpt
  50.                                (xdrx-getpropertyvalue n "startpoint")
  51.                                ints
  52.                              )
  53.                    )
  54.                    (_extend n _nearpt)
  55.                    (_connect x n)
  56.                  )
  57.                )
  58.              )
  59.            )
  60.          )
  61.        )
  62.       ents
  63.     )
  64.   )
  65.   ;main
  66.   (if (not #xd-var-global-tol)
  67.     (setq #xd-var-global-tol 1.0)
  68.   )
  69.   (if (setq
  70.         v (getreal
  71.             (xdrx-prompt
  72.               (xdrx-string-multilanguage
  73.                 "\n输入模糊搜索精度距离<"
  74.                 "\nInput Fuzzy search accuracy distance<"
  75.               )
  76.               #xd-var-global-tol
  77.               ">"
  78.               t
  79.             )
  80.           )
  81.       )
  82.     (setq #xd-var-global-tol v)
  83.   )
  84.   (setq _tol (* 1.1 #xd-var-global-tol))
  85.   (if (setq ss (xdrx-ssget
  86.                  (xdrx-string-multilanguage
  87.                    "\n选择矩形<退出>:"
  88.                    "\nSelect Rectang<Exit>"
  89.                  )
  90.                  '((0 . "*polyline") (70 . 1))
  91.                )
  92.       )
  93.     (progn
  94.       (xdrx-begin)
  95.       (setq rects (_get-rectang ss)
  96.             box  (xdrx-entity-box rects)
  97.             box (xd::pnts:close box)
  98.             box          (xdrx-points-offset _tol box)
  99.       )
  100.       
  101.       (_safezoom box)
  102.       (_extend-and-connect rects)
  103.       (xdrx_end)
  104.     )
  105.   )
  106.   (princ)
  107. )



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-4-3 02:52:07 | 显示全部楼层

大佬威武,非常谢谢东哥分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 225个

财富等级: 日进斗金

发表于 2024-4-9 07:38:19 | 显示全部楼层
不错,谢谢分享!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-27 18:13 , Processed in 0.294247 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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