QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3005|回复: 2
收起左侧

[求助] 如何从多个文件中提取属性块的信息??

[复制链接]
发表于 2009-1-23 07:07:17 | 显示全部楼层 |阅读模式 来自: 中国辽宁鞍山

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何从多个文件中提取属性块的信息??
/ G$ N( j3 _' _2 d& e' O% b5 m! ~5 J我做了几个文件,其中的材料采用属性块输入,现在想进行材料汇总,需要从多个文件中提取属性块信息,各文件属性快的属性完全一致,如何实现?
发表于 2009-1-23 09:13:21 | 显示全部楼层 来自: 中国浙江宁波
使用VBA开发,利用objectdbx(免费)术,可以在打开CAD平台而不打开要查询的文件的情况下读取图纸中的信息!普通的objectdbx依赖CAD平台,不打开CAD平台的DBX技术要向autodesk公司购买;: g( C' j. N0 `2 W" f8 T4 A
例程:
' ?  x: y- _, G& L% d  b0 ~Option Explicit
" T9 `3 t. E7 x0 QDim objDbx As AxDbDocument
  w- F: i3 {, H- [' E-' Example of batch for listing all layers on all drawings in a directory.
! D1 U  @9 @* L- v4 a" e9 D& _Private Sub ListLayers()3 C  @! m+ Y8 F! m2 E8 C
Set objDbx = GetInterfaceObject("ObjectDBX.AxDbDocument"), w0 g% m4 v; A+ V8 o( n
Dim inDir As String  D1 S' I6 G/ ^3 I  i
Dim elem As Object4 L9 Y0 J, @1 ?# L2 A+ H9 H
Dim filenom As String* {. ^# I/ O. c' i% o- e: O
Dim WholeFile As String
7 N4 S2 p' ~2 x) p& U& h. gDim newHeight As Double
  K) ]3 `6 X- @$ u! ?inDir = "r:\projekt\3828\A"
0 ]; G( N% n6 Qfilenom = Dir$(inDir & "\*.dwg")
9 d  Y& D0 t; J: x- ^# }Do While filenom <> ""
/ _4 S# `; D+ y6 w    ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom! Q* y# M' h& a8 }/ D; U7 A* U) E
    ThisDrawing.Utility.Prompt vbCrLf & "-----------------"
# i6 U' }9 z6 u& D7 i7 I7 W4 v0 ]    WholeFile = inDir & "\" & filenom8 ~; t6 [- o- B5 f6 o; w9 s
    objDbx.Open WholeFile$ Q4 w# j$ b/ T0 Z* L9 k3 S
    For Each elem In objDbx.Layers! U5 b: A: f% {6 m' }
            ThisDrawing.Utility.Prompt vbCrLf & elem.Name
) g; e  m( R& M5 w3 L0 W# e    Next9 x: j6 X# I$ }4 d, s0 p3 ~
    Set elem = Nothing
4 T$ B6 e& F( i+ k& W    objDbx.SaveAs WholeFile$ C1 J! Q  v8 _  n9 E; r# p+ G0 k
    filenom = Dir$$ h7 ^$ O4 n" n. J# [2 e1 h3 N
    ThisDrawing.Utility.Prompt vbCrLf
& `3 ^& c) O0 [+ ?( p" y, bLoop
( {: D  O6 y" _% [End Sub
/ [* I# j5 I; r  N  v& V  D
9 B! M3 i2 ^* y4 a# W1 G' |对属性块的访问方法跟VBA访问方式相同;- Y# v, h, d  ^3 U2 [# C% D1 d

3 Z3 `/ R# q9 e* y关于VLISP如何使用DBX可以到这看看:http://www.mjtd.com/a2/list.asp?id=3156 P7 A4 W  X6 [; }4 ~

2 d! y" Y# O7 h; U: ~8 l[ 本帖最后由 sealive_leafage 于 2009-1-23 09:23 编辑 ]

评分

参与人数 1三维币 +8 收起 理由
woaishuijia + 8 应助

查看全部评分

 楼主| 发表于 2009-1-23 20:04:43 | 显示全部楼层 来自: 中国辽宁鞍山
谢谢sealive_leafage ,看来您是VBA的高手,如果采LISP如何解决这个问题?我用LSP比用VBA熟悉一些,请您帮忙想想办法,谢谢
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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