QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
如何从多个文件中提取属性块的信息??
2 b. V' F& [% k$ M) O我做了几个文件,其中的材料采用属性块输入,现在想进行材料汇总,需要从多个文件中提取属性块信息,各文件属性快的属性完全一致,如何实现?
发表于 2009-1-23 09:13:21 | 显示全部楼层 来自: 中国浙江宁波
使用VBA开发,利用objectdbx(免费)术,可以在打开CAD平台而不打开要查询的文件的情况下读取图纸中的信息!普通的objectdbx依赖CAD平台,不打开CAD平台的DBX技术要向autodesk公司购买;" l0 H% B( y( o4 F
例程:- h: J: v% l0 W9 K* q
Option Explicit  @, \4 {# ?* R3 R
Dim objDbx As AxDbDocument, P8 {! y4 ?& P8 ~" X* p
' E-' Example of batch for listing all layers on all drawings in a directory. 4 l' K1 ~% m/ t  Z6 Q* n- `
Private Sub ListLayers()
+ Z# v; m& y& C' h5 U0 DSet objDbx = GetInterfaceObject("ObjectDBX.AxDbDocument")
2 k8 l0 _2 D% ADim inDir As String
: r/ H1 j$ \  q: u! ^Dim elem As Object& z- r- P4 y& }
Dim filenom As String9 E: j% N9 _2 k! U. A- \
Dim WholeFile As String
! o( L, N, [0 ~  A1 b( g5 lDim newHeight As Double
& }; s  V" A" O9 _inDir = "r:\projekt\3828\A"
# m6 ?3 X9 u* P/ E- C) `+ N1 f+ z. gfilenom = Dir$(inDir & "\*.dwg")
7 r1 c3 M! I7 sDo While filenom <> ""
- e: m2 F7 S* C" B5 {    ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom2 e2 A6 `9 I2 X, m
    ThisDrawing.Utility.Prompt vbCrLf & "-----------------"9 n% f: d# J, l% n* }# Q
    WholeFile = inDir & "\" & filenom; q$ h/ `/ u( e! A
    objDbx.Open WholeFile
1 _# g- @+ E  U* w' E    For Each elem In objDbx.Layers
* P5 [1 k, ^( f/ T/ U9 }            ThisDrawing.Utility.Prompt vbCrLf & elem.Name
8 b- h6 v. ~3 U5 ^  D. Z9 M    Next6 t, C  C& `8 g+ ^
    Set elem = Nothing$ S; b  p3 l( t. |+ n/ Z: C" R0 ~
    objDbx.SaveAs WholeFile4 D4 z, U. G* K" @  d
    filenom = Dir$
% B8 Y& r- s: S- J- s3 Y    ThisDrawing.Utility.Prompt vbCrLf: G& c2 P! u* o: }# O; b6 ?6 M3 d5 ~
Loop+ P( [# i4 ^) l9 z$ Y% c8 C. W" n9 N
End Sub
. E; v. F/ A4 g: z
( O/ Z8 |+ _6 x; N, ^! g8 Z) O" X对属性块的访问方法跟VBA访问方式相同;
) a: [& }$ t5 R# U( ^5 A
1 J9 s; G1 ~1 H1 v$ T关于VLISP如何使用DBX可以到这看看:http://www.mjtd.com/a2/list.asp?id=315
8 |+ i3 _+ u1 ^/ `  V
1 B. {; P. p1 _3 f[ 本帖最后由 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 )

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