乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 67|回复: 19

[编程交流] 断开圆弧

[复制链接]

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 16:42:24 | 显示全部楼层 |阅读模式
你好
 
请看下图,我想在交点处打断圆弧,我知道这可以使用Visual LISP函数完成,但我想在纯AutoLISP函数中完成。
 
我使用了inters函数来获得直线和多段线的交点,但在圆弧和圆的情况下,这是行不通的。
 
我需要你的建议,找出弧的交点。
 
当做
萨蒂什。
 
174229bdnqesoloopkysqp.jpg
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 16:47:41 | 显示全部楼层
萨蒂什看看这个帖子,也许你会得到一些提示
http://www.cadtutor.net/forum/showthread.php?t=82348
 
 
使用Tapatalk从我的SM-E700H发送
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:51:18 | 显示全部楼层
李有一些很好的数学子函数。
在交叉口类别中查找以下内容:
  1. ;; Line-Circle Intersection  -  Lee Mac
  2. ;; Returns the point(s) of intersection between an infinite line defined by
  3. ;; points p,q and circle with centre c and radius r
  4. (defun LM:inters-line-circle ( p q c r / a d n s )
  5. (setq n (mapcar '- q p)
  6.    p (trans p 0 n)
  7.    c (trans c 0 n)
  8.    a (list (car p) (cadr p) (caddr c))
  9. )
  10. (cond
  11.    (   (equal r (setq d (distance c a)))
  12.      (list (trans a n 0))
  13.    )
  14.    (   (< d r)
  15.      (setq s (sqrt (- (* r r) (* d d))))
  16.      (list
  17.        (trans (list (car p) (cadr p) (- (caddr c) s)) n 0)
  18.        (trans (list (car p) (cadr p) (+ (caddr c) s)) n 0)
  19.      )
  20.    )
  21. )
  22. )

数学家太棒了!
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 16:53:23 | 显示全部楼层
谢谢大家,这是一个很好的例子开始。。。。
 
如果我发现任何问题,我会发布。
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 16:56:47 | 显示全部楼层
大家好,
 
有没有办法确定点是否在多段线上?当然,仅使用autolisp函数。
 
请参见下图。
 
174230uo1pn7mnpn7m18mb.jpg
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 16:58:53 | 显示全部楼层
(vlax curve getdistatpoint polyobj pointpos)如果是,则给出距离或零
 
使用Tapatalk从我的SM-E700H发送
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 17:03:26 | 显示全部楼层
我知道我们可以使用vlax曲线函数来实现这一点,但有什么方法可以通过使用autolisp函数来实现吗?
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-5 17:07:20 | 显示全部楼层
哦,对不起,萨提斯
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 17:10:27 | 显示全部楼层
 
我会使用nentselp。
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-5 17:13:31 | 显示全部楼层
可以尝试此操作,但如果点位于任何对象上,而不是特定对象上,则返回True。
  1. (defun point_on_object (p / m)
  2. (and
  3.    (setq m (osnap p "_nea"))
  4.    (equal p m 1e-
  5. )
  6. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 13:01 , Processed in 0.426725 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表