Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX
  NX Dateipfad für verknüpfte Excel Tabelle im gleichen Ordner

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
  
Integriertes Datenmanagement (IDM) in Solid Edge 2023
Autor Thema:  NX Dateipfad für verknüpfte Excel Tabelle im gleichen Ordner (885 / mal gelesen)
adrian99
Mitglied


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

Beiträge: 7
Registriert: 30.06.2022

erstellt am: 30. Jun. 2022 10: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

Hallo zusammen,

ich habe eine Reihe von Größen (Winkelwerte, Längen, etc.) über Ausdrücke mit Hilfe von Formeln "ug_excel_read([Dateipfad])" mit Werten aus einer Exceltabelle verknüpft.

Nun ist das Problem, dass der Dateipfad immer ein absoluter ist, heißt mit Laufwerk und allen Unterordnern. Jetzt will ich aber die NX Datei mit der Excel Datei gemeinsam in einem Ordner verschieben können, ohne dass mir die Verknüpfung zerschießt. Ich habe schonmal folgendes probiert: ug_excel_read("..\Parameter.xlsx","[Zelle]"), hat nicht geklappt. Kennt da jemand eine Alternative?

Soweit ich weiß, kann man für seine Werte auch die Tabellenkalkulation verwenden, dann kann man aber nicht die Tabelle und das CAD-Modell gleichzeitig geöffnet haben.

Ich freue mich auf Eure Ideen und danke im Voraus.

Grüße

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: 74
Registriert: 10.11.2014

NX 12 mit ECTR

erstellt am: 01. Jul. 2022 09:14    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 adrian99 10 Unities + Antwort hilfreich

Hallo Adrian,

mit "first(ug_askAssemblyStructure(ug_askCurrentWorkPart()))" bekommst du den kompletten Speicherort des aktuellen Parts als String in die Expressions. Den könntest du entsprechend manipulieren um den Dateipfad der Excel zu bekommen. Das ganze muss aber bei jeder Änderung des Speicherortes mit Tools->Update->Update for external change aktualisiert werden, weil das nicht automatisch erfolgt.

Die Alternative wäre ein kleines NXOpen Programm, dass ein Attribut mit dem Dateipfad schreibt. Das müsste aber ebenfalls bei jeder Änderung einmal ausgeführt werden.

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

adrian99
Mitglied


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

Beiträge: 7
Registriert: 30.06.2022

erstellt am: 06. Jul. 2022 16:04    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 Eonwe,

vielen Dank für die schnelle Antwort. Das hört sich doch ganz gut an, wenn ich das richtig verstehe wird mit diesem Befehl einfach der Speicherort des Teils abgefragt und dann hat man ja entsprechend automatisch den Speicherort der Exceltabelle. Macht Sinn.

Nur wie genau wende ich das dann an? Also als Beispiel: ich habe aktuell folgende Formel angegeben:
ug_excel_read( "Z:\adrian\04 - CAD Modelle\Parameter.xlsx", "D9" )

Folgendes hatte ich dann ausprobiert:
ug_excel_read( "first(ug_askAssemblyStructure(ug_askCurrentWorkPart()))\Parameter.xlsx", "D9" )

Hat leider nicht geklappt. Mache ich es denn so richtig?

Danke im Voraus für Deine Antwort, bin gespannt!

[Diese Nachricht wurde von adrian99 am 06. Jul. 2022 editiert.]

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: 74
Registriert: 10.11.2014

NX 12 mit ECTR

erstellt am: 07. Jul. 2022 11:16    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 adrian99 10 Unities + Antwort hilfreich

Hallo Adrian,

richtig erkannt. Du musst den String aber noch entsprechend anpassen.

First( ug_askAssemblyStructure(ug_askCurrentWorkPart()) ) liefert den kompletten Dateipfad inklusive Dateiname und Endung.

ich hab das ganze mal in mehrere Expressions zerlegt um es übersichtlicher zu machen(Expression Name, Formel):
FileLocation = First( ug_askAssemblyStructure(ug_askCurrentWorkPart()) )
FileName = ug_askCurrentWorkPart()
Folder = replaceString( FileLocation, FileName, "" )
ExcelPath = Folder + "Parameter.xlsx"

im letzten Ausdruck gibst du entsprechend deinen Dateinamen für die Tabelle an. Diesen String kannst du dann an ug_excel_read(ExcelPath, ...) übergeben.

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

adrian99
Mitglied


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

Beiträge: 7
Registriert: 30.06.2022

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

Hallo Eonwe,

sorry, aber ich habe noch etwas Schwierigkeiten mit dem Umgang der Expressions, folgendes:

Wenn ich das richtig verstanden habe, wäre dann der Befehl, den ich eingeben muss:
ug_excel_read(replaceString(First( ug_askAssemblyStructure(ug_askCurrentWorkPart())), ug_askCurrentWorkPart(), "") + "Parameter.xlsx", "D4")

