QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 2990|回复: 2
收起左侧

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

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

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

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

x
如何从多个文件中提取属性块的信息??
3 O' `9 s& h* \/ j. Z我做了几个文件,其中的材料采用属性块输入,现在想进行材料汇总,需要从多个文件中提取属性块信息,各文件属性快的属性完全一致,如何实现?
发表于 2009-1-23 09:13:21 | 显示全部楼层 来自: 中国浙江宁波
使用VBA开发,利用objectdbx(免费)术,可以在打开CAD平台而不打开要查询的文件的情况下读取图纸中的信息!普通的objectdbx依赖CAD平台,不打开CAD平台的DBX技术要向autodesk公司购买;2 ?+ n& L* e& E" Z2 \
例程:
% v% D& R' U$ ~* k1 {Option Explicit! B& W* g  z, s; V1 G0 h
Dim objDbx As AxDbDocument
' G9 w' {, L' v- H) q% v3 |8 f' E-' Example of batch for listing all layers on all drawings in a directory. % C1 \9 x' ?& r/ l4 A
Private Sub ListLayers()
% j: ]- S; K* \  xSet objDbx = GetInterfaceObject("ObjectDBX.AxDbDocument"), G" j, w2 ^& v1 L) R5 _, Z1 a
Dim inDir As String
0 z, d4 _7 U: K; Z/ V  aDim elem As Object  P% h) _4 V1 d. ^
Dim filenom As String
2 J# n4 E' D5 S% w; }4 r& QDim WholeFile As String* g8 ]3 X* w* I; ~0 T
Dim newHeight As Double4 T: b7 A3 K) u" r4 K
inDir = "r:\projekt\3828\A"
/ J6 o( i$ B4 U3 m. P' T5 c' Hfilenom = Dir$(inDir & "\*.dwg")
0 D; t+ w* y$ w0 z1 oDo While filenom <> ""
% ]  E) m# c+ M3 x    ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom) E6 o1 B4 N" G. u: P
    ThisDrawing.Utility.Prompt vbCrLf & "-----------------"
) |9 R6 q: n( K: t    WholeFile = inDir & "\" & filenom; W, Y0 R) n1 C; p3 T4 B/ A  V
    objDbx.Open WholeFile  |6 V3 ]0 @  e7 y0 `6 W
    For Each elem In objDbx.Layers
& U. U5 Z& ^3 s- u  [            ThisDrawing.Utility.Prompt vbCrLf & elem.Name
8 ^$ d; h6 X( A  J0 U9 l    Next
, P( e5 ]+ [- c" z% z4 \& c    Set elem = Nothing7 n! _$ c" z, _! S) Y4 K0 Q
    objDbx.SaveAs WholeFile
$ n) n% B& H; s    filenom = Dir$
- y; I0 M2 c7 v0 H. `    ThisDrawing.Utility.Prompt vbCrLf
( ]8 }( @! ~7 J4 m% C- yLoop2 i" ^( g; _( m
End Sub
3 W: E& \$ H9 G; S
4 e( o. Y# t+ D% ]3 ^& A7 V对属性块的访问方法跟VBA访问方式相同;8 r. f. |7 W) r3 J( Y
- g) p0 a9 z' l# U
关于VLISP如何使用DBX可以到这看看:http://www.mjtd.com/a2/list.asp?id=315# I5 [6 h- S& y4 a. r8 m" @

( Q' ~& Q2 o( I, b/ F8 e4 ]6 @( k[ 本帖最后由 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 )

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