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")