Commit Graph

376 Commits

Author SHA1 Message Date
s.hensch 8039251bb8 [FIX] Export: Schnittpunkte zwischen Kreiseln werden erkannt und Weichen entsprechend gezählt und als Teil mit Merkmalen im Export befüllt - nur Kreisel mit gleicher Höhe können einen Schnittpunkt für Weiche bilden - Funktion der Weichenzählung manuell aufrufbar; [FIX] Eckrad nun korrekt angelegt und exportiert 2026-10-14 07:42:08 +02:00
s.hensch 6044c35957 feat: Eckrad-Dialog, Kreiselname, Hoehen-Neuberechnung beim Export
- Eckrad: eigener DCL-Dialog (eckrad_edit.dcl) beim Einfuegen und per
  Doppelklick (EckradEdit); Sivas-Merkmale am Kreisel ausgerichtet
  (2950, 3381, 3992 Ja/Nein); bei Sep./Scanner-Zaehlung ausgenommen
- Kreisel: eigener Name bleibt in Bezeichnung + Beschriftung erhalten
- Sivas: Kreisel/Eckrad unterschiedlicher Hoehe nicht mehr zusammengefasst
- Export: Hoehen-Attribute in Z verschobener Kreisel/Eckrad/VF/GF neu
  berechnet
- GF-Edit: Einfuegehoehe aus aktueller Z-Koordinate
2026-10-13 14:24:01 +02:00
s.hensch ea0e46a441 feat: Omniflo-Fahrstrecke (OMNI_FAHRSTRECKE) + Geruest-Dialoge ueberarbeitet
Fahrstrecke:
- Neuer Befehl OMNI_FAHRSTRECKE (+ _BESCHRIFTEN) im Omniflo-Menue,
  Daten aus data/json/omniflo_fahrstrecke.json, Vorlage dcl/fahrstrecke.dcl
- Nutzt die Linien-Logik des Geruest-Traegers (geruest-linien-starten,
  Dialog/Einfuegen/Beschriftung je Baugruppe parametriert)
- Muffen-Dummy wie beim Traeger, farbig nur wo in der JSON gesetzt
- Stueckliste: eigene Klasse "Omniflo Fahrstrecke" (GR_Fahrstrecke_*)

Geruest-Dialoge:
- DCL als statische Vorlagen mit //@NAME@-Platzhaltern
  (ssg-dcl-vorlage-fuellen in ssg_core), dcl/geruest.dcl neu
- Ein Dialog je Bereich (keine Bereichsumschaltung mehr)
- Varianten als Radiobuttons mit Artikelnummern im Label,
  "disabled": true graut Varianten aus
- Eine Befestigungsspalte (Gesamtanzahl) + Zeile "Sonstiges",
  Art.-Nr. unter jedem Anbauteil
- Winkel Platte (0/90): Anbauteile gedreht eingefuegt
- Kennzeichnung geaenderter Konfiguration, Ueberspeichern per Enter
- Traeger: Querstreben nur bei "mit_querstrebe": true

Konfigurationen im alten Format (oben/unten) werden beim Laden
uebernommen. Unit-Tests ergaenzt (599 gruen).
2026-10-13 11:02:23 +02:00
y.wang 3116e639eb fix: Etage-Solver bilanziert Ein-/Auslauf auf der Hauptachse statt im Blocksystem
Die gebaute Etage-Kette endete 987.63 mm zu weit (X) und 3.46 mm zu hoch (Z).
Der Fehlbetrag lag vollstaendig im Ein-/Auslauf: der Solver reservierte dort
1177.87 mm, real verbraucht die Kette 2165.09 mm.

Zwei Ursachen:

(a) vf-element-masse liefert KS_EIN->KS_AUS im BLOCK-Koordinatensystem. AS
    und ES werden aber um (hz - ein-ang) gedreht eingebaut - beim
    AS_Element_30 ist ein-ang = 90 Grad, dadurch landet die Block-Y-
    Komponente auf der Hauptachse. Bilanziert wurde die Block-X-Komponente:
    AS 209.7 statt real 486.10, ES -242.6 statt real 525.29.

(b) Die Auslauf-Staustrecke wurde fix mit 400 mm budgetiert, ist seit dem
    Umbau "Auslauf RUECKWAERTS vom ES gerechnet" aber variabel (im Testfall
    334 mm). Daraus die 3.46 mm Resthoehe.

Fix: neue Funktion etage-rand-budget (seite) rechnet Einlauf (Schritte 1-4)
und Auslauf (12-15) exakt so, wie etage-foerderanlage-einfuegen sie baut,
inklusive analytisch vorab bestimmtem L-exit. Kern sind die reinen,
hz-unabhaengigen Projektionen etage-laengs/etage-quer. Die alte Naeherung
bleibt als Fallback, falls ein Block fehlt.

Damit faellt auch die bisherige Annahme, Laengentreue und seitliche
Fluchtung des ES-KS_AUS seien nicht gleichzeitig loesbar: die Bauschritte
5-11 laufen auf der Hauptachse und tragen nichts zur Quer-Bilanz bei,
L-exit ist deshalb von L_GF/L_VF unabhaengig und vor dem Solve bestimmbar.

Weiter: Konstante *vfk-etage-stau-ein* (400 mm) ersetzt die nackte Zahl an
beiden Stellen; zwei neue lang-Keys (de+en, Paritaet 1095/1095); neuer
Regressionsblock tu-tests-etage in tests/test_unit.lsp mit dem AS/ES-Fall
(Suite 520/520 gruen).

In BricsCAD verifiziert: Soll-Endpunkt (11804.31, 3039.64, 4256.5) exakt
getroffen, Abweichung 0.00 mm in allen drei Achsen.

