' ' GetAppendedText() and SetAppendedText() are new in NX5 ' Option Strict Off Imports System Imports System.Collections Imports System.IO Imports System.Environment Imports System.Windows.Forms Imports NXOpen Imports NXOpen.UI Imports NXOpen.Utilities Imports NXOpen.UF Module get_and_set_appended_text_for_selected_dimension Dim s As Session = Session.GetSession() Dim ufs As UFSession = UFSession.GetUFSession() Sub Main() ' Ein Teil geladen? if s.Parts.Work is Nothing Then Windows.Forms.MessageBox.Show("Kein Teil geladen! - No Part Loaded!") Exit Sub End If 'modulabfrage Dim module_id As Integer = 0 ufs.UF.AskApplicationModule(module_id) If module_id = UFConstants.UF_APP_MODELING Then Windows.Forms.MessageBox.Show("Bitte in die Zeichnungsableitung wechseln / Please change to drafting") Exit Sub End If Dim dimension As NXOpen.Tag While select_a_dimension(dimension) = Selection.Response.Ok ' Undo Mark setzten s.SetUndoMark( Session.MarkVisibility.Visible, "M X") Dim dimObj As Annotations.Dimension = NXObjectManager.Get(dimension) Dim appendedText As NXOpen.Annotations.AppendedText = _ dimObj.GetAppendedText() Dim diamdp As NXOpen.Annotations.DimensionPreferences = _ dimObj.GetDimensionPreferences() Dim dimensionPreferences1 As Annotations.DimensionPreferences dimensionPreferences1 = diamdp Dim unitsFormatPreferences1 As Annotations.UnitsFormatPreferences unitsFormatPreferences1 = dimensionPreferences1.GetUnitsFormatPreferences() unitsFormatPreferences1.DisplayTrailingZeros = False Dim diameterRadiusPreferences1 As Annotations.DiameterRadiusPreferences diameterRadiusPreferences1 = dimensionPreferences1.GetDiameterRadiusPreferences() 'diameterRadiusPreferences1.DiameterSymbol = Annotations.DiameterSymbol.UserDefined 'diameterRadiusPreferences1.DiameterSymbolText = "" diameterRadiusPreferences1.SymbolPlacement = Annotations.DiameterRadiusSymbolPlacement.Omit Dim lines(0) As String lines(0) = "M" Try dimensionPreferences1.SetUnitsFormatPreferences(unitsFormatPreferences1) unitsFormatPreferences1.Dispose() dimensionPreferences1.SetDiameterRadiusPreferences(diameterRadiusPreferences1) diameterRadiusPreferences1.Dispose() dimObj.SetDimensionPreferences(dimensionPreferences1) appendedText.SetBeforeText(lines) dimObj.SetAppendedText(appendedText) Catch e As NXException End Try ufs.Modl.Update() ufs.Disp.SetHighlight(dimension, 0) End While End Sub Function select_a_dimension(ByRef dimension As NXOpen.Tag) _ As Selection.Response Dim message As String = "Dimension:" Dim title As String = "Select a dimension" Dim scope As Integer = UFConstants.UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY Dim response As Integer Dim view As NXOpen.Tag Dim cursor(2) As Double Dim ip As UFUi.SelInitFnT = AddressOf init_proc ufs.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM) Try ufs.Ui.SelectWithSingleDialog(message, title, scope, ip, _ Nothing, response, dimension, 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 init_proc(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_dimension_type mask_triples(0).object_subtype = -1 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