Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Journal select Objects und Reference Set ändern

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  Journal select Objects und Reference Set ändern (612 mal gelesen)
NXNeuling
Mitglied
Ingenieur

Sehen Sie sich das Profil von NXNeuling an!   Senden Sie eine Private Message an NXNeuling  Schreiben Sie einen Gästebucheintrag für NXNeuling

Beiträge: 8
Registriert: 15.07.2021

NX1963

erstellt am: 08. Dez. 2021 15:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,
ich stehe vor einem Problem, das ich in einer Baugruppe arbeite in der ich nur für bestimmte Teile immer wieder Reference Sets ändern möchte.
z.B. von Reference Set "Entire Part" auf "Routing.

Ich habe nun ein Journal im Internet gefunden, mit dem ich alle meine Teile über ein bestimmtes Attribut in meiner Baugruppe selektieren kann. Kann mir einer von euch sagen, wie ich dieses Journal nun um das ändern des Reference Set erweitern kann?

Grüße 

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

Module Module3

    ReadOnly theSession As Session = Session.GetSession()
    ReadOnly theUfSession As UFSession = UFSession.GetUFSession()
    ReadOnly theUI As UI = UI.GetUI()

    Dim lw As ListingWindow = theSession.ListingWindow

    '*********************************************
    '* change "TEST" to the desired attribute name
    Const findAttributeTitle As String = "Katalogteil"
    '*********************************************

    Sub Main()

        If IsNothing(theSession.Parts.BaseWork) Then
            'active part required
            Return
        End If

        lw.Open()

        If IsNothing(theSession.Parts.Display.ComponentAssembly.RootComponent) Then
            'no components to process
            Return
        End If


        Dim foundComponents As New List(Of Assemblies.Component)
        theUI.SelectionManager.ClearGlobalSelectionList()

        Try
            Dim c As Assemblies.ComponentAssembly = theSession.Parts.Display.ComponentAssembly
            processComponentChildren(c.RootComponent, foundComponents)
        Catch e As Exception
            theSession.ListingWindow.WriteLine("Failed: " & e.ToString)
        End Try
        lw.Close()

        theUI.SelectionManager.RequestSelections(foundComponents.ToArray)

        lw.WriteLine("number of selected components: " & theUI.SelectionManager.GetNumSelectedObjects.ToString)

    End Sub

    Sub processComponentChildren(ByVal comp As Assemblies.Component, ByRef componentList As List(Of Assemblies.Component))

        For Each child As Assemblies.Component In comp.GetChildren()
            If child.HasUserAttribute(findAttributeTitle, NXObject.AttributeType.Any, -1) Then
                componentList.Add(child)
            End If
            processComponentChildren(child, componentList)
        Next
    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

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

geraldb
Mitglied



Sehen Sie sich das Profil von geraldb an!   Senden Sie eine Private Message an geraldb  Schreiben Sie einen Gästebucheintrag für geraldb

Beiträge: 38
Registriert: 13.09.2008

erstellt am: 08. Dez. 2021 21:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NXNeuling 10 Unities + Antwort hilfreich

NXNeuling
Mitglied
Ingenieur

Sehen Sie sich das Profil von NXNeuling an!   Senden Sie eine Private Message an NXNeuling  Schreiben Sie einen Gästebucheintrag für NXNeuling

Beiträge: 8
Registriert: 15.07.2021

NX1963

erstellt am: 09. Dez. 2021 07:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi, danke für den Tipp
allerdings bin ich leider nicht in der Lage diese beiden Befehle miteinander zu kombinieren 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Eonwe
Mitglied



Sehen Sie sich das Profil von Eonwe an!   Senden Sie eine Private Message an Eonwe  Schreiben Sie einen Gästebucheintrag für Eonwe

Beiträge: 55
Registriert: 10.11.2014

NX 12 mit ECTR

erstellt am: 09. Dez. 2021 15:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NXNeuling 10 Unities + Antwort hilfreich

Grundsätzlich müsste das mit

workPart.ComponentAssembly.ReplaceReferenceSet(component as Component, newReferenceSet as String)

funktionieren.

das hier unten and sie Sub Main() dran:

For each theComp as Assemblies.Component in componentList
theSession.Parts.Work.ComponentAssembly.ReplaceReferenceSet(theComp, "REFERENZSET")
Next

ungetestet, aber das Prinzip dürfte klar werden.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

NXNeuling
Mitglied
Ingenieur

Sehen Sie sich das Profil von NXNeuling an!   Senden Sie eine Private Message an NXNeuling  Schreiben Sie einen Gästebucheintrag für NXNeuling

Beiträge: 8
Registriert: 15.07.2021

NX1963

erstellt am: 09. Dez. 2021 19:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Mhh hab es versucht, aber es läuft bei mir immer auf einen Fehler.
liegt auch daran, dass ich echt krasser Anfänger in dem Bereich bin 

Hast du noch einen Tipp für mich wie ich das dort einbaue?

Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Zerspanungsmechaniker (m/w/d)

Aufgrund der umfassenden Erfahrung im deutschen Arbeitsmarkt, vertrauen namhafte und zukunftsstarke Unternehmen seit 30 Jahren dem Personalservice der expertum Gruppe. Wir bringen die Vorstellungen und Wünsche exzellenter Kandidaten mit den Anforderungen unserer Kunden für eine anhaltende und zufriedenstellende Verbindung zusammen. HIER WIRST DU ARBEITEN ALS ZERSPANUNGSMECHANIKER ...

Anzeige ansehenHandwerk, Dienstleistung und Fertigung
Eonwe
Mitglied



Sehen Sie sich das Profil von Eonwe an!   Senden Sie eine Private Message an Eonwe  Schreiben Sie einen Gästebucheintrag für Eonwe

Beiträge: 55
Registriert: 10.11.2014

NX 12 mit ECTR

erstellt am: 10. Dez. 2021 11:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für NXNeuling 10 Unities + Antwort hilfreich

        lw.WriteLine("number of selected components: " & theUI.SelectionManager.GetNumSelectedObjects.ToString)

    End Sub

Das ist die letzte Zeile in der Sub Main(). Da dahinter und vor End Sub kommt folgendes:

For each theComp as Assemblies.Component in foundComponents
theSession.Parts.Work.ComponentAssembly.ReplaceReferenceSet(theComp, "REFERENZSET")
Next


Dabei muss "REFERENZSET" durch den Namen des neuen Referenzsets ersetzt werden. Dann bekommen alle Komponenten mit dem gefundenen Attribut das Referenzset.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz