Commit Graph

352 Commits

Author SHA1 Message Date
m.stangl 5ffe81b370 Sivas-Export: Geruestoption fuer Einzelmodul in allen ILS-Elementen ergaenzt
Kreisel, Eckrad, Gefaellestrecke und VarioFoerderer schreiben jetzt neben
"Geruest fuer Einzelmodul" auch die gewaehlte Geruestoption (GERUEST_TYP)
in die Merkmale. Eckrad bekommt dafuer erstmals eine eigene Gruppierung
nach Geruest-Signatur (bisher immer eine gemeinsame Zeile ohne Details);
Kreisel/Gefaellestrecke gruppieren nun ebenfalls nach Geruestoption, damit
unterschiedliche Optionen nicht mehr in einer Zeile verschwinden.
2026-07-23 13:05:01 +02:00
m.stangl 1c5f29a250 test_foerderer.py: Spaltenindizes an neue Fehler-/IDs-Spalten angepasst
CSV-Header hat inzwischen eine "Fehler"-Spalte (export_csv.py, zwischen
Nachbarn und Merkmale) und der Sivas-Export eine "IDs"-Spalte (export_sivas.py,
vor details) bekommen - der Test war darauf noch nicht nachgezogen und
erwartete die alten Spaltenpositionen/Header, wodurch Header- und
Merkmale/details-JSON-Pruefungen fehlschlugen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 12:55:50 +02:00
m.stangl 9516fd63af set_koords.py: manuelle Abstandsformeln durch math.dist ersetzt
Die wiederholten (dx**2 + dy**2 [+ dz**2]) ** 0.5-Formeln fuer den
euklidischen Abstand zweier Punkte (K1-K4-Positionsbestimmung fuer
Boegen/Weichen/Weichenkoerper) sind jetzt math.dist(p1, p2) - gleiches
Ergebnis, aber weniger Code und keine Gefahr, beim manuellen Quadrieren
ein Vorzeichen/Exponenten zu vertippen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 12:55:50 +02:00
m.stangl b6b71c5997 safe_float/safe_int Hilfsfunktionen: doppelten try/except-Code konsolidiert
export_csv.py und export_sivas.py enthielten je ca. 10 nahezu identische
try/except (ValueError, TypeError)-Bloecke fuer "String zu float/int mit
Fallback". Neue gemeinsame Helfer safe_float()/safe_int()
(export_blockpatterns.py) ersetzen diese Bloecke; dabei auch zwei bislang
ungeschuetzte int()/float()-Aufrufe in export_sivas.py (Kreisel-Zaehler)
abgesichert, die bei fehlerhaften Attributwerten sonst abgestuerzt waeren.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 12:55:50 +02:00
m.stangl 2842e1f1c9 CSV-Escaping-Bug behoben, export.cfg-Mehrfachparsing beseitigt
format_csv_line() in export_csv.py/export_sivas.py hat Feldwerte per
f-String direkt in doppelte Anfuehrungszeichen gesetzt, ohne ein
eingebettetes '"' zu escapen (z.B. eine Bezeichnung mit Anfuehrungszeichen
haette die Spaltengrenze der Zeile kaputt gemacht). Neuer gemeinsamer
Helper csv_quote() (export_blockpatterns.py) verdoppelt eingebettete
Anfuehrungszeichen nach RFC 4180.

Ausserdem: export.cfg wurde bisher von vier unabhaengigen load_*-Funktionen
(load_patterns, load_neighbor_tolerance_mm, load_omniflo_cell_size_mm,
load_planquadrat_config) separat von der Platte gelesen und geparst. Neuer
gemeinsamer, gecachter load_export_cfg() in export_blockpatterns.py sorgt
dafuer, dass export.cfg pro Exportlauf nur noch einmal gelesen wird.