Stimmt das so? Denn wenn ich das eingebe (ohne Copy und Paste, sondern händisch), dann werden mir bis ug_askAssemblyStructure alle Befehle vorgeschlagen. Könnte das an meiner Version liegen (12.0.2.9)?

Außerdem die Frage, ist denn der FileName notwendig, wenn es doch nur um den Ordner geht und nicht den Name, den die NX Datei trägt? Oder muss dann an der Stelle "Parameter.xlsx" rein?

Es würde mir erleichtern, wenn du vielleicht die Expression an meinem Beispiel formulieren könntest, ich weiß nämlich nicht so recht, ob meine Zusammensetzung von oben so stimmt.

Danke dir für deine Hilfe und Grüße!

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: 74
Registriert: 10.11.2014

NX 12 mit ECTR

erstellt am: 08. Jul. 2022 10: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 adrian99 10 Unities + Antwort hilfreich

Hallo Adrian,

ich arbeite auch mit NX12, das sollte also nicht das Problem sein.

Deine Formel ist korrekt, ich komm auf das gleiche Ergebnis und kann damit eine Exceldatei einlesen.

ug_excel_read(replaceString(First(ug_askassemblystructure(ug_askcurrentWorkpart())), ug_askcurrentworkpart(), "") + "Parameter.xlsx", "D4")

ug_askassemblystructure und ug_askcurrentworkpart sind nicht in den Schnellvorschlägen mit drin, das ist bei mir ebenfalls so.

ug_askassemblystructure liefert die vollständigen Pfade aller Teile in der Baugruppe des Teils. Davon nehmen wir die oberste Ebene (First()). Das liefert den vollständigen Pfad des Teils inklusive Dateinahmen und .prt Endung. Deshalb muss der Dateiname mit replaceString() noch abgetrennt werden (durch den leeren String "" ersetzt). Zuletzt wird an den so erhaltenen Speicherort noch der Name der Exceldatei angehängt (+ "Parameter.xlsx") um den vollständigen Speicherort der Excel zu erhalten.

Was kommt denn als Fehler wenn du versuchst das auszuwerten? Ist die excel am richtigen Ort und passen Datentyp in "D4" zum Datentyp der Expression (String, Number ...)

Ansonsten übernimm mal meine Struktur von Oben und zerleg das in mehrere Expressions. Dann sieht man besser wo eventuell ein Fehler liegen könnte, bzw. was nicht funktioniert.

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

adrian99
Mitglied


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

Beiträge: 7
Registriert: 30.06.2022

erstellt am: 18. Jul. 2022 13: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

Hallo Eonwe,

ich hatte es noch ein paar mal manuell versucht, den Befehl einzugeben, hat irgendwie aber nicht geklappt, bis ich dann einfach mal deinen Befehl:

ug_excel_read(replaceString(First(ug_askassemblystructure(ug_askcurrentWorkpart())), ug_askcurrentworkpart(), "") + "Parameter.xlsx", "D4")

reinkopiert habe. Damit klappt es jetzt endlich! Habe dann direkt mal ausprobiert, das Model und die Excel in einem anderen Verzeichnis zu öffnen, hat funktioniert.

Vielen Dank für Deine Unterstützung, war sehr hilfreich. Und sorry, dass meine Antworten teilweise etwas länger geraucht hatten.

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

adrian99
Mitglied


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

Beiträge: 7
Registriert: 30.06.2022

erstellt am: 19. Jul. 2022 14:33    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 nochmal,

jetzt gibt es leider doch noch ein Problem. Wenn ich innerhalb der Exceltabelle nun Angaben ändere habe ich es in der Regel immer so gemacht, dass ich danach auf Button ,,Update for External Change'' in NX geklickt habe, um die neuen Parameter zu übernehmen.

Mit den neuen Befehlen funktioniert das jetzt aber nicht mehr, es ändert sich nichts. Erst, wenn ich im Expressions-Fenster die Formel nochmal bearbeite, werden die Parameter aus der Excel geholt. Hättest du dazu noch eine Lösung oder weißt, warum das so ist?

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: 74
Registriert: 10.11.2014

NX 12 mit ECTR

erstellt am: 22. Jul. 2022 11:17    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 adrian99 10 Unities + Antwort hilfreich

Ich kann das Problem bei mir nicht nachvollziehen, hier funktionierts genau so wie von dir beschrieben mit Klick auf update for external change.
Einzige Voraussetzung ist, dass die Excel wieder geschlossen wurde. Kannst du ein Beispiel hochladen, bei dem es nicht funktioniert?

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

adrian99
Mitglied


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

Beiträge: 7
Registriert: 30.06.2022

erstellt am: 22. Jul. 2022 13:51    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 Eonwe,

es funktioniert doch. Ich weiß nicht woran es lag, aber seit ich den Rechner neu gestartet habe und alle NX-Instanzen geschlossen habe, die ich offen hatte, geht es wieder. Also alles gut. Vielen lieben Dank nochmal für Deine Hilfe!

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)2024 CAD.de | Impressum | Datenschutz