Offen: bei korrekter Bilanz bleiben im Testfall bei 33 Grad nur 16.13 mm
fuer beide GF-Strecken. Eine Mindest-GF-Laenge als Gueltigkeitskriterium
der Winkelwahl ist noch nicht eingebaut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-09 18:02:25 +02:00
m.stangl 8e518a558d [FIX] Stueckliste: fehlende lang-Keys wiederhergestellt + Spaltenlinien ergaenzt
Die sl-*-Keys (Tabellenkoepfe, Prompts, Elementklassen) fehlten komplett in
lang/de_DE.json und lang/en_GB.json: sie standen beim vorangegangenen
Merge-Konflikt-Fix noch unstaged im Working Tree (nicht committed) und wurden
dabei versehentlich durch die reparierte, aber auf dem alten HEAD basierende
Version ueberschrieben. ssg-text lieferte dadurch den rohen Key statt des
uebersetzten Textes zurueck ("sl-stkl-kopf-menge" statt "MENGE" usw.).

Zusaetzlich: ssg-sl-tabelle-zeichnen zeichnete nur den Aussenrahmen und
horizontale Zeilentrenner, keine vertikalen Spaltenlinien - ergaenzt an den
vier Spaltengrenzen (400/1000/1900/3000 relativ zum linken Rahmen), von der
Kopfzeilen-Oberkante bis zur letzten Zeilenlinie.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 16:53:23 +02:00
m.stangl 0915cc2936 [FIX] Stueckliste: Texte ueberschrieben sich bei abweichendem Textstil
ssg-sl-tabelle-zeichnen/ssg-sl-faehnchen riefen TEXT ueber command auf. Bei
einem aktiven Textstil mit fester/variabler Ausrichtung (Mitte/Fit/Aligned
statt Links) fragt TEXT dann einen zweiten Punkt zusaetzlich ab - jeder
nachfolgende command-Aufruf landete am falschen Prompt, wodurch Kopf- und
Datenzeilen der Stuecklistentabelle sich alle an derselben Stelle stapelten
statt an ihrer vorgesehenen Position (Header nicht mehr lesbar).

Neue Hilfsfunktion ssg-sl-text-machen erzeugt TEXT-Entities per entmake statt
ueber den interaktiven command-Pfad - unabhaengig von Textstil/Ausrichtung
und der command-Promptkette. Gleiche Fehlerklasse wie der _.-INSERT-Fix bei
DIN_FORMATE (vorheriger Commit).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 16:48:39 +02:00
m.stangl 2584a0df1f Menü für Stückliste dazu. 2026-10-09 16:30:07 +02:00
m.stangl 009d3488b5 Für Omniflo Elemente eigene Funktion zur AUflösung des Pfades 2D3D oder 3D2D gebaut 2026-10-09 16:29:13 +02:00
m.stangl f340c39779 AP60 elemente noch in die Exporterkennung mit aufgenommen 2026-10-09 16:23:53 +02:00
m.stangl bf2601a932 fix beim csv Export des Eckrades. Bild der gf für Doku war noch veraltet. Erste Fassung einer Lisp Funktion zur Erzeugung der Stückliste in der Szene 2026-10-09 16:22:57 +02:00
m.stangl 9b920b0825 Merge remote-tracking branch 'origin/master' 2026-10-09 16:18:54 +02:00
m.stangl 3d8831aad8 [ADD] DIN_FORMATE: Zeichnungsrahmen + Schriftkopf einfuegen
Ersatz fuer das alte ACADSST-Makro DINFORM.LSP/.DCL (SSG2 "DIN-FORMATE..."):
neues Werkzeuge-Menue "Din Formate" fuegt einen DIN-Rahmen (A0-A3, A4 quer/
hoch) und optional einen Schriftkopf (Kopf11, DE/EN/FR/IT) per Dialog ein.

Block-DWGs liegen flach in cfg/rahmen/ (kopiert aus
\infor-ln\SSG_Tools\ACADSST\KOEPFE - nur die von DINFORM.LSP tatsaechlich
referenzierten Dateien). Das Laden der Blockdefinitionen laeuft ueber
vla-InsertBlock+vla-Delete (COM-Weg wie ssg-ils-block-laden-dim), da ein
command-basiertes "_.-INSERT ... _X" in der interaktiven Befehlskette haengen
bleibt und nachfolgende getpoint-Aufrufe blockiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 16:17:42 +02:00
s.hensch ff456242e3 [MERGE] Gerüständerungen mergen 2026-10-09 14:42:15 +02:00
s.hensch d3ddcb9d59 [ADD] weitere Gerüstkomponenten hinzugefügt 2026-10-09 14:38:11 +02:00
m.stangl 1ace0a9a6d [FIX] GEFAELLESTRECKE_LINIENZUG: ES-Element hatte Rest-Hoehenversatz (~65mm) nach dem vorigen Fix
Der vorige Fix (80e5e62) nutzte insert-block-mixed-to-ks mit z-ref="KS_AUS" (sep-endpunkt als Ziel-Z) - das zwingt aber den BLOCKAUSGANG des ES-Elements auf diese Hoehe, nicht den Blockeingang, an dem die Kette tatsaechlich anschliesst. Der ganze Block wurde dadurch zusaetzlich um seine eigene KS_EIN<->KS_AUS-Innenhoehe nach oben verschoben.

Modus 1/2 (gefaellestrecke-einfuegen) macht das bereits richtig: dort haengt das EIN-Element ueber reines insert-block-ks-to-ks (keine erzwungene Ziel-Z) an den Ketten-Pfad, die Endhoehe ergibt sich danach von selbst aus KS_AUS. GEFAELLESTRECKE_LINIENZUG (Modus 3) auf dasselbe Muster umgestellt - sowohl im normalen Bau (gf-linienzug-modus) als auch im Doppelklick-Rebuild (gf-linienzug-rebuild).

Manuell in BricsCAD verifiziert: Hoehenversatz jetzt korrekt, kein Rest-Sprung mehr.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 13:34:49 +02:00
m.stangl 80e5e62160 [FIX] GEFAELLESTRECKE_LINIENZUG: ES-Element erhielt keinen Hoehenversatz bei flachem Endpunkt-Klick
Das ES-Element wurde ueber insert-block-mixed-to-ks so platziert, dass sein KS_EIN exakt auf (caddr endpunkt-ref) landet - die Z-Koordinate des zweiten Mausklicks (Kettenende waehlen). Geraden und Boegen davor waren korrekt geneigt (grade wird separat berechnet/bestaetigt und fliesst in gf-linienzug-einfuegen ein), aber die anschliessende ES-Platzierung zog die Hoehe wieder auf den Klick-Wert zurueck - bei einem Klick in einer 2D-Draufsicht ohne 3D-Objektfang liegt der meist auf derselben Z wie der Startpunkt, das ES-Element landete dann faelschlich wieder auf Starthoehe trotz korrekt gefallener Kette.

