Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  NXOPEN CAM: Suche ersten ProgrammName

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:  NXOPEN CAM: Suche ersten ProgrammName (2522 mal gelesen)
DerFräser
Mitglied
Programmierer


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

Beiträge: 113
Registriert: 09.07.2006

NX2015 NX-CAM
TeamCenter 13

erstellt am: 23. Jul. 2019 15:06    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


FindeProgramm.png

 
Hallo,

wie kann man den ProgrammName finden (methode;objekt??)

hier das Listing vom Journal:

' ----------------------------------------------
'  Menü: Einfügen->Programm...
' ----------------------------------------------
Dim markId1 As NXOpen.Session.UndoMarkId = Nothing
markId1 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Programm erzeugen")

Dim nCGroup1 As NXOpen.CAM.NCGroup = CType(workPart.CAMSetup.CAMGroupCollection.FindObject("NC_PROGRAM"), NXOpen.CAM.NCGroup)

Dim nCGroup2 As NXOpen.CAM.NCGroup = Nothing
nCGroup2 = workPart.CAMSetup.CAMGroupCollection.CreateProgram(nCGroup1, "BHF_Favoriten_NX/11", "PROGRAM", NXOpen.CAM.NCGroupCollection.UseDefaultName.False, "RX123456")

Dim markId2 As NXOpen.Session.UndoMarkId = Nothing
markId2 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "Start")

Dim programOrderGroupBuilder1 As NXOpen.CAM.ProgramOrderGroupBuilder = Nothing
programOrderGroupBuilder1 = workPart.CAMSetup.CAMGroupCollection.CreateProgramOrderGroupBuilder(nCGroup2)

theSession.SetUndoMarkName(markId2, "Programm-Dialogfenster")

Dim taggedObject1 As NXOpen.TaggedObject = Nothing
taggedObject1 = programOrderGroupBuilder1.StartUdeSet.UdeList.FindItem(0)

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: 23. Jul. 2019 19:48    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 DerFräser 10 Unities + Antwort hilfreich

Hast Du im Journal-Quellcode mal nach dem Namen "RX123456" gesucht? Dieser findet sich recht schnell.
Tipp: zu Beginn des Journal-Quellcodestudiums alle Zeilen welche irgendwas mit "UndoMark" enthalten entfernen. Das räumt kräftig auf und die relevanten Passagen bleiben übrig. Leider fehlt hier und da jedoch der ein oder andere Codeschnipsel welcher eben nicht aufgezeichnet wird.

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

DerFräser
Mitglied
Programmierer


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

Beiträge: 113
Registriert: 09.07.2006

NX2015 NX-CAM
TeamCenter 13

erstellt am: 25. Jul. 2019 14:26    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,

ich habe etwas gefunden...

Jetzt weiß ich noch nicht wie ich in der Collection(group [NXOpen.CAM.NCGroup]) auf das erste Objekt zugreifen kann.
Mein Behelf ist die Schleife mit "Exit For" abzubrechen und das Programm in "Nicht verwendetes Elemente" finde ich auch nicht(siehe Bild oben)    

Im Journal:

Dim theSession As Session = Session.GetSession()
Dim setup As NXOpen.CAM.CAMSetup = workPart.CAMSetup
Dim groups As NXOpen.CAM.NCGroupCollection = setup.CAMGroupCollection


For Each group As NXOpen.CAM.NCGroup In groups
    'Text und Variablen im Infofenster ausgeben:
    theSession.ListingWindow.Open()      
    theSession.ListingWindow.WriteLine("Ausgabe: " & group.Name & " : " & group.GetType().ToString)
    theSession.ListingWindow.Close()
    Exit For
Next


MfG   

[Diese Nachricht wurde von DerFräser am 25. Jul. 2019 editiert.]

[Diese Nachricht wurde von DerFräser am 25. Jul. 2019 editiert.]

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: 25. Jul. 2019 19:11    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 DerFräser 10 Unities + Antwort hilfreich

Für das erste Item einfach mal rudimentär versuchen: groups(0). Kann mir allerdings vorstellen dass die Auflistung im Strukturbaum nicht zwingend der Reihenfolge in groups entspricht, d.h. man müßte einen weiteren Parameter bzw. Eigenschaft abfragen.

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 25. Jul. 2019 19:41    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 DerFräser 10 Unities + Antwort hilfreich

Hallo Fräser,

die Schleife würde m.E. besser so aussehen: 

Code:
Dim lw as ListingWindow = theSession.ListingWindow
lw.Open()

For Each group As NXOpen.CAM.NCGroup In groups
    'Text und Variablen im Infofenster ausgeben:
   
    lw.WriteLine("Ausgabe: " & group.Name & " : " & group.GetType().ToString)

    If group.Name = "tralala" Then Exit For
Next   

lw.Close()


Daneben bin ich nicht sicher, in welcher Collection der Programmname steckt, könnte z.B. auch in der CAMOperationCollection sein. Schau' einfach mal, welche Collections es im Setup sonst noch gibt.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

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

DerFräser
Mitglied
Programmierer


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

Beiträge: 113
Registriert: 09.07.2006

erstellt am: 26. Jul. 2019 07:26    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


ProgFolge.png

 
Zitat:
Original erstellt von geraldb:
Für das erste Item einfach mal rudimentär versuchen: groups(0). Kann mir allerdings vorstellen dass die Auflistung im Strukturbaum nicht zwingend der Reihenfolge in groups entspricht, d.h. man müßte einen weiteren Parameter bzw. Eigenschaft abfragen.

