[Do...] Posted August 28 Share Posted August 28 Hallo zusammen, grade komme ich beim schreiben eines Skriptes nicht weiter. Das Vorhaben ist etwas komplexer, aber vielleicht gibt es hier jemanden, der mir dabei behilflich sein kann. Es soll eine DMO-Datei exportiert werden, der Name der Datei soll automatisch über die Projekt Keywords der Zeiss Inspect erstellt werden. Der Speicherort wird über ein Dialog abgefragt. Beim automatisch erzeugten Namen der DMO-Datei soll es zwei Varianten geben. Ausschlaggebend welche Variante die Software nutzt soll der Messgrund sein, dieser wird mit dem Keyword "MESSGRUND" definiert. Zur Auswahl stehen "Serie" und "Analyse" Ist unter MESSGRUND = "Serie" eingetragen, soll der Name aus den zwei Keywords FERTIGUNGSDATUM, MESSGRUND & TEILENR bestehen. Im Format: FERTIGUNGSDATUM MESSGRUND TEILENR.dmo Das FERTIGUNGSDATUM steht in der Software im Format yyyy/mm/dd, dieses müsste Umgewandelt werden in yy-KW-T (KW = Kalenderwoche-Tag in Zahl Montag = 1, Dienstag = 2, usw.) Ist unter MESSGRUND = "Analyse" eingetragen, soll der Name aus den zwei Keywords AUFTRAGSNUMMER, MESSGRUND & TEILENR bestehen. Im Format: AUFTRAGSNUMMER MESSGRUND TEILENR.dmo Der Messgrund soll im Dateiname wenn Möglich mit S = Serie oder A = Analyse abgekürzt werden. Kann mir jemand bei der komplexen Aufgabe weiterhelfen? # -*- coding: utf-8 -*- import gom import os import sys DIALOG=gom.script.sys.create_user_defined_dialog (dialog={ "content": [ [ { "columns": 1, "default_font_family": "", "default_font_size": 0, "name": "text", "rows": 1, "text": { "id": "", "text": "<html><p><span style=\"font-size:11pt; font-weight:600;\">Wohin sollen die Dateien gespeichert werden?</span></p><p><span style=\"font-size:8pt;\">Exporter: Autoeuropa</span></p></html>", "translatable": True }, "tooltip": { "id": "", "text": "", "translatable": True }, "type": "display::text", "wordwrap": False } ], [ { "columns": 1, "default": "", "file_types": [ ], "file_types_default": "", "limited": False, "name": "folder", "rows": 1, "selection_type": "directory", "title": { "id": "", "text": "Choose folder", "translatable": True }, "tooltip": { "id": "", "text": "", "translatable": True }, "type": "input::file" } ] ], "control": { "id": "OkCancel" }, "embedding": "always_toplevel", "position": "center", "size": { "height": 263, "width": 448 }, "sizemode": "fixed", "style": "Standard", "title": { "id": "", "text": "00_DMO", "translatable": True } }) def myhandler(widget): if widget=='initialize': DIALOG.control.ok.enabled=False elif widget==DIALOG.folder: DIALOG.control.ok.enabled=True DIALOG.handler=myhandler RESULT=gom.script.sys.show_user_defined_dialog(dialog=DIALOG) gom.script.sys.export_gom_xml_by_report_pages ( decimal_places=3, file=os.path.join(RESULT.folder,'test.dmo'), format=gom.File ('europa.xsl'), pages=gom.ElementSelection ({'category': ['key', 'elements', 'tags', '00_DMO']}), use_imported_names_for_export=False) Link to comment Share on other sites More sharing options...
[Ma...] Posted August 29 Share Posted August 29 Hallo Herr Koch, eine fertige Lösung kann ich nicht anbieten, aber vielleicht helfen Ihnen folgende Hinweise: Unter Project keywords handling — Add-On Documentation (zeissiqs.github.io) ist beschrieben wie Project Keywords gelesen werden Mit dem Python package 'datetime' lässt sich das Datumsformat ändern Mit 'strptime()' wird der vorhandene String zunächst in die Python-interne Darstellung umgewandelt Mit 'strftime()' wird das Datum wieder in einen String mit dem gewünschten Format ausgegeben Auswahl des Formats: if messgrund == "Serie": # Filename format "Serie" # filename = ... (add your first format string here) else: # Filename format "Analyse" # filename = ... (add your second format string here) Das Zusammenfügen der einzelnen Variablen zu einem Dateinamen lässt sich einfach über Python f-Strings realisieren. Die Abkürzung für den Messgrund wird hier durch Auswahl des ersten Zeichens (Index 0) der Variable 'messgrund' umgesetzt. filename = f"{auftragsnummer}_{messgrund[0]}_{teilenr}" Ich hoffe dies hilft Ihnen weiter. Viele Grüße Matthias Prinke Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in