Fix: Ziel-Z fuer das ES-Element ist jetzt (caddr sep-endpunkt) - die tatsaechlich durch die Kette (Geraden/Boegen mit grade) aufgebaute Hoehe am Ende, nicht der Klick-Wert. endpunkt-ref dient weiterhin nur zur groben deltaH-Schaetzung fuer den Winkel-Vorschlag im Dialog (den der Nutzer ohnehin bestaetigt/ueberschreibt). Das Attribut HOEHE_BIS_mm wird aus demselben Grund jetzt ebenfalls aus der real gebauten Endhoehe (es-aus-frame) statt aus endpunkt-ref gelesen, damit es nicht von der sichtbaren Geometrie abweicht. Identischer Fix im neuen Rebuild-Pfad (gf-linienzug-rebuild) angewendet, der denselben Mechanismus nutzt.

Manuell in BricsCAD verifiziert: ES-Element hat jetzt korrekten Hoehenversatz.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 13:29:40 +02:00
m.stangl 01fb2d29f2 [CHANGE] GEFAELLESTRECKE_LINIENZUG-Streckengruppen per Doppelklick editierbar machen
Bisher brach GEFAELLESTRECKE_EDIT bei jeder Streckengruppe (TYP "Streckengruppe", d.h. mit mindestens einem Bogen) mit "Nur einfache Gefaellestrecken..." ab - Grund war nicht fehlende Technik, sondern dass gf-linienzug-modus schlicht keine Edit-XDATA schrieb (anders als Modus 1/2 ueber SSG_GF_EDIT).

Neue XDATA-App SSG_GF_LZ (gf-lz-xdata-schreiben/-lesen in Lisp/Gefaellestrecke.lsp) sichert die Segmentliste (Typ/hz/Laenge/Winkel/Seite je Segment, bereits laengenfertig) + den Baustartpunkt - Serialisierung per gf-segmente->string/gf-string->segmente, Chunking ueber die bestehenden ssg-sepliste-chunk-string/-split-feld/-explode-chars-Helfer aus ssg_ks_insert.lsp (wiederverwendet statt dupliziert).

Neue Funktion gf-linienzug-rebuild: baut die Kette am selben Startpunkt neu, AS-/EIN-Element und Gefaellewinkel bleiben ueber dieselben zwei Dialoge wie beim Bauen editierbar (gf-dialog-linienzug-aus-ein/-winkel, jetzt mit prefill-Parameter fuer den Edit-Fall statt Defaults) - die Segmentlaengen/-form selbst nicht (dafuer bleibt GEFAELLESTRECKE_LINIENZUG als Neubau). c:GEFAELLESTRECKE_EDIT dispatcht vor der bisherigen TYP-Sperre: Streckengruppe MIT SSG_GF_LZ-XDATA -> neuer Rebuild-Pfad, Streckengruppe OHNE (Altbestand/VF-Kombi) -> bleibt wie bisher abgewiesen. Alter Block wird erst NACH erfolgreichem Neuaufbau geloescht.

doc/variofoerderer.md um den Edit-Ablauf ergaenzt.

Manuell in BricsCAD getestet (Doppelklick auf Linienzug-Streckengruppe, beide Dialoge vorbelegt, Neuaufbau, erneuter Doppelklick auf das Ergebnis) - laeuft.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 13:16:55 +02:00
m.stangl a9cdc127d9 [CHANGE] GEFAELLESTRECKE_LINIENZUG: AS/ES-Auswahl und Gefaellewinkel per Dialog statt Konsole (Teil B der GUI-Umstellung)
Zwei neue Dialoge (dcl/gefaellestrecke.dcl, Lisp/Gefaellestrecke.lsp):
- gf-dialog-linienzug-aus-ein: AUS-/EIN-Element Winkel+Seite in EINEM Dialog, ersetzt die vier fruehen Konsolenfragen. Muss vor der Segmentlaengen-/Winkelberechnung laufen (haengt von AS-/ES-Masse ab), darum eigener, fruehzeitiger Dialog.
- gf-dialog-linienzug-winkel: zeigt den automatisch aus der Segmentkette berechneten Gefaellewinkel-Vorschlag ueberschreibbar, mit kurzer Segment-Zusammenfassung und dem bereits gewaehlten AS/ES-Paar nur noch zur Kontrolle (disabled). Ersetzt zugleich die SPAETERE finale Einfuegen-Bestaetigung - nach der rein automatischen AS/ES-Korrekturschleife waere eine zweite Rueckfrage redundant.

Objektauswahl (ssget LINE/ARC) und Start-/Endpunktwahl bleiben bewusst Zeichnung/Konsole. Rueckfall auf die alten Konsolenfragen bleibt erhalten, wenn ein Dialog nicht gezeigt werden kann/darf (GUI aus); ein bewusster Dialog-Abbruch bricht dagegen den ganzen Befehl ab statt auf Konsole zurueckzufallen - neu im Vergleich zum alten Verhalten, aber konsistent mit vfc_eingabemodus/vfs_nachruesten_hz aus Teil A/C.

doc/variofoerderer.md (Abschnitt 4) aktualisiert und um einen bebilderten Beispiel-Walkthrough ergaenzt (gf-linienzug1-3.png: Ausgangslinie, Dialog mit Vorschlagswinkel, fertige Strecke neben der Original-Linie).

Manuell in BricsCAD getestet (vollstaendiger Lauf inkl. Abbruch in beiden Dialogen) - laeuft.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 12:22:53 +02:00
m.stangl 57bb1e9057 [CHANGE] VARIOFOERDERER_NACHRUESTEN: Baurichtung per Dialog statt Konsole (Teil C der GUI-Umstellung)
Neuer Dialog vfs_nachruesten_hz (dcl/variofoerderer.dcl) + vfs-dialog-nachruesten-hz (Lisp/vf_standard.lsp) ersetzt den fruehren getreal-Prompt. Zeigt pro unmarkiertem VF_n-Fund Blockname/erkannten Typ und ein hz-Feld, vorbelegt mit dem zuletzt eingegebenen Wert (identisches Default-Fortpflanzungs-Verhalten wie vorher).

