supercell 发表于 2022-7-6 07:13:45

在多段线conta内选择

你好
我试图找到一个lisp例程,它允许我使用拾取多条闭合多段线,并使用它们在其中创建对象的选择集。有几个例程,但没有一个处理圆弧、椭圆或样条曲线。
 
这是一个2007年的老帖子,想知道是否有人有时间来进步。
 
http://www.cadtutor.net/forum/showthread.php?11682-选择-objects-within-a-polyline&高亮显示=选择+多段线
 
如果有人能提供任何指导,我将不胜感激。只是澄清一下,我不能编程。感谢你能给这个人任何时间。
 
非常感谢。
瑞克

Tharwat 发表于 2022-7-6 07:19:09

试试这个。。。。
 

(if (setq adds (ssadd)
         ss   (ssget '((0 . "*POLYLINE") (-4 . "&=") (70 . 1)))
   )
(repeat (setq i (sslength ss))
   (foreach p (entget (ssname ss (setq i (1- i))))
   (if (eq (car p) 10)
       (setq l (cons (list (cadr p) (caddr p)) l))
   )
   )
   (if (setq s (ssget "_WP" l))
   (repeat (setq in (sslength s)) (ssadd (ssname s (setq in (1- in))) adds))
   )
   (setq l nil)
)
)
(sssetfirst nil adds)

MSasu 发表于 2022-7-6 07:24:01

@Tharwat:起初我也这么想,但在检查了OP链接的前一个线程后,我相信他/她实际上正在寻找一个更高级的解决方案,一个允许使用带圆弧段的多段线,可能还有椭圆和闭合样条线的解决方案。有一个示例图形将非常有用。

Lee Mac 发表于 2022-7-6 07:25:55

非常简单的方法:
 
测试功能:
 
否则,使用我的实体到点列表函数通过点列表近似对象。

supercell 发表于 2022-7-6 07:31:15

哇!
 
你们能用这么少的代码做什么,我一直都很惊讶。非常优雅。或者我应该说,如果我知道这一切是如何运作的,它看起来非常优雅。只需说它对多段线、圆弧、圆和样条曲线有效。谢谢大家的及时回复。我已经签约,并将尽我所能帮助初学者。我想这就是一切。
 
谢谢
瑞克

supercell 发表于 2022-7-6 07:32:26

还有一件事。是否可以使用撇号将此例程用作透明命令。我试过了,但似乎不起作用。我想在制作积木时使用它。
 
再次感谢。

MSasu 发表于 2022-7-6 07:36:11

只需调用Lee的命令,在创建要从中构建块的项的选择集后,调用block命令。请确保PICKFIRST系统变量设置为1。

MSasu 发表于 2022-7-6 07:41:31

为了透明地使用选择工具,您需要稍微调整代码,以确保返回预期结果:
3

MSasu 发表于 2022-7-6 07:44:51

此外,您可以调整代码,使其既能按李的意图使用,又能透明地使用。
4

irneb 发表于 2022-7-6 07:48:27

我不确定,但我的会将选择集发送到激活命令,否则先执行SSSET。无论如何,我以前就是这样做的——允许在命令结束时仍然发出princ。
页: [1] 2
查看完整版本: 在多段线conta内选择