乐筑天下

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

[编程交流] 到圆的多段线

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:40:44 | 显示全部楼层 |阅读模式
你好
 
在我的工作场所,我们有几个文件,每个文件都包含一个单独的部分。我从受益人那里得到文件。这些零件有很多孔。问题是,我认为孔是用实心舱口制成的。嗯,我需要图案填充的轮廓圆。如果我删除图案填充,我可以看到边界,但是从小直线,我无法在autocad上创建圆。
我正在寻找一个自动化的解决方案,如果有的话,因为我有8个文件,每个文件中有数百个洞。我附上一份样本文件。
 
当做
阿诺德
测验dxf
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 23:44:51 | 显示全部楼层
我把你的帖子转到了AutoLISP、Visual LISP和DCL论坛,也许这里有人可以帮你。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 23:49:56 | 显示全部楼层
如果要删除实体图案填充,则需要将由许多小多段线构成的“圆”替换为真实的圆。是这样吗?
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 23:52:27 | 显示全部楼层
测试2.dwg这可以接受吗?这不是圆,它们仍然是普林斯。
 
更新为2004年文件
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 23:56:02 | 显示全部楼层
欢迎来到CADTutor
 
试试这个快速代码,让我知道。
 
  1. (defun c:Test (/ ss)
  2. ;;    Author : Tharwat 20. jan. 2014    ;;
  3. (if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE") (-4 . "&=") (70 . 1))))
  4.    ((lambda (i / sn l x y)
  5.       (while (setq sn (ssname ss (setq i (1+ i))))
  6.         (setq l (mapcar 'cdr (vl-remove-if-not (function (lambda (u) (eq (car u) 10))) (entget sn)))
  7.               x (/ (apply '+ (mapcar 'car l)) (length l))
  8.               y (/ (apply '+ (mapcar 'cadr l)) (length l))
  9.         )
  10.         (if (entmakex (list '(0 . "CIRCLE") (cons 10 (list x y)) (cons 40 (distance (list x y) (car l)))))
  11.           (entdel sn)
  12.         )
  13.         (setq l nil
  14.               x nil
  15.               y nil
  16.         )
  17.       )
  18.     )
  19.      -1
  20.    )
  21. )
  22. (princ)
  23. )
  24. (vl-load-com)
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:58:37 | 显示全部楼层
是的,我想用一个真实的圆替换“多段线圆”。
 
我无法打开dwg文件。你能用旧版本发送吗。我用的是2011版。
 
当我尝试运行代码时,它会给我一个错误:
; 错误:超过了最大选择集数
 
有什么建议吗?
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:01:43 | 显示全部楼层
我用2004年的版本更新了这个文件。
 
我使用了一个Civil命令(MAPCLEAN),可以简化对象,但它并没有将它们变成一个圆。如果这只是您需要的一次,并且PLINE是可以接受的,我可以为您转换它们。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:03:49 | 显示全部楼层
 
您是如何运行代码的?您尝试选择了多少个对象?
 
我在办公室和家里的机器上都运行得很好
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:06:32 | 显示全部楼层
AutoCAD一次可以处理的选择集数量有限制。请在您的绘图部分尝试该代码;它不是选择所有要固定的元素,而是尝试按区域选择它们。
请注意,选择集中不要包含除要修复的闭合多段线之外的其他闭合多段线,因为这些闭合多段线也将成为圆。Tharwat的代码不包括形状验证。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 00:11:09 | 显示全部楼层
你好
 
谢谢你的支持。
 
我在另一台计算机上运行了代码,它运行得很好。
它由两个半圆代替一个圆,但这比多段线要好。它将100MB文件减少到约1.5MB。
 
再次感谢。我真的很感激。
 
ragards,
阿诺德
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:02 , Processed in 0.764352 second(s), 72 queries .

© 2020-2025 乐筑天下

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