Insert Column in BOM Table Example (VB.NET)
This example shows how to insert a part-number column in a BOM table.
'------------------------------------
' Preconditions:
' 1. Drawing must be open and contain a BOM table.
' 2. BOM table must be selected (right-click the BOM
' table,
select Select, and select Table)
'
' Postconditions: A
part-number column is inserted at the end of the
' existing
the BOM table.
'------------------------------------
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System
Imports System.Diagnostics
Partial Class SolidWorksMacro
Public
Sub main()
Dim
swModel As ModelDoc2
Dim
boolstatus As Boolean
Dim
SelMgr As Object
Dim
theTableAnnotation As TableAnnotation
Dim
SelObjType As Long
Dim
TableAnnotationType As Long
swModel
= swApp.ActiveDoc
SelMgr
= swModel.SelectionManager
SelObjType
= SelMgr.GetSelectedObjectType3(1,
-1)
If
SelObjType <> swSelectType_e.swSelANNOTATIONTABLES Then
MsgBox("Select
a BOM table in the drawing before running this example.")
Exit
Sub
End
If
theTableAnnotation
= SelMgr.GetSelectedObject6(1,
-1)
TableAnnotationType
= theTableAnnotation.Type
If
TableAnnotationType <> swTableAnnotationType_e.swTableAnnotation_BillOfMaterials
Then
MsgBox("Select
a BOM table in the drawing before running this example.")
Exit
Sub
End
If
Debug.Print("Table
before inserting a column...")
'
Display table before inserting a column
DisplayTableColumnProps(theTableAnnotation)
'
Insert new column
boolstatus
= theTableAnnotation.InsertColumn2(swTableItemInsertPosition_e.swTableItemInsertPosition_Last,
0, "New Column", swInsertTableColumnWidthStyle_e.swInsertColumn_DefaultWidth)
boolstatus
= theTableAnnotation.SetColumnType(theTableAnnotation.ColumnCount
- 1, swTableColumnTypes_e.swBomTableColumnType_PartNumber)
Debug.Print("
")
Debug.Print("Table
after inserting a column...")
'
Display table after inserting a column
DisplayTableColumnProps(theTableAnnotation)
End
Sub
Sub
DisplayTableColumnProps(ByVal theTableAnnotation As Object)
Dim
ColCount As Long
Dim
i As Long
Dim
iString As String
Dim
ColType As Long
Dim
ColTypeString As String
Dim
ColTitle As String
Debug.Print("Col#
"
+ "Type "
+ "Title")
ColCount
= theTableAnnotation.ColumnCount
For
i = 0 To ColCount - 1
ColType
= theTableAnnotation.GetColumnType(i)
ColTypeString
= CType(ColType, String)
ColTitle
= theTableAnnotation.GetColumnTitle(i)
iString
= CType(i, String)
Debug.Print(iString
+ " "
+ ColTypeString + " "
+ ColTitle)
Next
i
End
Sub
'''
<summary>
'''
The SldWorks swApp variable is pre-assigned for you.
'''
</summary>
Public
swApp As SldWorks
End Class