[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>
This commit is contained in:
+21
-8
@@ -903,15 +903,28 @@
|
||||
;; abgebrochene Kette bleibt also als lose Geometrie liegen und ist per
|
||||
;; c:VF_SEKTION_RESTORE rettbar (vfl-segment-xdata-sichern hat pro Iteration
|
||||
;; schon SSG_VF_EDIT_SEG/_PRE geschrieben).
|
||||
(defun vsp-bau-aus-spec (spec / kopf sid journal rec vor-ent alt-error err
|
||||
offen hl meld ist-glieder soll-glieder diff
|
||||
ist-journal jdiff ent ed dim)
|
||||
(defun vsp-bau-aus-spec (spec / kopf journal)
|
||||
(setq kopf (vsp-kopf spec))
|
||||
(setq sid (vsp-spec-id kopf))
|
||||
;; vsp-journal sammelt seine Fehler in *vsp-fehler* - darum erst danach lesen.
|
||||
(setq journal (vsp-journal spec))
|
||||
(vsp-bau-journal (vsp-spec-id kopf) journal (ssg-val kopf "dim") *vsp-fehler*))
|
||||
|
||||
;; Eine Kette aus einem fertigen Eingabe-Journal bauen (Liste (art . wert) in
|
||||
;; Bau-Reihenfolge, wie vfl-journal-replay-start sie erwartet). Gemeinsamer
|
||||
;; Kern fuer Specs (vsp-bau-aus-spec, Journal per vsp-journal uebersetzt) und
|
||||
;; fuer UNVERAENDERT uebernommene Aufzeichnungen - z.B. die SSG_VF_EDIT-XDATA
|
||||
;; eines von Hand gebauten VF_n (tests/test_dematic_arvato.lsp, Journal per
|
||||
;; vfl-string->entry gelesen). Letztere brauchen keinen Uebersetzer und
|
||||
;; laufen darum auch dann, wenn der Dialog neuer ist als die Spec-Grammatik.
|
||||
;; sid = Kennung im Record, dim = "2D"/"3D" oder nil (Sitzung),
|
||||
;; fehler = Liste der Spec-Fehler (bei nil-Journal die Begruendung).
|
||||
;; Erwartet den Headless-Rahmen (vsp-headless-an) beim Aufrufer.
|
||||
(defun vsp-bau-journal (sid journal dim fehler / rec vor-ent alt-error err
|
||||
offen hl meld ist-glieder soll-glieder diff
|
||||
ist-journal jdiff ent ed)
|
||||
(setq soll-glieder (if journal (vfl-journal-glieder journal) nil))
|
||||
(setq rec (vsp-rec-neu sid))
|
||||
(setq rec (vsp-set rec "spec_fehler" *vsp-fehler*))
|
||||
(setq rec (vsp-set rec "spec_fehler" fehler))
|
||||
(setq rec (vsp-set rec "glieder_soll" soll-glieder))
|
||||
(setq rec (vsp-set rec "eingaben_gesamt" (if journal (length journal) 0)))
|
||||
(princ (strcat "\n [SPEC] " sid))
|
||||
@@ -919,9 +932,9 @@
|
||||
(cond
|
||||
;; --- Spec fehlerhaft: nichts bauen ---
|
||||
((null journal)
|
||||
(princ (strcat "\n " (itoa (length *vsp-fehler*))
|
||||
(princ (strcat "\n " (itoa (length fehler))
|
||||
" Spec-Fehler, nichts gebaut:"))
|
||||
(foreach f *vsp-fehler* (princ (strcat "\n - " f)))
|
||||
(foreach f fehler (princ (strcat "\n - " f)))
|
||||
(setq rec (vsp-set rec "status" "spec-fehler"))
|
||||
(setq rec (vsp-set rec "dimension" (vsp-dim-text)))
|
||||
rec)
|
||||
@@ -934,7 +947,7 @@
|
||||
;; Feld in der Spec. Ist keines gesetzt, gilt die Sitzung.
|
||||
(setq dim (if (and (boundp '*vsp-dim-override*) *vsp-dim-override*)
|
||||
*vsp-dim-override*
|
||||
(ssg-val kopf "dim")))
|
||||
dim))
|
||||
(if dim (setq *ssg-ils-dim* dim))
|
||||
(setq rec (vsp-set rec "dimension" (vsp-dim-text)))
|
||||
(princ (strcat " -> " (itoa (length journal)) " Journal-Eintraege, "
|
||||
|
||||
Reference in New Issue
Block a user