Dabei auch die in export_csv.py bereits genutzte, aber in export_planquadrat.py
fehlende resolve_origins()-Funktion (automatische Planquadrat-Ursprungs-
Ermittlung) ergaenzt - ohne sie war der Import von export_csv.py gebrochen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 12:55:50 +02:00
s.hensch 2ccfe005d9 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-23 11:03:39 +02:00
s.hensch 79b7e9af4f [ADD] 2D Elemente für Vario Motor und Umlenkstation hinzugefügt 2026-07-23 11:03:29 +02:00
m.stangl 6396111777 Geruest fuer Einzelmodul + Geruestoption bei Foerderer, Gefaellestrecke und Eckrad ergaenzt
Kreisel hatte GERUEST_EINZELMODUL bereits; ergaenzt um die neue Combobox
GERUEST_TYP (IPE-Geruest abgestuft / Obergeruest oben / Schoenenberger
Geruest / nur Doppelrohrtraeger, Default Schoenenberger Geruest) im
KreiselEdit-Dialog. VarioFoerderer (Standard-Dialog) und Gefaellestrecke
(Modus 1) erhalten beide Attribute neu in ihren DCL-Dialogen inkl.
Edit-Vorbelegung. ILS_Eckrad (kein Dialog vorhanden) fragt beide Werte
per Kommandozeilen-Menue ab. Konsolen-only-Pfade ohne Dialog (VF
Etage/Linienzug, GF Linienzug/3D-Objekte) bleiben auf Schema-Default,
analog zum bisherigen Kreisel-Verhalten.

Gemeinsame Optionsliste/Helper (*ssg-geruest-optionen*,
ssg-geruest-typ-to-idx/idx-to-typ, ssg-ask-geruest-typ) in ssg_core.lsp
war bereits durch einen parallelen Commit (120e26a) mit eingeflossen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 10:37:22 +02:00
m.stangl ad287b683d CSV-Export: Nachbarschaftserkennung neu aufgebaut (ohne shapely), Fehlerspalte ergaenzt
Nachbarschaft wird jetzt in drei getrennten Gruppen geprueft statt global
ueber alle Elemente: Kreisel/Eckrad gegeneinander, Kreisel/Eckrad gegen
Gefaellestrecke/Foerderer/Strecke-Modul (diese drei nicht gegeneinander),
und Omniflo-Elemente gegeneinander (rasterbasiert vorgefiltert nach x/y-
Koordinate). Ersetzt die bisherige shapely-STRtree-Loesung durch reines
Python, da die shapely-Abhaengigkeit den regulaeren CSV-Export in der von
BricsCAD genutzten Python-Umgebung brechen konnte.

Neue Spalte "Fehler" markiert Elemente mit zu wenigen Partnern
("unverbunden"/"nur ein Partner") je nach TeileArt-Mindestanzahl.

Ausserdem: SSG_RUN_ALL_TESTS-Absturz nach TEST_KREISEL behoben (ssg-start/
ssg-end nutzten flache globale Variablen statt eines Stacks, wodurch
verschachtelte Aufrufe den *error*-Handler dauerhaft korrumpierten) und
FILEDIA=0 um den DXFOUT-Kommandozeilenaufruf ergaenzt.
2026-07-23 10:35:42 +02:00
y.wang 6d81b30628 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-23 09:08:19 +02:00
y.wang eef20cafe8 AS-Platzierungen gefixiert. AS-dz jetzt konsistent flach, Debug-Zeile entfernt 2026-07-23 09:08:07 +02:00
y.wang fe2ad9cb32 vf-next-number ueberspringt bestehende Block-Definitionen (verhindert sporadischen VF-Bau-Fehlschlag)
Parallel-VF selbstkorrigierend auf GF-AS-KS_EIN ausrichten + vf-next-number gegen Namenskollision haertenm, Debug-Ausgaben entfernt.
2026-07-23 09:07:27 +02:00
m.stangl 6ab698286f CSV-Export: Nachbarschaftserkennung ueber Bounding-Box-Ueberschneidung (STRtree/shapely)
Neue Spalte "Nachbarn" (kommaseparierte TeileId-Liste) in export_csv.py:
zwei Elemente gelten als benachbart, wenn ihre Bounding-Boxes (x/y-Ebene)
sich ueberschneiden. Toleranz konfigurierbar in mm ueber cfg/export.cfg
[Nachbarschaft] -> toleranz_mm, siehe lib/export_neighbors.py.
Nur EXPORTCSV betroffen, EXPORTSIVAS bleibt unveraendert.

