diff --git a/Lisp/export.lsp b/Lisp/export.lsp
index 562435d..f5ac8bd 100644
--- a/Lisp/export.lsp
+++ b/Lisp/export.lsp
@@ -90,23 +90,19 @@
(defun csv:export-alle-elemente-an () (csv:export-modus-setzen "all_elements"))
(defun csv:export-alle-elemente-aus () (csv:export-modus-setzen "group_vf_gf"))
-;; --- Zwei unabhaengige Sichtbarkeits-Haken fuer die temporaeren Element-
-;; Proxy-Kopien (siehe csv:element-proxies-loeschen/csv:unitmark-
-;; aktualisieren) - ebenfalls ueber CSV_EXPORT_KONFIG bedienbar ---
-;; *csv-export-pruef-zuordnung* - laesst die den Foerdereinheit-/
-;; Gefaelleeinheit-Markern zugeordneten Element-Kopien zusaetzlich
-;; sichtbar, damit in BricsCAD optisch nachvollziehbar ist, welche
-;; Einzelteile zu welchem ZZ_UNIT_MARKER-Rechteck zusammengefasst
-;; wurden (die Marker selbst bleiben ohnehin immer stehen, persistent
-;; wie ZZ_ASES_MARKER).
-;; *csv-export-elemente-behalten* - laesst die Element-Proxy-Kopien
-;; grundsaetzlich stehen, unabhaengig vom Gruppierungs-Debugging oben.
-;; Beide unabhaengig vom bestehenden, als TEMPORAER dokumentierten Debug-
-;; Schalter "csv_leave_proxies" (ssg_dbg.lsp) - der bleibt unveraendert und
-;; steuert weiterhin zusaetzlich (ODER-verknuepft) sowohl Separator- als
-;; auch Element-Proxies.
-(if (not (boundp '*csv-export-pruef-zuordnung*)) (setq *csv-export-pruef-zuordnung* nil))
-(if (not (boundp '*csv-export-elemente-behalten*)) (setq *csv-export-elemente-behalten* nil))
+;; --- Hilfskopien nach dem Export stehen lassen: EIN Schalter ---
+;; Standard: der Export raeumt alle Hilfskopien wieder ab (Separator-/
+;; Element-Kopien, Einheiten-Proxies, siehe csv:hilfskopien-loeschen). Nur der
+;; Debug-Schalter "csv_leave_proxies" (ssg_dbg.lsp, Standard 0) laesst sie
+;; stehen, damit man in BricsCAD sieht, was exportiert wurde. Bedienbar per
+;; (dbg-schalter-on/-off "csv_leave_proxies") oder im Dialog CSV_EXPORT_KONFIG
+;; - beide Wege schalten denselben Zustand.
+(defun csv:hilfskopien-behalten-p ()
+ (and (car (atoms-family 1 '("DBG-SCHALTER-P")))
+ (dbg-schalter-p "csv_leave_proxies")))
+(defun csv:hilfskopien-behalten-setzen (an)
+ (if (car (atoms-family 1 '("DBG-SCHALTER-SET")))
+ (dbg-schalter-set "csv_leave_proxies" (if an 1 0))))
;; --- Feste Datei-/Skriptnamen dieses Moduls (keine Config, direkt im Code) ---
@@ -1405,40 +1401,17 @@
(reverse proxy-liste)
)
-;; --- Temporaere Element-Kopien nach dem Export wieder entfernen ---
-;; Eigene, minimale Loeschfunktion statt csv:sep-proxies-loeschen wieder-
-;; zuverwenden: *cs-sep-fix-by-handle*/*cs-sep-typ-by-handle*/
-;; *csv-sepliste-id-by-handle* bleiben separator-/AS-/ES-spezifisch, diese
-;; Elemente haben keine Entsprechung davon.
-;;
-;; Drei unabhaengige Gruende, die Kopien trotzdem stehen zu lassen (ODER-
-;; verknuepft): der dialoggesteuerte Haken "Element-Kopien behalten"
-;; (*csv-export-elemente-behalten*), der Haken "Zuordnung pruefen"
-;; (*csv-export-pruef-zuordnung* - zeigt zusammen mit den stehenbleibenden
-;; ZZ_UNIT_MARKER-Rechtecken, welche Kopie zu welcher Einheit gehoert), und
-;; der bestehende, als TEMPORAER dokumentierte Debug-Schalter
-;; "csv_leave_proxies" (ssg_dbg.lsp) - dieser bleibt unveraendert und
-;; steuert weiterhin zusaetzlich auch die Separator-Proxies
-;; (csv:sep-proxies-loeschen).
-(defun csv:element-proxies-loeschen (proxy-liste art-key)
- (csv:hilfskopien-loeschen proxy-liste art-key
- (or *csv-export-elemente-behalten* *csv-export-pruef-zuordnung*))
-)
-
-;; --- Gemeinsame Loeschung aller Export-Hilfskopien ---
+;; --- Export-Hilfskopien nach dem Export wieder entfernen ---
;; proxy-liste = Records, deren car die Hilfskopie ist.
;; art-key = Sprachschluessel der Objektart fuer die Meldung
;; ("exp-art-separator"/"exp-art-element"/"exp-art-einheit").
-;; zusaetzlich = weiterer Behalten-Grund (Konfig-Haken) oder nil.
-;; Behalten, wenn der Debug-Schalter "csv_leave_proxies" gesetzt ist oder
-;; zusaetzlich zutrifft - dann eine Meldung je Art (nur wenn es welche gibt).
-(defun csv:hilfskopien-loeschen (proxy-liste art-key zusaetzlich / behalten)
- (setq behalten (or zusaetzlich
- (and (car (atoms-family 1 '("DBG-SCHALTER-P")))
- (dbg-schalter-p "csv_leave_proxies"))))
+;; Standard: loeschen. Bei gesetztem csv_leave_proxies (siehe
+;; csv:hilfskopien-behalten-p) bleiben sie stehen, mit einer Meldung je Art
+;; (nur wenn es welche gibt).
+(defun csv:hilfskopien-loeschen (proxy-liste art-key)
(cond
((null proxy-liste))
- (behalten
+ ((csv:hilfskopien-behalten-p)
(princ (ssg-textf "exp-hilfskopien-behalten"
(list (itoa (length proxy-liste)) (ssg-text art-key)))))
(t (foreach rec proxy-liste (entdel (car rec))))
@@ -2194,7 +2167,7 @@
;; *csv-sepliste-id-by-handle* werden trotzdem zurueckgesetzt - sie gelten nur
;; fuer den gerade gelaufenen Export.
(defun csv:sep-proxies-loeschen (proxy-liste)
- (csv:hilfskopien-loeschen proxy-liste "exp-art-separator" nil)
+ (csv:hilfskopien-loeschen proxy-liste "exp-art-separator")
(setq *cs-sep-fix-by-handle* nil)
(setq *cs-sep-typ-by-handle* nil)
(setq *csv-sepliste-id-by-handle* nil)
@@ -2209,8 +2182,8 @@
;; Separator-/Element-Kopien: es entsteht bei jedem Export neu, bekommt in
;; ssg-id-check-all eine ID, liefert die Export-Zeile und wird am Ende von
;; csv:run-export wieder geloescht - ausser der Debug-Schalter
-;; "csv_leave_proxies" (bzw. einer der Konfig-Haken, siehe
-;; csv:element-proxies-loeschen) laesst es zur Ansicht stehen.
+;; "csv_leave_proxies" (siehe csv:hilfskopien-loeschen) laesst es zur
+;; Ansicht stehen.
;; Nur im Modus group_vf_gf; in den anderen Modi entsteht keins.
(defun csv:unitmark-blockname () "ZZ_UNIT_MARKER")
@@ -2811,10 +2784,8 @@
;; Sammel-Funktionen) erfuellt. Die AS-/ES-Marker (ZZ_ASES_MARKER) bleiben
;; bewusst stehen (siehe csv:export-vorbereiten).
(csv:sep-proxies-loeschen sep-proxies)
- (csv:element-proxies-loeschen element-proxies "exp-art-element")
- ;; Einheiten-Proxies: dieselbe Behalten-Regel wie die Element-Kopien
- ;; (Debug-Schalter csv_leave_proxies / Konfig-Haken).
- (csv:element-proxies-loeschen unitmarks "exp-art-einheit")
+ (csv:hilfskopien-loeschen element-proxies "exp-art-element")
+ (csv:hilfskopien-loeschen unitmarks "exp-art-einheit")
(princ)
)
@@ -2859,16 +2830,14 @@
(vl-position *csv-export-modus* (mapcar 'car *csv-export-konfig-modi*)))
(if eintrag (setq idx eintrag))
(set_tile "modus" (itoa idx))
- (set_tile "pruef_zuordnung" (if *csv-export-pruef-zuordnung* "1" "0"))
- (set_tile "elemente_behalten" (if *csv-export-elemente-behalten* "1" "0"))
+ (set_tile "hilfskopien_behalten" (if (csv:hilfskopien-behalten-p) "1" "0"))
)
(defun csv:export-konfig-accept ( / idx modus)
(setq idx (atoi (get_tile "modus")))
(setq modus (car (nth idx *csv-export-konfig-modi*)))
(if modus (csv:export-modus-setzen modus))
- (setq *csv-export-pruef-zuordnung* (= (get_tile "pruef_zuordnung") "1"))
- (setq *csv-export-elemente-behalten* (= (get_tile "elemente_behalten") "1"))
+ (csv:hilfskopien-behalten-setzen (= (get_tile "hilfskopien_behalten") "1"))
)
(defun c:CSV_EXPORT_KONFIG ()
diff --git a/Lisp/ssg_dbg.lsp b/Lisp/ssg_dbg.lsp
index 41ca6b7..adaf886 100644
--- a/Lisp/ssg_dbg.lsp
+++ b/Lisp/ssg_dbg.lsp
@@ -68,24 +68,28 @@
;; Beide Schalter hier stehen NUR fuer diese Fehlersuche auf 1 und werden
;; danach wieder entfernt (mitsamt der zugehoerigen Instrumentierung in
;; ssg_ks_insert.lsp/Gefaellestrecke.lsp/vf_core.lsp bzw. dem Guard in
-;; csv:sep-proxies-loeschen, export.lsp). Sie sind bewusst vorregistriert,
-;; damit nach einem BricsCAD-Neustart ohne weiteres Zutun protokolliert wird.
+;; csv:hilfskopien-loeschen, export.lsp). vf-sepliste ist bewusst mit 1
+;; vorregistriert, damit nach einem BricsCAD-Neustart ohne weiteres Zutun
+;; protokolliert wird; csv_leave_proxies mit 0 - Standard ist, dass der Export
+;; seine Hilfskopien wieder abraeumt.
;;
;; vf-sepliste - protokolliert den kompletten Weg der
;; Sepliste-Koordinaten beim Bau einer VF-/GF-Kette
;; nach DXFM_LOG/vf_sepliste.dbg (eigene Datei, nicht
;; ueber *dbg-path*).
-;; csv_leave_proxies - laesst die temporaeren Separator_SP-Kopien, die der
-;; Export aus den Wrappern auspackt, nach dem Export in
-;; der Zeichnung stehen, damit ihre tatsaechliche Lage
-;; in BricsCAD gegen die sepliste-Koordinaten geprueft
-;; werden kann. ACHTUNG: die Kopien werden bei JEDEM
-;; Export neu erzeugt und sammeln sich an - Zeichnung
-;; danach nicht speichern.
+;; csv_leave_proxies - laesst ALLE Hilfskopien des Exports (Separator-/
+;; Element-Kopien, Foerder-/Gefaelleeinheit-Proxies)
+;; nach dem Export in der Zeichnung stehen, damit man
+;; in BricsCAD sieht, was exportiert wurde. Auch ueber
+;; den Dialog CSV_EXPORT_KONFIG schaltbar. Standard 0.
+;; Der naechste Export raeumt stehengebliebene
+;; Einheiten-Proxies selbst ab; Separator-/Element-
+;; Kopien sammeln sich dagegen an - Zeichnung mit
+;; eingeschaltetem Schalter nicht speichern.
;; ------------------------------------------------------------
-(foreach nm '("vf-sepliste" "csv_leave_proxies")
- (if (not (assoc nm *dbg-schalter*))
- (setq *dbg-schalter* (cons (cons nm 1) *dbg-schalter*))))
+(foreach nm '(("vf-sepliste" . 1) ("csv_leave_proxies" . 0))
+ (if (not (assoc (car nm) *dbg-schalter*))
+ (setq *dbg-schalter* (cons nm *dbg-schalter*))))
(defun dbg-schalter-set (name wert)
(setq *dbg-schalter*
diff --git a/dcl/csv_export_konfig.dcl b/dcl/csv_export_konfig.dcl
index a02ba3c..5281a55 100644
--- a/dcl/csv_export_konfig.dcl
+++ b/dcl/csv_export_konfig.dcl
@@ -1,9 +1,8 @@
// ============================================================
// csv_export_konfig.dcl - CSV-Export Konfiguration (c:CSV_EXPORT_KONFIG,
// export.lsp). Steuert *csv-export-modus* (Combobox mit drei sich
-// gegenseitig ausschliessenden Eintraegen) sowie die zwei unabhaengigen
-// Sichtbarkeits-Haken fuer temporaere Element-Proxy-Kopien
-// (*csv-export-pruef-zuordnung*/*csv-export-elemente-behalten*).
+// gegenseitig ausschliessenden Eintraegen) sowie den Debug-Schalter
+// csv_leave_proxies (Hilfskopien nach dem Export stehen lassen).
//
// popup_list statt radio_column: set_tile/get_tile auf einer
// boxed_radio_column liefern/erwarten den KEY des gewaehlten radio_button
@@ -27,15 +26,11 @@ csv_export_konfig : dialog {
spacer;
: boxed_column {
- label = "Element-Proxy-Kopien (Debug)";
+ label = "Debug";
: toggle {
- key = "pruef_zuordnung";
- label = "Zuordnung pruefen (Element-Kopien zusaetzlich sichtbar lassen)";
- }
- : toggle {
- key = "elemente_behalten";
- label = "Element-Kopien nach Export behalten (nicht loeschen)";
+ key = "hilfskopien_behalten";
+ label = "Hilfskopien nach Export stehen lassen (Separator, Elemente, Einheiten)";
}
}
diff --git a/menu/SSG_LIB.cui b/menu/SSG_LIB.cui
index b03901e..e2db2fd 100644
--- a/menu/SSG_LIB.cui
+++ b/menu/SSG_LIB.cui
@@ -635,67 +635,67 @@
alle Tests ausfuehren und exportieren
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_EXPORT
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) (c:SSG_RUN_ALL_TESTS_EXPORT)
Tests ausfuehren und stehen lassen
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_OFFEN
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) (c:SSG_RUN_ALL_TESTS_OFFEN)
Export CSV/Sivas ALL
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) TEST_EXPORT_ALL
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) (c:TEST_EXPORT_ALL)
Kreisel
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) (c:TEST_KREISEL)
Foerderer
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) (c:TEST_FOERDERER)
Foerderer-Linienzug
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) TEST_LINIENZUG TEST_LINIENZUG_STUFE2
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) (c:TEST_LINIENZUG) (c:TEST_LINIENZUG_STUFE2)
Omniflo
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) (c:TEST_OMNIFLO)
Omniflo Strecke
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) TEST_OMNIFLO_STRECKE
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) (c:TEST_OMNIFLO_STRECKE)
Gefaellestrecke
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) TEST_GEFAELLESTRECKE
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) (c:TEST_GEFAELLESTRECKE)
Mubea Gesamtmodell
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) TEST_MUBEA
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) (c:TEST_MUBEA)
HundM05 Kreisel-Abschnitt
- ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) TEST_HUNDM05
+ ^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) (c:TEST_HUNDM05)
diff --git a/menu/SSG_LIB.mnu b/menu/SSG_LIB.mnu
index 74f35e3..7d8945f 100644
--- a/menu/SSG_LIB.mnu
+++ b/menu/SSG_LIB.mnu
@@ -134,18 +134,18 @@
[Planquadrate an/aus]^C^C(ssg-ensure "DrawPlanquadrate") PLANQUADRATE_TOGGLE
[<-CSV-Export]^C^C(ssg-ensure "export") CSV_EXPORT_KONFIG
[->Tests]
-[alle Tests ausfuehren und exportieren]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_EXPORT
-[Tests ausfuehren und stehen lassen]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) SSG_RUN_ALL_TESTS_OFFEN
-[Export CSV/Sivas ALL]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) TEST_EXPORT_ALL
+[alle Tests ausfuehren und exportieren]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) (c:SSG_RUN_ALL_TESTS_EXPORT)
+[Tests ausfuehren und stehen lassen]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_run_all.lsp")) (c:SSG_RUN_ALL_TESTS_OFFEN)
+[Export CSV/Sivas ALL]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_export_all.lsp")) (c:TEST_EXPORT_ALL)
[--]
-[Kreisel]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL
-[Foerderer]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER
-[Foerderer-Linienzug]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) TEST_LINIENZUG TEST_LINIENZUG_STUFE2
-[Omniflo]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO
-[Omniflo Strecke]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) TEST_OMNIFLO_STRECKE
-[Gefaellestrecke]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) TEST_GEFAELLESTRECKE
-[Mubea Gesamtmodell]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) TEST_MUBEA
-[HundM05 Kreisel-Abschnitt]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) TEST_HUNDM05
+[Kreisel]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) (c:TEST_KREISEL)
+[Foerderer]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) (c:TEST_FOERDERER)
+[Foerderer-Linienzug]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp")) (c:TEST_LINIENZUG) (c:TEST_LINIENZUG_STUFE2)
+[Omniflo]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) (c:TEST_OMNIFLO)
+[Omniflo Strecke]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo_strecke.lsp")) (c:TEST_OMNIFLO_STRECKE)
+[Gefaellestrecke]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_gefaellestrecke.lsp")) (c:TEST_GEFAELLESTRECKE)
+[Mubea Gesamtmodell]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_mubea.lsp")) (c:TEST_MUBEA)
+[HundM05 Kreisel-Abschnitt]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_hundm05.lsp")) (c:TEST_HUNDM05)
[<-KS 2D/3D pruefen (CSV)]^C^C(load (strcat (getenv "DXFMAKRO") "/Lisp/ks_pruefung.lsp")) KS_PRUEFEN
***DOUBLECLICK
diff --git a/tests/test_unit.lsp b/tests/test_unit.lsp
index dc8b6bb..3672d95 100644
--- a/tests/test_unit.lsp
+++ b/tests/test_unit.lsp
@@ -470,6 +470,16 @@
;; --- csv:export-modus-setzen / -p-Praedikate: 3 Modi + Ungueltig-Schutz --
;; Bestehenden Modus sichern/wiederherstellen, damit dieser Testblock keine
;; Seiteneffekte auf nachfolgende Tests oder eine laufende Sitzung hat.
+ ;; --- Hilfskopien behalten: EIN Schalter (csv_leave_proxies), der Dialog
+ ;; schaltet denselben Zustand. Alten Wert sichern/wiederherstellen.
+ (setq _hk-alt (csv:hilfskopien-behalten-p))
+ (csv:hilfskopien-behalten-setzen T)
+ (tu-true "csv:hilfskopien-behalten/an" (csv:hilfskopien-behalten-p))
+ (tu-true "csv:hilfskopien-behalten/an-ist-dbg-schalter" (dbg-schalter-p "csv_leave_proxies"))
+ (csv:hilfskopien-behalten-setzen nil)
+ (tu-nil "csv:hilfskopien-behalten/aus" (csv:hilfskopien-behalten-p))
+ (csv:hilfskopien-behalten-setzen _hk-alt)
+
(setq _modus-alt *csv-export-modus*)
(csv:export-modus-setzen "all_elements")