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% P& @) `1 n* l* z! k
Dim work As Workspace & l/ ~; y1 |' D
Dim new As Database
" e: U, A" o5 z! f! fDim elem As Object 8 [6 d6 _; q- n* H1 O
Dim rs As Recordset
4 {* m. [% _/ y' |9 E9 M+ HDim RowNum As Integer ' Q* }8 W1 K) N3 Z! H
Set work = DBEngine.Workspaces(0) - P) \4 C+ U- J) e2 ]
Dim dbs As Database
$ f5 ]! R9 t' ?! W4 g& O; v& wDim tdfNew As TableDef $ V. G$ g; q8 M$ ^$ i; j
Dim tdf As TableDef - }( I2 w. E% ?6 y# g+ R
Dim dbsname As String
, ?$ }: k9 O% g& U8 l2 a$ m7 KDim array1 As Variant . }5 x& l& I, I  u1 }3 W* I* ?
Dim array2 As Variant ‘声明所需的变量及类型
1 A* t  U1 x0 n4 q: l6 Bdbsname = “D:\材料表.mdb” * B( e2 K6 u7 K% d+ O
‘声明Access数据库写到哪一个文件 % F/ |/ r% L- O) O& H
On Error Resume Next % j8 ^. d7 g, `( T1 l9 o( C' M7 K
Set dbs = work.CreateDatabase(dbsname, _ 5 D( S% {3 u9 S$ e6 p
dbLangGeneral)   p# }  o1 C! C/ b* v' q2 r
If Err Then
, M: G# f! b5 }. }- L, ]0 ~* TKill (dbsname) 1 ^# e5 ~. |4 Y1 ]) O$ N
‘发现要写入的Access数据库文件已存在就将其删除 5 N& J# Y$ `+ l# a/ q) Y; i7 X! L
Set dbs = work.CreateDatabase(dbsname, _ $ V  O: Y% ?9 ]( E2 P+ @
dbLangGeneral) ! y$ p, c1 \% G0 C7 }- a! }5 [
End If
6 E% H( @6 w2 T- G* CSet tdfNew = dbs.CreateTableDef . s  m4 k: r3 S) w+ {# S
(“电气 _材料明细表”) 7 x1 `' P+ F# R3 a% h
‘建立一个名为电气材料明细表的表
: W2 m, @/ W1 y' Z/ g/ v! R) URowNum = 0
6 K- r* i% e9 o0 }- Z$ ~7 Y0 rDim Header As Boolean
, Y( v. r: _& O  _* w6 s* ?Header = False 1 T) l6 Q& E3 Y
For Each elem In ThisDrawing.ModelSpace
4 d8 s+ _: M, G& g# z‘在CAD模型空间,查找所有图形对象
. t% K% r' ^+ F. v2 B% dWith elem * C6 F( _, {6 }( I5 E9 |# ^
If StrComp(.EntityName,_
/ @/ l* N, C3 O" Q* Y, G1 ^! N! [" S“AcDbBlockReference”, 1) = 0 Then
1 r  e/ _& L* p/ F5 {If .HasAttributes Then # f1 h' [% x! z8 x
array1 = .GetAttributes
3 v  R6 p! V. ^. X) A: yarray2 = .GetConstantAttributes
7 y2 O* p/ ~' ]% P: D6 k0 Y‘设置array1指向图形对象的属性
3 M6 m1 C% |' W! L% i+ p‘设置array2指向图形对象的固定属性 1 _; ~( ~4 P: X/ N  R% O3 k8 z
For Count = LBound(array2) To _ 0 \5 [, C9 o- [/ z  i2 i& S; f
UBound(array2) # q+ {3 a- C- h5 r/ t" }4 t0 J& ?
If Header = False Then . {' G% K0 c2 q4 E
If StrComp(array2(Count).EntityName, _
2 b, `# ?+ X& r“AcDbAttributeDefinition”, 1) = 0 Then   t: [) i7 y6 K2 d, V7 U6 Y3 g
tdfNew.Fields.AppendtdfNew._ 3 w/ Z6 [/ V# Y( g. @* \2 w) ~
CreateField(array2(Count).TagString, dbText)
! F, E: e8 W3 E7 `- e' S2 CEnd If
( K9 \1 j/ b( R‘读出属性值读出,作为Access数据库表的标题 " d/ S+ T( O) y2 J  e# I& T
End If
8 y: a9 {6 d# ]' u. P* ZNext Count
7 ?, N1 C# A1 q. ^For Count = LBound(array1) To _
' ]& |: @/ l: s1 y; t! Y' r  xUBound(array1)
4 s! Y1 S# l7 i+ w8 T8 v7 K% eIf Header = False Then + o: v# Q- E. y$ c- i+ N: s" l( _
If StrComp(array1(Count).EntityName, _
: h  K& V. M4 |7 `& o7 \“AcDbAttribute”, 1) = 0 Then
; u8 n- M  i! b9 rtdfNew.Fields.Append tdfNew. _ 1 A( @  d/ e1 }+ G
CreateField(array1(Count).TagString, dbText)
4 Z; p5 ?8 |& W" Q, p9 k3 MEnd If
! @8 X. l1 ^7 K, Y5 H- @3 VEnd If
; l- e( N% }( [* k1 }. U# d7 ?Next Count
: ]; g3 y" S* {4 Q' g6 Y9 N4 cIf Header = False Then
, R3 L' j6 r) }  C! o/ kdbs.TableDefs.Append tdfNew * b5 J- I( r$ D! m
Set rs = dbs.OpenRecordset 7 z; [  I8 ]' h) s9 z, S# {
(“电气材料 _明细表”, dbOpenTable) ‘打开记录 1 C7 ~( K/ Z. _! S
End If & b" Y6 j4 s  ?6 G: q" L
RowNum = RowNum + 1
8 d8 j5 g1 |  P9 q4 t$ Xrs.AddNew ‘增加一笔新记录   l8 u/ W/ x7 h* k, P
For Count = LBound(array2) _
. Q" Z1 A  m0 Z# S; yTo UBound(array2)
4 r. d* |5 h8 I. Y  Y% g4 Vrs(Count).Value = array2(Count).TextString
" F  k6 I+ g: }* V5 n6 ^  r! V4 {Next Count ‘读固定属性值
" M' R" H: n, w" N7 oFor Count = LBound(array1) To _
$ b# g8 S8 x* u( X" Z3 W" Y3 m2 tUBound(array1)
" b2 _- E0 W  q9 w( brs(UBound(array2) + Count + 1).Value = _ : F9 ]3 w& l4 U$ c# p
array1(Count).TextString ' M+ q+ o4 k/ [1 S
Next Count ‘读输入属性值
6 G; M: h# A; V) p/ ^+ n+ [- prs.Update ‘增加新记录修改结束 8 W+ ^; c6 O$ K# O! N  g" l
Header = True
& c% z- R  Y& _9 }4 P6 BEnd If
" v: s, ^( b+ S9 LEnd If
$ z, d- ~& s4 D9 DEnd With
% o7 B2 ]. J  o# E# B5 v4 ]1 VNext elem
8 Z0 n6 X0 {. T5 grs. Close ‘关闭记录,释放资源 : _* S! e; Q) y, j
dbs.Close ‘关闭数据库,释放资源
- j) j3 u* Z" L3 z) ~End Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot3 ]& T& J/ }7 m/ [" l
真是太好了 - r/ S  {" X1 ]& _# C; t% f
這就是我要的 ^^
发表于 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-1 17:26

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

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

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