shapely als neue Abhaengigkeit in requirements.txt ergaenzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 15:26:30 +02:00
m.stangl 57badf0556 Sivas-Export: Spalte Hoehe[m] entfernt
Die Hoehe-Angabe steht bereits pro Element in der details-JSON-Spalte
(z.B. "Hoehe in m" aus dem MONTAGEHOEHE_m-Attribut bei VarioFoerderer/
Linienzug), die separate Top-Level-Spalte war redundant.
2026-07-22 13:01:24 +02:00
m.stangl 193b0dea04 CSV-Export: Bounding-Box (Position/Boundingbox) und Planquadrat-Spalte ergaenzt
Nur EXPORTCSV betroffen, EXPORTSIVAS bleibt unveraendert:
- Position/Boundingbox: Bounding-Box je Block per vla-getboundingbox
  (Lisp/export.lsp, csv:get-bbox), Mittelpunkt und Ausdehnung x/y/z.
- Planquadrat: aus x/y-Koordinate berechnet nach cfg/export.cfg
  [Planquadrate] (Schrittweite, numerisch/alphabetisch je Achse,
  alphabetische Zaehlung mit Excel-Spalten-Umlauf Z->AA), siehe
  lib/export_planquadrat.py.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 12:52:33 +02:00
s.hensch a0fd5d83bd Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-22 12:48:12 +02:00
s.hensch 6ab835c425 [FIX] Dropdown Menü für Weichenauswahl Omniflo verbreitert, um den gesamten Text sichtbar zu machen; [FIX] Grad Zeichen in Beschreibungen der Dropdowns bzw in den entsprechenden JSON Dateien entfernt 2026-07-22 12:48:07 +02:00
y.wang 8daf6548c8 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-22 12:44:29 +02:00
y.wang c6d5a4e8eb Doppelklick-GF-Edit repariert 2026-07-22 12:43:29 +02:00
y.wang c0f06b68cd Fehler für Etage-VF korrigiert. 2026-07-22 12:42:18 +02:00
m.stangl 4159132ce1 Bezeichner war im json Export noch drin, obwohl es eigene Spalte ist 2026-07-22 12:09:42 +02:00
m.stangl efdf6224ff Noch einen Eintrag vergessen gehabt 2026-07-22 11:46:59 +02:00
m.stangl bb92b8ef69 Artinr. mit Punkt ist keine gute Idee für eine Attributbezeichnung. Geändert 2026-07-22 11:44:33 +02:00
m.stangl 048bf61ac4 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros
# Conflicts:
#	Lisp/KreiselInsert.lsp
#	lib/export_sivas.py
2026-07-22 11:28:30 +02:00
m.stangl 3f916a6fed Kreisel: Attribut Geruest_Einzelmodul hinzugefuegt (Erzeugung, Edit-Dialog, Export)
Jeder Kreisel bekommt bei der Erzeugung das neue Attribut GERUEST_EINZELMODUL
(Default false), im KreiselEdit-Dialog per Checkbox "Geruest fuer Einzelmodul"
umschaltbar. Fliesst als echter JSON-Bool ins details-Feld von EXPORTSIVAS/
EXPORTCSV und wird bei der Sivas-Gruppierung gleichartiger Kreisel beruecksichtigt.
2026-07-22 11:25:09 +02:00
s.hensch 187f0acf31 [FIX] nach dem Editieren bzw. Austauschen eines Objekts über Doppelklick und Menü wird das Layer nun korrekt entsprechend des Layer-Attributs gesetzt 2026-07-22 08:54:04 +02:00
s.hensch 63e4e9ef32 [FIX] Weichentyp im json für die dynamische Erzeugung der Oberfläche für Deltaweichen korrigiert; [CHANGE] Drehung der Omniflo Objekte wird nun interaktiv durch den Benutzer angegeben wie zuvor in Bihler 2026-07-22 08:07:24 +02:00
s.hensch 67acbd8f38 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-21 15:46:12 +02:00
s.hensch a7037d975c [FIX] Omniflo Blöcke nicht mehr benötigte Boundingbox Rudimente vom Ruledesigner entfernt; [CHANGE] Omniflo Blöcke in Blockdatei in den Ursprung positioniert, damit bessere Kontrolle möglich; [DELETE] Block libraries aus dem Repo entfernt, da nicht mehr benötigt 2026-07-21 15:45:44 +02:00
s.ayadi 042d3b72e8 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-21 14:51:00 +02:00
s.ayadi e63694a4af fix for changing 2026-07-21 14:42:51 +02:00
s.hensch 36cd89cc84 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-21 14:32:44 +02:00
s.hensch 25c8a21fdb [CHANGE] Attribute in den Omniflo Blöcken bereinigt und Vereinheitlicht; [ADD] Scanner, Stopper, Bremse für Omniflo 2D als Block hinzugefügt 2026-07-21 14:32:32 +02:00
y.wang 9a92bede21 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-21 14:11:56 +02:00
y.wang b962872071 HOEHEN_CHECK - misst/schreibt Hoehen-Attribute (Kreisel/VF/GF), markiert ungueltige Hoehen auf Layer S_HOEHE_PRUEFEN, Buehnenabzug ab 2m 2026-07-21 14:11:29 +02:00
y.wang b5ae0a1da0 i18n: Keys gf-vf-modul-fehlt/gf-vf-gebaut fuer 'VF daneben bauen' nachgereicht (de/en) 2026-07-21 14:05:59 +02:00
y.wang 5bb6bb8241 fix: Z-Versatz bei GF/VF behoben (OSMODE=0 im Wrap ssg-block-wrap-welt); gepickte Hoehe als Einfuegehoehe im GF-Dialog 2026-07-21 14:05:13 +02:00
m.stangl 12fc783eb7 Strings Beladung und Entladung geändet 2026-07-21 14:04:43 +02:00
y.wang d99bdb10d5 Kreisel-Attributreihenfolge neu (ID/Bezeichnung/Artinr. zuerst), Artinr.=6200 ergaenzt, N_RAMPEN->ANZAHL_RAMPEN (inkl. Export-Fallback) 2026-07-21 13:55:51 +02:00
y.wang 59835c1d2f fix: OSMODE=0 in Omniflo-Inserts (Aluprofil/DXF) gegen Hoehen-Umfang-Bug 2026-07-21 13:51:16 +02:00
m.stangl dfc17a8f39 Linienzug hat jetzt eine Frage mehr wegen 90 oder 30 Grad. 2026-07-21 12:56:34 +02:00
s.hensch 82470ae708 [ADD] CUI wird nun verwaltet, da sowieso aktuelle version notwendig und einfacher zu integrieren 2026-07-21 12:05:43 +02:00
s.hensch fe8e78d56c Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-21 09:11:21 +02:00
s.hensch a0e86571b1 [ADD] Menüeintrag für Omniflo Anbaugruppen Scanner, Stopper, Bremse hinzugefügt und Einfügen implementiert 2026-07-21 09:11:08 +02:00
y.wang 1ca3241a83 Button -VF daneben bauen- im GF-Edit-Dialog - baut gegenläufigen, steigenden Standard-VF 2000mm parallel,Doppel-Bestaetigung in Modus 1 (DCL-Dialog) entfernt - OK-Klick fuegt direkt ein 2026-07-20 21:40:41 +02:00
y.wang 41311f5fd3 ZAEHLE_SEP_SCAN schreibt ILS-Bezeichnung in Sensor-Attribut zuordnung und markiert nicht zugeordnete Sensoren mit Gelb Kreis 2026-07-20 18:14:06 +02:00
y.wang 21daab974d Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-20 16:50:14 +02:00
y.wang 8efdbc0c5f keys de/en für VF-linienzug wurde eingefügt, Export Sivas ruft vorab ZAEHLE_SEP_SCAN auf(Attribute aktualisieren), Menü neu laden notwendig 2026-07-20 16:49:59 +02:00
m.stangl 903e086e7f Bezeichnung statt Name bei ILS KReisel und Eckrad verwendet. Eigene Spalte für Bezeichnung im Sivas Export dazu gebaut 2026-07-20 16:46:16 +02:00
m.stangl d4ea049918 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-07-20 15:39:22 +02:00