×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Trying to access the clipboard when recording a journal

Trying to access the clipboard when recording a journal

Trying to access the clipboard when recording a journal

(OP)
I have a separate bit of software that generates an empty part file, and also copies the part name to the clipboard.

Because the empty part has 'TBC' as it's name in the part attributes table I wish to record a journal that updates this attribute to whatever is saved in the clipboard at the click of a button.

Whenever I try and record the journal it records the end result rather than the actions. I've tried replacing the string in the journal code to Clipboard.GetText() but NX says it doesn't have access to the clipboard. I don't know anything about VBA and I'm kinda just hacking at it. Does anyone here have some pointers?

RE: Trying to access the clipboard when recording a journal

CODE

Option Strict Off
Imports System
Imports System.Collections.Generic
Imports NXOpen

Module Module86

    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()


        If My.Computer.Clipboard.ContainsText Then
            lw.WriteLine(My.Computer.Clipboard.GetText)
        Else
            lw.WriteLine("** clipboard does not contain text **")
        End If

        lw.Close()

    End Sub

    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 

The code above works for me (NX 9, Win 7). It displays the text on the clipboard (if any) in the NX information window. If you get an error when running the code, can you post the error text or a screenshot of the error?

www.nxjournaling.com

RE: Trying to access the clipboard when recording a journal

(OP)
Thank you very much for your reply.

The code you posted works well but I am struggling to apply it to edit the name attribute.

RE: Trying to access the clipboard when recording a journal

Below is one potential solution.

CODE

Option Strict Off
Imports System
Imports NXOpen

Module Module8

    Dim theSession As Session = Session.GetSession()

    Sub Main()

        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()

        Const attributeName As String = "TEST"
        Dim attributeInfo As NXObject.AttributeInformation

        Dim testVal As String

        If workPart.HasUserAttribute(attributeName, NXObject.AttributeType.String, -1) Then

            EditPartStringAttribute(attributeName, My.Computer.Clipboard.GetText)

        Else
            lw.WriteLine("the work part does not have a number attribute named: " & attributeName)
        End If


        lw.Close()

    End Sub

    Sub EditPartStringAttribute(ByVal attName As String, ByVal attValue As String)

        Dim markId1 As Session.UndoMarkId
        markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "update name attribute")

        Dim workPart As Part = theSession.Parts.Work
        Dim objects1(0) As NXObject
        objects1(0) = workPart

        Dim attributePropertiesBuilder1 As AttributePropertiesBuilder
        attributePropertiesBuilder1 = theSession.AttributeManager.CreateAttributePropertiesBuilder(workPart, objects1, AttributePropertiesBuilder.OperationType.None)

        attributePropertiesBuilder1.DataType = AttributePropertiesBaseBuilder.DataTypeOptions.String

        attributePropertiesBuilder1.Title = attName

        attributePropertiesBuilder1.IsArray = False

        attributePropertiesBuilder1.StringValue = attValue

        Dim nXObject1 As NXObject
        nXObject1 = attributePropertiesBuilder1.Commit()

        Dim nErrs1 As Integer
        nErrs1 = theSession.UpdateManager.DoUpdate(markId1)

        attributePropertiesBuilder1.Destroy()


    End Sub

    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 

www.nxjournaling.com

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Resources

White Paper - How ESI is Helping Move New Medical Device Product to Market Quicker & More Cost Effic
Early Supplier Involvement has long been a strategy employed by manufacturers to produce innovative products. Now, it almost seems like a necessity. Because decisions made in the design phase can positively affect product quality and costs, this can help add value to OEM bottom lines. This white paper will discuss many facets of ESI, including why it’s so valuable today, what challenges limit the benefits of ESI, how cost is impacted, and more. Download Now
White Paper - Moving to a Driverless Future
This white paper describes what we see as the best practices to support a sustainable engineering process for autonomous vehicle design. It exposes how to use simulation and testing in common frameworks to enable design exploration, verification and validation for the development of autonomous cars at a system, software and full-vehicle level to drive a mature product development process for automated driving. Download Now
Research Report - How Engineers are Using Remote Access
Remote access enables engineers to work from anywhere provided they have an internet connection. We surveyed our audience of engineers, designers and product managers to learn how they use remote access within their organizations. We wanted to know which industries have adopted remote access, which software they are using, and what features matter most. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close