Compare commits
23 Commits
6c31b9fbf3
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b2127b70c9 | |||
| db46c38ac6 | |||
| af69b98365 | |||
| 87ff81d001 | |||
| cbc2afa9e1 | |||
| 47e70d952e | |||
| 5a1fa5a7e4 | |||
| 4defeb11f0 | |||
| 2591d78716 | |||
| ac99ca73a5 | |||
| 17cbd61fb4 | |||
| f18f8cae2d | |||
| 7fb778125b | |||
| a279c581e3 | |||
| aa73ffb444 | |||
| 61cd933de3 | |||
| 9ef23a735a | |||
| 089dadd52b | |||
| 9f5f4150f1 | |||
| c64327cbe7 | |||
| 9e25ca15bc | |||
| 754ae39364 | |||
| 6590674d8e |
@@ -0,0 +1,54 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Projektübersicht
|
||||
|
||||
**CreoMigrate** enthält Skripte zur Migration von Creo-Altdaten nach Solid Edge / Rule
|
||||
Designer. Ziel ist es, alte 3D-Daten aus Creo mit aktuellen SIVAS-Informationen in die
|
||||
neue Konstruktionsumgebung zu überführen. Der Fokus liegt auf automatisierbaren Prozessen
|
||||
mit wenig Nutzereingriff (Datenbank-Abgleich, Listenvergleich, TOS-String-Erzeugung).
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
```text
|
||||
CreoMigrate/
|
||||
├── bin/ # Nummerierte Workflow-Batch-Skripte (01..06) + GUI/Setup
|
||||
├── lib/ # Python-Quellcode
|
||||
├── Include/ # Zusätzliche Includes
|
||||
├── cfg/ # Konfiguration
|
||||
├── data/ # Datenbanken / Eingabedaten
|
||||
├── doc/ # Dokumentation
|
||||
├── log/ # Log-Dateien
|
||||
└── work/ # Arbeitsdateien
|
||||
```
|
||||
|
||||
## Workflow-Skripte (bin/)
|
||||
|
||||
Die Batch-Skripte sind in Ausführungsreihenfolge nummeriert:
|
||||
|
||||
1. `01_get_rd_dbase.bat` — Rule-Designer-Bestand ableiten
|
||||
2. `02_get_sivas_dbase.bat` — SIVAS-Datenbank ableiten
|
||||
3. `03_get_blacklist_dbase.bat` — Blacklist erzeugen
|
||||
4. `04_compare_lists.bat` — Listen vergleichen
|
||||
5. `05_get_sivas_teilestamm.bat` — Teilestamm aus SIVAS
|
||||
6. `06_migrationsstatus_treeview.bat` — Migrationsstatus als Treeview
|
||||
|
||||
Weitere: `gui.bat` (GUI), `create_tos_string.bat` / `write_tos_string_to_file.bat`
|
||||
(TOS-Strings), `install_py.bat`, `cremig_setenv.bat`, `get_cmd.bat`.
|
||||
|
||||
## Kernmodule (lib/)
|
||||
|
||||
- `CreoMigrateGui.py`, `gui.py`, `controller.py` — GUI + Steuerung (Tkinter)
|
||||
- `compare_lists.py` — Listenvergleich
|
||||
- `create_tos.py` — TOS-String-Erzeugung
|
||||
- `caditem.py` — Datenmodell CAD-Item
|
||||
- `update_database.py`, `manage_configs.py` — DB/Config
|
||||
- `test_*.py` — Tests
|
||||
|
||||
## Setup
|
||||
|
||||
```cmd
|
||||
bin\install_py.bat
|
||||
```
|
||||
Legt die virtuelle Umgebung an und installiert `lib/requirements.txt`.
|
||||
@@ -29,5 +29,5 @@ Vorteile:
|
||||
- Loslösen von Excel als Bedienumgebung, somit nicht an Version oder Hersteller gebunden.
|
||||
- Problemloseres Ausrollen auf mehrere Benutzer
|
||||
|
||||
|
||||
|
||||
Installationsvoraussetzungen:
|
||||
- Tabellenkalkulationsprogramm (Excel) in 64-Bit Version -> Dies ist wichtig, da unter 32-Bit das Migrationstool von Siemens (DataPrep-Tool) nicht korrekt funktioniert!
|
||||
@@ -9,11 +9,11 @@ set "Namensanfang=TOS-Gruppenstring_"
|
||||
set "Dateiname=%Namensanfang%!datetime!.txt"
|
||||
|
||||
REM Führe die folgende .bat aus mit dem gesetzten Schalter -o um eine Datei mit dem Code zu generieren
|
||||
CALL %CREMIG_BIN%create_tos_string.bat -o %Dateiname%
|
||||
CALL %CREMIG_BIN%\create_tos_string.bat -o %Dateiname%
|
||||
|
||||
echo Die Datei wurde in %CREMIG_WORK% mit dem Namen: %Dateiname% gespeichert
|
||||
echo Bitte pflegen sie den Inhalt dieser Datei in die jeweiligen CampiEsterni.ini unter CALC LINK10 ein.
|
||||
echo:
|
||||
|
||||
endlocal
|
||||
pause
|
||||
pause
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#============================================================================================================================
|
||||
|
||||
MA0000008
|
||||
|
||||
MA0000005
|
||||
|
||||
[ExcludedPartnumbersInSummary]
|
||||
#============================================================================================================================
|
||||
# Teilenummern, die in der Zusammenfassung der Migrationsübersicht nicht enthalten sein sollen
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
[Farbauswahl]
|
||||
PANTONE 2175 C
|
||||
RAL 1004 Goldgelb
|
||||
RAL 2000 Gelborange
|
||||
RAL 3002 Kaminrot
|
||||
@@ -23,6 +24,7 @@ Grün
|
||||
Blau
|
||||
siehe Oben
|
||||
Ocker
|
||||
Transparent
|
||||
|
||||
[FarbeEloxieren]
|
||||
Rot
|
||||
|
||||
+115
-97
@@ -1,8 +1,32 @@
|
||||
{
|
||||
"VA": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"1.4301": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X5CrNi18-10": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"1.4301 (X5CrNi18-10)": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"1.4301f / 59381": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X5CrNi 18-10": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X5CrNi 18-9": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"1.4305": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
@@ -15,14 +39,42 @@
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X10CrNiS 18-9": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X8CrNiS 18-9": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X8CrNiS18-9": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X12CrNi17 7": {
|
||||
"Werkstoff": "1.4310 (X10CrNi18-8)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"Aluminium": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"AlCuMgPb": {
|
||||
"Werkstoff": "EN AW-2007 (3.1645)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"3.3206.72": {
|
||||
"Werkstoff": "EN AW-6063-T66",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlSiMg 0,5 F25": {
|
||||
"Werkstoff": "EN AW-6063-T66",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"F25": {
|
||||
"Werkstoff": "EN AW-6063-T66",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlMgSi0.5": {
|
||||
"Werkstoff": "EN AW-6060 (3.3206)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
@@ -31,25 +83,37 @@
|
||||
"Werkstoff": "EN AW-6060 (3.3206)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlSiMg 0,5 F22": {
|
||||
"AlMgSi 0.5": {
|
||||
"Werkstoff": "EN AW-6060 (3.3206)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlMgSi0.5 F22": {
|
||||
"Werkstoff": "EN AW-6060-T66 (3.3206-T66)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlSiMg 0,5 F25": {
|
||||
"Werkstoff": "EN AW-6063-T66",
|
||||
"AlSiMg 0,5 F22": {
|
||||
"Werkstoff": "EN AW-6060-T66 (3.3206-T66)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlMg3": {
|
||||
"Werkstoff": "EN AW-5754 (3.3535)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"St": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"C45": {
|
||||
"Werkstoff": "1.0503 (C45)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"F25": {
|
||||
"Werkstoff": "EN AW-6063-T66",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
"Ck60": {
|
||||
"Werkstoff": "1.1221 (C60E)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"S355JO": {
|
||||
"Werkstoff": "1.0553 (S355J0)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"1.0038 (S235JR)": {
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
@@ -63,18 +127,6 @@
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"S235JRG2C": {
|
||||
"Werkstoff": "1.0122 (S235JRC)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"S235JRG2C+C": {
|
||||
"Werkstoff": "1.0122 (S235JRC)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"S235JR+Cr": {
|
||||
"Werkstoff": "1.0038+CR (S235JR+CR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"St-37": {
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
@@ -83,26 +135,35 @@
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X5CrNi18-10": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"S235 JR": {
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X8CrNiS 18-9": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"S235JR galv. verzinkt Fe/Zn 8-15 B": {
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl",
|
||||
"Oberfläche": "verzinken"
|
||||
},
|
||||
"S235JR+Cr": {
|
||||
"Werkstoff": "1.0038+CR (S235JR+CR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X8CrNiS18-9": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"S235JRG2C": {
|
||||
"Werkstoff": "1.0122 (S235JRC)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"1.4301 (X5CrNi18-10)": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"S235JRG2C+C": {
|
||||
"Werkstoff": "1.0122 (S235JRC)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X5CrNi 18-10": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"S235JRC": {
|
||||
"Werkstoff": "1.0122 (S235JRC)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"Kunststo": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"PA6 GF30": {
|
||||
"Werkstoff": "PA 6 GF 30",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
@@ -130,14 +191,15 @@
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)"
|
||||
},
|
||||
"S235JR galv. verzinkt Fe/Zn 8-15 B": {
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl",
|
||||
"Oberfläche": "verzinken"
|
||||
"PA 66 GF 50": {
|
||||
"Werkstoff": "PA 66 GF 50",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)"
|
||||
},
|
||||
"VA": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
"PC GF 10": {
|
||||
"Werkstoff": "PC GF 10",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)"
|
||||
},
|
||||
"POM schw": {
|
||||
"Werkstoff": "POM",
|
||||
@@ -151,12 +213,24 @@
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Schwarz"
|
||||
},
|
||||
"POM sch": {
|
||||
"Werkstoff": "POM",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Schwarz"
|
||||
},
|
||||
"POM weiß": {
|
||||
"Werkstoff": "POM",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Weiß"
|
||||
},
|
||||
"POM natur": {
|
||||
"Werkstoff": "POM",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Natur"
|
||||
},
|
||||
"POM": {
|
||||
"Werkstoff": "POM",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
@@ -172,11 +246,13 @@
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)"
|
||||
},
|
||||
"-": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
"PUR D44 ": {
|
||||
"Werkstoff": "Bitte individuell wählen!",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Bitte individuell wählen!"
|
||||
},
|
||||
"St": {
|
||||
"-": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
@@ -184,10 +260,6 @@
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"S235 JR": {
|
||||
"Werkstoff": "1.0038 (S235JR)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"-----": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
@@ -216,62 +288,8 @@
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"AlCuMgPb": {
|
||||
"Werkstoff": "EN AW-2007 (3.1645)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"AlMgSi 0.5": {
|
||||
"Werkstoff": "EN AW-6060 (3.3206)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"Kunststo": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"Federsta": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"S355JO": {
|
||||
"Werkstoff": "1.0553 (S355J0)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"X10CrNiS 18-9": {
|
||||
"Werkstoff": "1.4305 (X8CrNiS18-9)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"POM natur": {
|
||||
"Werkstoff": "POM",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Natur"
|
||||
},
|
||||
"POM sch": {
|
||||
"Werkstoff": "POM",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Schwarz"
|
||||
},
|
||||
"1.4301f / 59381": {
|
||||
"Werkstoff": "1.4301 (X5CrNi18-10)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
},
|
||||
"PUR D44 ": {
|
||||
"Werkstoff": "Bitte individuell wählen!",
|
||||
"Werkstofftyp": "Kunst-/ Verbundstoff",
|
||||
"Oberfläche": "Masterbatch (Grundfarbe)",
|
||||
"Farbe": "Bitte individuell wählen!"
|
||||
},
|
||||
"Aluminium": {
|
||||
"Werkstoff": "false",
|
||||
"Message": "Bitte individuell wählen!"
|
||||
},
|
||||
"AlMgSi0.5 F22": {
|
||||
"Werkstoff": "EN AW-6060-T66 (3.3206-T66)",
|
||||
"Werkstofftyp": "Aluminium"
|
||||
},
|
||||
"S235JRC": {
|
||||
"Werkstoff": "1.0122 (S235JRC)",
|
||||
"Werkstofftyp": "Stahl"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ Schwermetall
|
||||
1.0715+C (11SMn30+C)
|
||||
1.0917 (DX51D+Z)
|
||||
1.1191 (C45E)
|
||||
1.1221 (C60E)
|
||||
1.2842 (90MnCrV8)
|
||||
1.4035 (X45CrS13)
|
||||
1.4301 (X5CrNi18-10)
|
||||
@@ -31,6 +32,7 @@ Schwermetall
|
||||
1.4310 (X10CrNi18-8)
|
||||
1.5023 (38Si7)
|
||||
1.7131 (16MnCr5)
|
||||
1.7225 (42CrMo4)
|
||||
siehe Hersteller
|
||||
siehe Stückliste
|
||||
|
||||
@@ -64,13 +66,16 @@ PA 6 GF 30
|
||||
PA 66
|
||||
PA 66 GF 25
|
||||
PA 66 GF 30
|
||||
PA 66 GF 50
|
||||
PA GF 25
|
||||
PBT
|
||||
PC
|
||||
PC GF 10
|
||||
PE
|
||||
PE-HD
|
||||
PE-LD
|
||||
PE-UHMW
|
||||
PE-UHMW antistatisch
|
||||
POM
|
||||
POM-C
|
||||
POM-H
|
||||
@@ -84,13 +89,16 @@ PUR
|
||||
PUR - 95 Shore A
|
||||
PUR D44 - 80 Shore A
|
||||
PVC
|
||||
PVC-P (weich)
|
||||
PVC-U
|
||||
siehe Hersteller
|
||||
siehe Stückliste
|
||||
TPU
|
||||
TPU - 95 Shore A
|
||||
TPU - 98 Shore A
|
||||
|
||||
[Schwermetall]
|
||||
CC493K - GC (CuSn7Zn4Pb7 - C - GC)
|
||||
CW459K (CuSn8P)
|
||||
CW614N (CuZn39Pb3)
|
||||
CW708R (CuZn31Si)
|
||||
|
||||
+31
-20
@@ -104,6 +104,7 @@ class CadItem(DataModel):
|
||||
# ist also eigentlich kein Teil der gui
|
||||
"truemmer",
|
||||
# Felder der Comboboxen. benannt wie deren callbacks
|
||||
"cb_datenbank_neu",
|
||||
"cb_pdm_kategorie_neu",
|
||||
"cb_halbzeug_neu",
|
||||
"cb_halbzeugoberflaeche",
|
||||
@@ -242,7 +243,6 @@ class CadItem(DataModel):
|
||||
self._read_only_items = {}
|
||||
self._controller = None
|
||||
self._logic = None
|
||||
self._has_bom = None
|
||||
|
||||
def clear(self):
|
||||
asm_id = self.get_asm_id() # das einzige was beim Löschen des Modells bleiben sollte, ist die übergeordnete Baugruppennummer
|
||||
@@ -295,14 +295,6 @@ class CadItem(DataModel):
|
||||
raise ValueError(f"Property '{property_name}' doesn't exist in BOM! Check property spelling!")
|
||||
else:
|
||||
return self._bom_properties[property_name]
|
||||
|
||||
def set_bom_existence(self, bom_status: bool) -> bool:
|
||||
self._has_bom = bom_status
|
||||
|
||||
def has_bom(self) -> bool:
|
||||
return self._has_bom
|
||||
|
||||
|
||||
|
||||
# Methoden um die Verwendbarkeit einzelner Schalter auszugrauen
|
||||
def set_read_only_dict(self, data:dict):
|
||||
@@ -780,7 +772,7 @@ class CadItem(DataModel):
|
||||
"""
|
||||
Überprüft, ob in den Eingabefeldern der GUI unzulässige Zeichen eingetragen wurden.
|
||||
Die unzulässigen Zeichen sind in cfg/InvalidCharacters.txt aufgelistet.
|
||||
Ursprung dieser Liste ist \\ruledesigner\RDF_Daten\Konfigurator\CustomVaulting\ERP_Item.ini -> Option "InvalidCharacters"
|
||||
Ursprung dieser Liste ist //ruledesigner/RDF_Daten/Konfigurator/CustomVaulting/ERP_Item.ini -> Option "InvalidCharacters"
|
||||
"""
|
||||
wrongchars = {}
|
||||
keys_to_check = []
|
||||
@@ -1177,9 +1169,6 @@ class CadItem(DataModel):
|
||||
bezeichnung1 = self.get_content('bezeichnung1_sivas', 'bezeichnung1_neu')
|
||||
title = bezeichnung1
|
||||
data["KategorieNE"] = pdm_kategorie_neu
|
||||
# Bezeichnung um "- BG" ergänzen
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
title = bezeichnung1 + " - BG"
|
||||
data["Title"] = title
|
||||
|
||||
# Aus Halbzeug
|
||||
@@ -1223,7 +1212,7 @@ class CadItem(DataModel):
|
||||
|
||||
bezeichnung4 = ""
|
||||
if pdm_kategorie_neu == "Baugruppe" or pdm_kategorie_neu == "Schweissbaugruppe":
|
||||
bezeichnung4 = " - BG"
|
||||
bezeichnung4 = "- BG"
|
||||
data["Bezeichnung4"] = bezeichnung4
|
||||
|
||||
# Author
|
||||
@@ -1516,7 +1505,9 @@ class GuiLogic():
|
||||
"""gibt ein dict zurück, welches neu im Modell gesetzt wird"""
|
||||
|
||||
ret = dict()
|
||||
if key == 'cb_pdm_kategorie_neu':
|
||||
if key == 'cb_datenbank_neu':
|
||||
ret = self.cb_datenbank_neu(value)
|
||||
elif key == 'cb_pdm_kategorie_neu':
|
||||
ret = self.cb_pdm_kategorie_neu(value)
|
||||
elif key == 'cb_neuaufbau':
|
||||
ret = self.cb_neuaufbau(value)
|
||||
@@ -1584,7 +1575,9 @@ class GuiLogic():
|
||||
wegen der Abhängigkeiten der Comboboxen anschliessend folgen sollen
|
||||
"""
|
||||
ret = list()
|
||||
if key == 'cb_pdm_kategorie_neu':
|
||||
if key == 'cb_datenbank_neu':
|
||||
ret = []
|
||||
elif key == 'cb_pdm_kategorie_neu':
|
||||
ret = ['cb_neuaufbau', 'cb_aus_halbzeug_neu', 'cb_3Dmodel_neu', 'cb_halbzeugOhneSaege_neu', 'cb_ruestcode_neu',
|
||||
'cb_fertigungsart_neu', 'cb_allgemeintoleranz_neu', 'cb_fosGruppe_neu', 'cb_kalkulationsart_neu', 'cb_beschaffungsart_neu',
|
||||
'cb_mengeneinheit_neu', 'cb_halbzeug_neu', 'cb_dispogruppe_neu', 'cb_dispolaufgruppe_neu', 'cb_hersteller_neu', 'cb_werkstoffdiskrepanz',
|
||||
@@ -1658,6 +1651,14 @@ class GuiLogic():
|
||||
raise Exception("this callback does not exist "+key)
|
||||
return ret
|
||||
|
||||
def cb_datenbank_neu(self, selected):
|
||||
ret = dict()
|
||||
if selected is None:
|
||||
ret['datenbank'] = "Produktiv" # Default
|
||||
else:
|
||||
ret['datenbank'] = selected
|
||||
return ret
|
||||
|
||||
def cb_pdm_kategorie_neu(self, selected):
|
||||
"""setzt die Dropdownliste mit
|
||||
<undefiniert>, Baugruppe, Einzelteil, Kaufteil, Schweissbaugruppe
|
||||
@@ -2593,13 +2594,23 @@ class GuiLogic():
|
||||
ruestcode = self._model.get_gui_data("ruestcode_sivas")
|
||||
werkstoffdiskr_neu = self._model.get_gui_data("werkstoffdiskr_neu")
|
||||
aus_halbzeug = self._model.get_gui_data("aus_halbzeug_neu")
|
||||
active_id = self._model.get_current_item_id()
|
||||
children_of_active_id = self._model.get_all_children_of_id(active_id)
|
||||
|
||||
bom_exists = self._model.has_bom()
|
||||
# Ermittlung, ob sich in der Stückliste der ausgewählten Teilenummer Beistellungsteile oder nicht-dispoaktive Teile befinden
|
||||
beistellungen = False
|
||||
dispoinaktiv = False
|
||||
if bom_exists:
|
||||
beistellungen = "True" in self._model.get_bom_properties("Lieferantenbeistellung").values()
|
||||
dispoinaktiv = "False" in self._model.get_bom_properties("Dispoaktiv").values()
|
||||
if children_of_active_id is not None:
|
||||
all_beistellungen = self._model.get_bom_properties("Lieferantenbeistellung")
|
||||
all_dispoaktiv = self._model.get_bom_properties("Dispoaktiv")
|
||||
active_id = self._model.get_current_item_id()
|
||||
children_of_active_id = self._model.get_all_children_of_id(active_id)
|
||||
|
||||
for child in children_of_active_id:
|
||||
if all_beistellungen[child] == "True":
|
||||
beistellungen = True
|
||||
if all_dispoaktiv[child] == "False":
|
||||
dispoinaktiv = True
|
||||
|
||||
# Liest Optionsnamen aus 'Zusatzinformationen.cfg'
|
||||
cfg_single_options = dict.fromkeys(self._config.Zusatz.get_section_options("EinzelTextblöcke"), "EinzelTextblöcke")
|
||||
|
||||
@@ -125,8 +125,6 @@ class Controller(Observer):
|
||||
|
||||
sivas_bom = SivasBOM(asm_id, data_dir, asm_id + '.json', load_local_bom, excluded_bom_ids)
|
||||
|
||||
bom_existence = False if not sivas_bom.bom_data else True
|
||||
|
||||
sivas_bom.extend_asm_bom(asm_id, {"Parent": None, "Position": "10/0"}) # Ergänzt Stücklistendaten um eine fiktive Baugruppe "None", in der die Haupt-Teilenummer als Pos. 1 vorliegt. Dadurch können auch Teilenummern ohne Stückliste korrekt abgebildet werden
|
||||
|
||||
rd_data = RuleDesignerDatabaseConfig(data_dir, rd_dbase_filename, load_local_rd_ids)
|
||||
@@ -140,7 +138,6 @@ class Controller(Observer):
|
||||
self._model.set_red_ids(pending_ids)
|
||||
self._model.set_parent_children(sivas_bom.parent_children)
|
||||
self._model.set_asm_id(asm_id)
|
||||
self._model.set_bom_existence(bom_existence)
|
||||
self._model.set_bom_properties(sivas_bom.all_bom_properties)
|
||||
|
||||
def set_model(self, model):
|
||||
|
||||
+10
-3
@@ -302,11 +302,18 @@ class RightFramePDM(AllFrames):
|
||||
self.datenbank_label = ttk.Label(frame, text="Datenbank:", foreground='blue' )
|
||||
self.datenbank_label.grid(column=col_left, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||
self.datenbank = tk.StringVar()
|
||||
self.datenbank.set("Schulung") # default
|
||||
self.datenbank_prod = ttk.Radiobutton(frame, text="Produktiv", variable=self.datenbank, value="Produktiv")
|
||||
self.datenbank_prod = ttk.Radiobutton(frame,
|
||||
text="Produktiv",
|
||||
variable=self.datenbank,
|
||||
value="Produktiv",
|
||||
command=lambda: self.callback('cb_datenbank_neu', self.datenbank.get()))
|
||||
self.datenbank_prod .grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||
self.rownum += 1
|
||||
self.datenbank_schul = ttk.Radiobutton(frame, text="Schulung", variable=self.datenbank, value="Schulung")
|
||||
self.datenbank_schul = ttk.Radiobutton(frame,
|
||||
text="Schulung",
|
||||
variable=self.datenbank,
|
||||
value="Schulung",
|
||||
command=lambda: self.callback('cb_datenbank_neu', self.datenbank.get()))
|
||||
self.datenbank_schul .grid(column=col_left+2, row=self.rownum, sticky=tk.W, padx=3, pady=3)
|
||||
self.rownum += 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user