明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 862|回复: 8

[源码] 优化穿线孔到孔边的距离,节省线割路径

[复制链接]
发表于 2024-11-19 13:39:53 | 显示全部楼层 |阅读模式



本帖子中包含更多资源

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

x

点评

居然能用 distance 作变量  发表于 2024-11-27 09:42
回复

使用道具 举报

发表于 2024-11-19 17:02:41 | 显示全部楼层
(defun c:qqq (/ ss n me en pt k)
  (setq ss (ssget '((0 . "CIRCLE"))))
  (repeat (setq n (sslength ss))
    (setq me (ssname ss (setq n (1- n))))
    (setq en (entget me))
    (setq pt (cdr (assoc 10 en)))
    (setq k (cdr (assoc 40 en)))
    (command "_CIRCLE" "none" (polar pt (* pi 0.25) (- k 3)) 1)
  )
  (princ)
)
(defun c:qq (/ s1 s2 en1 en2 p1 p2 ang k)
  (while (and (setq s1 (entsel "\n选择第一个圆: "))
              (setq s2 (entsel "\n选择第二个圆: ")))
    (setq en1 (entget (car s1)))
    (setq en2 (entget (car s2)))
    (setq p1 (cdr (assoc 10 en1)))
    (setq p2 (cdr (assoc 10 en2)))
    (setq ang (angle p2 p1))
    (setq k (- (cdr (assoc 40 en2)) (cdr (assoc 40 en1)) 1))
    (setq en1 (subst (cons 10 (polar p2 ang k)) (cons 10 p1) en1))
    (entmod en1)         
  )
  (princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2024-11-19 14:04:02 | 显示全部楼层
直接出个画穿丝孔的不省事,这种圆的还是比较简单
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-19 14:06:39 | 显示全部楼层
整套模具图纸3D转出来的穿线孔位置比较乱,分使用环境吧
回复 支持 反对

使用道具 举报

发表于 2024-11-19 15:51:45 | 显示全部楼层
ma344578245 发表于 2024-11-19 14:06
整套模具图纸3D转出来的穿线孔位置比较乱,分使用环境吧

异型孔呢
回复 支持 反对

使用道具 举报

发表于 2024-11-19 16:04:41 | 显示全部楼层
建议可以优化成框选模式,两个圆大小不一样,程序内部直接分析,谁是大圆谁是小圆,效率又提高了
回复 支持 反对

使用道具 举报

发表于 2024-11-26 23:29:55 | 显示全部楼层
楼主 可以分享一下这个录屏GIF工具吗?
回复 支持 反对

使用道具 举报

发表于 2024-11-27 10:02:37 | 显示全部楼层
liuhe 发表于 2024-11-19 16:04
建议可以优化成框选模式,两个圆大小不一样,程序内部直接分析,谁是大圆谁是小圆,效率又提高了

  1. (defun c:tt ()
  2.   (defun dxf (code e) (cdr (assoc code (entget e))))
  3.   (defun subupd (e c v)
  4.     (entmod (subst (cons c v) (assoc c (entget e)) (entget e)))
  5.     (entupd e)
  6.   )
  7.   (while (and (setq ss (ssget '((0 . "circle"))))
  8.               (= (sslength ss) 2)
  9.          )
  10.     (setq s1 (ssname ss 0)
  11.           s2 (ssname ss 1)
  12.           p1 (dxf 10 s1)
  13.           r1 (dxf 40 s1)
  14.           p2 (dxf 10 s2)
  15.           r2 (dxf 40 s2)
  16.     )
  17.     (if (> r2 r1)
  18.       (setq pt (polar p2 (angle p2 p1) r2)
  19.             p1 (polar pt (angle p1 p2) (+ r1 2))
  20.             s1 (subupd s1 10 p1)
  21.       )
  22.       (setq pt (polar p1 (angle p1 p2) r1)
  23.             p2 (polar pt (angle p2 p1) (+ r2 2))
  24.             s2 (subupd s2 10 p2)
  25.       )
  26.     )
  27.   )
  28.   (princ)
  29. )
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-23 02:41 , Processed in 0.288284 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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