"Abbrechen" im Dialog uebernimmt bewusst nur den Vorgabewert fuer DIESEN Fund (Rueckgabe 'ABBRUCH), statt die ganze Nachruesten-Schleife abzubrechen oder auf die Konsole zurueckzufallen - echter Konsolen-Rueckfall bleibt ausschliesslich fuer den Fall, dass der Dialog gar nicht gezeigt werden kann (GUI abgeschaltet). Die Objektauswahl (ssget) selbst bleibt unveraendert Zeichnung/Konsole.

doc/variofoerderer.md um den Befehl ergaenzt (war dort bisher gar nicht erwaehnt).

Manuell in BricsCAD getestet (unmarkierter VF_4-Block, Dialog erscheint, hz=0 markiert) - laeuft.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 11:59:18 +02:00
m.stangl 9a7907ab00 [CHANGE] VF Standard/Etage 3D-Linie-Eingabemodus per Dialog statt Konsole (Teil A der GUI-Umstellung)
Neuer Dialog vfc_eingabemodus (dcl/variofoerderer.dcl) + vfc-dialog-eingabemodus-waehlen (Lisp/vf_core.lsp), analog zum bestehenden vfc_typ-Muster: Radio-Buttons "3D-Linie auswaehlen" / "Werte manuell eingeben" ersetzen die fruehere getstring-Konsolenabfrage in vf-dialog-ablauf. Betrifft StandardVarioFoerderer3D und EtageVarioFoerderer3D (beide rufen denselben Ablauf).

Die 3D-Linie-Objektauswahl selbst (vfc-3dlinie-erfassen) bleibt bewusst Zeichnung/Konsole - eine Linie laesst sich nicht durch ein Formularfeld ersetzen. Alle daraus abgeleiteten Werte (deltaL/deltaH/hz/Einfuegehoehe) gehen als Prefill in den bereits bestehenden Basis-Dialog (variofoerderer_basis), der sie ueberschreibbar anzeigt - identisch zum "Werte manuell"-Pfad.

Rueckfall auf die alte Konsolenabfrage bleibt erhalten (GUI abgeschaltet, DXFM_LANG=en_GB), wie bei vfc_typ. doc/variofoerderer.md (Abschnitt 2, 8, Entscheidungsbaum) und CLAUDE.md entsprechend aktualisiert.

Manuell in BricsCAD getestet (StandardVarioFoerderer3D + EtageVarioFoerderer3D, beide Dialogzweige inkl. Abbruch) - laeuft.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 11:38:15 +02:00
m.stangl 5aed90dd56 [CHANGE] doc/plan und doc/todo angelegt, interne Analyse-/TODO-Dokumente dorthin verschoben
doc/todo/: TODO-plan-vf-interactive.md -> plan-vf-interactive.md, TODO-modus2-achsenweise-bilanz.md -> modus2-achsenweise-bilanz.md (offene Fahrplaene/TODOs).
doc/plan/: KS-Frame-Architektur.md, vf-parameter-struct-analyse.md, translate.md, Entwicklungsplan.md (Architektur-Analysen und Planungsdokumente, kein Anwender-Material).

Alle internen Verweise (CLAUDE.md, Lisp/README.md, README.md, doc/variofoerderer.md, Lisp/vf_spec.lsp, lib/dxf_vf_abbild.py, lib/vf_spec_export.py, tests/test_hm_recformat.lsp, tests/test_vf_geometrie.py, tests/test_vf_headless_statisch.py) auf die neuen Pfade angepasst. Reine Pfad-Updates in Kommentaren/Docstrings, keine funktionale Aenderung - Python-Syntax nach dem Umbau geprueft.

Anwender-/Entwickler-Referenzdoku (faq.md, kommandos.md, tools.md, dbg2lsp.md, csv-export.md, json-input-lisp.md, lisp_methods.md, LispTests.md, variofoerderer.md, vf_linienzug_modus1_anleitung.md) bleibt direkt in doc/.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 10:56:54 +02:00
m.stangl 68ad56ec6c [DOC] Lisp/README.md auf aktuellen Code-Stand gebracht
Kern-Ladereihenfolge ergaenzt (ssg_id, ssg_ks_insert, ssg_input), Dummy-Status-Tabelle korrigiert (OMNI_TEF_* ist implementiert, nur OMNI_KettenFoerderer/OMNI_TV_*/OMNI_APBW_* und ein paar ILS-Kurven-Platzhalter sind noch Dummy). Fehlende Module ergaenzt: ssg_id.lsp, ssg_ks_insert.lsp, TEFInsert.lsp, GeruestInsert.lsp, Tro_Edit.lsp, Connection_Edit.lsp, DrawPlanquadrate.lsp. VarioFoerderer-Abschnitt an die Submodul-Aufsplittung (vf_core/vf_standard/vf_etage/vf_linienzug/vf_konstanten/vf_spec) und den Wizard/Journal/Headless-Mechanismus angepasst. SSG_BLOCKEDIT-Dispatchtabelle um GF_*/VF_*/GR_*/TRO_* ergaenzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 10:26:10 +02:00
m.stangl a670db839e [CHANGE] VarioFoerderer Standard/Etage: 3D-Linie-Eingabemodus laeuft jetzt ueber den bestehenden Basis-Dialog statt komplett interaktiv auf der Konsole
Die Linie wird weiterhin gepickt (vfc-3dlinie-erfassen, aus vf-eingabe-abfragen herausgezogen), liefert aber deltaL/deltaH/Richtung/Einfuegehoehe/Fahrtrichtung nur noch als Prefill fuer vfs-dialog-eingabe-basis - Seite/Motorseite/Darstellung/Geruest bleiben wie bisher ueber die GUI einstellbar. c:VarioFoerderer dispatcht Standard/Etage dadurch immer in vfs-standard-dialog-ablauf/vfe-etage-dialog-ablauf; der alte rein konsolenbasierte Fallback-Pfad (Schritte 3-11, vf-eingabe-abfragen) ist als toter Code entfernt. Dead-Code-Aufraeumung: 35 nur noch vom entfernten Pfad genutzte Sprachschluessel aus lang/de_DE.json + lang/en_GB.json entfernt (Paritaet geprueft).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 16:01:56 +02:00
m.stangl a6f6fcb575 [CHANGE] VF-Standard-Dialog: Geometrie-Reihenfolge angepasst (deltaL+Foerderrichtung, Einfuegehoehe+deltaH), Seite/Motorseite nebeneinander; nur Seite/Motorseite/Geruestoption bleiben Radio-Buttons, Rest wieder Combobox; Winkel/Verteilung-Dialog komplett auf Combobox zurueckgebaut (keine Radio-Variante mehr noetig)
[CHANGE] VF-Linienzug-Wizard: horizontale Kurve (GF-Bogen/Vario-Kurve) direkt nach explizit eingefuegtem AS-Element ausgegraut, da dort zuerst ein gerades Segment folgen muss

[ADD] doc/faq.md: Antworten zu VF/GF-Kombinationsfragen ergaenzt (Puffer-Umschleusung, Zielhoehe, Etagenfoerderer, Streckenueberbrueckung) + Screenshot gf-vf-kombination.png

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 14:42:17 +02:00
m.stangl 5b873838c1 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	dcl/variofoerderer.dcl
2026-10-08 12:47:05 +02:00
m.stangl 823dc6728d [CHANGE] Streckengruppe-Menue in Werte-manuell/Zielhoehe/Stueckweise aufgeteilt, QC-Linien unter Gefaellestrecke verschoben, Linienzug-Wizard "Naechstes Element" neu sortiert (GF vor VF) mit eigenem Abschliessen-Knopf statt Kettenende-Radio
Lisp/vf_core.lsp: fuenf eigene Menue-Wrapper (LinienzugVarioFoerdererManuell/-Zielhoehe/-Stueckweise, QcLinieMitGf/-UForm) ersetzen den alten interaktiven Modus-Dialog; vfc-dialog-linienzug-modus-waehlen entfaellt.
dcl/vf_linienzug_wizard.dcl + Lisp/vf_linienzug.lsp: "Neue Linie BIS Kettenende" ist kein Radio mehr, sondern eigener Button "OK und Abschliessen" neben "Ok Weiter"; GF-Optionen stehen vor VF-Optionen.
Menue (SSG_LIB.mnu/.cui), lang/*.json, doc/kommandos.md, doc/lisp_methods.md, doc/faq.md nachgezogen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 12:44:36 +02:00
y.wang 16a15bb83b feat: VF-Werteingabe Radio-Dialoge + Startpunkt-Dialog (Standard+Etage)
Dropdown-Dialoge der Standard-/Etage-Werteingabe durch Radio-Buttons
ersetzt (vfs-dialog-eingabe-basis-radio/vfs-dialog-winkel-verteilung-
radio in vf_standard.lsp), da sich Radio-Labels nach new_dialog nicht
per set_tile aendern lassen - die DCL wird dafuer bei jedem Aufruf
frisch zur Laufzeit geschrieben (neue Kernel-Helfer ssg-dcl-temp-
schreiben/ssg-dcl-label-escape in ssg_core.lsp) und dadurch
sprachunabhaengig. Popup-Varianten bleiben als Fallback erhalten,
falls das Schreiben/Laden der Temp-DCL-Datei scheitert.

Startpunkt der Anlage wird jetzt ebenfalls per Dialog gepickt
(vfc-dialog-startpunkt-waehlen, neue vfc_startpunkt-Dialogdefinition
in dcl/variofoerderer.dcl) statt per reinem Konsolen-getpoint - analog
zum bestehenden Punktwahl-Muster im Linienzug-Wizard. Zusaetzlich:
Einfuegehoehe der 3D-Linien-Eingabe ist jetzt explizit abfragbar
(Vorschlag = Z des Linien-Startpunkts), ueberschreibt nur die absolute
Hoehe, deltaH/Steigung bleiben unveraendert aus der Linie abgeleitet.

Gemeinsam mit vf_standard.lsp nach Merge-Konflikt zusammengefuehrt:
der Kollege hatte an derselben Stelle unabhaengig vfs-edit-basis-lesen
ergaenzt (gemeinsame Attribut-Leseroutine fuer Standard- UND
Etage-Edit) - beide Ergaenzungen sind inhaltlich unabhaengig und
bleiben nebeneinander bestehen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 09:55:56 +02:00
y.wang 00fd48d02e fix: VF-Linienzug Modus 1 GF+ES-Separator-Laenge/Hoehe korrigieren
Neue Linie: GF (Zweig A+B) zog bei Kettenende mit ES-Element nur den
ES-eigenen Fussabdruck von deltaL/deltaH ab, nicht den zusaetzlichen
automatischen 300mm-Separator, den vfl-insert-es-element immer selbst
vor dem ES-Block einfuegt - die Kette baute dadurch zu lang/zu tief.

Zusaetzlich: "Separator NACH" im Wizard-Dialog (vflw-gruppe-sep-gf-impl)
wird jetzt ausgegraut statt gefragt+nachtraeglich verworfen, wenn das
GF-Segment ohnehin mit einem ES-Element endet (der automatische
Separator deckt das bereits ab). Pending-Queue-Anzahl bleibt dabei
unveraendert (Dialog pusht weiterhin 2 Werte), um keinen Versatz mit
den nachfolgenden Konsolen-Abfragen zu erzeugen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 09:55:38 +02:00
m.stangl 46afb33b0b [ADD] Kreisel-Drehrichtung (DREHRICHTUNG) per JSON steuerbar: kreisel-insert-script bekommt optionalen 6. Parameter drehrichtung (GUZ/UZS), hundm05:bau-kreisel liest ihn aus dem Testdaten-JSON aus. Showroom ILS: Kreisel_Showroom_02/03/05 GUZ, Kreisel_Showroom_01/06 UZS eingetragen. Doku (lisp_methods.md, json-input-lisp.md) nachgezogen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-07 20:55:58 +02:00
m.stangl 0d8d803c36 Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros 2026-10-07 11:41:45 +02:00
m.stangl fcb4444ee1 [ADD] Block- und Text-Werkzeuge aus Walz (ACADSST) uebernommen
Neue Module ssg_blocktools.lsp (SSG_BLOCK_COUNT, SSG_BLOCK_DELETE,
SSG_ATTR_ERSETZEN) und ssg_texttools.lsp (SSG_TEXT_ERSETZEN,
SSG_TEXT_PARALLEL, SSG_TEXT_HOEHE, SSG_TEXT_STIL) sowie der generische
Eingabe-Wrapper ssg_input.lsp, dazu Menue-/Lade-Integration,
zweisprachige Texte und Unit-Tests fuer die reinen Kerne.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-07 11:40:11 +02:00
s.ayadi ba20d63f63 [ADD] lib/dxf_anlage_export.py: gebaute und von Hand nachbearbeitete Anlage aus der Zeichnung zurueck in Nachbau-Testdaten (Kreisel, GF, VF standard/etage, VF-Linienzug als unveraendertes Journal, Einzelbloecke) - tests/testdata/dematic_arvato.json jetzt aus Dematic_TST.dxf; [ADD] dxf_scan_components.py: Gefaellestrecken aus Staustrecken-LINEs (Layer 6-SP), Start/Ende auf die Kreisel-Ketten verlaengert, AS-Element und Separator auf der Achse werden verbraucht, Steigfoerderer erkannt, --ohne-hoehen und --kreisel-hoehe; [ADD] vf_spec.lsp: Replay-Kern vsp-bau-journal aus vsp-bau-aus-spec herausgeloest (auch fuer aufgezeichnete Journale); [CHANGE] TEST_DEMATIC_ARVATO baut GF, VF standard/etage und Linienzug-Journale (mubea:gf-bauen/-vario-bauen wiederverwendet); [FIX] GF-Winkel aus Kreisel-Hoehen: AS/ES-Abfall mit falschem Vorzeichen an gf-winkel-berechnen uebergeben (3.79 statt ~2.49 Grad, GF endete 258 mm zu tief); [ADD] Tests test_dxf_scan_gf.py, test_dxf_anlage_export.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 13:36:32 +02:00
s.hensch fe5cb9664c [ADD] Gerüst Dummydateien sowie Zeichnungsdateien hinzugefügt; [FIX] Anzahl und menge der Baugruppenteile unterscheidet sich nun mit dem vorgabe wert für die Inputfelder; [CHANGE] Gerüstträger in separates JSON FIle ausgelagert, da andere Einfügelogik 2026-10-05 09:49:20 +02:00
s.hensch 6ec85905d4 [ADD] Gerüst Träger können nun über das Menü in Bricscad eingefügt werden wie durch die Bihler Bibliothek; Beschriftungsausrichtung nach Norm korrigiert; Nachträgliche Beschriftung über Makro für alle platzierten Träger möglich 2026-10-02 14:46:12 +02:00
s.hensch 7e98b85e5e [CHANGE] eine zusätzliche csv für den Sivas export wird erstellt, die alle identischen Zeilen summiert und in einer Zeile mit neuer Anzahl schreibt; [ADD] Neue Gerüstkomponenten für die Baugruppenerstellung on the fly durch hinzugefügt; [CHANGE] Testskripte angepasst 2026-09-29 17:08:14 +02:00
s.hensch 4e39c64ec1 [ADD] Geruest: Teile-DWGs (data/geruest/<artnr>.dwg) als Geometrie im GR_-Block; TEILEFARBE als Liste parallel zu ARTINR (Flag farbig in geruest.json), Sivas-Merkmal 108 aus cfg [Sivas]; Menue-Befehle GERUEST_SAEULEN/_ROHRABHAENGER/_WANDBEFESTIGUNG
[FIX] Sivas-Export las nicht existierendes Attribut FARBE
2026-09-29 12:07:00 +02:00
m.stangl e8c5cd0a63 Testrun-Export nach tests/output umbiegen, Sivas-Bezeichner-Datei optional, Sivas-Merkmalzuordnung in Config
SSG_RUN_ALL_TESTS_EXPORT setzte *export-test-override* nicht, dadurch
landeten CSV/Sivas-Exporte trotz Automatik-Modus in DXFM_RESULTS statt in
tests/output wie die DXF/DWG-Dateien selbst - jetzt analog zu
TEST_EXPORT_ALL behoben.

EXPORTSIVAS schrieb bisher immer zusaetzlich eine "_mit_bezeichnung.csv"
(Klartext-Kopie). Neuer Schalter "Sivas Export mit Bezeichner" im Dialog
CSV_EXPORT_KONFIG (Standard aus) macht das optional.

Die Attribut->Sivas-Merkmal-Zuordnung der build_*_details-Funktionen in
export_sivas.py (Gefaellestrecke/Kreisel/Eckrad/Geruest/VarioFoerderer,
soweit nicht von der Segmentanzahl abhaengig) liegt jetzt deklarativ in
cfg/sivas.cfg statt hartcodiert im Python - neuer Loader
lib/sivas_mapping.py. Ablauflogik (Gruppierung, Automation-Summenzeile,
Segment-Zaehlung) bleibt Code. Gegen den alten Code mit synthetischen
Testblöcken verifiziert: identische Ausgabe.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 16:39:18 +02:00
s.hensch 2ff4322d99 [MERGE] export Konflikt gelöst 2026-09-28 14:11:09 +02:00
s.hensch dabf9e4f8a [CHANGE] Sivas Export schaut nun nur noch auf die kommaseparierte Liste im Attribut ARTINR und fügt die Artikelnummern in die Export-Liste ein; [ADD] Menü und dwg für Omniflo Ladeschleifen 2026-09-28 13:53:46 +02:00
m.stangl 3a5e771931 Default für CSV Export ist nur die Spur der Separatoren. 2026-09-28 12:33:43 +02:00
s.ayadi 1e6b152d72 export: jeden Wert nur an einer Stelle setzen (ZUORDNUNG, sepliste-IDs, Typen, K1/K2)
- ZUORDNUNG: ssg-id-check-all laeuft jetzt ZUERST, danach sind die
  Wrapper-IDs endgueltig - Separator-Kopien, AS/ES- und Einheiten-Marker
  bekommen ZUORDNUNG direkt beim Erzeugen. Entfallen:
  csv:sep-proxies-zuordnung-setzen, csv:asmark-ids-setzen,
  csv:unitmark-ids-setzen. zuordnung_fix/*cs-sep-fix-by-handle* bleibt
  (count_sep_scan rechnet eigenstaendige Sensoren bewusst neu).
- sepliste-IDs: Zuordnung ueber die KS-Kettenfolge je Typ
  (csv:sepliste-kette-paare) statt ueber die teils gespiegelten
  sepliste-Koordinaten (csv:sepliste-paare, csv:sepliste-ids-setzen
  entfallen). Die Kette wird je Lauf einmal berechnet (csv:kette-von);
  die ID liest csv:block-to-json erst beim Schreiben. Behebt vertauschte
  TrackIds/Nachbarn in HundM05 VF_1 (0031/0029).
- Element-Klassifizierung: eine Tabelle csv:element-familien (cfg-Muster)
  fuer Suche und Klassifizierung; csv:proxy-typ entfaellt.
- Einheiten-Marker: K1/K2 nur noch in *csv-baustein-by-handle*
  (csv:geometrie-merken), K1/K2-Attribute und
  csv:unitmark-k-kos-strings entfallen.

Geprueft: HundM05-Export alt/neu headless verglichen - einzige Abweichung
ist die korrigierte Reihenfolge in VF_1. LISP-Unit-Tests 303/303.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 12:10:16 +02:00
s.ayadi e67f7cc1aa export: Separator-Typ VF/GF aus der Ketten-Einheit statt Bau-XDATA
Der Typ (Merkmal "Typ") jeder Separator-Zeile kommt jetzt an EINER Stelle
aus der Einheiten-Schneidung csv:kette-einheiten (neu: csv:kette-sep-typen,
eingetragen in csv:ketten-verarbeiten) - dieselbe Quelle wie die
Einheiten-Boundingbox. VF = Separator direkt vor der Umlenkstation bzw.
zwischen Umlenk- und Motorstation, sonst GF.

Die bauzeitige XDATA SSG_SEP_TYP (ssg-sep-typ-xdata-schreiben/-lesen,
15 Einfuegestellen) entfaellt. Sie war teils falsch: der Separator vor dem
ES hinter einer Motorstation bekam "VF", und ein sep_nach-Separator einer
GF, den die folgende VF-Einheit als Einlauf nutzt, blieb "GF"
(HundM05: Sep1/5/7/9/11 und Sep2).

Unit-Tests csv:kette-sep-typen in tests/test_unit.lsp.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 11:23:27 +02:00
m.stangl 96ca43eff5 export: Hilfskopien nach dem Export loeschen, IDs stabil ueber reservierte IDs
AS/ES-Marker werden wie alle Hilfskopien geloescht (ausser csv_leave_proxies). IDs von AS/ES, Separator-Kopien und Einheiten bleiben ueber reservierte IDs (XDATA SSG_ID_RES) am VF_n/GF_n-Wrapper stabil: AS|n/ES|n, K|i, U|n.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 10:14:02 +02:00
m.stangl 5a13595289 export: ein Schalter fuer Hilfskopien, Test-Menue ueber Funktionsaufruf
- csv_leave_proxies ist der einzige Schalter, der Export-Hilfskopien
  (Separator-/Element-Kopien, Einheiten-Proxies) stehen laesst; Standard
  jetzt 0 = aufraeumen. Die zwei gleichwirkenden Dialog-Haken
  (*csv-export-pruef-zuordnung*/*csv-export-elemente-behalten*) entfallen,
  CSV_EXPORT_KONFIG schaltet mit einem Haken denselben Debug-Schalter.
