×
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

eBook - Simulation-Driven Design with SOLIDWORKS
Simulation-driven design can reduce the time and cost of product development. In this engineering.com eBook, we’ll explore how SOLIDWORKS users can access simulation-driven design through the SOLIDWORKS Simulation suite of analysis tools. Download Now
eBook - Integrating the Engineering Ecosystem
Aras Innovator provides multiple options for integrating data between systems, depending on the scenario. Utilizing the right approach to meet specific business requirements is vital. These needs range from authoring tools, federating data from various and dissimilar databases, and triggering processes and workflows. Download Now
Research Report - Simulation-Driven Design for SOLIDWORKS Users
In this engineering.com research report, we discuss the rising role of simulation and the paradigm shift commonly called the democratization of simulation. In particular, we focus on how SOLIDWORKS users can take advantage of simulation-driven design through two analysis tools: SOLIDWORKS Simulation and 3DEXPERIENCE WORKS. 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