各位大师!为什么圆与圆之间,圆与线之间打断于点打断不了呢?


网友答: 应该问:圆为什么不可以打断

网友答: CIRCLE不能直接用圆上同一个点进行break,因为CAD规定ARC的圆心角不能等于2pi,所以用圆上同一个点对圆进行break会失败。
但是这个圆心角可以无限接近于2pi,那么也就有了可以操作的可能:用圆心P0和给定的打断点p计算arc的初始角,再用这个角减去一个极小的数值,比如1e-8作为终止角,重新绘制ARC就可以
  1. (and(setq e(ssget":E:S"'((0 . "circle"))))
  2.     (setq e(ssname e 0)
  3.           en(entget e)
  4.           p0(CDR(ASSOC 10 EN))
  5.           p(vlax-curve-getclosestpointto e(getpoint)))
  6.     (ENTMAKEX(MAPCAR'CONS'(0 10 40 50 51)(LIST"ARC"(CDR(ASSOC 10 EN))(CDR(ASSOC 40 EN))(ANGLE p0 P)(-(ANGLE p0 P)1E-8))))
  7.     (entdel e))


网友答: 圆只能打断于两点  打断于一点会失败   正如 (entmake (list '(0 . "ARC") (list 10 0 0 0) (cons 40 1000) (cons 50 0) (cons 51 (* 2 pi)))) 只能生成一个点的圆弧  而 (entmake (list '(0 . "ARC") (list 10 0 0 0) (cons 40 1000) (cons 50 0.000001) (cons 51 (* 2 pi)))) 则可以生成一个接近完整圆的圆弧

网友答: 本帖最后由 guosheyang 于 2026-2-2 12:01 编辑

      通过点击圆上一个点来打断圆,(本质上也是两点打断圆 另一点自动确定),之所以建议通过两点来打断圆,主要是在可能的后续生成面域或者拓扑多边形等啥的时候,提高生成面域等的成功率,近似小缺口处理的,可能会导致生成面域失败
;;指定一点来打断圆
(defun c:breakcircle@pt(/ BRKPT CEN CIR RAD ST)
(setq cir(car(entsel "\n 请指定要打断的圆")))
(setq cen(cdr(assoc 10(entget cir))))
(setq rad(cdr(assoc 40(entget cir))))
(setq brkpt(getpoint "\n 请指定一点来打断圆"))
(setq st(vlax-curve-getstartpoint cir))
(if(not(equal brkpt st 0.000000001))
   (progn
     (entmake (list '(0 . "ARC") (cons 10 cen) (cons 40 rad) (cons 50 0) (cons 51 (angle cen brkpt))))
     (entmake (list '(0 . "ARC") (cons 10 cen) (cons 40 rad) (cons 50 (angle cen brkpt)) (cons 51 (* 2 pi))))
   )
   (progn
    (entmake (list '(0 . "ARC") (cons 10 cen) (cons 40 rad) (cons 50 0) (cons 51 pi)))
    (entmake (list '(0 . "ARC") (cons 10 cen) (cons 40 rad) (cons 50 pi) (cons 51 (* 2 pi))))
   )
)
(entdel cir)
(princ)
)

网友答: 命令: BREAKATPOINT
选择对象:
指定打断点:
圆弧不能是 360 度

网友答:
forestgxc 发表于 2026-2-2 14:34
命令: BREAKATPOINT
选择对象:
指定打断点:

你这个是打断圆弧  不是圆哦

网友答: 本帖最后由 scnc001 于 2026-2-4 08:19 编辑

无限放大,画两条线穿过圆,然后修剪(如果你非要事实上的一个点,就好比强行要求分母为0一样)

网友答:
scnc001 发表于 2026-2-4 08:18
无限放大,画两条线穿过圆,然后修剪(如果你非要事实上的一个点,就好比强行要求分母为0一样)

修剪后原来的圆弧不就不见了吗

网友答:
277283904 发表于 2026-2-5 11:38
修剪后原来的圆弧不就不见了吗

看你要什么了。。。闭合的多段线我想分开首尾还分不开了,只有打断留个小缺口。如果不适合你的要求,请无视,我说的方法只能视觉上满足要求。
  • 上一篇:明经复制代码篡改猴扩展
  • 下一篇:没有了