乐筑天下

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

[编程交流] 在多段线内插入圆

[复制链接]

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 14:59:00 | 显示全部楼层
好主意BIGAL。。现在你需要考虑岛屿。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:02:32 | 显示全部楼层
这里使用分解的网络图案填充(线)和其他非线对象快速尝试一下。不确定速度,但适用于岛屿。
 
绝对没有那么快:
 
几处调整
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:06:00 | 显示全部楼层
也许我们做错了,如果放大,需要查看圆形的填充图案,或者实际上不是圆形而是面。我会调查的。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 15:08:07 | 显示全部楼层
 
 
填充图案是否会在边界处留下部分圆?但是如果可以的话。。。
回复

使用道具 举报

44

主题

139

帖子

95

银币

后起之秀

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

铜币
221
发表于 2022-7-5 15:11:47 | 显示全部楼层
哇,伙计们!!!!!
你在这里做得很好!!!
 
 
如果你愿意的话,我会对此深入一点,以便对这个问题有一个全面的了解
 
 
这些构件不能放置在任何地方,只能放置在不超过地板抗剪强度的区域。
这些区域可以在示例中看到,并且位于绿线之外。在带有灰色图案填充的青色中,您可以看到板的支撑,并且在它们上面,您不能明显地放置它们。我的代码只是通过创建图案填充来考虑它(有时会失败)。也许可以创建图案填充并将其边界用作多段线,而不是选择它?
 
无论如何,它比我的快50倍
152516tnywn78z7z8r88ej.png
152518nc30qlcrf8rs0ppq.png
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:12:31 | 显示全部楼层
我认为这可能需要额外的几个步骤。Bpoly将在一个封闭区域内制作每个形状的柱脚,因此它会将球放置在随机形状中的每个位置,包括我将其作为限制的弯曲绿线,而不是蓝色矩形,然后第二步将选择大多边形内的所有绿色摆动,并重复球修剪。这是我想要的还是我理解不正确。
回复

使用道具 举报

44

主题

139

帖子

95

银币

后起之秀

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

铜币
221
发表于 2022-7-5 15:18:49 | 显示全部楼层
你好,比格尔!
 
 
谢谢你的解释。听起来很酷,Bpoly的额外步骤可以做到这一点!
 
 
不幸的是,绿线不是多段线,通常位于外部参照上。这就是我的fem(AxisVM)的结果。
 
 
无论如何,是的,这正是我梦想的
 
 
谢谢你的帮助比格尔
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:19:19 | 显示全部楼层
 
你能把那张图贴出来吗?
回复

使用道具 举报

44

主题

139

帖子

95

银币

后起之秀

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

铜币
221
发表于 2022-7-5 15:24:46 | 显示全部楼层
当然!
 
 
文本cad导师-标准。拉链
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 15:26:37 | 显示全部楼层
以下是我到目前为止所掌握的。。也许你可以根据自己的需要调整它。
  1. (defun c:foo (/ _dxf a e el l1 l2 l3 p1 p2 q r s x y)
  2. ;; Not very fast ( 25 seconds ) with example because of the 3500 lines for "DIAG_FORZE_SUPERF"
  3. ;; Needs a grid of lines on 'hatch' layer and other objects to check proximity to
  4. (defun _dxf (c e) (cdr (assoc c (entget e))))
  5. ;; Circle radius
  6. (setq r 0.1575)
  7. (cond
  8.    ;; A selection
  9.    ((and (setq s (ssget '((0 . "*polyline,line,circle,ellipse"))))
  10.   (setq s (vl-remove-if 'listp (mapcar 'cadr (ssnamex s))))
  11.     )
  12.     ;; (idt_starttimer)
  13.     (foreach x        s
  14.       (setq el (entget x))
  15.       (if (and (= "LINE" (_dxf 0 x)) (= "HATCH" (strcase (_dxf 8 x))))
  16. (progn        (setq q (angle (setq p1 (cdr (assoc 10 el))) (setq p2 (cdr (assoc 11 el)))))
  17.         (or a (setq a (rem (angle (cdr (assoc 10 el)) (cdr (assoc 11 el))) pi)))
  18.         (if (equal (rem q pi) a 1e-
  19.           (setq l1 (cons (list p1 p2) l1))
  20.           (setq l2 (cons (list p1 p2) l2))
  21.         )
  22. )
  23. (setq l3 (cons x l3))
  24.       )
  25.     )
  26.     (and
  27.       l1
  28.       l2
  29.       l3
  30.       (foreach        y l1
  31. (foreach z (vl-remove 'nil
  32.                        (mapcar '(lambda (x) (inters (car x) (cadr x) (car y) (cadr y))) l2)
  33.             )
  34.    (setq e (entmakex (list '(0 . "circle") '(8 . "void") (cons 10 z) (cons 40 r))))
  35.    (and        (vl-some '(lambda (x) (< (distance z (vlax-curve-getclosestpointto x z)) r)) l3)
  36.         (entdel e)
  37.    )
  38. )
  39.       )
  40.     )
  41.     ;; (idt_endtimer)
  42.    )
  43. )
  44. (princ)
  45. )
  46. (vl-load-com)

152521eoavavs1qvrqt71z.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 02:01 , Processed in 0.920593 second(s), 72 queries .

© 2020-2025 乐筑天下

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