Are the Assembly Configurations Loaded Example (VB.NET)
This example shows how find out if the configurations in an assembly are
loaded, whether the configurations need to be rebuilt, and the configuration
types.
'
-------------------------------------------------------------------------------
' Preconditions:
' 1. Specified file exists.
' 2. After running the macro, examine the Immediate window.
'
' Postconditions: All configurations are loaded.
'
' NOTE: Because
the specified assembly document is used in
' an
online tutorial, do not save the document
' when
you close it.
' -------------------------------------------
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System
Imports System.Diagnostics
Partial Class SolidWorksMacro
Public
Sub main()
Dim
swModel As ModelDoc2
Dim
swConfiguration As Configuration
Dim
swConfigurationMgr As ConfigurationManager
Dim
ConfNameArr As Object
Dim
ConfName As Object
Const
DocFilename As String = "C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\pdmworks\speaker.sldasm"
Dim
boolstatus As Boolean
Dim
Errors As Long
Dim
Warnings As Long
'
Open document; exit if it doesn't open
swModel
= swApp.OpenDoc6(DocFilename,
swDocumentTypes_e.swDocASSEMBLY, swOpenDocOptions_e.swOpenDocOptions_Silent,
"", Errors, Warnings)
If
swModel Is Nothing Then
Exit
Sub
Else
Debug.Print("File
= " + swModel.GetPathName)
Debug.Print("")
End
If
swConfigurationMgr
= swModel.ConfigurationManager
swConfiguration
= swConfigurationMgr.ActiveConfiguration
ConfNameArr
= swModel.GetConfigurationNames
Debug.Print("Traverse
assembly without activating other configurations...")
For
Each ConfName In ConfNameArr
swConfiguration
= swModel.GetConfigurationByName(ConfName)
Debug.Print("
Name of
configuration: " & swConfiguration.Name)
Debug.Print(" Is configuration loaded? " & swConfiguration.IsLoaded)
Debug.Print(" Does configuration need to be rebuilt? " & swConfiguration.NeedsRebuild)
Debug.Print(" What is the configuration type? " & swConfiguration.Type)
Next
Debug.Print("")
'
Traverse the assembly again, but this time activate all
'
configurations, which loads them
Debug.Print("Traverse
assembly and activate all configurations...")
For
Each ConfName In ConfNameArr
swConfiguration
= swModel.GetConfigurationByName(ConfName)
boolstatus
= swModel.ShowConfiguration2(ConfName)
swConfiguration
= swConfigurationMgr.ActiveConfiguration
Debug.Print("
Name of
configuration: " & swConfiguration.Name)
Debug.Print(" Is configuration loaded? " & swConfiguration.IsLoaded)
Debug.Print(" Does configuration need to be rebuilt? " & swConfiguration.NeedsRebuild)
Debug.Print(" What is the configuration type? " & swConfiguration.Type)
Next
End
Sub
'''
<summary>
'''
The SldWorks swApp variable is pre-assigned for you.
'''
</summary>
Public
swApp As SldWorks
End Class