- Unit-Test fuer csv:hilfskopien-behalten-p/-setzen
- Test-Menue: (load ...) (c:TEST_...) statt Befehlsname direkt nach dem
  load - BricsCAD registriert den per load definierten Befehl erst nach
  Rueckkehr zur Kommandozeile ("Befehl nicht erkannt" bei TEST_EXPORT_ALL)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:17:30 +02:00
m.stangl 394d476d56 export: Kettenbausteine ueber KS verketten, Einheiten neu gruppieren
K1/K2 und Boundingbox je Export-Zeile folgen jetzt dem echten
Kettenbaustein statt seinem Stellvertreter:
- Separator (all_elements): KS + bbox des 300-mm-Trennstegs statt des
  Sensor-Symbols; separator_track/group_vf_gf behalten das Symbol
- AS/ES (all_elements, group_vf_gf): KS + bbox des AS-/ES-Elements statt
  des 200x200-Markers ohne K
- gemeinsamer Kern csv:ks-welt-punkte; VF/GF-Wrapper-K1/K2 = K1 des AS
  bzw. K2 des ES

Gruppierter Export neu (sepliste-/XDATA-Algorithmus entfernt):
- Bausteine je Wrapper als Vektorkette K2 -> K1 ordnen (Start am AS)
- Foerdereinheit = Separator vor der Umlenkstation bis Motorstation,
  alles dazwischen Gefaelleeinheit (csv:kette-einheiten, Unit-Tests)
