gui um Selectionsbox für Pfad zu 3D Modell ergänzt. callbacks der Knöpfe erfolgt jetzt nur noch im Controller. 3D-Modell Pflichtfeld implementiert

This commit is contained in:
2024-02-14 16:07:29 +01:00
parent 5f781c513b
commit b0b65f0614
5 changed files with 101 additions and 44 deletions
+37 -27
View File
@@ -1,6 +1,7 @@
import json
import pandas as pd
import os
import glob
class DataModel:
def __init__(self):
@@ -417,6 +418,9 @@ class GuiLogic():
self.call_and_set_data('cb_neuaufbau')
self.call_and_set_data('cb_aus_halbzeug_neu')
self.call_and_set_data('cb_halbzeugoberflaeche')
self.call_and_set_data('cb_lebenszyklus_status_neu')
self.call_and_set_data('cb_3Dmodel_neu')
def call_and_set_data(self, callbackfunc):
eval('self._model.set_gui_dict(self.'+callbackfunc+'(None))')
@@ -474,25 +478,17 @@ class GuiLogic():
pass
elif key == 'cb_farbe_neu':
ret = self.cb_farbe_neu(value)
# Aktionen
elif key == 'cb_speichern':
self._model.save_to_file()
pass
elif key == 'cb_migrieren':
pass
elif key == 'cb_zurücksetzen':
pass
elif key == 'cb_suche_asm':
pass
else:
raise Exception("this callback does not exist "+key)
return ret
def get_dependent(self, key):
"""gibt die Namen der Callbacks zurück, welche nach dem Aufruf der ursprünglichen Methode wegen der Abhängigkeiten der Comboboxen anschliessend folgen sollen"""
""" gibt die Namen der Callbacks zurück, welche nach dem Aufruf der ursprünglichen Methode
wegen der Abhängigkeiten der Comboboxen anschliessend folgen sollen
"""
ret = list()
if key == 'cb_pdm_kategorie_neu':
ret = ['cb_neuaufbau', 'cb_aus_halbzeug_neu']
ret = ['cb_neuaufbau', 'cb_aus_halbzeug_neu', 'cb_3Dmodel_neu']
elif key == 'cb_neuaufbau':
ret = []
elif key == 'cb_aus_halbzeug_neu':
@@ -539,6 +535,7 @@ class GuiLogic():
ret = []
elif key == 'cb_farbe_neu':
ret = []
# Aktionen der Knöpfe werden vom Controller verarbeitet
elif key == 'cb_speichern':
ret = []
elif key == 'cb_migrieren':
@@ -547,6 +544,8 @@ class GuiLogic():
ret = []
elif key == 'cb_suche_asm':
ret = []
elif key == 'cb_3dsuchen':
ret = []
else:
raise Exception("this callback does not exist "+key)
return ret
@@ -611,7 +610,7 @@ class GuiLogic():
ret['lebenszyklus_status_neu'] = lstatus[0]
ret['cb_lebenszyklus_status_neu'] = lstatus
else:
ret['cb_lebenszyklus_status_neu'] = selected
ret['lebenszyklus_status_neu'] = selected
return ret
def cb_halbzeugfarbe(self, selected):
@@ -646,40 +645,51 @@ class GuiLogic():
def cb_3Dmodel_neu(self, selected):
ret = dict()
pdm_kategorie_neu = self._model.get_gui_data("pdm_kategorie_neu")
pfad = self._config.Pfade.get('3D-Modelle', 'BaugruppeSchweissbaugruppe')
pfad = ''
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
# Defaultwert = \\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm
pfad = self._config.Pfade.get('3D-Modelle', 'BaugruppeSchweissbaugruppe')
ret['cb_3Dmodel_neu'] = [pfad]
# Dropdownwerte = keine
# state_ComboBox = disabled
# state_Button = disabled
# ret = {
# '': '',
# '': '',
# }
pass
elif pdm_kategorie_neu == "Kaufteil":
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
pfad = self._config.Pfade.get('3D-Modelle', 'Kaufteil')
ret['cb_3Dmodel_neu'] = [pfad]
# Dropdownwerte = keine
# state_ComboBox = disabled
# state_Button = disabled
pass
elif pdm_kategorie_neu == "Einzelteil":
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
neuaufbau = self._model.get_gui_data("neuaufbau")
if aus_halbzeug == "True" or neuaufbau == "True":
# Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par
pfad = self._config.Pfade.get('3D-Modelle', 'Einzelteil')
ret['cb_3Dmodel_neu'] = [pfad]
# Dropdownwerte = keine
# state_ComboBox = disabled
# state_Button = disabled
pass
else:
# Defaultwert = ""
search_path = self._config.Pfade.get('3D-Modelle', 'EinzelteilDefault')
itemid = str(self._model.get_current_item_id())
pfade = []
for root, dirnames, filenames in os.walk(search_path):
pfade.extend(glob.glob(root + "/"+itemid+".par"))
for root, dirnames, filenames in os.walk(search_path):
pfade.extend(glob.glob(root + "/"+itemid+".asm"))
# Dropdownwerte = Dateipfade von allen .par-Dateien, die die aktuelle Teilenummer im Dateinamen aufweisen und sich gleichzeitig in einem der rekursiv durchsuchten Pfade aus der Sektion "3D-Modelle" in "Zielpfade.cfg" befinden.
# state_ComboBox = readonly
# state_Button = keiner
ret['cb_3Dmodel_neu'] = pfade
if len(pfade) == 0:
pfad ="<id not found>"
else:
pfad = pfade[0]
# IF Button "Durchsuchen" geklickt und benutzerdefinierte Solid Edge-Datei gewählt:
# Defaultwert = Dateipfad der gewählten Solid Edge-Datei
pass
if selected is None:
ret['model3d_neu'] = pfad
else:
ret['model3d_neu'] = selected
return ret