CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
12
返回列表 发新帖
楼主: gysheng

cad统计材料表

[复制链接]
发表于 2008-10-17 16:08 | 显示全部楼层
下载不了了????
发表于 2008-10-17 16:10 | 显示全部楼层
怎么下载啊,为什么下不了?
发表于 2008-10-20 15:19 | 显示全部楼层
不知道是做什么用的
发表于 2008-12-10 13:25 | 显示全部楼层

顶起

请用过的同志说明一下怎么用
发表于 2009-1-6 13:04 | 显示全部楼层
Sub list()
9 p* E% E0 q3 ?) K- U# nDim work As Workspace , U7 P& u: k* h# W/ H( L7 y9 W
Dim new As Database
" S4 |$ S% \, F+ H  X  }Dim elem As Object
& D: C& Z1 y4 q  e, N) S8 jDim rs As Recordset
/ q% I( b( K! L5 b9 @3 b6 D' Y1 mDim RowNum As Integer
2 m( m' h% f* t" dSet work = DBEngine.Workspaces(0)
( N+ U& }% ]3 r; n2 qDim dbs As Database
7 Y' W" _' y( mDim tdfNew As TableDef
$ p# c# k/ ^; n% D" ?Dim tdf As TableDef + N2 b+ u4 u1 u
Dim dbsname As String - @1 ^  t3 A5 D0 j9 c+ i, m
Dim array1 As Variant 4 W7 F8 N) m) _( x- Y: l! l
Dim array2 As Variant ‘声明所需的变量及类型 8 ?* O$ C' `% I1 t
dbsname = “D:\材料表.mdb” & M" V) v' m; L. B
‘声明Access数据库写到哪一个文件 6 I1 J5 `! s* ~3 W
On Error Resume Next ) `' B" H1 M6 T$ q
Set dbs = work.CreateDatabase(dbsname, _ , a, o8 D+ ?, o" L' K& N6 Q  Y
dbLangGeneral) , Y* l0 A7 V* o; W% i+ c
If Err Then 8 I' G/ C* {  u- Q3 S* M5 v& A
Kill (dbsname)
2 }6 ~3 Q6 k  }0 l/ B/ d‘发现要写入的Access数据库文件已存在就将其删除
1 j  ~, v  p( s5 r) K  o& nSet dbs = work.CreateDatabase(dbsname, _
4 q' _4 m' P6 ]dbLangGeneral)
# |# c5 r# h' ~9 pEnd If ' z8 d" [1 I# A) f" @+ p* ^  S; ?6 Z
Set tdfNew = dbs.CreateTableDef
/ Z) ]  Z. n; a/ U! B6 z(“电气 _材料明细表”)
' I6 j! ^( H) [* t1 w* m1 b$ W3 a! V‘建立一个名为电气材料明细表的表 ; }' y  V8 y1 a$ i6 x' R
RowNum = 0 % t7 }. [* c9 X3 I  n/ `
Dim Header As Boolean 1 e* u7 o/ p6 X4 Z  }6 i" i# V# a
Header = False - U' `' b- i- I. g# f
For Each elem In ThisDrawing.ModelSpace 1 ]: b! p" T$ T; g- r- }
‘在CAD模型空间,查找所有图形对象 ! P. ]4 B6 F9 B0 L
With elem
$ d6 r' f) a& BIf StrComp(.EntityName,_ ) s# {, g7 J' k
“AcDbBlockReference”, 1) = 0 Then ' u9 I* l( B9 c; [: s
If .HasAttributes Then - z4 t# ?" w9 S& H
array1 = .GetAttributes
/ v2 v4 v6 d# m% w$ I- ]: |2 Varray2 = .GetConstantAttributes
: R3 D" C% v$ X+ c‘设置array1指向图形对象的属性
' w" I; r: C+ |; E0 o. U- f3 V, h‘设置array2指向图形对象的固定属性 4 E" w3 k+ W0 u8 n5 @6 l
For Count = LBound(array2) To _
* F0 G4 q* E+ c# a8 xUBound(array2)
  x$ E) Y" E* Y: o8 E! oIf Header = False Then 9 C2 R/ S; h4 r  ?
