cs-zuordnung-lauf (~230 Zeilen, ~26 Locals) in sieben benannte Routinen zerlegt (cs-sammle-bloecke, cs-scanner-zuordnen, cs-separatoren-zuordnen, cs-korrektur-vermerken, cs-scanner-distanz- melden, cs-anzahl-schreiben, cs-bericht-ausgeben); die Engine ist jetzt ein schlanker Orchestrator. Verhalten unveraendert. Dadurch ist die rein geometrische Zuordnungslogik von den Entity- Zugriffen getrennt und unittest-faehig: neuer Block tu-tests-sepscan mit 30 Tests fuer cs-in-box/cs-bump/cs-carrier-by-id/cs-assign/ cs-nearest-two/cs-resolve-sensor (Carrier-Records als plain Listen, keine Zeichnung noetig). Testarchitektur (Laden) vereinheitlicht: lazy Feature-Module (GeruestInsert, count_sep_scan) werden AUSSCHLIESSLICH in test_unit.scr auf .scr-Top-Level geladen. Grund: in BricsCAD werden per load definierte Funktionen erst nach Rueckkehr zum Top-Level sichtbar - ein load in c:TEST_UNIT oder einem gecatchten Testblock bindet sie im selben Durchlauf nicht. Die Testbloecke laden nichts mehr, sie pruefen nur per atoms-family. Runner gehaertet (tu-run-block faengt harte Fehler je Block ab -> FAIL statt Suite-Abbruch, Report immer da). Nebenbei aufgeraeumt: tote tests.lsp-Referenz in ssg_load.lsp entfernt (Datei laengst geloescht, blockierte headless den kompletten Testlauf). Voller LISP-Unit-Lauf jetzt 226/226 gruen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
2.3 KiB
Common Lisp
47 lines
2.3 KiB
Common Lisp
;; ============================================================
|
|
;; SSG_LOAD.LSP - Laderoutine fuer die SSG-Standardbibliotheken
|
|
;;
|
|
;; Laedt alle SSG-Kernbibliotheken in der richtigen Reihenfolge.
|
|
;; In acad.lsp oder manuell aufrufen:
|
|
;; (load "pfad/ssg_load.lsp")
|
|
;;
|
|
;; Alternativ nur einzelne Bibliotheken laden:
|
|
;; (load "pfad/ssg_core.lsp")
|
|
;; (load "pfad/ssg_layer.lsp")
|
|
;; (load "pfad/ssg_dialog.lsp")
|
|
;; ============================================================
|
|
|
|
(defun ssg-load-libs (/ base-path found)
|
|
;; Pfad ermitteln: 1) DXFM_LISP, 2) findfile, 3) DWGPREFIX
|
|
(setq base-path
|
|
(cond
|
|
((getenv "DXFM_LISP")
|
|
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_LISP")) "/"))
|
|
((setq found (findfile "ssg_core.lsp"))
|
|
(substr found 1 (- (strlen found) (strlen "ssg_core.lsp"))))
|
|
(t (getvar "DWGPREFIX"))
|
|
)
|
|
)
|
|
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
|
|
(ssg-load-config)
|
|
(load (strcat base-path "ssg_lang.lsp") "ssg_lang.lsp nicht gefunden")
|
|
(load (strcat base-path "ssg_dbg.lsp") "ssg_dbg.lsp nicht gefunden")
|
|
(load (strcat base-path "ssg_dialog.lsp") "ssg_dialog.lsp nicht gefunden")
|
|
(load (strcat base-path "ssg_layer.lsp") "ssg_layer.lsp nicht gefunden")
|
|
;; Gemeinsame KS-Extraktion + Einfuegeprimitiven - MUSS vor VarioFoerderer
|
|
;; und Gefaellestrecke geladen werden (beide nutzen sie).
|
|
(load (strcat base-path "ssg_ks_insert.lsp") "ssg_ks_insert.lsp nicht gefunden")
|
|
(load (strcat base-path "KreiselInsert.lsp") "KreiselInsert.lsp nicht gefunden")
|
|
(load (strcat base-path "VarioFoerderer.lsp") "VarioFoerderer.lsp nicht gefunden")
|
|
(load (strcat base-path "Gefaellestrecke.lsp") "Gefaellestrecke.lsp nicht gefunden")
|
|
(load (strcat base-path "export.lsp") "export.lsp nicht gefunden")
|
|
(load (strcat base-path "OmniModulInsert.lsp") "OmniModulInsert.lsp nicht gefunden")
|
|
(load (strcat base-path "Tro_Edit.lsp") "Tro_Edit.lsp nicht gefunden")
|
|
(load (strcat base-path "Connection_Edit.lsp") "Connection_Edit.lsp nicht gefunden")
|
|
(load (strcat base-path "SSG_LIB_Commands.lsp") "SSG_LIB_Commands.lsp nicht gefunden")
|
|
(prompt "\nSSG-Bibliotheken geladen: ssg_core, ssg_lang, ssg_dbg, ssg_dialog, ssg_layer, KreiselInsert, VarioFoerderer, Gefaellestrecke, export, OmniModulInsert, SSG_LIB_Commands")
|
|
(princ)
|
|
)
|
|
|
|
(ssg-load-libs)
|