From 5f59433ac8f1f7b2e96bade9c732066b62e00a64 Mon Sep 17 00:00:00 2001 From: mistangl Date: Tue, 27 Jan 2026 16:11:53 +0100 Subject: [PATCH] Methode erzeugt um auf einen Rutsch alle Textdxf Dateien zu erzeugen --- bin/create_alltests.bat | 26 ++++++++++++++++++++++++++ doc/plant2dxf_dokumentation.md | 22 +++++++++++----------- 2 files changed, 37 insertions(+), 11 deletions(-) create mode 100644 bin/create_alltests.bat diff --git a/bin/create_alltests.bat b/bin/create_alltests.bat new file mode 100644 index 0000000..fc8cda4 --- /dev/null +++ b/bin/create_alltests.bat @@ -0,0 +1,26 @@ +@echo off +CALL setenv.bat + +echo ======================================== +echo Creating all test DXF files from testdata +echo Output directory: %PROJECT_WORK% +echo ======================================== +echo. + +REM Iterate through all CSV files in testdata directory +for %%f in (%PROJECT_TEST%\*.csv) do ( + echo Processing: %%~nxf + CALL plant2dxf.bat -f "%%f" -o "%PROJECT_WORK%\%%~nf.dxf" + if errorlevel 1 ( + echo ERROR: Failed to process %%~nxf + echo. + ) else ( + echo SUCCESS: Created %%~nf.dxf in work folder + echo. + ) +) + +echo ======================================== +echo All test DXF files processed! +echo ======================================== +pause diff --git a/doc/plant2dxf_dokumentation.md b/doc/plant2dxf_dokumentation.md index c95a628..0f6432e 100644 --- a/doc/plant2dxf_dokumentation.md +++ b/doc/plant2dxf_dokumentation.md @@ -10,7 +10,7 @@ Aufgrund möglicher Änderungen im CSV-Dateiformat von RuleDesigner müssen in Z Die Logik zur Bestimmung und Platzierung von AS- und ES-Elementen bei Gefällestrecken und Vario-Förderern basiert auf dem aktuellen CSV-Format. Bei Änderungen der Datenstruktur oder der verfügbaren Informationen müssen folgende Methoden in `as_es_methoden.py` überprüft und angepasst werden: -- `erstellung_gefaelle_block_verbunenden_am_einen()`: Erstellt AS/ES-Elemente für Gefällestrecken, die mit einem Kreisel verbunden sind +- `erstellung_gefaelle_block_verbunden_an_einen()`: Erstellt AS/ES-Elemente für Gefällestrecken, die mit einem Kreisel verbunden sind - `gefaellegerade_erstellung()`: Erstellt AS/ES-Elemente für Gefällestrecken, die mit zwei Kreiseln verbunden sind - `am_kreisel_direct_verbunden()`: Prüft, ob eine Gefällestrecke/Vario-Förderer direkt mit einem Kreisel verbunden ist (ohne Stahlband) @@ -23,7 +23,7 @@ Die Höhenvergleiche zur Bestimmung der Verbindungsart zwischen Gefällestrecken - `handle_ils_2_0_gefaellestrecke()`: Haupt-Handler für Gefällestrecken - `handle_ils_2_0_variofoerderer()`: Haupt-Handler für Vario-Förderer -**Gefällestrecke-Methoden (`lib/Elemente/Gefaehllestrecke.py`):** +**Gefällestrecke-Methoden (`lib/Elemente/Gefaellestrecke.py`):** - `rotation_mit_zwei_verbunden()`: Berechnet Rotation bei Verbindung mit zwei Kreiseln (verwendet Höhenvergleiche) @@ -33,7 +33,7 @@ Die Höhenvergleiche zur Bestimmung der Verbindungsart zwischen Gefällestrecken **Betroffene Dateien:** - `lib/as_es_methoden.py`: AS/ES-Element-Berechnungen - `lib/plant2dxf.py`: Handler-Funktionen für Gefällestrecken und Vario-Förderer -- `lib/Elemente/Gefaehllestrecke.py`: Höhenvergleiche und Verbindungslogik +- `lib/Elemente/Gefaellestrecke.py`: Höhenvergleiche und Verbindungslogik - `lib/Elemente/VarioFoerderer.py`: Höhenvergleiche und Verbindungslogik ## Übersicht @@ -505,7 +505,7 @@ msp.add_blockref(blockname, (x, y, z), dxfattribs={"rotation": rotation, "layer" ```python msp.add_blockref("ILS_2.0_Gefaellestrecke_8200_2000_UZS_higher", - (x, y, hoehe_gefaehlle), + (x, y, hoehe_gefaelle), dxfattribs={"rotation": rotation, "layer": "6-SP"}) ``` @@ -536,13 +536,13 @@ if blockname not in doc.blocks: **Beispiel:** ```python -blockname = f"Ils_2.0_Gefaellestrecke_{laenge}_{hoehe_gefaehlle}_{hat_motor_0}_{hat_umlenk_0}" +blockname = f"Ils_2.0_Gefaellestrecke_{laenge}_{hoehe_gefaelle}_{hat_motor_0}_{hat_umlenk_0}" if blockname not in doc.blocks: block = doc.blocks.new(name=blockname, base_point=(0, 0, 0)) # Füge Komponenten zum Block hinzu block.add_blockref("Vario_Motorstation_500mm", (0, 0, 0)) line = Line.new(dxfattribs={"start": start, "end": ende}) - line.translate(-x, -y, -hoehe_gefaehlle) + line.translate(-x, -y, -hoehe_gefaelle) block.add_entity(line) ``` @@ -733,11 +733,11 @@ Die Methode `hat_motor_umlenk_station()` prüft, ob eine Gefällestrecke eine Mo **Höhen-basierte Bestimmung:** -- Wenn `upper_hoehe_gefaehlle > lower_hoehe_gefaehlle`: - - Wenn `vario_hoehe_0` oder `vario_hoehe_1 == upper_hoehe_gefaehlle` → `hat_motor_0 = True` +- Wenn `upper_hoehe_gefaelle > lower_hoehe_gefaelle`: + - Wenn `vario_hoehe_0` oder `vario_hoehe_1 == upper_hoehe_gefaelle` → `hat_motor_0 = True` - Sonst → `hat_umlenk_0 = True` -- Wenn `upper_hoehe_gefaehlle < lower_hoehe_gefaehlle`: - - Wenn `vario_hoehe_0` oder `vario_hoehe_1 == lower_hoehe_gefaehlle` → `hat_motor_0 = True` +- Wenn `upper_hoehe_gefaelle < lower_hoehe_gefaelle`: + - Wenn `vario_hoehe_0` oder `vario_hoehe_1 == lower_hoehe_gefaelle` → `hat_motor_0 = True` - Sonst → `hat_umlenk_0 = True` **Rotations-basierte Bestimmung (bei gleicher Höhe):** @@ -797,7 +797,7 @@ Die Methode `ein_motor_oder_eine_umlenk()` erstellt die Motor- oder Umlenkstatio Der Blockname wird dynamisch generiert: ```python -Ils_2.0_Gefaellestrecke_{laenge}_{hoehe_gefaehlle}_{hat_umlenk_0}_{hat_motor_0}_{tefkurve_0}_{umlenk_gerade}_{motor_gerade} +Ils_2.0_Gefaellestrecke_{laenge}_{hoehe_gefaelle}_{hat_umlenk_0}_{hat_motor_0}_{tefkurve_0}_{umlenk_gerade}_{motor_gerade} ``` #### 4. Block-Erstellung