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()
" I9 S, g9 E: ~7 o6 |Dim work As Workspace ! \) i. i$ ]5 z/ d, L- _8 ?8 ?
Dim new As Database
/ u5 V0 o+ t4 [% D" b0 SDim elem As Object
1 y" C3 |- O6 n2 n# U2 Q7 yDim rs As Recordset
8 c3 b$ u  L( Y  u1 d4 ~( nDim RowNum As Integer
3 m8 h, S$ J# x- O0 ?  b( q9 aSet work = DBEngine.Workspaces(0)
. F+ l& a, n( R9 K4 H$ _Dim dbs As Database & t) |: O( x. y  o
Dim tdfNew As TableDef , u+ q9 N: o9 k0 b6 M& Q8 j, g
Dim tdf As TableDef
0 r6 e2 _" ?: D% K8 R+ WDim dbsname As String
" [4 o* r* Q) b* W6 [  fDim array1 As Variant
2 N5 Q; K) m# l+ |+ }' fDim array2 As Variant ‘声明所需的变量及类型
6 G0 u: A( i! ~  N5 I" Hdbsname = “D:\材料表.mdb”
( y  L4 a( R7 g+ O6 D$ L" ~0 L‘声明Access数据库写到哪一个文件
  b. W9 `! \2 GOn Error Resume Next , C2 q* R! K+ H. j1 `3 z
Set dbs = work.CreateDatabase(dbsname, _
6 A% p  \! B3 j1 H: u% t( d( T8 {dbLangGeneral) $ A! ~( @3 T, I3 Y5 b1 v" _2 E" J
If Err Then ) m( T( V: |: C* a  P
Kill (dbsname) - P5 ?8 V1 S4 P) o- i1 p2 U
‘发现要写入的Access数据库文件已存在就将其删除
- q7 ?/ y7 P& zSet dbs = work.CreateDatabase(dbsname, _
7 M; Y* S/ ?1 z% \; w& |: PdbLangGeneral) 1 X7 i, \' I# n! _2 i6 n! M  `7 Q
End If ' ^% j& q3 b; l6 Y7 `, k# j
Set tdfNew = dbs.CreateTableDef
. o7 S& x. ^1 Z% {(“电气 _材料明细表”)
" d- \% H. h  F+ R; G‘建立一个名为电气材料明细表的表 ' n5 t- Z! M' m2 \0 ?
RowNum = 0 ! d2 [) A/ w4 W# b2 t% P3 Z9 w0 y; g% ~
Dim Header As Boolean : M# T  t6 w6 A; z
Header = False
) G- _; |! ], a% A9 `For Each elem In ThisDrawing.ModelSpace
5 w& `; G8 @, J( z/ c; c$ a5 y' p* g‘在CAD模型空间,查找所有图形对象 . S3 \8 \9 K3 S3 P4 ~% f$ \
With elem
$ i. P" H9 C, }/ q2 K: vIf StrComp(.EntityName,_ ' t( Z. o. Q3 q6 x. C( k! e5 E
“AcDbBlockReference”, 1) = 0 Then 6 H# X: k/ m+ @3 ~- c
If .HasAttributes Then
' }& z9 G6 g; l$ ?array1 = .GetAttributes
% H) o* q- }. d) Q" Larray2 = .GetConstantAttributes
6 o  `3 E. }6 {3 W* [+ R‘设置array1指向图形对象的属性
2 J, l! X3 s, d8 r5 s8 c' i‘设置array2指向图形对象的固定属性
, {- h; g3 W. h/ b! v+ mFor Count = LBound(array2) To _
# J8 r0 u6 K2 ^7 z1 {) N# FUBound(array2)   Y6 ?, c' g- x: n: c: }3 r
If Header = False Then
8 p) v) h1 \3 Y$ fIf StrComp(array2(Count).EntityName, _
8 ~3 M- X( d& l( a“AcDbAttributeDefinition”, 1) = 0 Then
% J- E' f; K: `3 c9 @tdfNew.Fields.AppendtdfNew._
+ L. q& W1 Z: {7 B( E0 {+ g' QCreateField(array2(Count).TagString, dbText) 0 ^% R1 O9 e' p' j* L4 ]# ?$ t
End If % u) @- q" T2 o6 [
‘读出属性值读出,作为Access数据库表的标题   S& X% u; e# v  z3 @1 t; M5 b& o; O
End If
& Y7 A0 @6 z0 F$ wNext Count
) k  Y4 g0 A. _# G6 IFor Count = LBound(array1) To _
8 y) i9 p: k/ e8 o0 zUBound(array1)
, ]# `0 g$ @+ m  J, @5 E$ ]# oIf Header = False Then " q6 K) n1 o& z# j% V3 \
If StrComp(array1(Count).EntityName, _ : q; c: F/ p3 R* j! ]
“AcDbAttribute”, 1) = 0 Then
; o, k" M7 x# ctdfNew.Fields.Append tdfNew. _
( U8 H& z7 F& S& o$ \# wCreateField(array1(Count).TagString, dbText) 8 {2 i1 P$ Z0 |" Y% y# \$ ]) r
End If . x% p( T+ Y% u& s
End If
0 m5 [& t  q$ h# aNext Count
' |! B, E$ F- c1 g* G$ QIf Header = False Then ' H1 m1 @$ z+ A5 n$ K
dbs.TableDefs.Append tdfNew
/ b" @7 ~, e$ E. F: c) }% k8 q# ]Set rs = dbs.OpenRecordset
: M/ z. A4 `+ W* h0 z1 S. N4 w(“电气材料 _明细表”, dbOpenTable) ‘打开记录 $ ?3 M6 F- s! `6 e
End If * ^+ K. p* e( K) X9 c1 ~
RowNum = RowNum + 1 ! c2 O/ B, C2 ?
rs.AddNew ‘增加一笔新记录
' M& P4 @4 g5 FFor Count = LBound(array2) _ " ?5 O3 f6 @7 h
To UBound(array2) ! u0 z/ a/ ~) |; i( n
rs(Count).Value = array2(Count).TextString 5 a% U) ~# n9 p* w
Next Count ‘读固定属性值 ) F6 z! o! |( p# n8 w7 ?
For Count = LBound(array1) To _
* \# q5 q: _" U! Y: G& ~# n! ~: D* \UBound(array1) 1 \1 e: r. ^$ ]+ t) g$ H# y
rs(UBound(array2) + Count + 1).Value = _
, R, q$ w, U) E" v2 {- f) L( I4 Garray1(Count).TextString 6 U; o$ @7 _( z% q
Next Count ‘读输入属性值 ' v4 X: l4 k3 T% a4 R. v
rs.Update ‘增加新记录修改结束
' ]& r7 a8 v, I& QHeader = True " ?1 Z( }# s* u3 k
End If
. ?. d6 z/ w: ~. ^' P/ @End If ( [. X( S; v# G& o$ R/ o) E
End With
+ ?% d" s) r1 }0 kNext elem
& e2 E7 |( p+ Z7 @  `rs. Close ‘关闭记录,释放资源 8 t' S$ W. R- H' R. N
dbs.Close ‘关闭数据库,释放资源 0 c1 x) i# j  ?* P2 D) x" X
End Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot, l/ j" f$ e* U$ e2 ~
真是太好了
' \5 n9 |3 z$ Z/ Y5 l8 J這就是我要的 ^^
发表于 2010-5-11 23:13 | 显示全部楼层
好用吗?有谁下载了?
发表于 2010-8-24 19:08 | 显示全部楼层
学习学习!
发表于 2010-10-25 14:37 | 显示全部楼层
先看看看再说
发表于 2011-2-21 05:48 | 显示全部楼层
下来看看先,谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 05:11

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

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

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