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() $ U+ J+ y1 P2 E# u$ V: |- J) W- S! N
Dim work As Workspace ( [& H6 c% B9 c8 Q3 Q; t( W5 J% A1 ]
Dim new As Database
, V  h/ {( g$ H0 _9 rDim elem As Object
1 L: v+ G2 R0 y: l9 V" EDim rs As Recordset 2 @$ D; @+ v# s" y2 y7 Z
Dim RowNum As Integer
5 A: _1 Z) C: i/ xSet work = DBEngine.Workspaces(0) ; V4 J0 o( m1 \
Dim dbs As Database 1 P/ l' F( o$ x8 N7 ]
Dim tdfNew As TableDef 2 }3 f' d1 h- x+ H. }# d8 l
Dim tdf As TableDef
: c6 ]$ f) z! A7 ODim dbsname As String . p* w! V% N2 C+ t, \- ~3 U0 v
Dim array1 As Variant
" A" _6 r  l: P) V& ZDim array2 As Variant ‘声明所需的变量及类型 4 |8 [+ z2 ~  s+ k( c2 ^
dbsname = “D:\材料表.mdb”
9 @/ M/ s! _! ~" K2 z* p, s‘声明Access数据库写到哪一个文件
) D3 Y. l. w% V! `' P' dOn Error Resume Next
3 v4 V& N. R# h1 U8 W, y3 }( mSet dbs = work.CreateDatabase(dbsname, _ 2 W) k6 Q$ L/ e& `% e4 j$ R! W
dbLangGeneral) / O3 w2 g7 h& o  k. h( e
If Err Then
: z3 w5 K7 C0 x1 x9 k+ _) h, I7 vKill (dbsname)
* |- O3 M: ^, Z‘发现要写入的Access数据库文件已存在就将其删除 . ]/ H6 n1 o9 f! b$ c
Set dbs = work.CreateDatabase(dbsname, _
* g' _; t: J8 a& [8 ]7 k5 JdbLangGeneral)
0 s; B, J, e4 @* H: v0 YEnd If & e5 f7 k* a/ m% i- [  }, e  r
Set tdfNew = dbs.CreateTableDef
" H0 N5 U: o: b$ V& |  y# M(“电气 _材料明细表”)
* M* C* G4 Q2 |9 Q* m9 S‘建立一个名为电气材料明细表的表 5 N% y7 S* h# g* L
RowNum = 0 1 i" m" u1 D8 m& O3 j
Dim Header As Boolean $ y0 g# h  J0 B, J# w) w) f  x
Header = False
- D: X: l$ ^% T+ nFor Each elem In ThisDrawing.ModelSpace 9 o2 T% K: w% ]  I, d. }
‘在CAD模型空间,查找所有图形对象 " a3 A1 M- H4 T; J9 V; }9 z
With elem 0 ?) F+ T2 Q! L4 c
If StrComp(.EntityName,_ ' b9 _8 O2 N8 v  \" ]/ {# |7 @
“AcDbBlockReference”, 1) = 0 Then
  E! w9 f% X$ LIf .HasAttributes Then
& a- }1 }" S! o" w" Q: s6 [+ Tarray1 = .GetAttributes
) R2 Z( `8 d7 f# D1 N) O" S, {array2 = .GetConstantAttributes
1 Y7 @4 \& h" z9 @9 \8 Q! Q0 @‘设置array1指向图形对象的属性   z; e6 ?! h5 C  V8 }( x) H! L
‘设置array2指向图形对象的固定属性 2 l1 H: }8 S8 W
For Count = LBound(array2) To _ 6 V+ C8 k& b& V+ P
UBound(array2)
- r3 G. U& F% b* {2 tIf Header = False Then
% I$ ^6 x5 h/ r) p! I( i, nIf StrComp(array2(Count).EntityName, _ % y: G  E9 T5 _$ r
“AcDbAttributeDefinition”, 1) = 0 Then / H* T( z8 t9 u
tdfNew.Fields.AppendtdfNew._ $ h* P1 M5 B, _) N' o3 f
CreateField(array2(Count).TagString, dbText) 1 o. q5 A- ]7 N# m' ^  z
End If % ~! U4 b% c$ E
‘读出属性值读出,作为Access数据库表的标题
4 _, W- j; N% R, V+ b: }8 B" xEnd If # R. [% D. o$ g2 ~, C& \
Next Count
- C0 {. Q, _0 c- RFor Count = LBound(array1) To _ 8 Z" F) S( I3 S# a' u3 r
UBound(array1)
, n6 Y7 L3 h1 P# N( O* tIf Header = False Then
$ {& Y& u1 }) ?5 o8 W3 j- ?5 aIf StrComp(array1(Count).EntityName, _
2 I1 y2 a. g/ M3 d# }3 V1 H& e“AcDbAttribute”, 1) = 0 Then 0 K3 p9 n* V0 c; _
tdfNew.Fields.Append tdfNew. _
7 ~/ @8 x" Y2 U6 o$ {2 [1 z( iCreateField(array1(Count).TagString, dbText)
% k3 q8 E& Y( a/ s: _: I0 W3 HEnd If
2 b  b. h7 c' c5 L/ {; YEnd If
2 S0 N* s4 f& ]! u0 e6 e  i/ cNext Count 8 v2 A1 X" x+ Z# [6 W0 y/ u
If Header = False Then & Q  T1 n; y) t; M
dbs.TableDefs.Append tdfNew
5 y/ O: i" i2 `% o( G; W  u% uSet rs = dbs.OpenRecordset
) \( R# E0 D% m, j; w(“电气材料 _明细表”, dbOpenTable) ‘打开记录
* f* z; F9 z+ h$ x# \3 x$ l3 AEnd If
3 y+ a" v% T+ b% a" b6 G" i8 N+ XRowNum = RowNum + 1 ! q3 o" K, d, K
rs.AddNew ‘增加一笔新记录 0 Y; V0 T# d& y  s) o1 \& P
For Count = LBound(array2) _ - X% z  X$ i& Y% F  u
To UBound(array2)
' ?$ ?  L/ Z% f0 D* Q( P, Ars(Count).Value = array2(Count).TextString
5 p/ D4 j' k0 k% z) S% oNext Count ‘读固定属性值
7 z9 B/ p& N6 Z( n) vFor Count = LBound(array1) To _
$ {9 K$ W* ]# |2 T# y/ XUBound(array1) ) }1 Z6 H1 a% G
rs(UBound(array2) + Count + 1).Value = _
, T$ V9 S8 g* b$ U" P8 karray1(Count).TextString
" n/ `$ b& P1 q' @, V( LNext Count ‘读输入属性值 / K9 F' W8 W. A4 C( m
rs.Update ‘增加新记录修改结束
+ x5 v$ M. R2 R% kHeader = True 9 d; S5 `2 @8 x+ G
End If 7 z6 n3 N- z' b6 Q
End If 1 ?2 v, M* c9 G. |/ o* {+ h1 a
End With : O4 O. u& ]1 V  k1 m- S* x
Next elem
6 @7 ]0 b. o! Z' Z9 C8 F/ `" crs. Close ‘关闭记录,释放资源
" ?" M* e$ W" D9 J( v2 ^/ X; Ydbs.Close ‘关闭数据库,释放资源
6 x" C6 e7 }& W) DEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot
7 z9 _. k* s; g& E0 w真是太好了
9 O8 q. p! {; L) N9 Y這就是我要的 ^^
发表于 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-6 19:08

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

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

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