明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1871|回复: 4

最小圆心距,请高手加最小间距圆变色

[复制链接]
发表于 2012-1-6 17:11:18 | 显示全部楼层 |阅读模式
写了个圆心距的程序,最小距离可求出了,但判断不出是哪两个间距最小,或人为定最小距离,将小于该距离的圆标示出来。请高手加最小间距圆变色,谢谢
  1. ;;;最小圆心距,by x_s_s_1@163.com
  2. (defun c:zxjj ( / ss n i en_list center_circle_list dist_list min_dist)
  3.   (setq ss (ssget '((0 . "circle"))))
  4.   (setq n (sslength ss))
  5.   (setq i 0)
  6.   (setq en_list nil)
  7.   (while (< i n)
  8.     (setq en_list (cons (ssname ss i) en_list))
  9.     (setq i (1+ i))
  10.   ) ;_ 结束while
  11.   (setq        center_circle_list
  12.          (mapcar
  13.            '(lambda (en) (cdr (assoc 10 (entget en))))
  14.            en_list
  15.          ) ;_ 结束mapcar
  16.   ) ;_ 结束setq
  17.   (setq dist_list nil)
  18.   (while (< 1 (length center_circle_list))
  19.     (setq dist_list
  20.            (append
  21.              (mapcar
  22.                '(lambda (x) (distance (car center_circle_list) x))
  23.                (cdr center_circle_list)
  24.              ) ;_ 结束mapcar
  25.              dist_list
  26.            ) ;_ 结束append
  27.     ) ;_ 结束setq
  28.     (setq center_circle_list (cdr center_circle_list))
  29.   ) ;_ 结束while
  30.   (princ (setq min_dist (apply 'min dist_list)))
  31. ) ;_ 结束defun
发表于 2012-1-6 17:17:02 | 显示全部楼层
若在圆心位加个 POINT 处理会省事些
发表于 2012-1-6 17:21:43 | 显示全部楼层
在最后一个循环里加两个变量,一个保存最小的距离,一个保存这个距离的两个圆心,一旦循环发现有更小的距离,就更新这两个变量
发表于 2012-5-10 22:17:39 | 显示全部楼层


  1. ;; 最小圆心距 伪源码 需要e派工具箱(XCAD)的支持
  2. (defun c:tt ()
  3.   (setq ss  (ssget '((0 . "circle")))
  4. lst (list (setq s1 (ssname ss 0))
  5.     (setq s2 (ssname ss 1))
  6.     (distance (xyp-get-dxf 10 s1) (xyp-get-dxf 10 s2))
  7.      )
  8. i   -1
  9.   )
  10.   (while (setq s1 (ssname ss (setq i (1+ i))))
  11.     (setq j i)
  12.     (while (setq s2 (ssname ss (setq j (1+ j))))
  13.       (setq leng (distance (xyp-get-dxf 10 s1) (xyp-get-dxf 10 s2))
  14.      lst  (if (< leng (caddr lst))
  15.      (list s1 s2 leng)
  16.      lst
  17.    )
  18.       )
  19.     )
  20.   )
  21.   (xyp-line (xyp-get-dxf 10 (car lst))
  22.      (xyp-get-dxf 10 (cadr lst))
  23.   )
  24. (princ)
  25. )

本帖子中包含更多资源

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

x
发表于 2022-4-28 22:00:59 | 显示全部楼层

老师您好!能不能间距低于一定数值批量全部标出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 13:32 , Processed in 0.172837 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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