设为首页收藏本站

 找回密码
 立即注册

只需一步,快速开始

搜索
查看: 82|回复: 28

为什么圆与圆之间,圆与线之间打断于点打断不了呢?

[复制链接]
累计签到:70 天
连续签到:59 天
灌水成绩
3
227
12817
主题
帖子
积分

等级头衔

ID : 554

中级工程师

积分成就 测量币 : 12817
在线时间 : 623 小时
注册时间 : 2026-3-2
最后登录 : 2026-7-12

勋章
UID勋章测量学徒测量员
发表于 2026-2-2 08:49:50 | 显示全部楼层 |阅读模式 IP:香港
各位大师!为什么圆与圆之间,圆与线之间打断于点打断不了呢?
累计签到:29 天
连续签到:1 天
灌水成绩
5
64
4060
主题
帖子
积分

等级头衔

ID : 644

助理工程师

积分成就 测量币 : 4060
在线时间 : 0 小时
注册时间 : 2026-1-3
最后登录 : 2026-7-11

勋章
UID勋章测量学徒测量员
发表于 2026-2-2 11:49:15 | 显示全部楼层 IP:香港
通过点击圆上一个点来打断圆,(本质上也是两点打断圆 另一点自动确定),之所以建议通过两点来打断圆,主要是在可能的后续生成面域或者拓扑多边形等啥的时候,提高生成面域等的成功率,近似小缺口处理的,可能会导致生成面域失败
;;指定一点来打断圆
(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)
)
回复

使用道具 举报

累计签到:40 天
连续签到:2 天
灌水成绩
0
74
3440
主题
帖子
积分

等级头衔

ID : 948

助理工程师

积分成就 测量币 : 3440
在线时间 : 0 小时
注册时间 : 2026-3-15
最后登录 : 2026-7-11

勋章
UID勋章测量学徒测量员
发表于 2026-2-2 09:51:05 | 显示全部楼层 IP:香港
CIRCLE不能直接用圆上同一个点进行break,因为CAD规定ARC的圆心角不能等于2pi,所以用圆上同一个点对圆进行break会失败。
但是这个圆心角可以无限接近于2pi,那么也就有了可以操作的可能:用圆心P0和给定的打断点p计算arc的初始角,再用这个角减去一个极小的数值,比如1e-8作为终止角,重新绘制ARC就可以

  • (and(setq e(ssget":E:S"'((0 . "circle"))))
  •     (setq e(ssname e 0)
  •           en(entget e)
  •           p0(CDR(ASSOC 10 EN))
  •           p(vlax-curve-getclosestpointto e(getpoint)))
  •     (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))))    (entdel e))
(and(setq e(ssget":E:S"'((0 . "circle"))))
    (setq e(ssname e 0)
          en(entget e)
          p0(CDR(ASSOC 10 EN))
          p(vlax-curve-getclosestpointto e(getpoint)))
    (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))))
    (entdel e))
回复

使用道具 举报

累计签到:66 天
连续签到:55 天
灌水成绩
2
232
14885
主题
帖子
积分

等级头衔

ID : 523

中级工程师

积分成就 测量币 : 14885
在线时间 : 613 小时
注册时间 : 2026-2-17
最后登录 : 2026-7-12

勋章
发表于 2026-2-2 11:18:22 | 显示全部楼层 IP:香港
圆只能打断于两点  打断于一点会失败   正如 (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)))) 则可以生成一个接近完整圆的圆弧
回复

使用道具 举报

累计签到:8 天
连续签到:1 天
灌水成绩
0
26
1538
主题
帖子
积分

等级头衔

ID : 1183

高级技术员

积分成就 测量币 : 1538
在线时间 : 0 小时
注册时间 : 2026-1-11
最后登录 : 2026-7-11

勋章
测量员UID勋章测量学徒
发表于 2026-2-2 09:26:33 | 显示全部楼层 IP:香港
应该问:圆为什么不可以打断
回复

使用道具 举报

累计签到:8 天
连续签到:1 天
灌水成绩
1
31
1051
主题
帖子
积分

等级头衔

ID : 1305

高级技术员

积分成就 测量币 : 1051
在线时间 : 0 小时
注册时间 : 2025-12-14
最后登录 : 2026-7-11

勋章
测量员UID勋章测量学徒
发表于 2026-2-2 14:34:20 | 显示全部楼层 IP:香港
命令: BREAKATPOINT
选择对象:
指定打断点:
圆弧不能是 360 度
回复

使用道具 举报

累计签到:27 天
连续签到:2 天
灌水成绩
3
194
4407
主题
帖子
积分

等级头衔

ID : 881

助理工程师

积分成就 测量币 : 4407
在线时间 : 0 小时
注册时间 : 2026-2-10
最后登录 : 2026-7-11

勋章
UID勋章测量学徒测量员
发表于 2026-2-3 09:55:10 | 显示全部楼层 IP:香港
你这个是打断圆弧  不是圆哦
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
灌水成绩
0
65
4234
主题
帖子
积分

等级头衔

ID : 727

助理工程师

积分成就 测量币 : 4234
在线时间 : 0 小时
注册时间 : 2026-3-18
最后登录 : 2026-7-11

勋章
UID勋章测量学徒测量员
发表于 2026-2-4 08:18:04 | 显示全部楼层 IP:香港
无限放大,画两条线穿过圆,然后修剪(如果你非要事实上的一个点,就好比强行要求分母为0一样)
回复

使用道具 举报

累计签到:5 天
连续签到:1 天
灌水成绩
2
36
1441
主题
帖子
积分

等级头衔

ID : 1329

高级技术员

积分成就 测量币 : 1441
在线时间 : 0 小时
注册时间 : 2026-4-11
最后登录 : 2026-7-12

勋章
UID勋章测量员
发表于 2026-2-5 11:38:20 | 显示全部楼层 IP:香港
修剪后原来的圆弧不就不见了吗
回复

使用道具 举报

累计签到:33 天
连续签到:1 天
灌水成绩
1
72
3457
主题
帖子
积分

等级头衔

ID : 1066

助理工程师

积分成就 测量币 : 3457
在线时间 : 0 小时
注册时间 : 2026-3-23
最后登录 : 2026-7-11

勋章
UID勋章测量员
发表于 2026-2-5 11:54:30 | 显示全部楼层 IP:香港
看你要什么了。。。闭合的多段线我想分开首尾还分不开了,只有打断留个小缺口。如果不适合你的要求,请无视,我说的方法只能视觉上满足要求。
回复

使用道具 举报

快速回复换一批
遇见神贴岂能不顶
好贴帮顶
业界良心! 楼主这波操作太牛了,细节拉满,顶起来让更多人看到! 🌟👏
前排围观! 搬好小板凳,坐看大佬们在线battle技术。 🪑🍿
看帖回帖是美德。 悄悄地我来了,顺便留下一条充满正能量的回帖。 🌊🤝
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|精密测量技术论坛 ( 桂ICP备2026007449号-1 )

GMT+8, 2026-7-12 20:57 , Processed in 0.193711 second(s), 53 queries .

Powered by 精密测量技术论坛

© 2025-2026 联系站长

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