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() ; U6 T) ]$ x5 L: r5 w
Dim work As Workspace ; g5 [) ~7 ^( G; @; x; T
Dim new As Database
; E# v$ v) ~$ ?2 G9 Q, zDim elem As Object " s) q; z7 A% Z# ^. D0 k' f
Dim rs As Recordset # P, x0 A- _/ [# J0 P
Dim RowNum As Integer . }  ~, c. q' x: y& s# S
Set work = DBEngine.Workspaces(0)
7 F# [, t) D, K6 X* {- DDim dbs As Database % [8 N5 s* W8 ]: h- }, h/ f
Dim tdfNew As TableDef ( j, S; }8 i% D5 K% ^. v
Dim tdf As TableDef
# g  S, N9 i' \9 T6 x' c3 CDim dbsname As String
2 g8 {+ H- n- \Dim array1 As Variant
# B/ H! D, ^9 y) t8 g  hDim array2 As Variant ‘声明所需的变量及类型
( l$ c- [, j# Bdbsname = “D:\材料表.mdb” ! ~7 ~  D; O; m- r" r- |$ n* D
‘声明Access数据库写到哪一个文件 * O4 B- k5 y' M4 b
On Error Resume Next 9 ?+ G1 u7 N4 h( w$ A0 e7 f
Set dbs = work.CreateDatabase(dbsname, _ 5 Q& c, a# C3 E0 H: B- ~
dbLangGeneral) 5 d! e- }# O) M5 q+ n. N
If Err Then
3 b$ J3 W0 y& I- `Kill (dbsname) , h  g- s0 J$ e& I% \
‘发现要写入的Access数据库文件已存在就将其删除 1 Z0 F9 I% m# R6 ^4 \
Set dbs = work.CreateDatabase(dbsname, _
6 M, k: X6 G1 p0 X2 IdbLangGeneral) ! o0 U$ {8 S( y3 i4 a
End If & c0 e4 w! G3 j2 f
Set tdfNew = dbs.CreateTableDef . g. X2 Y# j7 i% @; E$ Z/ w2 ~% b, ?
(“电气 _材料明细表”) : p, e. i: b; ~3 ~6 z
‘建立一个名为电气材料明细表的表
( j: B$ o+ c4 x3 ]& \" YRowNum = 0
7 i: p9 ~6 U- w0 sDim Header As Boolean
# U+ O& T8 Q% t8 ?2 cHeader = False
7 Q: N$ \, o4 P( T7 Q+ k9 WFor Each elem In ThisDrawing.ModelSpace # k$ G) U! ]4 o6 w/ o8 V# o
‘在CAD模型空间,查找所有图形对象 & f6 t) d6 y' i% H" i
With elem
4 M9 A6 u+ I% M1 {- r  v3 v6 W' GIf StrComp(.EntityName,_
) g0 _6 l3 C2 B$ w/ Y( K“AcDbBlockReference”, 1) = 0 Then
( l8 Q1 }2 J4 s& z( h. a& E2 ^2 jIf .HasAttributes Then * \8 i+ S- ?# i/ I8 S
array1 = .GetAttributes
& @1 i3 w2 M0 I3 H" e( xarray2 = .GetConstantAttributes 2 A! L/ H3 B5 e" H8 T' s* q
‘设置array1指向图形对象的属性 1 F% i$ }" M  U8 U
‘设置array2指向图形对象的固定属性 6 S) V4 x$ J: N7 W4 _2 f3 Z7 u1 }7 S* K
For Count = LBound(array2) To _
  x  c- {* M& _( `/ aUBound(array2) 0 K3 B# Z  t% {- d* [6 T) I
If Header = False Then
. J% Y- m- O% w$ M: J" E/ q8 bIf StrComp(array2(Count).EntityName, _
' w  M2 G5 M" Q* a+ C  E% N“AcDbAttributeDefinition”, 1) = 0 Then + x  Q4 W9 y. e5 w/ S# X; p. E
tdfNew.Fields.AppendtdfNew._ : X" |' n* F$ q4 T6 u9 e" `, g
CreateField(array2(Count).TagString, dbText)
" Y% I( w+ v" I( IEnd If
9 ]# q6 v& u" g, I' }/ W‘读出属性值读出,作为Access数据库表的标题 - X6 ^' J+ _! @/ Z* @, f. \$ R+ W
End If
3 @1 a7 S6 c( G4 UNext Count . u9 r0 q2 e1 |# r5 o
For Count = LBound(array1) To _ " S9 ?- `! S" f7 f% d  H" E
UBound(array1) / V. U/ g5 k! T
If Header = False Then 7 ], R. w/ |- s# X, l4 L) N
If StrComp(array1(Count).EntityName, _
3 Z% ?7 s3 _9 T“AcDbAttribute”, 1) = 0 Then 7 S- s# e5 o3 S+ W+ C0 D. }
tdfNew.Fields.Append tdfNew. _ & ~  ~; t/ d- A: \% |
CreateField(array1(Count).TagString, dbText) : p( r3 {! u" J
End If
" p/ C7 d8 e, C% R( d# v2 xEnd If , k: W5 B  {  \* P
Next Count
. k$ V" e1 V. i' h$ eIf Header = False Then
' N* a* G3 Y' M: e$ _2 g% f# Bdbs.TableDefs.Append tdfNew
) R$ Z  y; `# ySet rs = dbs.OpenRecordset
% u% G- C( ~8 t: D# N(“电气材料 _明细表”, dbOpenTable) ‘打开记录 / w# V3 X/ b: V8 Y( a/ y% i
End If   l, e7 m4 x7 u+ X0 T3 I
RowNum = RowNum + 1
  X; s7 Q& E) }3 Vrs.AddNew ‘增加一笔新记录
+ H( u  R. l' W8 N% A, `For Count = LBound(array2) _ 1 L4 c1 W2 h. w1 d$ ?( [- V0 U
To UBound(array2)
/ C2 p; E3 E4 P" u6 ]rs(Count).Value = array2(Count).TextString
; P( \: I/ u% B0 L* i: ~4 Y9 hNext Count ‘读固定属性值
; m, x& F* [# [; W' S8 d! j+ ^+ UFor Count = LBound(array1) To _ ( y* x5 U( `* ?* t: @% N
UBound(array1) : D; r& E& U( Y; `
rs(UBound(array2) + Count + 1).Value = _
4 T) C: k# O4 j' {6 s  rarray1(Count).TextString
( h* T3 X. h6 t) P8 c: [5 jNext Count ‘读输入属性值
8 e; X9 _+ k0 w6 |* W7 ^4 Ars.Update ‘增加新记录修改结束   @( i5 H, f- P: ^
Header = True # {( B& G6 f8 E8 d) \
End If
) p: @6 o; K  y" |+ s: T8 f$ JEnd If
1 l( t( j$ W8 `6 TEnd With ) N* W3 a0 x4 r  ?' V' [( E7 j: j: b
Next elem
* N9 @9 E# d) \6 I$ Hrs. Close ‘关闭记录,释放资源 + ^% u* w* p# i* v5 j* ]8 u4 |6 y
dbs.Close ‘关闭数据库,释放资源
- ]: G! Q2 d: i7 O  AEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot4 b- Z" O2 Z6 X3 R, g' U6 e
真是太好了 * p# c/ |2 y) v' K4 ?$ ?) a! ?( Z
這就是我要的 ^^
发表于 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-13 09:58

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

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

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