[ADD] CSV/Sivas-Export: Zeichnungsname als Dateiname-Praefix

Benannte Zeichnungen exportieren jetzt nach <name>_export.csv bzw.
<name>_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 <noreply@anthropic.com>
This commit is contained in:
2026-09-07 15:46:46 +02:00
parent cbea9ccecc
commit 2d0eb244bf
2 changed files with 27 additions and 22 deletions
+21 -2
View File
@@ -56,7 +56,7 @@
(list (list
(cons "raw_json_datei" "export_raw.json") (cons "raw_json_datei" "export_raw.json")
(cons "sivas_script" "export_sivas.py") (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_script" "export_csv.py")
(cons "csv_csv" "export.csv") (cons "csv_csv" "export.csv")
) )
@@ -67,6 +67,25 @@
(cdr (assoc key *export-filenames*)) (cdr (assoc key *export-filenames*))
) )
;; --- Zeichnungsname als Dateiname-Praefix ermitteln ---
;; Liefert "<Zeichnungsname>_" 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 "<name>_export.csv"
;; bzw. "<name>_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 ;; PYTHON-INTERPRETER ERMITTELN
@@ -1083,7 +1102,7 @@
(setq py-skript (strcat (getenv "DXFM_LIB") "/" py-name)) (setq py-skript (strcat (getenv "DXFM_LIB") "/" py-name))
(if (findfile py-skript) (if (findfile py-skript)
(progn (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 py-exe (export:python-exe))
(setq log-pfad (strcat (cond ((getenv "DXFM_LOG")) (out-dir)) (setq log-pfad (strcat (cond ((getenv "DXFM_LOG")) (out-dir))
"/export_python.log")) "/export_python.log"))
+6 -20
View File
@@ -120,10 +120,7 @@
;; per EXPORTCSV/EXPORTSIVAS in eigene, nach der Quelldatei benannte ;; per EXPORTCSV/EXPORTSIVAS in eigene, nach der Quelldatei benannte
;; CSV-Dateien. ;; CSV-Dateien.
;; ============================================================ ;; ============================================================
(defun c:TEST_EXPORT_ALL (/ tests-out-dir dateien datei basis doc (defun c:TEST_EXPORT_ALL (/ tests-out-dir ablauf-fehler)
csv-name sivas-name csv-pfad sivas-pfad
csv-ok sivas-ok results-list old-filenames
ablauf-fehler)
(setq tests-out-dir (strcat (getenv "DXFMAKRO") "/tests/output")) (setq tests-out-dir (strcat (getenv "DXFMAKRO") "/tests/output"))
(vl-mkdir tests-out-dir) (vl-mkdir tests-out-dir)
@@ -156,13 +153,12 @@
(defun ssg-test-export-all-ablauf (tests-out-dir (defun ssg-test-export-all-ablauf (tests-out-dir
/ dateien datei basis doc / dateien datei basis doc
csv-name sivas-name csv-pfad sivas-pfad 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 (setq dateien (append
(vl-directory-files tests-out-dir "*.dxf" 1) (vl-directory-files tests-out-dir "*.dxf" 1)
(vl-directory-files tests-out-dir "*.dwg" 1) (vl-directory-files tests-out-dir "*.dwg" 1)
)) ))
(setq old-filenames *export-filenames*)
(setq results-list nil) (setq results-list nil)
(princ "\n================================================================") (princ "\n================================================================")
@@ -176,9 +172,10 @@
(setq doc (export_all:open-drawing (strcat tests-out-dir "/" datei))) (setq doc (export_all:open-drawing (strcat tests-out-dir "/" datei)))
;; Datei-/Skriptnamen fuer diesen Durchlauf ueberschreiben, damit ;; csv:run-export (Lisp/export.lsp) haengt den Zeichnungsnamen (DWGNAME
;; jede Quelldatei ihre eigenen CSV-Ergebnisse bekommt (statt der ;; der soeben geoeffneten Datei = basis) automatisch als Praefix vor
;; fixen Standardnamen "export.csv"/"export_sivas.csv"). ;; "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 csv-name (strcat basis "_export.csv"))
(setq sivas-name (strcat basis "_sivas.csv")) (setq sivas-name (strcat basis "_sivas.csv"))
(setq csv-pfad (strcat tests-out-dir "/" csv-name)) (setq csv-pfad (strcat tests-out-dir "/" csv-name))
@@ -186,16 +183,6 @@
(if (findfile csv-pfad) (vl-file-delete csv-pfad)) (if (findfile csv-pfad) (vl-file-delete csv-pfad))
(if (findfile sivas-pfad) (vl-file-delete sivas-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)) (princ (strcat "\n[TEST_EXPORT_ALL] CSV-Export -> " csv-name))
(c:EXPORTCSV) (c:EXPORTCSV)
(setq csv-ok (export_all:wait-for-file csv-pfad 30.0)) (setq csv-ok (export_all:wait-for-file csv-pfad 30.0))
@@ -217,7 +204,6 @@
(vla-close doc :vlax-false) (vla-close doc :vlax-false)
) )
(setq *export-filenames* old-filenames)
(setq *export-all-results* (reverse results-list)) (setq *export-all-results* (reverse results-list))
(princ "\n\n================================================================") (princ "\n\n================================================================")