乐筑天下

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

[编程交流] 选择anothe内的对象

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:33:35 | 显示全部楼层 |阅读模式
你好
 
我的设计有一个无法解决的问题。希望这里有人能帮我。
 
我正在绘制一个由两级阵列组成的设计。每个阵列都是相同的;圆形排列成六边形,我画出来没有问题。
 
 
 
093337ckttwq6g6eme0smg.jpg
共有两个阵列,在下图所示的较小圆形阵列的顶部有一个直径较大的圆形(绿色)阵列:
093338lkrkz4kvkkudv1dg.jpg
两个阵列位于不同的层中。现在的问题是,我需要删除里面的那些较小的圆和那些穿过较大圆参数的圆。
 
通过使用lisp调用wps,我成功地删除了较大圆中的较小圆。但是那些交叉的圆没有被删除。此外,它只允许我一次选择一个圆,这对我来说没有用,因为我有一系列较大的圆要删除。
093343cnhkjz122j4q75n1.jpg
 
 
希望有人会知道一个方法或推荐我一个Lisp程序,我可以用来解决这个问题。非常感谢!
wps。lsp
大堆图纸
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 08:39:18 | 显示全部楼层
你不是要修剪小圆圈与大圆圈相交的地方吗?
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:44:37 | 显示全部楼层
那些接触较大圆圈周长的较小圆圈也需要移除,而不是修剪。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 08:47:12 | 显示全部楼层
好啊只是检查一下。然后听起来好像需要一个lisp例程来删除较大直径圆内的所有对象以及可能位于圆本身上的任何对象。明白了。好吧,看起来你已经完成了90%,只需要对你提到的lisp例程进行调整。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 08:49:54 | 显示全部楼层
我把这个移到了AutoLISP、Visual LISP和DCL论坛。
 
你查过李的网站了吗?他可能有那样的东西。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 08:54:37 | 显示全部楼层
我可以使用“非lisp”方法来实现,但它有一个小缺点,我还没有解决。它涉及使用Express Tools中的FASTSEL命令。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:56:58 | 显示全部楼层
在你的绿色圆圈上开一扇窗:
 
  1. (defun c:test ( / a b c e i j l n r s )
  2.    (if (setq s (ssget '((0 . "CIRCLE") (8 . "Layer1"))))
  3.        (repeat (setq i (sslength s))
  4.            (setq e (entget (ssname s (setq i (1- i))))
  5.                  c (cdr (assoc 10 e))
  6.                  r (cdr (assoc 40 e))
  7.                  l nil
  8.                  a (/ pi 25.)
  9.                  n (- a)
  10.            )
  11.            (repeat 50
  12.                (setq l (cons (polar c (setq n (+ n a)) r) l))
  13.            )
  14.            (if (setq b (ssget "_CP" l '((0 . "CIRCLE") (8 . "Layer2"))))
  15.                (repeat (setq j (sslength b))
  16.                    (entdel (ssname b (setq j (1- j))))
  17.                )
  18.            )
  19.        )
  20.    )
  21.    (princ)
  22. )
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:02:40 | 显示全部楼层
 
您好,谢谢您的帮助。我将在周一回去工作时试用你提到的fastsel命令。如果你有任何其他好方法,请分享。
 
至于lisp例程,虽然我是autocad用户多年了,但除了使用web上的内容外,我还没有学会如何编写lisp例程。如果这里的一些专业人士可以帮我修改wps。列表(如果可能的话)包括删除那些被较大的圆交叉的,并且可以在数组中一次用于多个圆的,我非常感谢。
 
我想也是时候学习如何欣赏和理解lisp了。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 09:04:00 | 显示全部楼层
vlsf:看看你前面的帖子就知道了。李·麦克来救你了。就像一个好邻居。。。李在那里。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:08:26 | 显示全部楼层
哇!谢谢李和评论!
 
当我在我的笔记本电脑上试用lisp时,我几乎从椅子上跳了起来(它有一个2004年的旧版本:oops:)
 
这个论坛很棒!你们帮我省去了很多麻烦…:D: D
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 09:01 , Processed in 0.650764 second(s), 75 queries .

© 2020-2025 乐筑天下

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