Showing results for 
Search instead for 
Do you mean 
Reply

Keep the drafting view selected

Hello,

         In NX 9 drafting I want to perform 2 or 3 operation on the view, like view setting then view dependant edit and later view boundary. But after performing each of these operation view gets deselected, hence I need to select it again. Is there any option such that the view is selected throught all there operation. I need it because I have macro for all these opreration. So I want to combine all the 3 macro.  

1 REPLY

Re: Keep the drafting view selected

Continuing your thread from the design forum

https://community.plm.automation.siemens.com/t5/NX-Design-Discussion-Forum/Keep-the-drafting-view-se...

 

The code below allows you to select a drafting view. All it does is report the name of the view you selected, but you can perform other operations on the view as desired.

 

Option Strict Off
Imports System
Imports NXOpen
Imports NXOpen.UF

Module Module1

    Sub Main()

        Dim theSession As Session = Session.GetSession()
        If IsNothing(theSession.Parts.BaseWork) Then
            'active part required
            Return
        End If

        Dim workPart As Part = theSession.Parts.Work
        Dim lw As ListingWindow = theSession.ListingWindow
        lw.Open()

        Dim theDrftView As Drawings.DraftingView
        If SelectDraftingView("select drafting view", theDrftView) = Selection.Response.Cancel Then
            Return
        End If

        lw.WriteLine("view selected: " & theDrftView.Name)

        lw.Close()

    End Sub

    Function SelectDraftingView(ByVal prompt As String, ByRef selView As Drawings.DraftingView) As Selection.Response

        Dim theUI As UI = UI.GetUI
        Dim title As String = "Select a drafting view"
        Dim includeFeatures As Boolean = False
        Dim keepHighlighted As Boolean = False
        Dim selAction As Selection.SelectionAction = Selection.SelectionAction.ClearAndEnableSpecific
        Dim cursor As Point3d
        Dim scope As Selection.SelectionScope = Selection.SelectionScope.WorkPart
        Dim selectionMask_array(0) As Selection.MaskTriple
        Dim selObj As TaggedObject

        With selectionMask_array(0)
            .Type = UFConstants.UF_view_type
            .Subtype = UFConstants.UF_all_subtype
        End With

        Dim resp As Selection.Response = theUI.SelectionManager.SelectTaggedObject(prompt, _
         title, scope, selAction, _
         includeFeatures, keepHighlighted, selectionMask_array, _
         selObj, cursor)
        If resp = Selection.Response.ObjectSelected OrElse resp = Selection.Response.ObjectSelectedByName Then
            selView = CType(selObj, Drawings.DraftingView)
            Return Selection.Response.Ok
        Else
            Return Selection.Response.Cancel
        End If

    End Function

    Public Function GetUnloadOption(ByVal dummy As String) As Integer

        'Unloads the image immediately after execution within NX
        GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately

    End Function

End Module