Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  WaveLinks per Journal aufbrechen

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:  WaveLinks per Journal aufbrechen (336 mal gelesen)
Ace Shim
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 22.02.2005

Siemens NX12, TeamCenter, Navision, Win10

erstellt am: 11. Jul. 2023 22:39    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

Einen abendlichen Gruß aus der Eifel 

Ich habe ein Journal erstellt, welches alle WaveLinks im Part aufbricht...
So weit, so gut.
Zu Beginn habe ich beispielhaft ein Journal aufgezeichnet, und es dann auf alle Wave-Typen erweitert.
Bei den ExtractFaces (Verbundene Körper und Flächen) bekomme ich allerdings einen "Journal execution error",
der wie folgt lautet:

NXOpen.NXException: Das verbundene Formelement konnte nicht erzeugt werden da sich das ausgewählte Objekt im aktiven Teil befindet
bei NXOpen.Builder.Commit()
Zeile xy

So sieht die Schleife für die gelinkten Körper/Flächen aus:

        For Each myFeature As NXOpen.Features.Feature In workPart.Features
            If TypeOf (myFeature) Is NXOpen.Features.ExtractFace Then

                Dim myExtractFace = CType(myFeature, NXOpen.Features.ExtractFace)
                Dim editWithRollbackManager1 As NXOpen.Features.EditWithRollbackManager = Nothing
                editWithRollbackManager1 = workPart.Features.StartEditWithRollbackManager(myExtractFace, markId1)

                Dim extractFaceBuilder1 As NXOpen.Features.ExtractFaceBuilder = Nothing
                extractFaceBuilder1 = workPart.Features.CreateExtractFaceBuilder(myExtractFace)
                extractFaceBuilder1.ParentPart = NXOpen.Features.WaveSketchBuilder.ParentPartType.OtherPart
                extractFaceBuilder1.Associative = False

                Dim nullNXOpen_TaggedObject As NXOpen.TaggedObject = Nothing

                extractFaceBuilder1.SourcePartOccurrence = nullNXOpen_TaggedObject

                Dim selectedobjects1(-1) As NXOpen.Assemblies.ProductInterface.InterfaceObject
                extractFaceBuilder1.SetProductInterfaceObjects(selectedobjects1)

                Dim nXObject1 As NXOpen.NXObject = Nothing
                nXObject1 = extractFaceBuilder1.Commit()

                extractFaceBuilder1.Destroy()

                editWithRollbackManager1.UpdateFeature(False)
                editWithRollbackManager1.Stop()

                theSession.Preferences.Modeling.UpdatePending = False

                editWithRollbackManager1.Destroy()

            End If
        Next

Die anderen Wave-Typen funktionieren einwandfrei - keine Ahnung warum NX hier meckert!?
Hat jemand eine Idee?

Ich bin sicher, es gibt einen kürzeren und eleganteren Weg, alle Links aufzubrechen!
Wenn ihn mir jemand zeigt, werde ich ihn gehen! 

Danke Jungs und Mädels

Marc

------------------
"Das kann man so machen, aber dann ist es halt Sch...!"

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

Kevin17
Mitglied


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

Beiträge: 4
Registriert: 27.05.2021

erstellt am: 12. Jul. 2023 16: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 Ace Shim 10 Unities + Antwort hilfreich

Hallo,

probiers mal mit folgendem Code (haben wir in Verwendung, kann ich aber gerade nicht austesten):

Code:

Dim markId1 As Session.UndoMarkId = theSession.SetUndoMark(Session.MarkVisibility.Visible, JournalName)

        LW.Open()

        Dim breakCount As Integer = 0
        For Each myFeature As NXOpen.Features.Feature In workPart.Features
            Dim isLinkBroken As Boolean = False

            'Ask for WAVE-links.
            If myFeature.FeatureType.Contains("LINKED") Then
                theUFSession.Wave.IsLinkBroken(myFeature.Tag, isLinkBroken)
                'Ask for broken WAVE-links.
                If isLinkBroken Then
                    Continue For
                End If

                Try
                    'Break WAVE-links.
                    theUFSession.Wave.SetLinkData(myFeature.Tag, NXOpen.Tag.Null, NXOpen.Tag.Null, False)
                Catch ex As NXException
                    theUISession.NXMessageBox.Show("Fehler", NXMessageBox.DialogType.Error, "Fehlernachricht: " & ex.Message & vbCrLf & "Fehlercode: " & ex.ErrorCode)
                End Try

                theUFSession.Modl.Update()

            End If

        Next myFeature

        Dim nErrs1 As Integer
        nErrs1 = theSession.UpdateManager.DoUpdate(markId1)
        theSession.Preferences.Modeling.UpdatePending = False


Gruß,
Kevin

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

Ace Shim
Mitglied
Konstrukteur


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

Beiträge: 44
Registriert: 22.02.2005

Siemens NX12, TeamCenter, Navision, Win10

erstellt am: 12. Jul. 2023 20:22    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 Kevin,

danke erstmal für Deine schnelle Antwort.
Ich habe Deinen Code eben laufen lassen...

Folgende Fehlermeldung wird 2x ausgegeben, wobei dennoch erst die Verknüpfte zusammengesetzte Kurve aufgebrochen wird und anschließend die Verbundnen Körper und Flächen (Die restlichen Links bleiben leider assoziativ):

