Get Title Block Tables Example (VB.NET)
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.
'--------------------------------------------------
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System
Imports System.Diagnostics
Partial Class SolidWorksMacro
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 Object
Dim
I As Long
Dim
selMgr As ISelectionMgr
Dim
boolstatus As Boolean
Dim
longstatus As Long, longwarnings As Long
Sub
main()
Part
= swApp.ActiveDoc
Debug.Print("Inserting
a title block table into the model using a general table template (*.sldtbt)...")
Debug.Print("")
tbtAnno
= Part.Extension.InsertTitleBlockTable("C:\Program
Files\SolidWorks Corp\SolidWorks\lang\english\connector-table.sldtbt",
500, 500)
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)
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...")
selMgr
= Part.ISelectionManager
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...")
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
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
Public
swApp As SldWorks
End Class