获取乘法的所有名称
你好我只是想知道是否有可能创建一个可以。。好的,好的:
我想选择一组块。
对于SS中的每个块,在块集合中查找名称。
如果块具有属性“count”(即嵌套)
获取该块中的所有名称。
如果其中一个块具有属性“count”
获取该块中的所有名称。。。
等等等等。。。
看起来应该很容易,但我不知道如何使其防故障。我也不想列出多个相同命名的项目。基本上我只想知道每个区块内的所有区块。
这件事我已经写了好几次了,但我不确定该怎么做。这看起来像是一个重新草书式的交易,但我想不出来。
感谢您的帮助。谢谢
请张贴代码,这样我们就可以知道你做错了什么。
我只想提一下,如果您试图将一个块嵌套在一个块中,并希望从嵌套的块中获取信息,那么您就是在浪费时间。不确定这是否是你正在做的。你提到的问题似乎不清楚。
你能详细说明你到底想做什么吗?
还是我误解了你?
请详细解释。
谢谢
秃鹰 我认为这可能有效,但我认为还有更好的惯例:
(defun GetObj (blk / bObj lst)
(if
(and
(setq lst (cons blk lst))
(not
(vl-catch-all-error-p
(vl-catch-all-apply
(function
(lambda ( )
(setq bObj
(vla-item
(vla-get-blocks
(vla-get-ActiveDocument
(vlax-get-acad-object))) blk))))))))
(vlax-for Obj bObj
(and (eq "AcDbBlockReference"
(vla-get-ObjectName Obj))
(setq lst (cons (vla-get-Name Obj) lst))
(getObj (vla-get-Name Obj)))))
lst)
(vl-load-com)
李,
只是好奇,那代码是做什么的?
这段代码是用来提取动态块的dxf信息吗?
嗨,秃鹰,
代码需要提供一个块名,如果它可以在块集合中找到特定的块,它将遍历块对象集合并搜索构成块的任何块引用(即嵌套块),如果它找到一个块引用,那么它将获得其名称并递归地操作该新名称,同时构建一个包含所有找到的名称的列表。不确定它是否有效,只是一个“理论”帖子。
只要注意使用递归循环时没有达到堆栈限制。我倾向于只在小任务中使用它们,因为堆栈限制不太高,有时很容易达到。
这里有一些关于递归编程的重要信息。
李
那个网站太离谱了。但如果能做到这一点,那就很有趣了。不确定值在嵌套中的位置。也许我在这里学到了一些新东西。 我想我理解这个要求:
nl包含点对原子的关联列表
(block\u name.number\u of_nested\u direct\u instances\u found)
这不计算嵌套深度或图形中嵌套引用的总数-大卫
可以使用“块”集合从嵌套块中获取信息,该集合包含图形中的所有块,还包含有关块是否在该块内的信息。
假设我有一个区块作为一个部分。在那部分里面还有几个街区。其中一些区块可能有一两个区块。所以我想要一个例程,当我选择主要部分块时,它可以得到名称。。然后在块集合中查找名称,并遍历驻留在该主块内某处的每个名称的块集合。
这是可以做到的,只是不好看。。特别是如果你不知道嵌套了多少块,你想无论如何都得到它们。
页:
[1]
2