Get Title Block Tables Example (VBA)
This example shows how to get title block tables.
'-------------------------------------------------
' Preconditions:
' 1.
Open a part.
' 2.
Ensure that the following file exists on your system and, if necessary,
'
modify the path to it in the code below:
' <SolidWorks_install_dir>\lang\english\connector-table.sldtbt.
' 3.
Open an Immediate Window in the IDE.
'
' Postconditions:
' 1. Inspect
the output in the Immediate Window.
' 2. Observe
the new title block table feature under Tables
' in the FeatureManager design
tree.
' 3. Observe
the corresponding title block table annotation
' in the model document.
' 4. Delete
all title block table features and annotations before
' re-running this
macro on the same part.
'--------------------------------------------------
Option Explicit
Dim swApp As Object
Dim Part As IModelDoc2
Dim myModelView As Object
Dim tbtAnno As ITitleBlockTableAnnotation
Dim anno As ITitleBlockTableAnnotation
Dim tabannoObject As ITitleBlockTableAnnotation
Dim feat As ITitleBlockTableFeature
Dim tabfeatObject As ITitleBlockTableFeature
Dim annos As Variant
Dim I As Long
Dim selMgr As ISelectionMgr
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Debug.Print "Inserting a title block table into the
model using a general table template (*.sldtbt)..."
Debug.Print ""
Set tbtAnno = Part.Extension.InsertTitleBlockTable("C:\Program
Files\SolidWorks Corp\SolidWorks\lang\english\connector-table.sldtbt",
500, 500)
Set feat = tbtAnno.TitleBlockTableFeature
Debug.Print "Title block table feature: "
+ feat.GetFeature.Name
Dim count As String
count = feat.GetTableAnnotationCount
Debug.Print "Title block table annotation count:
"
+ count
Debug.Print "Title block table annotations..."
annos = feat.GetTableAnnotations
For I = 0 To UBound(annos)
Set
anno = annos(I)
Debug.Print
" Title
block table feature: " + anno.TitleBlockTableFeature.GetFeature.Name
Next
Debug.Print ""
'See documentation for swSelectType_e.swSelTITLEBLOCKTABLEFEAT
Debug.Print "Selecting title block table feature
through SelectByID2 type, TITLEBLOCKTABLEFEAT..."
boolstatus = Part.Extension.SelectByID2(feat.GetFeature.Name,
"TITLEBLOCKTABLEFEAT", 0, 0, 0, False, 0, Nothing, 0)
Debug.Print ""
Debug.Print "Casting selected object to ITitleBlockTableFeature..."
Set selMgr = Part.ISelectionManager
Set tabfeatObject = selMgr.GetSelectedObject6(1, -1)
Debug.Print " Title
block table feature: " + tabfeatObject.GetFeature.Name
Debug.Print ""
'See documentation for swSelectType_e.swSelANNOTATIONTABLES
Debug.Print "Selecting title block table annotation
through SelectByID2 type, ANNOTATIONTABLES..."
boolstatus = Part.Extension.SelectByID2("",
"ANNOTATIONTABLES", -0.1205280774849, -0.01199819470702, 0.04087038255709,
False, 0, Nothing, 0)
Debug.Print ""
Debug.Print "Casting selected object to ITitleBlockTableAnnotation
type..."
Set tabannoObject = selMgr.GetSelectedObject6(1, -1)
Debug.Print "Getting title block table feature from
the title block table annotation..."
Debug.Print " Title
block table feature: " + tabannoObject.TitleBlockTableFeature.GetFeature.Name
Debug.Print ""
'See documentation for swTableAnnotationType_e_TitleBlock
Debug.Print "Casting selected object to ITableAnnotation
type..."
Dim annoObject As ITableAnnotation
Set annoObject = selMgr.GetSelectedObject6(1, -1)
Dim annoType As String
annoType = annoObject.Type
If annoType = swTableAnnotationType_e.swTableAnnotation_TitleBlock
Then
Debug.Print
" The
selected table annotation is defined in swTableAnnotationType_e as TitleBlock"
Else
Debug.Print
" The
selected table annotation is defined in swTableAnnotationType_e with value:
"
+ annoType
End If
End Sub