明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 743|回复: 1

一种获取图中及外部引用中指定块名的方法

[复制链接]
发表于 2022-6-23 10:23:58 | 显示全部楼层 |阅读模式
本帖最后由 wharan 于 2022-6-23 10:26 编辑

为了提取图中图标信息,借用了论坛中大侠的某些代码:自动选取图中及外部引用中的所有图标块,返回该块的图元名列表。
  1. ;; [功能] 返回外部引用中名为Bname的图块实体列表
  2. (defun HH:Xrefblk (Bname      /         bock-name
  3.        ss        t-get-bock-all-name
  4.        t-get-lst-unique
  5.       )
  6.   ;;说明:删除表里的重复元素
  7.   ;;参数:l:表 [list]
  8.   ;;返回:表 [list]
  9.   ;;用法T-get-lst-Unique '(1 2 5 8 2 3 2 5 2 6))-->'(1 2 5 8 3 6)
  10.   (defun T-get-lst-Unique (lst / s-car new)
  11.     (while lst
  12.       (setq s-car (car lst))
  13.       (if (vl-position s-car new)
  14.   nil
  15.   (setq new (cons s-car new))
  16.       )
  17.       (setq lst (cdr lst))
  18.     )
  19.     (setq new (reverse new))
  20.   )

  21.   
  22.   ;;返回:图元名表 [list]
  23.   (defun T-get-bock-all-name (bock-name / dxf last-name name)
  24.     (setq name-lst nil)
  25.     (setq
  26.       last-name
  27.        (tblobjname "block" (cdr (assoc 2 (entget bock-name))))
  28.     )
  29.     (while (setq last-name (entnext last-name))
  30.       (setq dxf (entget last-name))
  31.       (setq name (cdr (assoc -1 dxf)))
  32.       (if (and (= (cdr (assoc 0 dxf)) "INSERT")
  33.          (wcmatch (cdr (assoc 2 dxf)) Bname)
  34.     )

  35.   (setq name-lst (cons name name-lst))
  36.       )
  37.     )
  38.     (setq name-lst (T-get-lst-Unique name-lst))
  39.     name-lst
  40.   )
  41.   (princ "自动选择目标")
  42.   (if
  43.     (setq ss (ssget "A"
  44.         (list (cons 0 "insert")

  45.         )
  46.        )
  47.     )

  48.      (progn
  49.        (while (setq bock-name (ssname ss 0))
  50.    (setq
  51.      name-lst (append name-lst (T-get-bock-all-name bock-name))
  52.    )
  53.    (setq ss (ssdel bock-name ss))
  54.        )
  55.      )
  56.   )
  57. )


发表于 2022-6-23 13:15:10 | 显示全部楼层
感谢大佬分享  收藏备用啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 06:36 , Processed in 0.150288 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表