Get XML Stream Example (VB.NET)
This example shows how to
get an embedded XML stream in a SolidWorks document using the SolidWorks Document Manager API.
'---------------------------------------------------------------------------
' Preconditions:
' 1. Read the SolidWorks Document Manager API
' Getting Started topic and ensure that the required
' DLLs have been registered.
' 2. Copy and paste this module into a C# console
' application in Microsoft
Visual Studio.
' 3. Ensure that the specified document exists
' (or point to another
document).
' 4. Add the Solidworks.Interop.swdocumentmgr.dll
' reference to the
project:
' a. Right-click the solution in Solution Explorer.
' b. Select Add Reference.
' c. Click the Browse tab.
' d. Load:
' <SolidWorks_install_dir>\api\redist\Solidworks.Interop.swdocumentmgr.dll
' 5. Substitute <your_license_code> with your
' SolidWorks
Document Manager license key.
' 6. Compile and run this program in Debug mode.
'
' Postconditions:
' 1. Locate the XML stream in the current directory.
' 2. Inspect the code to see how the API is used.
'----------------------------------------------------------------------------
Imports
SolidWorks.Interop.swdocumentmgr
Module
Module1
Sub
main()
Const
sLicenseKey As
String =
"<your_license_code>"
'Specify your license key
Const
sDocFileName As
String =
"C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\EDraw\claw\claw-mechanism.sldasm"
Dim
swClassFact As
SwDMClassFactory
Dim
swDocMgr As
SwDMApplication
Dim
swDoc As
SwDMDocument
Dim
nDocType As
Long
Dim
sPathName As
String
Dim
nRetVal As
Long
Dim
nRetVal2 As
Long
'
Determine type of SolidWorks file based on file extension
If
InStr(LCase(sDocFileName), "sldprt")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentPart
ElseIf
InStr(LCase(sDocFileName), "sldasm")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentAssembly
ElseIf
InStr(LCase(sDocFileName), "slddrw")
> 0 Then
nDocType =
SwDmDocumentType.swDmDocumentDrawing
Else
'
Probably not a SolidWorks file
nDocType =
SwDmDocumentType.swDmDocumentUnknown
' so cannot open
Exit
Sub
End
If
'
Strip off SolidWorks file extension (sldxxx)
'
and add XML extension (xml)
sPathName = Left(sDocFileName,
Len(sDocFileName) - 6)
sPathName = sPathName + "xml"
swClassFact = CreateObject("SwDocumentMgr.SwDMClassFactory")
swDocMgr = swClassFact.GetApplication(sLicenseKey)
swDoc = swDocMgr.GetDocument(sDocFileName, nDocType,
False, nRetVal) :
Debug.Assert(SwDmDocumentOpenError.swDmDocumentOpenErrorNone = nRetVal)
swDoc.GetXmlStream(sPathName, nRetVal) :
Debug.Assert(SwDmXmlDataError.swDmXmlDataErrorNone = nRetVal2)
End
Sub
End Module