If StrComp(array2(Count).EntityName, _
8 Q8 Q5 t' g, h, ^3 |+ ]4 h“AcDbAttributeDefinition”, 1) = 0 Then
+ b: C( C6 _  H$ ~* JtdfNew.Fields.AppendtdfNew._ : u1 M' }2 m: B) i4 \
CreateField(array2(Count).TagString, dbText) 8 Z. D; w% q# O1 J6 g6 s
End If
4 _" w- g& Z8 F" K+ r/ [$ r‘读出属性值读出,作为Access数据库表的标题
/ c! I. J: y8 R  U6 BEnd If & t; Z2 n8 j/ ?2 ~0 }8 w6 ^* p1 m
Next Count 1 n8 u3 F% N6 H' s
For Count = LBound(array1) To _
. G4 y( ]" x( z- c; d4 I% J; EUBound(array1)
- _0 u' o1 W7 w+ ?If Header = False Then
: s7 j1 L& k+ C0 i6 {9 r! b- SIf StrComp(array1(Count).EntityName, _ 4 k5 z$ s0 _' p% Y9 H# a7 d
“AcDbAttribute”, 1) = 0 Then 4 k9 v3 _. a7 O
tdfNew.Fields.Append tdfNew. _ # k5 Y* X4 L" R
CreateField(array1(Count).TagString, dbText) ' t' P: G* K7 x" H* E3 `0 r
End If
0 Q  h) c. _2 r5 B) q& }End If
( u; M# k+ }% i5 U4 KNext Count
8 q1 ~# Y" ~! X( yIf Header = False Then 9 V1 {  I4 V! n" Q# d
dbs.TableDefs.Append tdfNew
% o  E2 d) A9 K  M: z' {0 x- rSet rs = dbs.OpenRecordset
$ y% J  m9 P! K. X& c' P(“电气材料 _明细表”, dbOpenTable) ‘打开记录
4 _" ^% t& U9 n' U: }End If
3 ^2 r& ]6 G: c* x9 S# g: r- N9 j+ dRowNum = RowNum + 1
8 C/ f; S6 d( H1 A" frs.AddNew ‘增加一笔新记录 3 D# x4 n7 ^; M: W) @4 x0 f
For Count = LBound(array2) _ / a( z. q  o) c# x/ T
To UBound(array2)
8 v  U* F% p( @% R9 n& ers(Count).Value = array2(Count).TextString
. ]% O% M2 W- A& z; u7 S2 t2 f) `Next Count ‘读固定属性值 4 C; h4 A: @0 u2 Q
For Count = LBound(array1) To _ 7 y4 j5 f/ |3 A
UBound(array1) " ^; c! P* S) @$ P$ M8 _/ }8 x
rs(UBound(array2) + Count + 1).Value = _ 6 }/ C; F. ]9 D3 @. ?9 S
array1(Count).TextString " p/ t* ~8 ^1 e5 M' q
Next Count ‘读输入属性值 / ]) E9 \. U- m/ G: x+ F
rs.Update ‘增加新记录修改结束 * t# B2 q, P' v9 `+ `9 b3 l. o
Header = True ( B: O. N& Q3 C4 B" l; `3 H
End If
0 f9 T/ a/ Z* b& z3 lEnd If
( r% v& e4 f* s- A* S, A; ?& @+ PEnd With
$ E4 G& B- M' Y* C, O$ C& ONext elem 3 E8 L) f' V6 C$ z, c( C8 y
rs. Close ‘关闭记录,释放资源 1 S- I2 a) X5 @+ ~) I! V, x# p, j
dbs.Close ‘关闭数据库,释放资源
- L1 \0 ?* I* `) {( nEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot" C! y9 q1 |4 J' `4 Q
真是太好了
* k+ E) C( [3 N3 z: V這就是我要的 ^^
发表于 2010-5-11 23:13 | 显示全部楼层
好用吗?有谁下载了?
发表于 2010-8-24 19:08 | 显示全部楼层
学习学习!
发表于 2010-10-25 14:37 | 显示全部楼层
先看看看再说
发表于 2011-2-21 05:48 | 显示全部楼层
下来看看先,谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2026-2-26 13:31

CAD设计论坛,为工程师增加动力。

© 2005-2026 askcad.com. All rights reserved.

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