| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
 | Solid Edge 2025 First Look Online-Event 14.11.2025, eine Pressemitteilung
|
Autor
|
Thema: Dateiname als Part-Attribut... NX7.5 (3055 mal gelesen)
|
C.h.r.i.s Mitglied CAD/CAM
 Beiträge: 6 Registriert: 10.02.2012
|
erstellt am: 04. Jul. 2014 06:55 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, gibt es die Möglichkeit den eigenen Dateinamen, bzw. einen Teil davon, automatisch auszulesen & diesen Wert als ein Part-Attribut zu hinterlegen? Es würde mir auch weiterhelfen besagten Teil-String in einem Ausdruck hinterlegen zu können. Dann würde ich über "ug_setPartAttrValue(..." daraus das Part-Attribut generieren... Mein Problem besteht eher in irgend einer Weise an den aktuellen, eigenen Datei-Namen zu kommen & stehe bisschen auf dem Schlauch... Für Hilfe hierzu danke ich im Voraus!!! ------------------ Es gibt Dinge, über die spreche ich nicht einmal mit mir selbst... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
  
 Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 04. Jul. 2014 07:40 <-- editieren / zitieren --> Unities abgeben:          Nur für C.h.r.i.s
...das sind ganze drei Zeilen. Code:
Session theSession = Session.GetSession(); string filepath = theSession.Parts.Work.FullPath; theSession.Parts.Work.SetAttribute("Attribute Titel", filepath);
Zitat:
FullPath Property Namespaces ► NXOpen ► BasePart ► FullPathC#Visual BasicVisual C++Returns the full path of the part Declaration Syntax C# Visual Basic Visual C++ public string FullPath { get; } Public ReadOnly Property FullPath As String Get public: property String^ FullPath { String^ get (); } Remarks Created in NX3.0.0 License requirements: None.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gfx-toxic.de Moderator Konstruktion / Anwenderbetreuung
  
 Beiträge: 501 Registriert: 09.06.2006 Teamcenter 11.3 / NX 11 Windows 10
|
erstellt am: 04. Jul. 2014 07:44 <-- editieren / zitieren --> Unities abgeben:          Nur für C.h.r.i.s
|
C.h.r.i.s Mitglied CAD/CAM
 Beiträge: 6 Registriert: 10.02.2012
|
erstellt am: 04. Jul. 2014 09:49 <-- editieren / zitieren --> Unities abgeben:         
Per "ug_askCurrentWorkPart()" hat es funktioniert... Leider weiß ich nicht wo dein geposteter Quelltext eingetragen werden muss...:-( Hier nochmal genau meine momentane Baustelle am konkreten Beispiel:
Bauteilname: p0006_Formplatte_AS.prt Als Angabe im Attribut "POSITION" benötige ich den Wert aus den entsprechenden 4 Zeichen im Namen (0006) Dieser Wert allerdings sollte allerdings keine vorangestellten Nullen enthalten... (6) Da es ja in NX etwas problematisch ist "Strings" & "Numbers" miteinander zu verarbeiten, habe ich das nun folgendermaßen gelöst: Ausdruck: Att_POS Formel:ug_setPartAttrValue( "POSITION",format("%d",MakeNumber(subString(ug_askCurrentWorkPart(),2,5)))) Somit wird der Wert "6" an das Attribut "POSITION" weitergegeben... Dieses Attribut wird in der Stückliste der Gesamtbaugruppe später per CallOut ausgelesen... Soweit, so gut...klappt auch. Speichere ich nun das Bauteil unter einem anderen Namen, berechnen die Ausdrücke nicht neu! Was zur folge hat, dass das Attribut und somit der Stücklisteneintrag nicht aktuell ist... Gibt es vllt einen einfacheren Weg, den o.g. Wert (6 in diesem Fall) in die Stückliste zu bekommen?!?
------------------ Es gibt Dinge, über die spreche ich nicht einmal mit mir selbst... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sirus Ehrenmitglied CAD Applikationsentwickler
    
 Beiträge: 1575 Registriert: 03.06.2004 SolidWorks2024
|
erstellt am: 04. Jul. 2014 11:29 <-- editieren / zitieren --> Unities abgeben:          Nur für C.h.r.i.s
Option Strict Off Imports System Imports NXOpen Module NXJournal Sub Main Dim theSession As Session = Session.GetSession() Dim workPart As Part = theSession.Parts.Work ' ----- das ist der ganze pfad mit namen und endung Dim pfad As String = workPart.FullPath System.Windows.Forms.MessageBox.Show(pfad) ' ----- das ist der filename ohne endung Dim filename As String = workPart.Leaf System.Windows.Forms.MessageBox.Show(filename) End Sub End Module ------------------ gruss urs  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sirus Ehrenmitglied CAD Applikationsentwickler
    
 Beiträge: 1575 Registriert: 03.06.2004
|
erstellt am: 04. Jul. 2014 11:37 <-- editieren / zitieren --> Unities abgeben:          Nur für C.h.r.i.s
..und set attr: Option Strict Off Imports System Imports NXOpen Module NXJournal Sub Main (ByVal args() As String) Dim theSession As Session = Session.GetSession() Dim theUI As UI = UI.GetUI() Dim workPart As Part = theSession.Parts.Work workPart.SetAttribute("titel", "wert") End Sub End Module
------------------ gruss urs  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
C.h.r.i.s Mitglied CAD/CAM
 Beiträge: 6 Registriert: 10.02.2012 - Cimatron E11 - NX 7.5
|
erstellt am: 04. Jul. 2014 11:40 <-- editieren / zitieren --> Unities abgeben:         
Das liest sich für mich eher wie ein VB-Script... Ich verstehe nicht so ganz wo ich dies anwenden kann...:-( ------------------ Es gibt Dinge, über die spreche ich nicht einmal mit mir selbst... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
      
 Beiträge: 2723 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 07. Jul. 2014 16:01 <-- editieren / zitieren --> Unities abgeben:          Nur für C.h.r.i.s
|
C.h.r.i.s Mitglied CAD/CAM
 Beiträge: 6 Registriert: 10.02.2012
|
erstellt am: 08. Jul. 2014 07:34 <-- editieren / zitieren --> Unities abgeben:         
Sau gut! Mit VB kann ich was anfangen... Wenn ich das richtig verstehe muss ich aber jeweils das Script manuell starten. Allerdings muss der Wert aktualisiert werden sobald das Teil unter anderem Namen gespeichert wird. Und das muss automatisch laufen... Kann ich das lösen? ------------------ Es gibt Dinge, über die spreche ich nicht einmal mit mir selbst... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
      
 Beiträge: 2723 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-2306 3D Printer Prusa MK2 S
|
erstellt am: 08. Jul. 2014 13:53 <-- editieren / zitieren --> Unities abgeben:          Nur für C.h.r.i.s
Zitat: Original erstellt von C.h.r.i.s: Sau gut! Mit VB kann ich was anfangen...
Ist ja schon mal eine gute Voraussetzung. Zitat: Original erstellt von C.h.r.i.s: Kann ich das lösen?
Das hängt i.W. von Dir selbst ab. Schau' einfach in die Doku, Thema NXOpen/Journal und MenuScript. Da gibt's auch Möglichkeiten, um Programme automatisch ablaufen zu lassen, Stichworte User Exit, ActionHandler oder Pre/Post Action. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |