明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1224|回复: 6

[已解答] 如何让圆内直线从中点断开

[复制链接]
发表于 2013-11-24 20:34 | 显示全部楼层 |阅读模式
本帖最后由 xskfq 于 2013-11-24 20:37 编辑

批量打断圆内直线,打断点为园内直线的中点,如图
本来想悬赏的,没找到怎么发悬赏帖,谁能帮解决下,衷心感谢!

本帖子中包含更多资源

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

x
发表于 2013-11-24 22:33 | 显示全部楼层

本帖子中包含更多资源

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

x
发表于 2013-11-24 22:55 | 显示全部楼层
  1. ;;直线打断与圆内中点 By Gu_xl 2013.11.24
  2. (defun c:tt (/ *error* mid e el pl p0 p1)
  3.   (defun *error* (s)
  4.     (setvar 'cmdecho cmdecho)
  5.     (princ s)
  6.     )
  7.   (defun mid (p1 p2)
  8.     (mapcar '* '(0.5 0.5 0.5) (mapcar '+ p1 p2))
  9.     )
  10.   (setq cmdecho (getvar 'cmdecho))
  11.   (setvar 'cmdecho 0)
  12.   
  13.   (while (and (setq e (car (entsel "\n选择直线:")))
  14.            (= "LINE" (cdr (assoc 0 (setq el (entget e)))))
  15.            )
  16.     (progn
  17.       (command "_zoom" "o" e "")
  18.       (setq p0 (trans (cdr (assoc 10 el)) 0 1)
  19.             p1 (trans (cdr (assoc 11 el)) 0 1)
  20.             )
  21.       (setq ss (ssget "F" (list p0 p1) '((0 . "circle"))))
  22.       (if ss
  23.         (progn
  24.           (setq        pl
  25.                  (vl-remove-if
  26.                    '(lambda (a)
  27.                       (/= 2 (length a))
  28.                     )
  29.                    (reverse
  30.                      (mapcar '(lambda (x) (mapcar 'cadr (cdddr x)))
  31.                              (ssnamex ss)
  32.                      )
  33.                    )
  34.                  )
  35.           )
  36.           (FOREACH pts pl
  37.             (command "_break" e  (apply 'mid pts) "@")
  38.             )
  39.         )
  40.       )
  41.       (command "_zoom" "_p")
  42.       )
  43.     )
  44.   (setvar 'cmdecho cmdecho)
  45.   (princ)
  46.   )
 楼主| 发表于 2013-11-25 11:26 | 显示全部楼层
谢谢版主,,十分感谢!!
 楼主| 发表于 2013-11-25 12:48 | 显示全部楼层
版主能再帮忙给看看不:
这个能改成框选吗
还有,直线是水平时,圆心落在直线上,就断不开了,为什么,,,
速度好像有点慢,entmake能快点不
发表于 2013-11-25 14:08 | 显示全部楼层
xskfq 发表于 2013-11-25 12:48
版主能再帮忙给看看不:
这个能改成框选吗
还有,直线是水平时,圆心落在直线上,就断不开了,为什么,, ...

  1. ;;直线打断与圆内中点 By Gu_xl 2013.11.24
  2. (defun c:tt (/ *error* mid e el pl p0 p1 dup n s0)
  3.   (defun *error* (s) (setvar 'cmdecho cmdecho) (princ s))
  4.   (defun mid (p1 p2)
  5.     (mapcar '* '(0.5 0.5 0.5) (mapcar '+ p1 p2))
  6.   )
  7.   (defun dup (pts)
  8.     (if        pts
  9.       (if (equal (car pts) (cadr pts) 1e-3)
  10.         (dup (cdr pts))
  11.         (cons (car pts) (dup (cdr pts)))
  12.       )
  13.     )
  14.   )
  15.   (setq cmdecho (getvar 'cmdecho))
  16.   (setvar 'cmdecho 0)
  17.   (princ "\n选择直线:")
  18.   (while (setq s0 (ssget '((0 . "line"))))
  19.     (repeat (setq n (sslength s0))
  20.       (setq e  (ssname s0 (setq n (1- n)))
  21.             el (entget e)
  22.       )
  23.       (command "_zoom" "o" e "")
  24.       (setq p0 (trans (cdr (assoc 10 el)) 0 1)
  25.             p1 (trans (cdr (assoc 11 el)) 0 1)
  26.       )
  27.       (setq ss (ssget "F" (list p0 p1) '((0 . "circle"))))
  28.       (if ss
  29.         (progn (setq pl
  30.                       (vl-remove-if
  31.                         '(lambda (a) (/= 2 (length a)))
  32.                         (reverse
  33.                           (mapcar '(lambda (x) (dup (mapcar 'cadr (cdddr x))))
  34.                                   (ssnamex ss)
  35.                           )
  36.                         )
  37.                       )
  38.                )
  39.                (FOREACH        pts pl
  40.                  (vl-cmdf "_break"
  41.                           (list e (setq p (apply 'mid pts)))
  42.                           "f"
  43.                           "_non"
  44.                           p
  45.                           "_non"
  46.                           p
  47.                  )
  48.                )
  49.         )
  50.       )
  51.       (command "_zoom" "_p")
  52.     )
  53.   )
  54.   (setvar 'cmdecho cmdecho)
  55.   (princ)
  56. )
发表于 2013-11-25 22:18 | 显示全部楼层
Gu_xl 发表于 2013-11-25 14:08

G版,好像不行了,CAD2007测试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 21:03 , Processed in 0.144567 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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