| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: Erzeugen mehrerer Teile nacheinander? (631 mal gelesen)
|
rhonanpaldur Mitglied Dipl.-Ing. MB, Druckmaschinen
Beiträge: 76 Registriert: 30.10.2007 NX 3.0.3 NX 5.0.2
|
erstellt am: 15. Jan. 2008 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich lese hier eine Exceltabelle aus, fülle das gerade leere Part über Aufrufen der selbsterstellten Klasse "content_part1" mit Inhalt (Der ist von der Tabelle abhängig und bekommt deshalb die Spalte übergeben) und speichere das als ein Teil mit dem Namen, wie er in der 1. Zeile der Tabelle steht. Funktioniert. Nur ist jetzt das aktive Teil das gerade erzeugte und in dem steht dann auch die Rule. Die Infos für das nächste Teil stehen in Spalte 8. usw. Wenn ich jetzt in der Rule die Spaltenzahl auf 8 ändere, habe ich das Problem, dass beim Laden des Teils aus Spalte 7 zwar der Dateiname noch stimmt, aber der Inhalt aus Spalte 8 generiert wird, weil der Wert ja gerade in der dfa steht. Wie könnte ich hier von einem Ausgangsteil ausgehend nacheinander die Spalten der Tabelle abarbeiten? Mir fehlt da eine Idee. Gäbe es die Möglichkeit, erst alle Teile zu erzeugen und zu speichern und dann in einem 2. Durchgang (evtl von einer 2. dfa aus, die ich danach per Hand ausführe) den Inhalt in die Parts zu schaffen? Code: #! NX/KF 5.0DefClass: create_part1 (ug_base_part); # Verknüpfung zum Spreadsheet. Part mit Spreadsheet muss geladen sein! (Integer) sheet_row: 7; (Child) spreadsheet: { Class, ug_spreadsheet; part_file, "spreadsheet.prt"; }; (Child) part_info: { Class, ug_partFile; part_name, spreadsheet:ask_string:(sheet_row:,1)+"_teil1"; directory, "D:\nxwork\"; }; (Child) part_content:{ Class, content_part1; row, sheet_row:; }; (Integer) save_part: ug_savePartAs(part_info:directory:+part_info art_name:, part_to_save, ""); (List) demandValue: {save_part};
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rhonanpaldur Mitglied Dipl.-Ing. MB, Druckmaschinen
Beiträge: 76 Registriert: 30.10.2007 NX 3.0.3 NX 5.0.2
|
erstellt am: 15. Jan. 2008 11:29 <-- editieren / zitieren --> Unities abgeben:
Anderes Vorgehen, besseres Teilergebnis. Auf diese Weise erstellt er alle Dateien wie gewünscht. Wie könnte ich jetzt dafür sorgen, dass jedem erzeugten Part ein Attribut übergeben wird (nämlich der aktuelle $row) und eine Child Rule mit einer gewünschten Klasse eingefügt wird? Somit würde beim ersten Öffnen der Datei dann der passende Inhalt generiert und das wäre ok. Code: #! NX/KF 4.0 DefClass: loop_part1a (ug_base_part);(List) schleife: Loop { for $row from 7 to 9; append {ug_createInstance( { Class, create_part1a; sheet_row, $row; })}; }; (List UnCached) demandValue: {schleife};
Code: #! NX/KF 5.0 DefClass: create_part1a (ug_base_part);# Verknüpfung zum Spreadsheet. Part mit Spreadsheet muss geladen sein! (Integer Parameter) sheet_row: 7; (Child) spreadsheet: { Class, ug_spreadsheet; part_file, "spreadsheet.prt"; }; (Child) part_info: { Class, ug_partFile; part_name, spreadsheet:ask_string:(sheet_row:,1)+"_teil1"; directory, "D:\nxwork\"; }; (Boolean) teil_erzeugen: ug_createNewPart(part_info:directory:+part_info art_name:,1); (Boolean) teil_speichern: part_info:save:(); (List UnCached) demandValue: {teil_erzeugen,teil_speichern};
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Konstrukteur (m/w/d) Sondermaschinenbau | Leidenschaft für technologischen Fortschritt ausleben? Dabei sein, wenn Innovationen Wirklichkeit werden? Bei FERCHAU suchen wir Menschen mit dem gleichen Anspruch: als Expert:innen für unseren Kunden. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte. Als Berufseinsteiger:in unterstützt du deine Kolleg:innen mit neuen Ideen und festigst dein Wissen durch praktische Erfahrungen.... | Anzeige ansehen | Konstruktion, Visualisierung |
|
rhonanpaldur Mitglied Dipl.-Ing. MB, Druckmaschinen
Beiträge: 76 Registriert: 30.10.2007 NX 3.0.3 NX 5.0.2
|
erstellt am: 16. Jan. 2008 08:47 <-- editieren / zitieren --> Unities abgeben:
So, geschafft. Des Rätsels Lösung lag in ug_evaluateInPart. Muss man erst mal wissen, dass es so eine Funktion gibt. Einzig ein Schönheitsfehler ist noch offen. Evtl weiß da jemand Rat? Code: (String UnCached) inside_part: ug_evaluateInPart(part_info:directory:+part_info art_name:, "part_content", parameters:); (String UnCached) parameters: "{ class, content_part1, row, "+ spreadsheet:ask_string:(sheet_row:,4)+"}";
Die Parameter, die ich an die Funktion übergebe ändern sich mit jedem Schleifendurchlauf, weil ja eine andere Tabellenspalte übergeben wird. Der Parameter für evaluateInPart muss als String übergeben werden. Allerdings ist meine Spaltenvariable ein Integer. Und der läßt sich nicht einfach so in den String einbinden. Daher lese ich zur Zeit eine Zelle der Tabelle als String aus, in der die Spaltenzahl steht. Das kann ich dann in den String einbauen mit +. Ist nicht ganz die feine Englische und eigentlich ein sinnloser Umweg. Wüsste jemand etwas besseres? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|