[COLOR=blue]Option[/color] [COLOR=blue]Strict[/color] [COLOR=blue]Off[/color]
[COLOR=blue]Imports[/color] System
[COLOR=blue]Imports[/color] NXOpen
[COLOR=blue]Imports[/color] NXOpen.UI
[COLOR=blue]Imports[/color] NXOpen.Utilities
[COLOR=blue]Imports[/color] NXOpen.UF
[COLOR=blue]Module[/color] select_a_sketch_module
[COLOR=blue]Dim[/color] s [COLOR=blue]As[/color] Session [COLOR=blue]=[/color] Session.GetSession()
[COLOR=blue]Dim[/color] ufs [COLOR=blue]As[/color] UFSession [COLOR=blue]=[/color] UFSession.GetUFSession()
[COLOR=blue]Sub[/color] Main()
[COLOR=blue]Dim[/color] sketch [COLOR=blue]As[/color] Tag
[COLOR=blue]Dim[/color] sketchDims() [COLOR=blue]As[/color] Tag
[COLOR=blue]Dim[/color] numDims [COLOR=blue]As[/color] [COLOR=blue]Integer[/color]
[COLOR=blue]Dim[/color] lw [COLOR=blue]As[/color] ListingWindow [COLOR=blue]=[/color] s.ListingWindow
lw.Open()
[COLOR=blue]While[/color] select_a_sketch(sketch) [COLOR=blue]=[/color] Selection.Response.Ok
[COLOR=green]'MsgBox("sketch Tag:" & sketch.ToString())[/color]
ufs.Disp.SetHighlight(sketch, 0)
ufs.Sket.AskDimensionsOfSketch(sketch, numDims, sketchDims)
[COLOR=green]'MsgBox("number of dimensions: " & numDims)[/color]
[COLOR=blue]Dim[/color] expTag [COLOR=blue]As[/color] Tag
[COLOR=blue]Dim[/color] expString [COLOR=blue]As[/color] [COLOR=blue]String[/color]
[COLOR=blue]Dim[/color] expValue [COLOR=blue]As[/color] [COLOR=blue]Double[/color]
[COLOR=blue]Dim[/color] dimStatus [COLOR=blue]As[/color] [COLOR=blue]Integer[/color]
[COLOR=blue]Dim[/color] refDim [COLOR=blue]As[/color] Annotations.Dimension
[COLOR=blue]Dim[/color] mainText() [COLOR=blue]As[/color] [COLOR=blue]String[/color]
[COLOR=blue]Dim[/color] dualText() [COLOR=blue]As[/color] [COLOR=blue]String[/color]
[COLOR=blue]For[/color] [COLOR=blue]Each[/color] dimTag [COLOR=blue]As[/color] Tag [COLOR=blue]In[/color] sketchDims
ufs.Sket.AskDimStatus(dimTag, expTag, expString, expValue, dimStatus)
[COLOR=blue]If[/color] dimStatus [COLOR=blue]=[/color] 1 [COLOR=blue]Then[/color] [COLOR=green]'reference dimension[/color]
refDim [COLOR=blue]=[/color] Utilities.NXObjectManager.Get(dimTag)
refDim.GetDimensionText(mainText, dualText)
lw.WriteLine("Reference dimension: " [COLOR=blue]&[/color] mainText(0))
[COLOR=blue]Else[/color]
lw.WriteLine("Active dimension: " [COLOR=blue]&[/color] expString)
End [COLOR=blue]If[/color]
[COLOR=blue]Next[/color]
End [COLOR=blue]While[/color]
End [COLOR=blue]Sub[/color]
[COLOR=blue]Function[/color] select_a_sketch(ByRef sketch [COLOR=blue]As[/color] NXOpen.Tag) [COLOR=blue]As[/color] Selection.Response
[COLOR=blue]Dim[/color] message [COLOR=blue]As[/color] [COLOR=blue]String[/color]
[COLOR=blue]Dim[/color] title [COLOR=blue]As[/color] [COLOR=blue]String[/color] [COLOR=blue]=[/color] "Select a sketch"
[COLOR=blue]Dim[/color] scope [COLOR=blue]As[/color] [COLOR=blue]Integer[/color] [COLOR=blue]=[/color] UFConstants.UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY
[COLOR=blue]Dim[/color] response [COLOR=blue]As[/color] [COLOR=blue]Integer[/color]
[COLOR=blue]Dim[/color] obj [COLOR=blue]As[/color] NXOpen.Tag
[COLOR=blue]Dim[/color] view [COLOR=blue]As[/color] NXOpen.Tag
[COLOR=blue]Dim[/color] cursor(2) [COLOR=blue]As[/color] [COLOR=blue]Double[/color]
[COLOR=blue]Dim[/color] mask_sketch [COLOR=blue]As[/color] UFUi.SelInitFnT [COLOR=blue]=[/color] [COLOR=blue]AddressOf[/color] mask_for_sketchs
ufs.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
[COLOR=blue]Try[/color]
ufs.Ui.SelectWithSingleDialog(message, title, scope, mask_sketch, _
Nothing, response, sketch, cursor, view)
[COLOR=blue]Finally[/color]
ufs.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
End [COLOR=blue]Try[/color]
[COLOR=blue]If[/color] response <> UFConstants.UF_UI_OBJECT_SELECTED [COLOR=blue]And[/color] _
response <> UFConstants.UF_UI_OBJECT_SELECTED_BY_NAME [COLOR=blue]Then[/color]
[COLOR=blue]Return[/color] Selection.Response.Cancel
[COLOR=blue]Else[/color]
[COLOR=blue]Return[/color] Selection.Response.Ok
End [COLOR=blue]If[/color]
End [COLOR=blue]Function[/color]
[COLOR=blue]Function[/color] mask_for_sketchs(ByVal select_ [COLOR=blue]As[/color] IntPtr, _
[COLOR=blue]ByVal[/color] userdata [COLOR=blue]As[/color] IntPtr) [COLOR=blue]As[/color] [COLOR=blue]Integer[/color]
[COLOR=blue]Dim[/color] num_triples [COLOR=blue]As[/color] [COLOR=blue]Integer[/color] [COLOR=blue]=[/color] 1
[COLOR=blue]Dim[/color] mask_triples(0) [COLOR=blue]As[/color] UFUi.Mask
mask_triples(0).object_type [COLOR=blue]=[/color] UFConstants.UF_sketch_type
ufs.Ui.SetSelMask(select_, _
UFUi.SelMaskAction.SelMaskClearAndEnableSpecific, _
num_triples, mask_triples)
[COLOR=blue]Return[/color] UFConstants.UF_UI_SEL_SUCCESS
End [COLOR=blue]Function[/color]
[COLOR=blue]Public[/color] [COLOR=blue]Function[/color] GetUnloadOption(ByVal dummy [COLOR=blue]As[/color] [COLOR=blue]String[/color]) [COLOR=blue]As[/color] [COLOR=blue]Integer[/color]
GetUnloadOption [COLOR=blue]=[/color] UFConstants.UF_UNLOAD_IMMEDIATELY
End [COLOR=blue]Function[/color]
End [COLOR=blue]Module[/color]