|
|

楼主 |
发表于 2016-5-3 16:19:46
|
显示全部楼层
来自: 中国广东深圳
2 Y( @' a [( p" K! r, m) @7 o
成功了,谢谢!; w' H$ o$ R% v
8 P, v8 {- @! m; W- {. R; S但不明白下面这句:( W6 ~- t+ s' l9 [ O: t/ y- J# h
Set MatList = swMatDB.getElementsByTagName("material"),括号里的“material”为什么是"material"而不是其它?5 }" x: l& `+ @- X! w, j
4 {, W& \$ O3 @ j F9 R) j) ?
. n' [% i; b# i5 B* d; ?
下面是我编写的获取材料类别的全部代码:
k. u3 d# D& F+ O9 b- C+ `! vSub main()
; X+ j. g: P8 e' }6 S7 T
* u1 R' b& D4 m( q6 p' P: GDim swApp As SldWorks.SldWorks
" ?) j2 v- s- D7 jDim swModel As SldWorks.ModelDoc2( A/ [5 H$ E7 N/ k
Dim swPart As SldWorks.PartDoc" ]4 R' K( M; I/ S. \- f
Dim dbs As Variant
6 o! }- ]' g2 n* \( D+ L# [Dim sMatName As String8 |5 R G: ~: v: c
Dim sMatDB As String$ h1 i6 L B8 h- R( d6 d2 q
Dim bRet As Boolean
9 N. W" s5 [" E8 E6 h5 }8 M- _Dim i As Long
% d$ y; F7 j/ @+ [0 v1 i* eDim matPath As String4 y' |' B& h9 ?7 {
Dim swMatDB As MSXML2.DOMDocument
1 ~! x5 u3 P2 ~1 K: IDim MatList As Variant
: G3 j# n+ k. R' R7 D9 z: o0 e" t2 k
4 @# |4 J3 I+ s4 t9 {/ L4 vSet swApp = Application.SldWorks* A8 D& |5 j! m
Set swModel = swApp.ActiveDoc
. G, q( k- A0 Z1 d/ sSet swPart = swModel ] |7 E# X5 T3 A _ `7 |, \. U9 u
dbs = swApp.GetMaterialDatabases
V3 H/ S) p6 _+ psMatName = swPart.GetMaterialPropertyName2("Default", sMatDB)
: c" Z7 i. A. ]) C2 P* \For i = 0 To UBound(dbs)
1 X! ^0 I) p# i: m. B: _. T If StrComp(LCase(Left(Right(dbs(i), Len(sMatDB) + 7), Len(sMatDB))), LCase(sMatDB)) = 0 Then, W* q/ l+ l0 n1 H5 S2 f' v8 _
matPath = dbs(i)6 k' n# N2 D$ B* h
GoTo MatTpye2 g4 k! Q6 l$ l2 ^
End If
( Y6 u2 ]+ N1 d6 FNext i# p0 f6 g) ?/ m& a/ g
5 w2 ~/ B, M+ A9 u7 uMatTpye:) O9 S5 j$ H7 C- n% {* |5 q" o
Set swMatDB = New MSXML2.DOMDocument( o+ s3 L" p6 ?% j
' 材料库所存储的路径
) V6 d4 U& X/ s" \swMatDB.Load matPath
7 }2 c% ~* i, R) l" g. ySet MatList = swMatDB.getElementsByTagName("material")
4 S, Y9 O% z8 W) S. p6 X7 |Dim MatName() As String, Mat As Variant& \) O/ J/ \2 j7 d, P% }- r
ReDim MatName(MatList.Length - 1)
, P8 b0 ]7 Z5 s For Mat = 0 To MatList.Length - 1, l5 C7 e. C. i/ c
If MatList.Item(Mat).Attributes.Item(0).childNodes.Item(0).nodeValue = sMatName Then
( C) Z- O4 e# U# G- G3 e MatName(Mat) = MatList.Item(Mat).parentNode.Attributes.Item(0).nodeValue, p7 V& m- S& E' |- _# i! ~" x6 P
GoTo Finish; s( b1 s9 v% X# i
End If, `) C# X7 u( n2 X, t. b4 h7 @
Next Mat
, P! |' a1 S2 N6 o3 J
7 L) U S* K. C* t! j+ N/ h2 `Finish:
# p' [5 w( y0 y- G. w$ D5 G1 FEnd Sub
/ r; s6 U6 ?! q; e
, e) ]. b7 L2 G+ \: o如有不对,请批评指正,谢谢! |
|