搜索嵌入块i
你好是否有lisp显示或列出包含嵌入块的块。
嵌入必须在块中,但不知何故不可见(层开/关、视觉状态等)
示例:我有一个包含40多个块的图形,我想知道哪个块包含块“BIS”。问题是,该图纸是由第三方公司创建的。我们知道使用了块(BIS)。全部清除后,该块仍在插入块列表中。
谢谢 你能把图纸贴出来吗? 我们找到了嵌入的块。它处于可视状态。我们用lisp WBLOCKALL保存了所有块,并打开了所有块。它就在那里。这是一种找到嵌入块的方法,另一种方法是在blockeditor中打开块并放大,然后用图案填充填充。但是有没有其他方法可以用lisp找到它呢?,节省了很多时间。
Jaap M。
BMELDER。图纸
我无法打开你的文件(仍然使用R2009)
试试这个:
(defun pBe:searchme (blk / adoc ss blk_ent )
(vl-load-com)
(foreach blks (mapcar 'cadr (ssnamex (ssget "_x" '((0 . "INSERT")))))
(setq blk_ent (tblobjname "block" (setq ss
(vla-get-effectivename (vlax-ename->vla-object blks)))))
(while (setq blk_ent
(entnext blk_ent))
(if (and
(eq (cdr (assoc 0 (entget blk_ent))) "INSERT")
(eq (strcase (cdr (assoc 2 (entget blk_ent)))) (strcase blk))
)
(princ (strcat "\nBlock " blk " found inside " ss ))
)
)
)
(princ)
)
用法:
命令:(PBE:SEARCHME“EmbeddedBlcokName”)
在此_块内找到块EmbeddedBlcokName
在该_块内找到的块EmbeddedBlcokName
仅当块仅嵌套一次时,它才有效,但可以轻松修改以查找块内的嵌套块。
希望这有帮助 一些乐趣:
(defun c:BlockHierarchy ( / _blockhierarchy blocks ) (vl-load-com)
;; © Lee Mac 2011
(defun _blockhierarchy ( block indent / _name )
(defun _name ( obj )
(vlax-get-property obj
(if (vlax-property-available-p obj 'effectivename) 'effectivename 'name)
)
)
(princ "\n") (repeat indent (princ " ")) (princ "|--> ")
(princ (_name block))
(vlax-for obj block
(if (eq "AcDbBlockReference" (vla-get-ObjectName obj))
(_blockhierarchy (vla-item blocks (_name obj)) (1+ indent))
)
)
)
(setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
(vlax-for block blocks
(if
(and
(eq :vlax-false (vla-get-isXref block))
(eq :vlax-false (vla-get-isLayout block))
)
(_blockhierarchy block 1)
)
)
(princ)
)
是的,是的,
哇,李,你又做了一次。
储罐,
Jaap公司 不客气Jaap-祝你愉快
不错,李
页:
[1]