Code:
Imports SystemImports NXOpen
Imports NXOpen.UI
Imports NXOpen.Utilities
Imports NXOpen.UF
Module report_custom_symbol
Dim s As Session = Session.GetSession()
Dim ufs As UFSession = UFSession.GetUFSession()
Dim lw As ListingWindow = s.ListingWindow
Sub Main()
Dim symbol As NXOpen.Tag
lw.Open()
While select_a_custom_symbol(symbol) = Selection.Response.Ok
lw.WriteLine("tag: " & symbol.ToString())
ufs.Disp.SetHighlight(symbol, 0)
Dim customSymbol As Annotations.CustomSymbol = CType(NXObjectManager.Get(symbol), Annotations.CustomSymbol)
lw.WriteLine("name: " & customSymbol.Name)
Dim customSymbolData As Annotations.CustomSymbolData
customSymbolData = customSymbol.GetSymbolData()
lw.WriteLine("angle: " & customSymbolData.Angle)
lw.WriteLine("scale: " & customSymbolData.Scale)
Dim textdata() As Annotations.CustomSymbolTextData
textdata = customSymbolData.GetTextData()
For Each td As Annotations.CustomSymbolTextData in textdata
lw.WriteLine("text type: " & td.TextType)
Dim text() As String
text = td.GetText()
For Each t As String In text
lw.WriteLine("text: " & t)
Next
Next
End While
End Sub
Function select_a_custom_symbol(ByRef note As NXOpen.Tag) As Selection.Response
Dim message As String
Dim title As String = "Select a custom symbol"
Dim scope As Integer = UFConstants.UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY
Dim response As Integer
Dim obj As NXOpen.Tag
Dim view As NXOpen.Tag
Dim cursor(2) As Double
Dim ip As UFUi.SelInitFnT = AddressOf mask_for_symbols
ufs.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
Try
ufs.Ui.SelectWithSingleDialog(message, title, scope, ip, _
Nothing, response, note, cursor, view)
Finally
ufs.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
End Try
If response <> UFConstants.UF_UI_OBJECT_SELECTED And _
response <> UFConstants.UF_UI_OBJECT_SELECTED_BY_NAME Then
Return Selection.Response.Cancel
Else
Return Selection.Response.Ok
End If
End Function
Function mask_for_symbols(ByVal select_ As IntPtr, _
ByVal userdata As IntPtr) As Integer
Dim num_triples As Integer = 1
Dim mask_triples(0) As UFUi.Mask
mask_triples(0).object_type = UFConstants.UF_drafting_entity_type
mask_triples(0).object_subtype = UFConstants.UF_draft_user_defined_subtype
mask_triples(0).solid_type = 0
ufs.Ui.SetSelMask(select_, _
UFUi.SelMaskAction.SelMaskClearAndEnableSpecific, _
num_triples, mask_triples)
Return UFConstants.UF_UI_SEL_SUCCESS
End Function
Public Function GetUnloadOption(ByVal dummy As String) As Integer
GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY
End Function
End Module