From 2d0eb244bfb165b67868ea4703f627980481a65f Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Mon, 7 Sep 2026 15:46:46 +0200 Subject: [PATCH] [ADD] CSV/Sivas-Export: Zeichnungsname als Dateiname-Praefix Benannte Zeichnungen exportieren jetzt nach _export.csv bzw. _sivas.csv statt der festen Namen export.csv/export_sivas.csv, damit sich Ergebnisse mehrerer Zeichnungen nicht mehr gegenseitig ueberschreiben. Unbenannte Zeichnungen (DWGTITLED=0) behalten die alten Standardnamen. test_export_all.lsp verlaesst sich jetzt auf diese automatische Praefixierung statt *export-filenames* manuell zu ueberschreiben. Co-Authored-By: Claude Sonnet 5 --- Lisp/export.lsp | 23 +++++++++++++++++++++-- tests/test_export_all.lsp | 26 ++++++-------------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/Lisp/export.lsp b/Lisp/export.lsp index 4263d0c..24d014a 100644 --- a/Lisp/export.lsp +++ b/Lisp/export.lsp @@ -56,7 +56,7 @@ (list (cons "raw_json_datei" "export_raw.json") (cons "sivas_script" "export_sivas.py") - (cons "sivas_csv" "export_sivas.csv") + (cons "sivas_csv" "sivas.csv") (cons "csv_script" "export_csv.py") (cons "csv_csv" "export.csv") ) @@ -67,6 +67,25 @@ (cdr (assoc key *export-filenames*)) ) +;; --- Zeichnungsname als Dateiname-Praefix ermitteln --- +;; Liefert "_" oder "" (leer), wenn die Zeichnung noch nie +;; gespeichert wurde (DWGTITLED=0, Name z.B. "Zeichnung1"/"Drawing1"). +;; So heisst die Export-CSV bei einer benannten Zeichnung "_export.csv" +;; bzw. "_sivas.csv" statt nur "export.csv"/"export_sivas.csv" - bei +;; mehreren offenen/parallel bearbeiteten Zeichnungen sonst nicht unterscheidbar. +(defun export:dwg-praefix ( / dwgname) + (if (= (getvar "DWGTITLED") 0) + "" + (progn + (setq dwgname (getvar "DWGNAME")) + (if (and dwgname (/= dwgname "")) + (strcat (vl-filename-base dwgname) "_") + "" + ) + ) + ) +) + ;; ============================================================ ;; PYTHON-INTERPRETER ERMITTELN @@ -1083,7 +1102,7 @@ (setq py-skript (strcat (getenv "DXFM_LIB") "/" py-name)) (if (findfile py-skript) (progn - (setq ergebnis-pfad (strcat out-dir "/" csv-name)) + (setq ergebnis-pfad (strcat out-dir "/" (export:dwg-praefix) csv-name)) (setq py-exe (export:python-exe)) (setq log-pfad (strcat (cond ((getenv "DXFM_LOG")) (out-dir)) "/export_python.log")) diff --git a/tests/test_export_all.lsp b/tests/test_export_all.lsp index ffc77d6..f91e62b 100644 --- a/tests/test_export_all.lsp +++ b/tests/test_export_all.lsp @@ -120,10 +120,7 @@ ;; per EXPORTCSV/EXPORTSIVAS in eigene, nach der Quelldatei benannte ;; CSV-Dateien. ;; ============================================================ -(defun c:TEST_EXPORT_ALL (/ tests-out-dir dateien datei basis doc - csv-name sivas-name csv-pfad sivas-pfad - csv-ok sivas-ok results-list old-filenames - ablauf-fehler) +(defun c:TEST_EXPORT_ALL (/ tests-out-dir ablauf-fehler) (setq tests-out-dir (strcat (getenv "DXFMAKRO") "/tests/output")) (vl-mkdir tests-out-dir) @@ -156,13 +153,12 @@ (defun ssg-test-export-all-ablauf (tests-out-dir / dateien datei basis doc csv-name sivas-name csv-pfad sivas-pfad - csv-ok sivas-ok results-list old-filenames) + csv-ok sivas-ok results-list) (setq dateien (append (vl-directory-files tests-out-dir "*.dxf" 1) (vl-directory-files tests-out-dir "*.dwg" 1) )) - (setq old-filenames *export-filenames*) (setq results-list nil) (princ "\n================================================================") @@ -176,9 +172,10 @@ (setq doc (export_all:open-drawing (strcat tests-out-dir "/" datei))) - ;; Datei-/Skriptnamen fuer diesen Durchlauf ueberschreiben, damit - ;; jede Quelldatei ihre eigenen CSV-Ergebnisse bekommt (statt der - ;; fixen Standardnamen "export.csv"/"export_sivas.csv"). + ;; csv:run-export (Lisp/export.lsp) haengt den Zeichnungsnamen (DWGNAME + ;; der soeben geoeffneten Datei = basis) automatisch als Praefix vor + ;; "export.csv"/"sivas.csv" (export:dwg-praefix) - jede Quelldatei + ;; bekommt so von selbst ihre eigenen CSV-Ergebnisse. (setq csv-name (strcat basis "_export.csv")) (setq sivas-name (strcat basis "_sivas.csv")) (setq csv-pfad (strcat tests-out-dir "/" csv-name)) @@ -186,16 +183,6 @@ (if (findfile csv-pfad) (vl-file-delete csv-pfad)) (if (findfile sivas-pfad) (vl-file-delete sivas-pfad)) - (setq *export-filenames* - (list - (cons "raw_json_datei" (cdr (assoc "raw_json_datei" old-filenames))) - (cons "sivas_script" (cdr (assoc "sivas_script" old-filenames))) - (cons "sivas_csv" sivas-name) - (cons "csv_script" (cdr (assoc "csv_script" old-filenames))) - (cons "csv_csv" csv-name) - ) - ) - (princ (strcat "\n[TEST_EXPORT_ALL] CSV-Export -> " csv-name)) (c:EXPORTCSV) (setq csv-ok (export_all:wait-for-file csv-pfad 30.0)) @@ -217,7 +204,6 @@ (vla-close doc :vlax-false) ) - (setq *export-filenames* old-filenames) (setq *export-all-results* (reverse results-list)) (princ "\n\n================================================================")