乐筑天下

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

[编程交流] 搜索嵌入块i

[复制链接]

13

主题

46

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 09:47:02 | 显示全部楼层 |阅读模式
你好
是否有lisp显示或列出包含嵌入块的块。
嵌入必须在块中,但不知何故不可见(层开/关、视觉状态等)
示例:我有一个包含40多个块的图形,我想知道哪个块包含块“BIS”。问题是,该图纸是由第三方公司创建的。我们知道使用了块(BIS)。全部清除后,该块仍在插入块列表中。
 
谢谢
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 10:03:37 | 显示全部楼层
你能把图纸贴出来吗?
回复

使用道具 举报

13

主题

46

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 10:08:10 | 显示全部楼层
我们找到了嵌入的块。它处于可视状态。我们用lisp WBLOCKALL保存了所有块,并打开了所有块。它就在那里。这是一种找到嵌入块的方法,另一种方法是在blockeditor中打开块并放大,然后用图案填充填充。但是有没有其他方法可以用lisp找到它呢?,节省了很多时间。
 
Jaap M。
BMELDER。图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 10:15:37 | 显示全部楼层
 
我无法打开你的文件(仍然使用R2009)
 
试试这个:
 
  1. (defun pBe:searchme (blk / adoc ss blk_ent )
  2.   (vl-load-com)
  3.   (foreach blks (mapcar 'cadr (ssnamex (ssget "_x" '((0 . "INSERT")))))
  4. (setq blk_ent (tblobjname "block" (setq ss
  5.                                (vla-get-effectivename (vlax-ename->vla-object blks)))))
  6. (while (setq blk_ent
  7.                          (entnext blk_ent))
  8.    (if (and
  9.                         (eq (cdr (assoc 0 (entget blk_ent))) "INSERT")
  10.    (eq (strcase (cdr (assoc 2 (entget blk_ent)))) (strcase blk))
  11.                         )
  12.                    (princ (strcat "\nBlock " blk " found inside " ss ))
  13.                     )
  14.                  )
  15. )
  16. (princ)
  17. )

用法:
命令:(PBE:SEARCHME“EmbeddedBlcokName”)
 
在此_块内找到块EmbeddedBlcokName
在该_块内找到的块EmbeddedBlcokName
 
仅当块仅嵌套一次时,它才有效,但可以轻松修改以查找块内的嵌套块。
 
 
希望这有帮助
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:26:02 | 显示全部楼层
一些乐趣:
 
  1. (defun c:BlockHierarchy ( / _blockhierarchy blocks ) (vl-load-com)
  2. ;; © Lee Mac 2011
  3. (defun _blockhierarchy ( block indent / _name )
  4.    (defun _name ( obj )
  5.      (vlax-get-property obj
  6.        (if (vlax-property-available-p obj 'effectivename) 'effectivename 'name)
  7.      )
  8.    )
  9.    
  10.    (princ "\n") (repeat indent (princ "    ")) (princ "|--> ")
  11.    (princ (_name block))
  12.    (vlax-for obj block
  13.      (if (eq "AcDbBlockReference" (vla-get-ObjectName obj))
  14.        (_blockhierarchy (vla-item blocks (_name obj)) (1+ indent))
  15.      )
  16.    )
  17. )
  18. (setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
  19. (vlax-for block blocks
  20.    (if
  21.      (and
  22.        (eq :vlax-false (vla-get-isXref block))
  23.        (eq :vlax-false (vla-get-isLayout block))
  24.      )
  25.      (_blockhierarchy block 1)
  26.    )
  27. )
  28. (princ)
  29. )
回复

使用道具 举报

13

主题

46

帖子

33

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 10:35:58 | 显示全部楼层
 
 
 
 
 
是的,是的,
哇,李,你又做了一次。
 
 
储罐,
Jaap公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:39:36 | 显示全部楼层
不客气Jaap-祝你愉快
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 10:47:41 | 显示全部楼层
 
不错,李
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:02 , Processed in 0.660569 second(s), 68 queries .

© 2020-2025 乐筑天下

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