"Fehlernachricht: Diese Operation kann nicht an einem Spiegel-, Bereichs- oder punktweise verbundenen Formelement ausgeführt werden.
Fehlercode: 1915010"

Ich werde mal etwas mit dem Code herumspielen. Vielleicht bekomme ich es ja hin!?

Hab vielen Dank

Gruß
Marc

------------------
"Das kann man so machen, aber dann ist es halt Sch...!"

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

ThomasZwatz
Ehrenmitglied V.I.P. h.c.
cadadmin



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

Beiträge: 5412
Registriert: 19.05.2000

erstellt am: 13. Jul. 2023 07:36    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 Ace Shim 10 Unities + Antwort hilfreich

Vielleicht auch hier anlehnen ?
https://support.sw.siemens.com/en-US/product/209349590/knowledge-base/PL8580117

gibt dazu mehrere Einträge, man muss nur mehr rausfinden welche WAVE Features alle möglich wären ...

In solchen Fällen immer einen Versuch wert, in GTAC nach "Sample NXOpen program" plus diversen Schlagwörtern zu suchen.

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



BIM Specialist (m/w/d)

ACT NOW! Bei ENGIE arbeiten Sie beim europaweiten Marktführer für effizienten Energieeinsatz. Mehr als 5.900 Mitarbeiter:innen an 50 Standorten in Deutschland packen beim Thema Klimaneutralität richtig an.

Wie wir das machen? Zum Beispiel sorgen wir dafür, dass in den Produktionen unserer Kund:innen CO2 eingespart wird. Oder wir unterstützen beim technischen Gebäudemanagement im Bereich Heizung, Sanitär, Klima und Kältetechnik....

Anzeige ansehenGebäude-, Versorgungs-, Sicherheitstechnik
Thomas-Z
Mitglied
PLM-Administration


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

Beiträge: 75
Registriert: 22.02.2011

WIN7 64bit
NX CR 1926 Series
TC 12.4
PLMEasy
NX-Tools

erstellt am: 18. Jul. 2023 08:10    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 Ace Shim 10 Unities + Antwort hilfreich

Hallo,

wir verwenden folgenden Code. Vielleicht hilft's.

Code:

Public Shared Sub start()

        Dim theSession As Session = Session.GetSession()
        Dim ufs As UFSession = UFSession.GetUFSession()
        Dim lw As ListingWindow = theSession.ListingWindow
        Dim workPart As Part = theSession.Parts.Work
        Dim theUI As UI = UI.GetUI

        Dim dispPart As Part = theSession.Parts.Display
        Dim thisFeat As NXObject

        Dim myFeats As Features.FeatureCollection = workPart.Features

        For Each thisFeat In myFeats

            'ufs.Modl.AskFeatSysname(thisFeat.Tag, featureName)
            'lw.WriteLine("Feature: " & featureName)
            If thisFeat.GetType().ToString() = "NXOpen.Features.ExtractFace" Then

                'Prüfen ob Link aufgebrochen
                Dim broken As Boolean
                ufs.Wave.IsLinkBroken(thisFeat.Tag, broken)

                ' Wave Link auf layer verschieben
                'If MyProgram.layerändern = 1 Then
                '    Try
                '        aktionen.wave_layer(thisFeat, MyProgram.layernummer, MyProgram.layernummerFace)
                '    Catch ex As Exception
                '    End Try
                'End If

                ' Wave Link umfärben
                'If MyProgram.umfärben = 1 Then
                '    Try
                '        aktionen.wave_umfärben(thisFeat)
                '    Catch ex As Exception
                '    End Try
                'End If

                ' Wave Link umfärben - Schild
                'If MyProgram.umfärben_Schild = 1 Then
                '    Try
                '        aktionen.wave_umfärben_schild(thisFeat)
                '        Ausgabe.Log("## Farbe bearbeitet")
                '    Catch ex As Exception
                '    End Try
                'End If

                If broken = True Then
                    'MsgBox("Keine assotiativen Feature zum aufbrechen gefunden!")
                Else

                    Try
                        Dim wave As NXOpen.Features.ExtractFace = thisFeat

                        ' Wave-Link umbenennen
                        'If MyProgram.rename = 1 Then
                        '    Try
                        '        aktionen.wave_umbenennen(wave)
                        '    Catch ex As Exception
                        '    End Try
                        'End If

                        ufs.Wave.SetLinkData(thisFeat.Tag, NXOpen.Tag.Null, NXOpen.Tag.Null, False)

                    Catch ex As Exception

                    End Try

                End If
            End If

            If thisFeat.GetType().ToString() = "NXOpen.Features.WaveRouting" Then

                'Prüfen ob Link aufgebrochen
                Dim broken As Boolean
                ufs.Wave.IsLinkBroken(thisFeat.Tag, broken)


                If broken = True Then
                    'MsgBox("Keine assotiativen Feature zum aufbrechen gefunden!")
                Else

                    Try
                        Dim wave As NXOpen.Features.WaveRouting = thisFeat

                        ufs.Wave.SetLinkData(thisFeat.Tag, NXOpen.Tag.Null, NXOpen.Tag.Null, False)

                    Catch ex As Exception

                    End Try

                End If

            End If


            ufs.Modl.Update()
        Next

    End Sub


Gruß Thomas

------------------
Gruß Thomas

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