- je Einheit ein temporaerer Proxy mit 3D-Boundingbox, K1/K2, Laenge und
  Anzahl Boegen; wird nach dem Export geloescht (ausser csv_leave_proxies)
- IDs neuer Export-Objekte entlang der Kette AS -> ES aufsteigend

Weiteres:
- ssg-make-layer ohne _LAYER-Befehl fuer bestehende Layer (Konsole)
- einheitliche, zweisprachige Meldungen fuer behaltene Hilfskopien
- bin/show_exportcsv.bat: Export-CSV als Boundingbox-SVG (sps_skel)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 20:25:29 +02:00
m.stangl 69a192b83a export_csv: Konfigurationsdialog fuer Export-Modus + Proxy-Sichtbarkeit
Neuer Menuepunkt Konfiguration > CSV-Export (CSV_EXPORT_KONFIG) mit DCL-
Dialog: drei sich ausschliessende Export-Modi (group_vf_gf/all_elements/
separator_track, letzterer neu - nur AS/ES/Separator) ueber die zentrale
Variable *csv-export-modus*, sowie zwei unabhaengige Haken fuer sichtbare
Element-Proxy-Kopien (Zuordnung pruefen / Kopien behalten).
2026-09-25 08:45:03 +02:00
m.stangl e7643bf181 export_csv: VF_n/GF_n-Einzelelemente zu Foerdereinheit/Gefaelleeinheit gruppieren
Die Einzelteil-Proxy-Zeilen (Boegen, Streckenelemente, Umlenk-/Motorstation)
aus der letzten Session sind fuer den Normalfall zu granular. Standardmaessig
(*csv-export-alle-elemente* = nil) fasst csv:unitmark-aktualisieren sie jetzt
zu je einer "Foerdereinheit"/"Gefaelleeinheit"-Zeile pro zusammenhaengendem
VF-/GF-Abschnitt einer Kette zusammen, mit einem persistenten Rechteck-Marker
(ZZ_UNIT_MARKER, analog ZZ_ASES_MARKER) auf der Bounding-Box-Vereinigung
aller enthaltenen Elemente. Der bisherige Rohdaten-Export bleibt ueber
(csv:export-alle-elemente-an) weiterhin verfuegbar.

