乐筑天下

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

[编程交流] 连接圆

[复制链接]

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 11:39:57 | 显示全部楼层
正如你所指出的,艾伦,如果OP能给我们一个关于圆的数量和配置的概念,这可能会很有帮助。他没有提到的另一件事是,如果所有的圆都是相同的大小,或者它们是否不同?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:43:15 | 显示全部楼层
泄露有用信息?你一定是在开玩笑吧?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 11:47:05 | 显示全部楼层
显然,我对人们的期望太高了。我得考虑降低我的标准。
回复

使用道具 举报

dig

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 11:50:36 | 显示全部楼层
我不能给你一张照片,因为我没有足够的帖子。
 
让我们看看:结果应该像alanjt第五篇文章中的结果,但圆圈内的线应该不可见。这就是全部。
 
非常感谢。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:55:21 | 显示全部楼层
第五个帖子?我所做的就是用线连接一组圆(通过插入)。如果去掉这些线,你只会得到一堆随机的圆。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:55:51 | 显示全部楼层
http://www.cadtutor.net/forum/showthread.php?t=46891&page=2
 
http://www.cadtutor.net/forum/showthread.php?t=42954
 
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 12:00:48 | 显示全部楼层
绕圈奔跑的人有福了,因为他们将被称为大轮子。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:03:17 | 显示全部楼层
我做错了吗?
 
 
 
  1. (defun c:cc ( / ent cen rad gr code data d ang tan iAng tmp )
  2. ;; © Lee Mac  ~  23.05.10
  3. (if
  4.    (setq ent
  5.      (SelectifFoo
  6.        (lambda ( x ) (eq "CIRCLE" (cdr (assoc 0 (entget x)))))
  7.        "\nSelect First Circle: "
  8.      )
  9.    )
  10.    (progn
  11.      (setq cen (trans (dxf 10 ent) 0 1) rad (dxf 40 ent))
  12.      (princ "\nSelect Next Circle: ")
  13.      (while
  14.        (progn
  15.          (setq gr (grread t 13 2) code (car gr) data (cadr gr))
  16.          (redraw)
  17.          (cond
  18.            (
  19.              (and (= 5 code) (listp data))
  20.              (setq d (distance cen data) ang (angle cen data))
  21.              (if (< rad d)
  22.                (progn
  23.                  (setq tan  (sqrt (- (* d d) (* rad rad)))
  24.                        iAng (atan tan rad))
  25.                  (grvecs
  26.                    (cons -3
  27.                      (list
  28.                        (polar cen (+ ang iAng) rad) data
  29.                        (polar cen (- ang iAng) rad) data
  30.                      )
  31.                    )
  32.                  )
  33.                )
  34.              )
  35.             t
  36.            )
  37.            (
  38.              (and (= 3 code) (listp data))
  39.              (if (and (setq tmp (car (nentselp data)))
  40.                       (eq "CIRCLE" (cdr (assoc 0 (entget tmp))))
  41.                       (CircleTangents ent tmp))
  42.                (setq ent tmp cen (trans (dxf 10 tmp) 0 1) rad (dxf 40 tmp))
  43.              )
  44.             t
  45.            )
  46.          )
  47.        )
  48.      )
  49.      (redraw)
  50.    )
  51. )
  52. (princ)
  53. )
  54. (defun SelectifFoo ( foo str / sel ent )
  55. ;; © Lee Mac  ~  23.05.10
  56. (while
  57.    (progn
  58.      (setq sel (entsel str))
  59.      
  60.      (cond
  61.        (
  62.          (vl-consp sel)
  63.          (if (not (foo (setq ent (car sel))))
  64.            (princ "\n** Invalid Object Selected **")
  65.          )
  66.        )
  67.      )
  68.    )
  69. )
  70. ent
  71. )
  72. (defun Line ( p1 p2 )
  73. (entmakex
  74.    (list
  75.      (cons 0 "LINE")
  76.      (cons 10 p1)
  77.      (cons 11 p2)
  78.    )
  79. )
  80. )
  81. (defun dxf ( code e )
  82. (cdr (assoc code (entget e)))
  83. )
  84. (defun CircleTangents ( cir1 cir2 / c1 c2 r1 r2 d delta ang tan iAng )
  85. ;; © Lee Mac  ~  23.05.10
  86. (setq c1 (dxf 10 cir1) c2 (dxf 10 cir2)
  87.        r1 (dxf 40 cir1) r2 (dxf 40 cir2))
  88. (setq d  (distance c1 c2) delta (- r1 r2) ang (angle c1 c2))
  89. (if (< (abs delta) d)
  90.    (progn
  91.      (setq tan  (sqrt (- (* d d) (* delta delta)))
  92.            iAng (atan tan delta))
  93.      (Line (polar c1 (+ ang iAng) r1)
  94.            (polar c2 (+ ang iAng) r2))
  95.      (Line (polar c1 (- ang iAng) r1)
  96.            (polar c2 (- ang iAng) r2))
  97.    )
  98. )
  99. )
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 12:06:39 | 显示全部楼层
哈哈,做得很好。本周末GrRead的两个出色应用。
http://www.cadtutor.net/forum/showpost.php?p=328770&postcount=31
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:09:52 | 显示全部楼层
谢谢Alan
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:44 , Processed in 0.323888 second(s), 70 queries .

© 2020-2025 乐筑天下

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