明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 887|回复: 6

[提问] 请问各位大师,如何在不打开dwg文件的状态下得到该文件中全部块名!

[复制链接]
发表于 2018-4-2 03:10:35 | 显示全部楼层 |阅读模式
请问各位大师,如何在不打开dwg文件的状态下得到该文件中全部块名!

(defun mn:get-dwgfile-blockname ( dwgfile / *acad* blocks dbxDoc block-object block-lst x )
  (setq *acad* (vlax-get-acad-object))
  (setq blocks (vla-get-blocks (vla-get-ActiveDocument *acad*)))
  (setq dbxDoc (vla-GetInterfaceObject *acad* (strcat "ObjectDBX.AxDbDocument." (itoa (atoi (getvar "AcadVer" ))))))
  (vla-open dbxDoc dwgfile)
  (setq block-lst nil)
  (setq block-object (vla-get-blocks dbxDoc))
  (vlax-for x block-object
       (setq block-lst (append block-lst (list (vla-get-name x))))
    )
  block-lst
)

这个是我在论坛里研究了一晚上,东拼西凑出来的,基本上能满足我的要求但是看看返回值前面总是出现的四个是什么鬼!请问有什么更好的方法,让前面4个不出现!!多谢了!!!
返回值:("*Model_Space" "*Paper_Space" "*Paper_Space0" "_ArchTick" "aaa" "建筑1" "建筑2" "建筑4" )

评分

参与人数 1明经币 +1 收起 理由
xyp1964 + 1 赞一个!

查看全部评分

发表于 2018-4-2 10:12:49 | 显示全部楼层
前面三个是cad自带的,是模型空间和图纸空间的块记录,第四个是标注的箭头符号的块,理论上除了前三个,后面的都是可以插入的块实体定义。
发表于 2018-4-2 10:30:40 | 显示全部楼层
  1. (setq block-lst nil)(vlax-for x block-object
  2.   (setq blkname(vla-get-name x))
  3.        (if(/= (substr blkname 1 1) "*")(setq block-lst (append block-lst (list blkname))))
  4.     )block-lst
 楼主| 发表于 2018-4-2 17:46:18 | 显示全部楼层

多谢!!貌似_ArchTick块。在新建的图中就存在!!是不是安装天正就会出现这个!!!还有一个块_DIMX可以清理掉,但_ArchTick块清理不掉!!不知是为什么??
发表于 2018-4-2 21:37:44 | 显示全部楼层
这个是标注的那个建筑箭头符号。。 除非你没有标注。以及样式。。
发表于 2018-4-4 17:41:49 | 显示全部楼层
本帖最后由 xyp1964 于 2018-4-4 17:43 编辑

  1. (defun DbxGetBlocks (dwgfile / dbxDoc lst x)
  2.   (setq  dbxDoc (vla-GetInterfaceObject (vlax-get-acad-object) (strcat "ObjectDBX.AxDbDocument." (itoa (atoi (getvar "AcadVer"))))))
  3.   (vla-open dbxDoc dwgfile)
  4.   (vlax-for x (vla-get-blocks dbxDoc)(setq lst (cons (vla-get-name x) lst)))
  5.   (vl-remove-if  '(lambda (x) (member x '("*Model_Space" "*Paper_Space" "*Paper_Space0"))) (reverse lst)
  6.   )
  7. )
 楼主| 发表于 2018-4-10 17:11:00 | 显示全部楼层

多谢!!多谢!很多函数还是不理解如何使用!只能慢慢摸索,多谢大师的代码!!!学习了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 17:39 , Processed in 0.182534 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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