wutao8282 发表于 2022-4-29 22:54:27

求助大神帮忙检修一下代码 大神帮忙写的圆心距检查插件

本帖最后由 wutao8282 于 2022-4-30 09:28 编辑

(defun c:tt( / ss ent1 ent2 par c1 c2 r1 r2 i j)
         (setq ss (ssget "x" (list (cons 0 "circle"))) i -1)
         (while (setq ent1 (ssname ss (setq i (1+ i))))
                      (setq par (entget ent1) c1 (cdr (assoc 10 par)) r1 (cdr (assoc 40 par)))
                      (setq j i)
                      (while (setq ent2 (ssname ss (setq j (1+ j))))
                                 (setq par (entget ent2) c2 (cdr (assoc 10 par)) r2 (cdr (assoc 40 par)))
                        (if (and (or (equal r1 15 0.0001)(equal r2 15 0.0001))(< (distance c1 c2)(+ r1 r2 15)))
                            (progn (if (equal r1 15 0.0001)(vl-cmdf "change" ent1 "" "P" "c" 1 ""))
                                 (if (equal r2 15 0.0001)(vl-cmdf "change" ent2 "" "P" "c" 1 ""))
                            )
                        )
                      )                        
            )(princ)
)
群高手帮忙写的圆心距检查插件 求助大神帮忙修改一下。现在为圆心距小于30自动红色显示,帮忙修改为检测到心距小于30自动避让 偏移位置使间距超过30即可

guosheyang 发表于 2022-4-30 10:58:11

要偏移开复杂度就大大增加了,要检测红色图元 周边其他图元的空间位置和距离 才能确定往那个方向移动

wutao8282 发表于 2022-4-30 11:41:05

guosheyang 发表于 2022-4-30 10:58
要偏移开复杂度就大大增加了,要检测红色图元 周边其他图元的空间位置和距离 才能确定往那个方向移动

是的,感觉难度非常大,要确定往哪边躲,就要检测周围所有的图元

start4444 发表于 2022-4-30 12:09:22

简直是无穷个情况,360°方向都可以移,十万八千里距离也能移,倒不如全部重新排列

wutao8282 发表于 2022-4-30 13:21:17

start4444 发表于 2022-4-30 12:09
简直是无穷个情况,360°方向都可以移,十万八千里距离也能移,倒不如全部重新排列

直接判断间距不足30向反方向移动,满足30就行

xieling888 发表于 2023-2-1 19:53:05

为什么我运行你这个程序没有反应呢?
页: [1]
查看完整版本: 求助大神帮忙检修一下代码 大神帮忙写的圆心距检查插件