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()   L. A8 i) w, A) y3 M
Dim work As Workspace 8 F" O8 J; V% A  s; @4 H3 b
Dim new As Database 8 ~8 L0 u. `' q4 v3 `1 E
Dim elem As Object
2 O# i; y4 ^4 j6 Z4 VDim rs As Recordset
& C0 {5 w8 I& Z9 bDim RowNum As Integer
$ f8 q: r0 Y0 S% s% h- e/ tSet work = DBEngine.Workspaces(0)
6 r' Q2 s+ a2 B" T& J" }1 t/ DDim dbs As Database 9 F5 K$ q& n3 }* y
Dim tdfNew As TableDef ' c) j% X" D0 |" K$ @
Dim tdf As TableDef
2 d1 W9 c, B3 g6 t2 dDim dbsname As String
: g, t" O7 n# l) j8 R( k. \. {; e& GDim array1 As Variant
% C: p5 Z$ K; p9 qDim array2 As Variant ‘声明所需的变量及类型   a; M. \  P0 X5 Q7 w! f
dbsname = “D:\材料表.mdb” . {$ {- m7 r. ^& B  u  h1 K! |
‘声明Access数据库写到哪一个文件
9 S( G2 }4 B% g& u" COn Error Resume Next : b" ?( S0 b; v( K
Set dbs = work.CreateDatabase(dbsname, _ ' s) T5 Z$ v) S
dbLangGeneral) 1 ]# m+ P7 p: G# E; f: |
If Err Then 3 G( L3 |& M7 e7 a& u$ u5 ^
Kill (dbsname) , g9 K+ e, h" P; h4 J/ {2 @) @( }
‘发现要写入的Access数据库文件已存在就将其删除 . g; Y* P& v4 ]  G3 r! p+ k( ?
Set dbs = work.CreateDatabase(dbsname, _
+ Z1 E4 _4 }  O1 QdbLangGeneral) 7 p! L/ M0 T& u' p$ X; l) H( l
End If
( p; ~8 F  p2 C3 u' L% ]Set tdfNew = dbs.CreateTableDef
# o( G/ b& z" c; Q(“电气 _材料明细表”) ( O; Z6 T6 Y. t3 M- o/ N, ]
‘建立一个名为电气材料明细表的表 ( H* z* U/ Z1 h8 v0 r
RowNum = 0
8 [+ Y) W. z/ D# Q1 {Dim Header As Boolean 2 u. B4 V9 `+ J! c+ [
Header = False
& h2 \" P3 o$ ^' G9 CFor Each elem In ThisDrawing.ModelSpace ' k5 s6 E9 p* {3 p1 n4 U' e6 k
‘在CAD模型空间,查找所有图形对象
1 e5 s( Y, _2 }, U; P, G0 ^  AWith elem , M2 n* G  J4 P4 y7 ~
If StrComp(.EntityName,_   U: M0 O: [5 @- [
“AcDbBlockReference”, 1) = 0 Then
3 q, q2 X; K, Z8 J2 NIf .HasAttributes Then & X( A. s7 H3 U  x* v+ ?
array1 = .GetAttributes * \  {1 z! d. _* f6 g0 y: I4 z- \
array2 = .GetConstantAttributes $ w5 R& g( e. i; g6 y3 n6 y
‘设置array1指向图形对象的属性 1 ?- k! }' F0 R0 f! C9 V
‘设置array2指向图形对象的固定属性
  i8 [/ x8 p' nFor Count = LBound(array2) To _
; W, t4 g! ~( d8 HUBound(array2) ; M) T2 I3 n: \1 b* Y; g7 ]& q
If Header = False Then ! h* j# r$ W% d
If StrComp(array2(Count).EntityName, _ $ a- m8 G6 f6 Y6 J$ j, d! [: x
“AcDbAttributeDefinition”, 1) = 0 Then : C# N* ]* |+ f2 @& e
tdfNew.Fields.AppendtdfNew._
! q3 K6 z' y: i% S4 P3 l5 O# Q! I" RCreateField(array2(Count).TagString, dbText)
0 a! B/ {9 h: T9 ?1 g2 K! r) PEnd If 2 `- e& o7 o7 i* l: p* q
‘读出属性值读出,作为Access数据库表的标题 6 ?' K) w- ^2 _4 H
End If
0 `2 u2 q3 s) J& U% A: z: {* QNext Count , I: F- f; \- V) T0 m2 w
For Count = LBound(array1) To _
4 p9 F0 g0 G3 }7 w* T  nUBound(array1)
- ?' ?: {& T8 \  D9 R$ l& {  A) hIf Header = False Then
( ^3 [' ~0 H6 T9 {; F' _4 hIf StrComp(array1(Count).EntityName, _ . d' P. {, x& A$ R: S2 S' k
“AcDbAttribute”, 1) = 0 Then
' g9 U& G& ^* q9 }' |1 o. O. V0 {tdfNew.Fields.Append tdfNew. _ - B' G1 ~7 F' C# F+ S8 T8 ~/ \
CreateField(array1(Count).TagString, dbText)
/ E3 B2 x! G" e+ {! [  xEnd If & E+ V0 u) S& V/ p
End If
* J# d# ~8 f" i7 B6 uNext Count
7 Z& g! H, W7 v9 R1 _* y5 v2 wIf Header = False Then
% Q" Y5 w- w6 g% g4 e" Ldbs.TableDefs.Append tdfNew
. W7 o# C5 f' R4 w" WSet rs = dbs.OpenRecordset
( n4 s6 }$ \& y! Y$ d) Y(“电气材料 _明细表”, dbOpenTable) ‘打开记录
4 a$ \0 @5 j/ QEnd If
. v5 R/ \2 T! G, H1 vRowNum = RowNum + 1
4 I# \( w' X2 C0 urs.AddNew ‘增加一笔新记录
) P5 W6 z" Z# b, N5 PFor Count = LBound(array2) _ , p# w8 s; ~' l2 e# ?6 ~
To UBound(array2) 6 A1 c# c: l# T3 d
rs(Count).Value = array2(Count).TextString
# y! _' x  w. W/ k! Y9 ONext Count ‘读固定属性值
  D; l4 |9 F" P7 v4 t* T: N9 q7 qFor Count = LBound(array1) To _ ( G  H9 x' N+ E5 H9 F+ T
UBound(array1) 1 b1 z, s- Q1 V! h. v. P
rs(UBound(array2) + Count + 1).Value = _
& _! {1 P  [7 S4 i! X/ ^2 d7 barray1(Count).TextString
6 Y0 h' ~: ?; G$ \Next Count ‘读输入属性值 : E; I, |- j0 V1 c# y
rs.Update ‘增加新记录修改结束 : U$ ]" t% M& g/ A: I% P
Header = True " ]( A' H& \2 L, H; _+ Y
End If 7 c9 d! m! w0 H9 S
End If
0 Y+ o' R/ I; o' Z  TEnd With , [! V$ c% u7 l# M9 t
Next elem % Z, T8 L  ^2 u2 c/ N+ l5 z8 b+ i
rs. Close ‘关闭记录,释放资源
+ L9 L" o  u' l( p+ adbs.Close ‘关闭数据库,释放资源 , P6 N3 L  y  y# W" Y9 @8 x. ]
End Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot" |  g& A" q, V% z. b' g
真是太好了
3 K8 e8 k8 A1 n這就是我要的 ^^
发表于 2010-5-11 23:13 | 显示全部楼层
好用吗?有谁下载了?
发表于 2010-8-24 19:08 | 显示全部楼层
学习学习!
发表于 2010-10-25 14:37 | 显示全部楼层
先看看看再说
发表于 2011-2-21 05:48 | 显示全部楼层
下来看看先,谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 01:33

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

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

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