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>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5a13595289
commit
96ca43eff5
@@ -206,7 +206,7 @@ class TestSeplisteNachbarnAufgeloest:
|
||||
|
||||
Architektur: SEP-Eintraege liegen bereits als echte (Proxy-)Separator_SP-
|
||||
Items vor (der LISP-Export fuegt je verpacktem Symbol eine temporaere
|
||||
Kopie ein), AS-/ES-Eintraege als eigene Items, direkt aus dem dauerhaften
|
||||
Kopie ein), AS-/ES-Eintraege als eigene Items, direkt aus dem
|
||||
ZZ_ASES_MARKER klassifiziert (siehe export_csv.py process_blocks) - beide
|
||||
tragen bereits ihre TeileId als sepliste-Feld "id". map_sepliste_kette_
|
||||
items erzeugt daher KEINE neuen Zeilen, sondern ordnet jedem sepliste-
|
||||
|
||||
@@ -7,7 +7,7 @@ Laeuft komplett ohne BricsCAD (reine Python-Logik, siehe lib/export_csv.py).
|
||||
Eine Strecke (VF_n/GF_n) traegt in ihrer "sepliste"-XDATA je AS-/SEP-/ES-
|
||||
Eintrag x/y sowie (seit csv:asmark-ids-setzen/csv:sepliste-ids-setzen,
|
||||
Lisp/export.lsp) ein Feld "id" - die TeileId des Bauteils, das diesen
|
||||
Eintrag in der Zeichnung vertritt (AS/ES ueber den dauerhaften
|
||||
Eintrag in der Zeichnung vertritt (AS/ES ueber den
|
||||
ZZ_ASES_MARKER, SEP ueber die beim Export ausgepackte temporaere
|
||||
Separator_SP-Kopie). write_separatorliste_merkmale() soll daraus, ueber die
|
||||
bereits von map_sepliste_kette_items per exaktem ID-Abgleich aufgeloesten
|
||||
|
||||
@@ -247,6 +247,16 @@
|
||||
(tu-eq "ssg-id-format/42" "0042" (ssg-id-format 42))
|
||||
(tu-eq "ssg-id-format/1000" "1000" (ssg-id-format 1000))
|
||||
(tu-eq "ssg-id-format/12345" "12345" (ssg-id-format 12345))
|
||||
|
||||
;; Reservierte IDs (XDATA SSG_ID_RES): Serialisierung + Maximum.
|
||||
(setq _rp '(("AS|1" . "0032") ("ES|4" . "0107")))
|
||||
(tu-eq "ssg-id-res->strings" '("AS|1=0032" "ES|4=0107") (ssg-id-res->strings _rp))
|
||||
(tu-eq "ssg-id-res-parse/rundlauf" _rp (ssg-id-res-parse (ssg-id-res->strings _rp)))
|
||||
(tu-eq "ssg-id-res-parse/ohne-gleich-ignoriert" '(("AS|1" . "0032"))
|
||||
(ssg-id-res-parse '("kaputt" "AS|1=0032")))
|
||||
(tu-eq "ssg-id-res-parse/leerer-wert" '(("AS|1" . "")) (ssg-id-res-parse '("AS|1=")))
|
||||
(tu-eq "ssg-id-res-max" 107 (ssg-id-res-max _rp))
|
||||
(tu-eq "ssg-id-res-max/leer" 0 (ssg-id-res-max nil))
|
||||
)
|
||||
|
||||
|
||||
@@ -385,6 +395,26 @@
|
||||
(tu-nil "csv:asmark-finden/ohne-wrapper-id" (csv:asmark-finden _mk "" "AS" "1"))
|
||||
(tu-nil "csv:asmark-finden/leerer-bestand" (csv:asmark-finden nil "0021" "AS" "1"))
|
||||
|
||||
;; csv:asmark-res-key: Schluessel der reservierten ID am Wrapper - lfdnr als
|
||||
;; Integer (csv:asmark-aktualisieren) und String muss denselben liefern.
|
||||
(tu-eq "csv:asmark-res-key/int" "AS|1" (csv:asmark-res-key "AS" 1))
|
||||
(tu-eq "csv:asmark-res-key/str" "ES|4" (csv:asmark-res-key "ES" "4"))
|
||||
(tu-eq "csv:res-key-kette" "K|7" (csv:res-key-kette 7))
|
||||
(tu-eq "csv:res-key-einheit" "U|2" (csv:res-key-einheit 2))
|
||||
|
||||
;; csv:res-merken: Anmeldungen je Wrapper zusammenfuehren (ein Eintrag je
|
||||
;; Wrapper, Reihenfolge der Anmeldung). Symbole statt enames - rein
|
||||
;; listenbasiert. Globale Sammlung sichern und wiederherstellen.
|
||||
(setq _rs *csv-res-sammlung* *csv-res-sammlung* nil)
|
||||
(csv:res-merken 'W1 "AS|1" 'M1)
|
||||
(csv:res-merken 'W2 "K|0" 'M2)
|
||||
(csv:res-merken 'W1 "K|3" 'M3)
|
||||
(tu-eq "csv:res-merken/je-wrapper"
|
||||
'((W1 ("AS|1" . M1) ("K|3" . M3)) (W2 ("K|0" . M2)))
|
||||
(vl-sort *csv-res-sammlung* (function (lambda (a b) (< (vl-symbol-name (car a))
|
||||
(vl-symbol-name (car b)))))))
|
||||
(setq *csv-res-sammlung* _rs)
|
||||
|
||||
;; csv:proxy-typ: Typmarker aus dem Blocknamen (Grundlage der Zuordnung).
|
||||
(tu-eq "csv:proxy-typ/as" "AS" (csv:proxy-typ "AS_Element_90_links_3D"))
|
||||
(tu-eq "csv:proxy-typ/es" "ES" (csv:proxy-typ "ES_Element_30_rechts_2D"))
|
||||
|
||||
Reference in New Issue
Block a user