Einheiten-Grenzen kommen rein export-seitig aus der sepliste (SEP/AS/ES in
echter Bau-Reihenfolge) plus dem bereits vorhandenen SSG_SEP_TYP je
Separator - eine bauzeitige Markierung in vf_linienzug.lsp/vf_standard.lsp/
vf_etage.lsp waere deutlich invasiver gewesen (3 unabhaengige Baupfade ohne
gemeinsamen Einstiegspunkt). csv:sepliste-partition (Lauflaengen-Kodierung
ueber die typisierte sepliste) und csv:element-unit-zuordnung (Zuordnung der
gesammelten Elemente per Kettenrichtungs-Projektion statt der nachweislich
unzuverlaessigen csv:nested-welt-records-Listenreihenfolge) sind reine,
dateifrei getestete Funktionen.

Korrigiert nebenbei eine falsche Annahme: L_VF_m/L_GF_m zaehlen pro Segment,
nicht pro Einheit - die tatsaechliche Einheiten-Anzahl kommt nur aus der
sepliste-Typfolge.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 23:46:41 +02:00
m.stangl f751a90076 export_csv: VF_n/GF_n-Einzelelemente (Boegen, Streckenelemente, Umlenk-/Motorstation) als Proxy-Zeilen exportieren
Bisher tauchten nur der Wrapper selbst, verpackte Separatoren und AS/ES-
Kettenenden als eigene CSV-Zeilen auf - die uebrigen Kettenbausteine
(Boegen, gerade Foerderer-/Gefaellestrecken-Segmente, Umlenk-/Motorstation)
blieben nur in der Wrapper-Blockdefinition verpackt. csv:element-proxies-
erzeugen (analog zu csv:sep-proxies-erzeugen) fuegt fuer jeden Fund eine
temporaere Kopie ein, K1/K2 kommen aus dem EIGENEN KS_EIN/KS_AUS jedes
Elements (nicht dem Gesamt-AS/ES der Kette) und bleiben leer, wo keines
existiert (z.B. das nie tatsaechlich eingefuegte Vario_Kurve_*).