groups(0) geht nicht...
Die Reihenfolge vom CAM-Programmansicht ist gleich der Reihefolge in NXOpen.CAM.NCGroup (siehe Bild)


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

DerFräser
Mitglied
Programmierer


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

Beiträge: 113
Registriert: 09.07.2006

NX2015 NX-CAM
TeamCenter 13

erstellt am: 26. Jul. 2019 07:35    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

Zitat:
Original erstellt von mseufert:
Hallo Fräser,

die Schleife würde m.E. besser so aussehen:  

Code:
Dim lw as ListingWindow = theSession.ListingWindow
lw.Open()

For Each group As NXOpen.CAM.NCGroup In groups
    'Text und Variablen im Infofenster ausgeben:
    
    lw.WriteLine("Ausgabe: " & group.Name & " : " & group.GetType().ToString)

    If group.Name = "tralala" Then Exit For
Next   

lw.Close()


Daneben bin ich nicht sicher, in welcher Collection der Programmname steckt, könnte z.B. auch in der CAMOperationCollection sein. Schau' einfach mal, welche Collections es im Setup sonst noch gibt.

Gruß, Michael


Hallo mseufert,
es gibt nur noch die OperationCollection, die hat alle Einträge der Arbeitsgänge aber ohne Programmnummer...
Die Reihenfolge und das "Exit For" gefällt mir gut.

Leider kann ich keine Unities vergeben Probleme mit Umlauten beim Benutzername...

MfG 

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 27. Jul. 2019 18:35    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 DerFräser 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von DerFräser:

Leider kann ich keine Unities vergeben Probleme mit Umlauten beim Benutzername...


... und dennoch sind welche angekommen ... besten Dank 

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

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

xfer
Mitglied
IT-Systembetreuer

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

Beiträge: 9
Registriert: 13.01.2014

Teamcenter 11.6
NX 1926 Series

erstellt am: 26. Jul. 2021 16:30    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 DerFräser 10 Unities + Antwort hilfreich

Zwar ein altes Thema, aber für die Nachwelt:

Das Hauptprogramm ist nicht in der Liste und bekommt man nur über die Funktion FindObject.


var ncProgram = (NXOpen.CAM.NCGroup)workPart.CAMSetup.CAMGroupCollection.FindObject("NC_PROGRAM");

lg

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

mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 27. Jul. 2021 08:29    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 DerFräser 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von xfer:
Zwar ein altes Thema, aber für die Nachwelt:

Das Hauptprogramm ist nicht in der Liste und bekommt man nur über die Funktion FindObject.


var ncProgram = (NXOpen.CAM.NCGroup)workPart.CAMSetup.CAMGroupCollection.FindObject("NC_PROGRAM");

lg


Hallo xfer,

das würde ich mal Zweifel anmelden. Hast du es mit der UFSession, z.B. UF_Setup oder UF_Oper versucht ? Hab' zwar nix aktuelles im CAM-Bereich, aber zuletzt hat man damit alles erdenkliche ermitteln können.

Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

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

xfer
Mitglied
IT-Systembetreuer

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

Beiträge: 9
Registriert: 13.01.2014

Teamcenter 11.6
NX 1926 Series

erstellt am: 11. Aug. 2021 12:00    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 DerFräser 10 Unities + Antwort hilfreich

Hallo,
wenn man auf die CAMGroupCollection mit foreach durchgeht ist das Hauptprogramm nicht dabei.

Ob das Ermitteln anders möglich ist weiß ich nicht, bisher habe ich nur diese Möglichkeit gefunden.

Wer die Problemstellung hat kann es so oder anders machen, ich wollte es nur mal posten, weil ich das in dem Thema vermisst hatte und mir der Code-Schnipsel geholfen hätte.

lg

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



Maschinenbauingenieur (m/w/d)
Technologien auf das nächste Level zu heben, sich Herausforderungen zu stellen und an den Innovationen von morgen zu arbeiten - dafür benötigen wir bei FERCHAU Expert:innen wie dich: als ambitionierte Kolleg:innen, die wie wir Technologien auf die nächste Stufe bringen möchten. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte....
Anzeige ansehenMaschinenbau
mseufert
Moderator
Freiberuflicher CAD/CAM Ingenieur


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

Beiträge: 2624
Registriert: 18.10.2005

HP Z420
WIN7 64 Win 10
UG NX6-1980
3D Printer Prusa MK2 S

erstellt am: 12. Aug. 2021 12:19    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 DerFräser 10 Unities + Antwort hilfreich

Versuch's mal damit:

Code:

        ' PrgRoot über prt.camsetup abfragen, wenn's nix ist, => False
        Dim cs As CAMSetup
        Dim PrgRootTag As Tag
        Dim PrgRoot As NCGroup
        Try
            cs = prt.CAMSetup
            If cs Is Nothing Then Return False

            ufs.Setup.AskProgramRoot(cs.Tag, PrgRootTag)
            PrgRoot = CType(NXObjectManager.Get(PrgRootTag), NCGroup)
        Catch ex As Exception
            log(ex.Message)
            Return False
        End Try



Gruß, Michael

------------------
Ein Mensch wird laut, wenn er was will;
wenn er's erst hat, dann wird er still;
Das "Danke" ist, nach alter Sitte,
Weit selt'ner als das "Bitte, Bitte".

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