|
成功了,谢谢!
但不明白下面这句:
Set MatList = swMatDB.getElementsByTagName("material"),括号里的“material”为什么是"material"而不是其它?
下面是我编写的获取材料类别的全部代码:
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim dbs As Variant
Dim sMatName As String
Dim sMatDB As String
Dim bRet As Boolean
Dim i As Long
Dim matPath As String
Dim swMatDB As MSXML2.DOMDocument
Dim MatList As Variant
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swPart = swModel
dbs = swApp.GetMaterialDatabases
sMatName = swPart.GetMaterialPropertyName2("Default", sMatDB)
For i = 0 To UBound(dbs)
If StrComp(LCase(Left(Right(dbs(i), Len(sMatDB) + 7), Len(sMatDB))), LCase(sMatDB)) = 0 Then
matPath = dbs(i)
GoTo MatTpye
End If
Next i
MatTpye:
Set swMatDB = New MSXML2.DOMDocument
' 材料库所存储的路径
swMatDB.Load matPath
Set MatList = swMatDB.getElementsByTagName("material")
Dim MatName() As String, Mat As Variant
ReDim MatName(MatList.Length - 1)
For Mat = 0 To MatList.Length - 1
If MatList.Item(Mat).Attributes.Item(0).childNodes.Item(0).nodeValue = sMatName Then
MatName(Mat) = MatList.Item(Mat).parentNode.Attributes.Item(0).nodeValue
GoTo Finish
End If
Next Mat
Finish:
End Sub
如有不对,请批评指正,谢谢! |
|