Zusaetzlicher Fix: csv:get-k-kos-strings ignorierte bisher die Skalierung
des Top-Level-Inserts - fuer Staustrecke_SP_1000_mm (das per Laenge nicht-
uniform skaliert wird) waere K2 damit falsch gewesen, unabhaengig von der
tatsaechlich gebauten Segmentlaenge.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 13:08:35 +02:00
m.stangl 4f1a0e0b5b export_csv: sepliste-Koordinaten (x/y) entfernen, nur noch typ/lfdnr/id
Validiert (Nutzer-Befund): die sepliste-XDATA-Koordinaten sind der rohe
Gruppencode-10-Punkt des jeweiligen Bau-Primitivs und teils gespiegelt/um
mehrere 100mm verschoben (z.B. Separator 0037: x=-5070.1 statt 5070.1,
ausserhalb der VF_1-Boundingbox). Die eigene Export-Zeile jedes Bauteils
(x/y aus der echten Proxy-Kopie) ist dagegen verlaesslich und liegt korrekt
in der Boundingbox. sepliste dient nur noch der ID-Zuordnung/Reihenfolge,
nicht mehr als Koordinatenquelle.

Der Python-Faellback in map_sepliste_kette_items (nur fuer SEP-Eintraege
ohne aufloesbares "id"-Feld, Altbestand) matchte bisher per naechstem
sepliste-Punkt - jetzt erster unverbrauchter Kandidat je Zuordnung, da keine
Koordinate mehr vorliegt. lib/dump_vf_kette_inhalt.py zeigt Position/Typ
jetzt ueber die ID-Verknuepfung zur eigenen Bauteil-Zeile statt ueber die
entfernten sepliste-Felder.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 10:58:53 +02:00
m.stangl 42309c77d2 export_csv: Separator-TYP-XDATA vom aeusseren Trennsteg statt vom geteilten Symbol lesen
Der letzte Fix markierte bauzeitig korrekt den aeusseren
Staustrecke_Separator_SP_300_mm-Trennsteg, csv:sep-proxies-erzeugen las den
Marker aber vom inneren Separator_SP-Symbol - das ist als Teil EINER
gemeinsamen DWG-Blockdefinition zwischen ALLEN Separatoren der Zeichnung
geteilt und kann keinen individuellen Marker tragen. Export sucht jetzt
zusaetzlich den aeusseren Trennsteg (eigene Instanz je Separator) und
ordnet ihn dem Symbol ueber die naechstliegende Weltposition zu.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 09:27:57 +02:00