Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros
This commit is contained in:
@@ -47,16 +47,20 @@
|
||||
(if (null *ein-ks-ein-local*) (setq *ein-ks-ein-local* nil))
|
||||
(if (null *lib-initialized*) (setq *lib-initialized* nil))
|
||||
|
||||
;; Block-Pfad: DXFM_BLOCKS → Heuristik (3D-Bloecke benoetigt)
|
||||
;; DXFM_DIM sicher lesen (type-Guard gegen nicht-String Rueckgabewerte)
|
||||
(setq *gf-dxfm-dim* (getenv "DXFM_DIM"))
|
||||
(if (not (= (type *gf-dxfm-dim*) 'STR)) (setq *gf-dxfm-dim* "3D"))
|
||||
;; Block-Pfad: primaer aus DXFMAKRO + DXFM_DIM, dann *ssg-lisp-pfad*-Heuristik
|
||||
(if (null block-pfad)
|
||||
(setq block-pfad
|
||||
(cond
|
||||
((getenv "DXFM_BLOCKS")
|
||||
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_BLOCKS")) "/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
|
||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||
"/data/ils/" *gf-dxfm-dim* "/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
"/data/ils/3D/"))
|
||||
"/data/ils/" *gf-dxfm-dim* "/"))
|
||||
(t nil)
|
||||
)
|
||||
)
|
||||
@@ -1241,11 +1245,11 @@
|
||||
;; ============================================================
|
||||
;; START
|
||||
;; ============================================================
|
||||
(princ "\n=========================================")
|
||||
(princ "\n>>> GEFAELLESTRECKE v2.0 geladen <<<")
|
||||
(princ "\n>>> Befehl: GEFAELLESTRECKE <<<")
|
||||
(princ "\n>>> Befehl: Gefaellestrecke")
|
||||
(princ "\n Modus 1: Manuelle Eingabe")
|
||||
(princ "\n Modus 2: 3D-Linie")
|
||||
(princ "\n Modus 3: Linienzug mit Gefaellebogen")
|
||||
(if block-pfad (princ (strcat "\n Block-Pfad: " block-pfad)))
|
||||
(princ "\n=========================================")
|
||||
(princ)
|
||||
|
||||
+14
-8
@@ -16,22 +16,25 @@
|
||||
(setq #Eckrad_LetzteNr 0)
|
||||
)
|
||||
|
||||
;; Block-Pfad immer data/ils/2D/ (Kreisel/Eckrad Bloecke nur 2D vorhanden)
|
||||
;; DXFM_DIM sicher lesen (type-Guard gegen nicht-String Rueckgabewerte)
|
||||
(setq *ki-dxfm-dim* (getenv "DXFM_DIM"))
|
||||
(if (not (= (type *ki-dxfm-dim*) 'STR)) (setq *ki-dxfm-dim* "3D"))
|
||||
;; Block-Pfad: primaer aus DXFMAKRO + DXFM_DIM, dann *ssg-lisp-pfad*-Heuristik
|
||||
(setq block-pfad
|
||||
(cond
|
||||
((getenv "DXFM_DATA")
|
||||
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_DATA")) "/ils/2D/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
|
||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||
"/data/ils/" *ki-dxfm-dim* "/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
"/data/ils/2D/"))
|
||||
"/data/ils/" *ki-dxfm-dim* "/"))
|
||||
(t
|
||||
(princ "\n[KreiselInsert] WARNUNG: Block-Pfad nicht ermittelbar!")
|
||||
nil)
|
||||
)
|
||||
)
|
||||
(setq *block-path* block-pfad)
|
||||
(if block-pfad (princ (strcat "\nBlock-Pfad: " block-pfad)))
|
||||
|
||||
;; ssg_core laden falls noch nicht geschehen (Schutz bei direktem Laden ohne ssg-ensure)
|
||||
(if (null (car (atoms-family 1 '("SSG-CFG-OR"))))
|
||||
@@ -1282,6 +1285,9 @@
|
||||
(princ)
|
||||
)
|
||||
|
||||
(princ "\nKreiselInsert.lsp geladen (Version 7.0 - Auto-Nummerierung + Beschriftung + Attribute + Redraw + Eckrad)")
|
||||
(princ "\nBefehle: KreiselInsert, KreiselConnect, KreiselRedraw, KreiselEdit, KreiselQuick, KreiselParams, ILS_Eckrad")
|
||||
(princ "\n>>> KREISELINSERT v7.0 geladen <<<")
|
||||
(princ "\n>>> Befehle: KreiselInsert, KreiselConnect, KreiselRedraw,")
|
||||
(princ "\n KreiselEdit, KreiselQuick, KreiselParams, ILS_Eckrad")
|
||||
(if block-pfad (princ (strcat "\n Block-Pfad: " block-pfad)))
|
||||
(princ "\n=========================================")
|
||||
(princ)
|
||||
|
||||
+17
-17
@@ -11,19 +11,21 @@
|
||||
;; ============================================================
|
||||
;; TEIL 1: ABHAENGIGKEITEN
|
||||
;; ============================================================
|
||||
;; Block-Pfad: 1) DXFM_BLOCKS, 2) aus *ssg-lisp-pfad* ableiten
|
||||
;; DXFM_DIM sicher lesen (type-Guard gegen nicht-String Rueckgabewerte)
|
||||
(setq *vf-dxfm-dim* (getenv "DXFM_DIM"))
|
||||
(if (not (= (type *vf-dxfm-dim*) 'STR)) (setq *vf-dxfm-dim* "3D"))
|
||||
;; Block-Pfad: primaer aus DXFMAKRO + DXFM_DIM, dann *ssg-lisp-pfad*-Heuristik
|
||||
(setq modul-pfad
|
||||
(cond
|
||||
((getenv "DXFM_BLOCKS")
|
||||
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_BLOCKS")) "/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
|
||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||
"/data/ils/" *vf-dxfm-dim* "/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
"/data/ils/"
|
||||
(if (getenv "DXFM_DIM") (getenv "DXFM_DIM") "2D")
|
||||
"/"))
|
||||
"/data/ils/" *vf-dxfm-dim* "/"))
|
||||
(t
|
||||
(princ "\n[vf_core] WARNUNG: DXFM_BLOCKS nicht gesetzt - Block-Pfad unbekannt!")
|
||||
(princ "\n[vf_core] WARNUNG: Block-Pfad nicht ermittelbar!")
|
||||
nil)
|
||||
)
|
||||
)
|
||||
@@ -651,6 +653,7 @@
|
||||
;; Guard: Untermodule nur beim ersten Laden von vf_core.lsp ausfuehren.
|
||||
(if (not *ssg-vf-submodule-loaded*)
|
||||
(progn
|
||||
(princ "\n>>> VARIOFOERDERER v26.0 geladen <<<")
|
||||
;; Lisp-Pfad ermitteln: 1) DXFM_LISP, 2) *ssg-lisp-pfad* (vom MNL gesetzt)
|
||||
(setq *vf-lisp-pfad*
|
||||
(cond
|
||||
@@ -889,16 +892,13 @@
|
||||
(setq *ssg-VarioFoerderer-loaded* t)
|
||||
(setq *ssg-EtageVarioFoerderer-loaded* t)
|
||||
|
||||
(princ "\n=========================================")
|
||||
(princ "\n>>> VF_CORE v26.0 geladen <<<")
|
||||
(princ "\n=========================================")
|
||||
(princ "\nBefehle:")
|
||||
(princ "\n VarioFoerderer - Foerderanlage erstellen (Typ-Auswahl)")
|
||||
(princ "\n FOERDERANLAGE - Alias fuer VarioFoerderer")
|
||||
(princ "\n ETAGEVARIOFOERDERER - Etage-Foerderanlage direkt")
|
||||
(princ "\nRegistrierte Typen:")
|
||||
(princ "\n>>> Befehle: VarioFoerderer, Foerderanlage, EtageVarioFoerderer")
|
||||
(princ "\n Typen:")
|
||||
(setq *vf-typ-idx* 1)
|
||||
(foreach eintr *vf-typ-registry*
|
||||
(princ (strcat "\n " (car eintr) " - " (nth 3 eintr)))
|
||||
(princ (strcat "\n " (itoa *vf-typ-idx*) ". " (car eintr) " - " (nth 3 eintr)))
|
||||
(setq *vf-typ-idx* (1+ *vf-typ-idx*))
|
||||
)
|
||||
(if block-pfad (princ (strcat "\n Block-Pfad: " block-pfad)))
|
||||
(princ "\n=========================================")
|
||||
(princ)
|
||||
|
||||
+2
-2
@@ -25,8 +25,8 @@ set "DXFM_LISP=%DXFMAKRO%\Lisp"
|
||||
set "DXFM_DCL=%DXFMAKRO%\dcl"
|
||||
set "DXFM_RESULTS=%DXFMAKRO%\results"
|
||||
|
||||
REM 2D/3D-Modus: Standard ist 2D
|
||||
set "DXFM_DIM=2D"
|
||||
REM 2D/3D-Modus: Standard ist 3D (alle Module nutzen data\ils\3D\)
|
||||
set "DXFM_DIM=3D"
|
||||
|
||||
set BRICSCAD="C:\Program Files\Bricsys\BricsCAD V25 de_DE\bricscad.exe"
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+29
-22
@@ -1,9 +1,9 @@
|
||||
;; ============================================================
|
||||
;; SSG_LIB.mnl - Automatisch geladen beim MENULOAD von SSG_LIB.mnu
|
||||
;;
|
||||
;; Definiert den Lazy-Loader (ssg-ensure) und laedt die
|
||||
;; Kern-Module (ssg_core, ssg_dbg, ssg_dialog, ssg_layer).
|
||||
;; Feature-Module werden erst bei Menueklick nachgeladen.
|
||||
;; Definiert den Lazy-Loader (ssg-ensure) und laedt alle Module.
|
||||
;; Kern-Module: ssg_core, ssg_dbg, ssg_dialog, ssg_layer, ssg_id
|
||||
;; Feature-Module: KreiselInsert, Gefaellestrecke, VarioFoerderer, ...
|
||||
;; ============================================================
|
||||
|
||||
;; Globale Variable: Pfad zu den LISP-Dateien
|
||||
@@ -22,8 +22,7 @@
|
||||
(progn
|
||||
(setq *ssg-lisp-pfad*
|
||||
(strcat (substr *ssg-mnl-datei* 1 *ssg-menu-pos*) "/Lisp"))
|
||||
(if (findfile (strcat *ssg-lisp-pfad* "/ssg_core.lsp"))
|
||||
(princ (strcat "\n[SSG_LIB] Pfad heuristisch ermittelt: " *ssg-lisp-pfad*))
|
||||
(if (not (findfile (strcat *ssg-lisp-pfad* "/ssg_core.lsp")))
|
||||
(progn
|
||||
(setq *ssg-lisp-pfad* nil)
|
||||
(princ "\n[SSG_LIB] Heuristik fehlgeschlagen: ssg_core.lsp nicht gefunden.")
|
||||
@@ -39,18 +38,14 @@
|
||||
;; ------------------------------------------------------------
|
||||
;; ssg-ensure - Lazy-Loader fuer SSG_LIB Module
|
||||
;;
|
||||
;; Prueft ob ein Modul bereits geladen ist (via *ssg-<modul>-loaded*).
|
||||
;; Wenn nicht, laedt es aus DXFM_LISP.
|
||||
;; Laedt automatisch Kern-Abhaengigkeiten (core, dbg, dialog, layer)
|
||||
;; falls diese noch nicht geladen sind.
|
||||
;; Laedt ein Modul einmalig. Setzt Flag *ssg-<modul>-loaded*.
|
||||
;; Laedt Kern-Abhaengigkeiten (core/dbg/dialog/layer) automatisch.
|
||||
;; ------------------------------------------------------------
|
||||
(defun ssg-ensure (modul / flag-sym datei)
|
||||
;; Flag-Symbol: *ssg-ssg_core-loaded* etc.
|
||||
(defun ssg-ensure (modul / flag-sym)
|
||||
(setq flag-sym (read (strcat "*ssg-" modul "-loaded*")))
|
||||
|
||||
(if (not (eval flag-sym))
|
||||
(progn
|
||||
;; Pfad pruefen
|
||||
;; Pfad nachschlagen falls noch nicht gesetzt
|
||||
(if (null *ssg-lisp-pfad*)
|
||||
(progn
|
||||
(setq *ssg-lisp-pfad* (getenv "DXFM_LISP"))
|
||||
@@ -66,11 +61,13 @@
|
||||
(princ "\n[SSG_LIB] FEHLER: DXFM_LISP nicht gesetzt!")
|
||||
)
|
||||
(progn
|
||||
;; Kern-Module als Abhaengigkeit laden (falls noch nicht geschehen)
|
||||
;; Kern-Module als Abhaengigkeit laden (je nur einmal)
|
||||
;; WICHTIG: auch den modul-spezifischen Flag setzen, sonst Doppelladen
|
||||
(if (not *ssg-core-loaded*)
|
||||
(progn
|
||||
(ssg-ensure-load "ssg_core")
|
||||
(set '*ssg-core-loaded* t)
|
||||
(set '*ssg-ssg_core-loaded* t)
|
||||
(ssg-load-config)
|
||||
)
|
||||
)
|
||||
@@ -78,7 +75,7 @@
|
||||
(progn
|
||||
(ssg-ensure-load "ssg_dbg")
|
||||
(set '*ssg-dbg-loaded* t)
|
||||
;; Debug-Log oeffnen
|
||||
(set '*ssg-ssg_dbg-loaded* t)
|
||||
(if (and (atoms-family 1 '("DBGOPEN")) (getenv "DXFM_LOG"))
|
||||
(dbgopen "debugfile.dbg" "DXFM_LOG")
|
||||
)
|
||||
@@ -88,16 +85,18 @@
|
||||
(progn
|
||||
(ssg-ensure-load "ssg_dialog")
|
||||
(set '*ssg-dialog-loaded* t)
|
||||
(set '*ssg-ssg_dialog-loaded* t)
|
||||
)
|
||||
)
|
||||
(if (not *ssg-layer-loaded*)
|
||||
(progn
|
||||
(ssg-ensure-load "ssg_layer")
|
||||
(set '*ssg-layer-loaded* t)
|
||||
(set '*ssg-ssg_layer-loaded* t)
|
||||
)
|
||||
)
|
||||
|
||||
;; Jetzt das angeforderte Modul laden (falls nicht schon ein Kern-Modul)
|
||||
;; Angefordertes Feature-Modul laden (falls noch nicht via Kern-Flags gesetzt)
|
||||
(if (not (eval flag-sym))
|
||||
(progn
|
||||
(ssg-ensure-load modul)
|
||||
@@ -111,7 +110,7 @@
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; Hilfsfunktion: Datei laden mit Fehlerbehandlung
|
||||
;; Hilfsfunktion: Datei laden mit Fehlerbehandlung (ohne eigene Lademeldung)
|
||||
(defun ssg-ensure-load (modul / datei result)
|
||||
(setq datei (strcat *ssg-lisp-pfad* "/" modul ".lsp"))
|
||||
(if (findfile datei)
|
||||
@@ -120,7 +119,6 @@
|
||||
(if (vl-catch-all-error-p result)
|
||||
(princ (strcat "\n[SSG_LIB] FEHLER beim Laden von " modul ": "
|
||||
(vl-catch-all-error-message result)))
|
||||
(princ (strcat "\n[SSG_LIB] Geladen: " modul ".lsp"))
|
||||
)
|
||||
)
|
||||
(princ (strcat "\n[SSG_LIB] WARNUNG: " datei " nicht gefunden!"))
|
||||
@@ -128,26 +126,35 @@
|
||||
)
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; Beim MNL-Laden: Alle Module laden + Menue einhaengen
|
||||
;; Beim MNL-Laden: Kern-Module + Feature-Module laden
|
||||
;; ------------------------------------------------------------
|
||||
(if *ssg-lisp-pfad*
|
||||
(progn
|
||||
;; Alle Module in der richtigen Reihenfolge laden
|
||||
;; 1) Kern-Module (Core)
|
||||
(ssg-ensure "ssg_core")
|
||||
(ssg-ensure "ssg_dbg")
|
||||
(ssg-ensure "ssg_dialog")
|
||||
(ssg-ensure "ssg_layer")
|
||||
(ssg-ensure "ssg_id")
|
||||
|
||||
;; Allgemein-Zusammenfassung
|
||||
(princ "\n=========================================")
|
||||
(princ "\n[SSG_LIB] Core-Module geladen:")
|
||||
(princ "\n ssg_core, ssg_dbg, ssg_dialog, ssg_layer, ssg_id")
|
||||
(princ (strcat "\n Pfad: " *ssg-lisp-pfad*))
|
||||
(princ "\n=========================================")
|
||||
|
||||
;; 2) Feature-Module in Anzeigereihenfolge
|
||||
(ssg-ensure "KreiselInsert")
|
||||
(ssg-ensure "Gefaellestrecke")
|
||||
(ssg-ensure "VarioFoerderer")
|
||||
(ssg-ensure "EtageVarioFoerderer")
|
||||
(ssg-ensure "Gefaellestrecke")
|
||||
(ssg-ensure "export")
|
||||
(ssg-ensure "external_call")
|
||||
(ssg-ensure "OmniModulInsert")
|
||||
(ssg-ensure "SSG_LIB_Commands")
|
||||
|
||||
;; Pulldown-Menue in die Menueleiste einhaengen
|
||||
;; Menue einhaengen
|
||||
(menucmd "P13=+SSG_LIB.POP1")
|
||||
(setvar "DBLCLKEDIT" 1)
|
||||
(princ "\n[SSG_LIB] Alle Module geladen. Menue aktiv.")
|
||||
|
||||
Reference in New Issue
Block a user