QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 2987|回复: 2
收起左侧

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

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

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

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

x
如何从多个文件中提取属性块的信息??
4 |. c9 U+ L$ ?2 `( Q8 \我做了几个文件,其中的材料采用属性块输入,现在想进行材料汇总,需要从多个文件中提取属性块信息,各文件属性快的属性完全一致,如何实现?
发表于 2009-1-23 09:13:21 | 显示全部楼层 来自: 中国浙江宁波
使用VBA开发,利用objectdbx(免费)术,可以在打开CAD平台而不打开要查询的文件的情况下读取图纸中的信息!普通的objectdbx依赖CAD平台,不打开CAD平台的DBX技术要向autodesk公司购买;/ X+ W  g) N4 E! g$ ]* t7 |4 R
例程:
1 t  q- k( k3 l0 z. M$ ]8 F; ]. t, tOption Explicit  Q" ~2 @. b  w) ^
Dim objDbx As AxDbDocument/ @$ o7 r5 T! Y. M2 ^( L  ]! G
' E-' Example of batch for listing all layers on all drawings in a directory. % {9 ]( h6 n9 V8 b) H
Private Sub ListLayers()* t/ T2 J3 F- ~# j# D
Set objDbx = GetInterfaceObject("ObjectDBX.AxDbDocument")
% q; k4 q# ~( J' ?. K) s3 [* {Dim inDir As String$ `" W: ], J8 z4 O8 A0 t
Dim elem As Object
$ [  ?/ \5 y3 L( ~( K7 S. @/ WDim filenom As String
* l+ f5 @- Y+ a4 vDim WholeFile As String/ e* N' I, p" W
Dim newHeight As Double3 t1 \6 F' j1 F0 _2 G( M
inDir = "r:\projekt\3828\A"
) `/ m# E. l8 p) U! g3 Xfilenom = Dir$(inDir & "\*.dwg")$ ]) E$ D# a' r  Y; V
Do While filenom <> ""
) V0 N4 ?# |2 S' D8 O( p    ThisDrawing.Utility.Prompt vbCrLf & "File: " & filenom2 ^% @* H9 s$ X1 `( ?2 U9 F
    ThisDrawing.Utility.Prompt vbCrLf & "-----------------"7 a- T$ K+ @5 r" E
    WholeFile = inDir & "\" & filenom
4 j/ v( E+ L  Z8 J7 \    objDbx.Open WholeFile+ {+ @2 l; B' b, O: a9 o  R
    For Each elem In objDbx.Layers
2 I; s: ~2 j- \- u            ThisDrawing.Utility.Prompt vbCrLf & elem.Name2 Z9 ~8 |0 z/ S  j1 \) S8 N
    Next; e. ?2 o1 f3 I, t" j
    Set elem = Nothing
, I0 U  U- U4 ^7 w# J, Z1 O    objDbx.SaveAs WholeFile; p; O0 T2 J" @% s5 a- w- {/ t
    filenom = Dir$
2 M9 Z+ P( |* q" I* L    ThisDrawing.Utility.Prompt vbCrLf( I4 G* A# \/ {' c
Loop
; a5 e; ~9 y; }/ d& J& q2 VEnd Sub+ ?4 M2 v/ O( @% ^+ E* \1 x

: e; C& p; r5 F& m对属性块的访问方法跟VBA访问方式相同;- n4 y) }% a' }8 P
/ T# Y, ]% l2 U# E3 c2 M
关于VLISP如何使用DBX可以到这看看:http://www.mjtd.com/a2/list.asp?id=315  i6 p: G# v# ^& N4 D

; s4 Y" y$ s4 ]- a4 P* p[ 本帖最后由 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 )

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