Compare commits
3 Commits
444d643dd3
...
ab7fc92e23
| Author | SHA1 | Date | |
|---|---|---|---|
| ab7fc92e23 | |||
| bde2380490 | |||
| 2767897158 |
@@ -248,6 +248,21 @@ Der Omniflo-CSV-Export (Bogen/Weiche/Gerade, inkl. Merkmale-Aufbau und Sum-Zeile
|
|||||||
seit Entfernung von `c:OMNI_EXPORT` ausschließlich über `c:EXPORTCSV` → `lib/export_csv.py`
|
seit Entfernung von `c:OMNI_EXPORT` ausschließlich über `c:EXPORTCSV` → `lib/export_csv.py`
|
||||||
(`build_bogen_merkmale`, `build_weiche_merkmale`, `build_gerade_merkmale`, `build_omni_sum_merkmale`).
|
(`build_bogen_merkmale`, `build_weiche_merkmale`, `build_gerade_merkmale`, `build_omni_sum_merkmale`).
|
||||||
|
|
||||||
|
**Ausgabeordner:** `c:EXPORTSIVAS`/`c:EXPORTCSV` schreiben immer nach `DXFM_RESULTS`.
|
||||||
|
`TEST_EXPORT_ALL` (siehe `tests/test_export_all.lsp`) leitet waehrend des Testlaufs stattdessen
|
||||||
|
nach `DXFM_TESTOUT` um, über die reine Lisp-Sitzungsvariable `*export-test-override*` (wird von
|
||||||
|
`csv:run-export` zusaetzlich zu `DXFM_RESULTS` abgefragt und danach garantiert wieder auf `nil`
|
||||||
|
zurueckgesetzt, auch bei einem Fehler, ueber `vl-catch-all-apply`).
|
||||||
|
|
||||||
|
**Wichtig:** Der Umweg über `*export-test-override*` ist bewusst gewaehlt und **kein**
|
||||||
|
`(setenv "DXFM_RESULTS" ...)`. In BricsCAD/AutoCAD schreibt `(setenv ...)` nicht nur in den
|
||||||
|
Windows-Prozess, sondern dauerhaft in die Profil-Registry der Anwendung – der Wert überlebt
|
||||||
|
damit jeden Neustart und jedes `setenv.bat`, bis er erneut per `(setenv)` überschrieben wird.
|
||||||
|
Ein einziger `(setenv "DXFM_RESULTS" ...)`-Aufruf (z. B. ein frueherer, unvollstaendiger
|
||||||
|
Testlauf) würde `DXFM_RESULTS` für alle künftigen Sitzungen unwiderruflich auf den Testordner
|
||||||
|
umbiegen. Falls das bereits passiert ist, hilft nur ein manuelles
|
||||||
|
`(setenv "DXFM_RESULTS" "<richtiger Pfad>")` in BricsCAD, um den Profil-Wert zu korrigieren.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### `tests.lsp` – Testbefehle
|
### `tests.lsp` – Testbefehle
|
||||||
|
|||||||
+25
-3
@@ -41,6 +41,14 @@
|
|||||||
;; Beim Laden des Moduls einmalig einlesen (Lazy-Loading via ssg-ensure "export")
|
;; Beim Laden des Moduls einmalig einlesen (Lazy-Loading via ssg-ensure "export")
|
||||||
(export:load-cfg)
|
(export:load-cfg)
|
||||||
|
|
||||||
|
;; --- Test-Override fuer den Ausgabeordner (nur Lisp-Sitzungsspeicher) ---
|
||||||
|
;; Wird ausschliesslich von TEST_EXPORT_ALL (tests/test_export_all.lsp)
|
||||||
|
;; waehrend des Testlaufs auf DXFM_TESTOUT gesetzt und danach garantiert
|
||||||
|
;; wieder auf nil zurueckgesetzt. Bewusst KEIN (setenv "DXFM_RESULTS" ...):
|
||||||
|
;; (setenv ...) schreibt in BricsCAD dauerhaft in die Profil-Registry und
|
||||||
|
;; ueberlebt damit jeden Neustart.
|
||||||
|
(setq *export-test-override* nil)
|
||||||
|
|
||||||
|
|
||||||
;; --- Feste Datei-/Skriptnamen dieses Moduls (keine Config, direkt im Code) ---
|
;; --- Feste Datei-/Skriptnamen dieses Moduls (keine Config, direkt im Code) ---
|
||||||
(setq *export-filenames*
|
(setq *export-filenames*
|
||||||
@@ -196,7 +204,7 @@
|
|||||||
;; py-name = Python-Skript-Name (z.B. "export_csv.py")
|
;; py-name = Python-Skript-Name (z.B. "export_csv.py")
|
||||||
;; csv-name = Ergebnis-CSV-Name (z.B. "export.csv")
|
;; csv-name = Ergebnis-CSV-Name (z.B. "export.csv")
|
||||||
(defun csv:run-export (label py-name csv-name / ss i ename fh out-pfad
|
(defun csv:run-export (label py-name csv-name / ss i ename fh out-pfad
|
||||||
py-skript ergebnis-pfad cmd first-block count)
|
py-skript ergebnis-pfad cmd first-block count out-dir)
|
||||||
;; Vor dem Export: IDs aller Bloecke sicherstellen und Duplikate korrigieren
|
;; Vor dem Export: IDs aller Bloecke sicherstellen und Duplikate korrigieren
|
||||||
(princ (strcat "\n[" label "] Pruefe und vergebe IDs..."))
|
(princ (strcat "\n[" label "] Pruefe und vergebe IDs..."))
|
||||||
(ssg-id-check-all)
|
(ssg-id-check-all)
|
||||||
@@ -215,8 +223,22 @@
|
|||||||
(setq count (sslength ss))
|
(setq count (sslength ss))
|
||||||
(princ (strcat "\n[" label "] " (itoa count) " Bloecke gefunden."))
|
(princ (strcat "\n[" label "] " (itoa count) " Bloecke gefunden."))
|
||||||
|
|
||||||
|
;; Ausgabeordner: DXFM_RESULTS, ausser *export-test-override* ist gesetzt
|
||||||
|
;; (nur waehrend TEST_EXPORT_ALL, siehe tests/test_export_all.lsp).
|
||||||
|
;; WICHTIG: Hier bewusst KEIN (setenv "DXFM_RESULTS" ...) verwenden!
|
||||||
|
;; (setenv ...) schreibt in BricsCAD dauerhaft in die Profil-Registry
|
||||||
|
;; und ueberlebt damit jeden Neustart - ein einziger Testlauf wuerde
|
||||||
|
;; DXFM_RESULTS fuer alle zukuenftigen Sitzungen unwiderruflich auf den
|
||||||
|
;; Testordner umbiegen. *export-test-override* ist eine reine
|
||||||
|
;; Lisp-Variable (nur Prozess-/Sitzungsspeicher) und daher sicher.
|
||||||
|
(setq out-dir (if *export-test-override*
|
||||||
|
*export-test-override*
|
||||||
|
(getenv "DXFM_RESULTS")))
|
||||||
|
(if (not (vl-file-directory-p out-dir)) (vl-mkdir out-dir))
|
||||||
|
(princ (strcat "\n[" label "] Ausgabeordner: " out-dir))
|
||||||
|
|
||||||
;; JSON-Datei zusammenbauen
|
;; JSON-Datei zusammenbauen
|
||||||
(setq out-pfad (strcat (getenv "DXFM_RESULTS") "/"
|
(setq out-pfad (strcat out-dir "/"
|
||||||
(export:filename "raw_json_datei")))
|
(export:filename "raw_json_datei")))
|
||||||
(setq fh (open out-pfad "w"))
|
(setq fh (open out-pfad "w"))
|
||||||
(if (null fh)
|
(if (null fh)
|
||||||
@@ -244,7 +266,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 (getenv "DXFM_RESULTS") "/" csv-name))
|
(setq ergebnis-pfad (strcat out-dir "/" csv-name))
|
||||||
(setq cmd (strcat "python \"" py-skript "\""
|
(setq cmd (strcat "python \"" py-skript "\""
|
||||||
" \"" out-pfad "\""
|
" \"" out-pfad "\""
|
||||||
" \"" (getenv "DXFM_DATA") "\""
|
" \"" (getenv "DXFM_DATA") "\""
|
||||||
|
|||||||
+1
-2
@@ -113,8 +113,7 @@
|
|||||||
[APBW 110 R550/67,5 208x347]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_208
|
[APBW 110 R550/67,5 208x347]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_208
|
||||||
[<-APBW 110 R550/67,5 58x497]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_58
|
[<-APBW 110 R550/67,5 58x497]^C^C(ssg-ensure "OmniModulInsert") OMNI_APBW_R550_675_58
|
||||||
[<-Element bearbeiten]^C^C(ssg-ensure "OmniModulInsert") OMNI_EDIT
|
[<-Element bearbeiten]^C^C(ssg-ensure "OmniModulInsert") OMNI_EDIT
|
||||||
[->External]
|
[->Export]
|
||||||
[Call Python]^C^C(ssg-ensure "export") CALLPYTHON
|
|
||||||
[Export Sivas]^C^C(ssg-ensure "export") EXPORTSIVAS
|
[Export Sivas]^C^C(ssg-ensure "export") EXPORTSIVAS
|
||||||
[<-Export CSV]^C^C(ssg-ensure "export") EXPORTCSV
|
[<-Export CSV]^C^C(ssg-ensure "export") EXPORTCSV
|
||||||
[->Konfiguration]
|
[->Konfiguration]
|
||||||
|
|||||||
@@ -122,11 +122,41 @@
|
|||||||
;; ============================================================
|
;; ============================================================
|
||||||
(defun c:TEST_EXPORT_ALL (/ tests-out-dir dateien datei basis doc
|
(defun c:TEST_EXPORT_ALL (/ tests-out-dir 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 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)
|
||||||
(setenv "DXFM_RESULTS" tests-out-dir)
|
|
||||||
|
;; *export-test-override* (Lisp/export.lsp, csv:run-export) fuer die Dauer
|
||||||
|
;; des Testlaufs setzen, damit c:EXPORTCSV/c:EXPORTSIVAS nach tests/output
|
||||||
|
;; statt in den normalen Ergebnisordner schreiben.
|
||||||
|
;; WICHTIG: Absichtlich KEIN (setenv "DXFM_RESULTS" ...)! In BricsCAD
|
||||||
|
;; schreibt (setenv ...) dauerhaft in die Profil-Registry und ueberlebt
|
||||||
|
;; damit jeden Neustart - ein einziger Testlauf wuerde DXFM_RESULTS fuer
|
||||||
|
;; alle zukuenftigen Sitzungen unwiderruflich auf den Testordner umbiegen.
|
||||||
|
;; *export-test-override* ist eine reine Lisp-Variable (nur Prozess-/
|
||||||
|
;; Sitzungsspeicher) und wird per vl-catch-all-apply garantiert wieder
|
||||||
|
;; auf nil gesetzt, auch bei einem Fehler/Abbruch im Testlauf.
|
||||||
|
(setq *export-test-override* tests-out-dir)
|
||||||
|
|
||||||
|
(setq ablauf-fehler (vl-catch-all-apply 'ssg-test-export-all-ablauf
|
||||||
|
(list tests-out-dir)))
|
||||||
|
|
||||||
|
(setq *export-test-override* nil)
|
||||||
|
|
||||||
|
(if (vl-catch-all-error-p ablauf-fehler)
|
||||||
|
(princ (strcat "\n[TEST_EXPORT_ALL] FEHLER: "
|
||||||
|
(vl-catch-all-error-message ablauf-fehler)))
|
||||||
|
)
|
||||||
|
(princ)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; --- Eigentlicher Ablauf von TEST_EXPORT_ALL, gekapselt fuer vl-catch-all-apply ---
|
||||||
|
(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)
|
||||||
|
|
||||||
(setq dateien (append
|
(setq dateien (append
|
||||||
(vl-directory-files tests-out-dir "*.dxf" 1)
|
(vl-directory-files tests-out-dir "*.dxf" 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user