Jump to content

Projektkeywords


---
 Share

Recommended Posts

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

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

 Share

×
×
  • Create New...