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>
This commit is contained in:
Michael Stangl
2026-09-25 20:25:29 +02:00
co-authored by Claude Opus 5.5
parent bc481de901
commit 394d476d56
13 changed files with 1017 additions and 1037 deletions
+663 -764
View File
File diff suppressed because it is too large Load Diff
+17 -9
View File
@@ -363,15 +363,23 @@
;; Layer anlegen (falls nicht vorhanden) und optional aktivieren
;; lay-name = Name; color = Farbnummer als String z.B. "2"; set-aktiv = T/nil
;; Farbe wird nur bei Neuanlage gesetzt, bestehende Layer bleiben unveraendert
(defun ssg-make-layer (lay-name color set-aktiv / neu)
(setq neu (not (tblsearch "LAYER" lay-name)))
(if set-aktiv
(command "_LAYER" "_M" lay-name "")
(command "_LAYER" "_N" lay-name "")
)
(if neu
(command "_LAYER" "_CO" color lay-name "")
)
;; Ohne "_LAYER"-Befehl: ein bestehender Layer wird gar nicht angefasst (frueher
;; lief bei JEDEM Aufruf "_LAYER _N" und fuellte die Konsole, z.B. je Export-
;; Marker einmal), ein neuer per entmake angelegt, CLAYER direkt gesetzt. Nur
;; wenn entmake scheitert (ungueltiger Name), bleibt der alte Befehlsweg.
(defun ssg-make-layer (lay-name color set-aktiv / farbe)
(if (not (tblsearch "LAYER" lay-name))
(progn
(setq farbe (atoi (cond (color) ("7"))))
(if (or (< farbe 1) (> farbe 255)) (setq farbe 7))
(if (not (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord") (cons 2 lay-name)
'(70 . 0) (cons 62 farbe) '(6 . "Continuous"))))
(progn
(command "_LAYER" "_N" lay-name "")
(command "_LAYER" "_CO" color lay-name "")))))
(if (and set-aktiv (tblsearch "LAYER" lay-name))
(setvar "CLAYER" lay-name))
)
;; ------------------------------------------------------------
+3 -2
View File
@@ -73,8 +73,9 @@
;; weil der Marker in der Zeichnung stehen bleibt.
(wcmatch bname "ZZ_ASES_MARKER*")
;; ZZ_UNIT_MARKER: die Foerdereinheit-/Gefaelleeinheit-Marker
;; (siehe csv:unitmark-aktualisieren, export.lsp) - aus
;; demselben Grund wie ZZ_ASES_MARKER.
;; (siehe csv:ketten-verarbeiten, export.lsp) - temporaere
;; Export-Proxies, die wie die Separator-Kopien eine ID fuer
;; ihre Export-Zeile brauchen.
(wcmatch bname "ZZ_UNIT_MARKER*")
(wcmatch bname "Separator_SP*,S-LP*,Scanner*")
(wcmatch bname "BTMT-Beladung*,SC_Entladung*")