Insert New Virtual Component Example (VB.NET)
This example shows how to insert a new part as a virtual component in
an assembly and save it to an external file.
'---------------------------------------------------------------------
' Preconditions:
' 1. Open:
'
<SolidWorks_install_dir>\samples\tutorial\smartcomponents\stepped_shaft.sldasm
' 2. A planar face on the assembly is selected.
'
' Postconditions:
' 1. The new part is inserted as a virtual component in the assembly.
' 2. The virtual component is saved to an external file,
' and its name changes in the FeatureManager design tree.
'
' NOTE: Because this assembly is used in a SolidWorks online tutorial, do
not
' save the assembly when you close it.
'---------------------------------------------------------------------
Imports
SolidWorks.Interop.sldworks
Imports
SolidWorks.Interop.swconst
Imports
System
Imports
System.Diagnostics
Partial
Class
SolidWorksMacro
Dim
swModel As
ModelDoc2
Dim
swAssy As
AssemblyDoc
Dim
swComponent As
Component2
Dim
swSelMgr As
SelectionMgr
Dim
objFSO As
Object
Dim
objFile As
Object
Dim
compName As
String
Dim
splits As
Object
Dim
status As
Long
Sub
Main()
swModel = swApp.ActiveDoc
swAssy = swModel
' Get the pre-selected planar face
Dim
swFeature As
Face2
swSelMgr = swModel.SelectionManager
swFeature = swSelMgr.GetSelectedObject6(1, 0)
' Create the part and insert it as
a virtual component
'
in the assembly
status = swAssy.InsertNewVirtualPart(swFeature,
swComponent)
If
status = 1 Then
Debug.Print("Name
of virtual component: " & swComponent.Name2)
' Check to see if the part is a
virtual component
Debug.Print("Is
component virtual? " & swComponent.IsVirtual)
objFSO = CreateObject("Scripting.FileSystemObject")
objFile = objFSO.GetFile(swModel.GetPathName)
splits = Split(swComponent.Name,
"^")
compName = objFSO.GetParentFolderName(objFile) &
"\" & splits(0)
Dim
compModel As
ModelDoc2
compModel = swComponent.GetModelDoc
If
compModel.GetType = swDocumentTypes_e.swDocPART
Then
compName = compName &
".sldprt"
Else
compName = compName &
".sldasm"
End
If
Debug.Print("Name
of saved virtual component: " & compName)
swComponent.SaveVirtualComponent(compName)
Else
Debug.Print("Error
code returned when attempting to insert new part as virtual component: "
& status)
End
If
swModel.ClearSelection2(True)
End
Sub
Public
swApp As
SldWorks
End
Class