求教!以块名获得文件中所有同名块集合
已知块名、如何获取所有同名块的vla对象集合
注明一下,已知块名的同名块、有可能会嵌套在其他块里面
求教一下各位大神!
有没有什么好的办法可以获取
xiaocainiao 发表于 2024-10-15 20:49
说实话遍历全图我也不会、我只知道vla-get-PaperSpace和vla-get-ModelSpace这两个函数、不知 ...
http://bbs.mjtd.com/thread-191287-1-1.html (progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))
(defun c:tt (/ blk blks)
(@:prompt (strcat "选择一个块,然后选中选定范围或全部的同名块。"))
(prompt"请选择一个块:")
(while (null(and (setq blk (ssget "_:S:E" '((0 . "insert"))))
(setq blk (ssname blk 0))))
(@:prompt "\n未选中块,请选择一个块:"))
(@:prompt "请框选范围.如果没有给定范围,则选中所有同名块.")
(if (null(setq blks (pickset:to-list (ssget '((0 . "INSERT"))))))
(setq blks (pickset:to-list (ssget "x" '((0 . "INSERT"))))))
(setq blks (vl-remove-if '(lambda (x) (/= (block:get-effectivename blk)
(block:get-effectivename x)))
blks))
(sssetfirst nil (pickset:from-entlist blks))
(princ)) 只能遍历全图 kozmosovia 发表于 2024-10-15 20:44
只能遍历全图
说实话遍历全图我也不会、我只知道vla-get-PaperSpace和vla-get-ModelSpace这两个函数、不知道有没有其他函数能够直接获取当前文件内的所有对象 (setq ss(ssget(list'(0 . "insert")(cons 2 name)))) xyp1964 发表于 2024-10-15 21:01
(setq ss(ssget(list'(0 . "insert")(cons 2 name))))
这种的不行、这个块有些是动态块或者匿名块、而且涉及到其他块里面还有这个块的情况 kozmosovia 发表于 2024-10-15 21:12
http://bbs.mjtd.com/thread-191287-1-1.html
谢谢大神、我试一下 好程序 ,谢谢收藏了。 好程序 ,谢谢收藏了:lol