This commit is contained in:
2026-05-11 15:56:26 +02:00
5 changed files with 69 additions and 45 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+28 -30
View File
@@ -4,27 +4,25 @@
;; ============================================
;; ============================================================
;; TEIL 1: GLOBALE EINSTELLUNGEN (Einfach, aber sicher)
;; TEIL 1: GLOBALE EINSTELLUNGEN
;; ============================================================
(if (getenv "DXFM_BLOCKS")
(setq modul-pfad (strcat (getenv "DXFM_BLOCKS") "/"))
(setq block-pfad (getenv "DXFM_BLOCKS"))
(if (or (null block-pfad) (= block-pfad ""))
(progn
(alert "DXFM_BLOCKS nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
(setq block-pfad "C:/Users/y.wang/Documents/dxfmakros/Blocks/") ;; Fallback oder manuell
(alert (strcat "Umgebungsvariable DXFM_BLOCKS nicht gefunden.\nNutze Standardpfad: " block-pfad))
)
(setq block-pfad (strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" block-pfad)) "/"))
)
;; block-pfad neu setzen
(setq *block-path* (getenv "DXFM_BLOCKS"))
(princ (strcat "\nBlock-Pfad: " *block-path*))
;; Basispunkt: Linker Kreis, linkester Tangentenpunkt (links Mitte)
;; ============================================
(setq *block-path* block-pfad)
(princ (strcat "\n✅ Block-Pfad aktiv: " block-pfad))
;; Standardwerte initialisieren
(setq #Kreisel_Abstand 2300.0)
(setq #Kreisel_Typ "PIN")
(if (null #Kreisel_Abstand) (setq #Kreisel_Abstand 2300.0))
(if (null #Kreisel_Typ) (setq #Kreisel_Typ "PIN"))
@@ -140,43 +138,43 @@
;; Verbindungspunkte pruefen
(cond
;; T_O (Mittelpunkt obere Tangente)
((and (< (abs (- pickX (+ x 400.0 (/ abstand 2.0)))) tolerance)
(< (abs (- pickY (+ y 400.0))) tolerance))
((and (<= (abs (- pickX (+ x 400.0 (/ abstand 2.0)))) tolerance)
(<= (abs (- pickY (+ y 400.0))) tolerance))
(setq type "T_O"))
;; T_U (Mittelpunkt untere Tangente)
((and (< (abs (- pickX (+ x 400.0 (/ abstand 2.0)))) tolerance)
(< (abs (- pickY (- y 400.0))) tolerance))
((and (<= (abs (- pickX (+ x 400.0 (/ abstand 2.0)))) tolerance)
(<= (abs (- pickY (- y 400.0))) tolerance))
(setq type "T_U"))
;; M_O (Linker Kreis, oberer Rand)
((and (< (abs (- pickX (+ x 400.0))) tolerance)
(< (abs (- pickY (+ y 400.0))) tolerance))
((and (<= (abs (- pickX (+ x 400.0))) tolerance)
(<= (abs (- pickY (+ y 400.0))) tolerance))
(setq type "M_O"))
;; M_U (Linker Kreis, unterer Rand)
((and (< (abs (- pickX (+ x 400.0))) tolerance)
(< (abs (- pickY (- y 400.0))) tolerance))
((and (<= (abs (- pickX (+ x 400.0))) tolerance)
(<= (abs (- pickY (- y 400.0))) tolerance))
(setq type "M_U"))
;; M_L (Linker Kreis, linker Rand)
((and (< (abs (- pickX x)) tolerance)
(< (abs (- pickY y)) tolerance))
((and (<= (abs (- pickX x)) tolerance)
(<= (abs (- pickY y)) tolerance))
(setq type "M_L"))
;; S_O (Rechter Kreis, oberer Rand)
((and (< (abs (- pickX (+ x 400.0 abstand))) tolerance)
(< (abs (- pickY (+ y 400.0))) tolerance))
((and (<= (abs (- pickX (+ x 400.0 abstand))) tolerance)
(<= (abs (- pickY (+ y 400.0))) tolerance))
(setq type "S_O"))
;; S_U (Rechter Kreis, unterer Rand)
((and (< (abs (- pickX (+ x 400.0 abstand))) tolerance)
(< (abs (- pickY (- y 400.0))) tolerance))
((and (<= (abs (- pickX (+ x 400.0 abstand))) tolerance)
(<= (abs (- pickY (- y 400.0))) tolerance))
(setq type "S_U"))
;; S_R (Rechter Kreis, rechter Rand)
((and (< (abs (- pickX (+ x 800.0 abstand))) tolerance)
(< (abs (- pickY y)) tolerance))
((and (<= (abs (- pickX (+ x 800.0 abstand))) tolerance)
(<= (abs (- pickY y)) tolerance))
(setq type "S_R"))
(t (setq type "UNKNOWN"))
@@ -322,4 +320,4 @@
(princ "\nKreiselInsert.lsp geladen (Version 4.0 - Smart Connect)!")
(princ "\nBefehle: KreiselInsert, KreiselConnect, KreiselQuick, KreiselParams")
(princ)
(princ)
+39 -13
View File
@@ -7,24 +7,50 @@
(vl-load-com)
;; ============================================================
;; TEIL 1: GLOBALE EINSTELLUNGEN
;; BLOCK PATH INITIALIZATION
;; ============================================================
(if (getenv "DXFM_BLOCKS")
(setq modul-pfad (strcat (getenv "DXFM_BLOCKS") "/"))
(progn
(alert "Umgebungsvariable DXFM_BLOCKS nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
;; ============================================
;; Automatische Umgebungsvariablen Konfiguration
;; ============================================
;; Basis-Pfad (an Ihre Struktur anpassen)
(setq *dxfm-base* "C:\\Users\\y.wang\\Documents\\dxfmakros\\")
;; Funktion zum sicheren Setzen von Umgebungsvariablen
(defun ensure-env-var (varName defaultPath)
(if (null (getenv varName))
(progn
(setenv varName defaultPath)
(princ (strcat "\n✅ " varName " gesetzt: " defaultPath))
)
(princ (strcat "\n📌 " varName " bereits gesetzt: " (getenv varName)))
)
(getenv varName)
)
;; Umgebungsvariablen sicherstellen
(ensure-env-var "DXFM_BLOCKS" (strcat *dxfm-base* "Blocks\\"))
(ensure-env-var "DXFM_DATA" (strcat *dxfm-base* "Data\\"))
;; Block-Pfad initialisieren (für draw-module)
(setq *block-pfad* (getenv "DXFM_BLOCKS"))
;; Koordinaten-Bibliothek initialisieren (mit Fallback)
(setq koordinaten-lib
(if (getenv "DXFM_DATA")
(strcat (getenv "DXFM_DATA") "block_libraries\\ils_vario_koordinaten.dwg")
(strcat *dxfm-base* "Data\\block_libraries\\ils_vario_koordinaten.dwg")
)
)
;; Pfad zur Koordinaten-Bibliothek (neue Bogen-Bloecke mit KS_EIN/KS_AUS)
(if (getenv "DXFM_DATA")
(setq koordinaten-lib (strcat (getenv "DXFM_DATA") "/block_libraries/ils_vario_koordinaten.dwg"))
(progn
(alert "Umgebungsvariable DXFM_DATA nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
)
;; Prüfen ob Koordinaten-Bibliothek existiert
(if (findfile koordinaten-lib)
(princ (strcat "\n✅ Koordinaten-Bibliothek: " koordinaten-lib))
(princ (strcat "\n⚠️ Koordinaten-Bibliothek nicht gefunden: " koordinaten-lib))
)
(princ "\n=== Umgebungsvariablen initialisiert ===\n")
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq modelspace (vla-get-ModelSpace doc))
+2 -2
View File
@@ -15,7 +15,7 @@ Generiert komplette Vario-Foerderanlagen mit Vertikalboegen, Motor-/Spannstation
Unterstuetzte Bogenwinkel: 3, 9, 12, 15, 24, 36, 48 Grad
### ILSModulInsert.lsp - Kreisel Modul-Einfuegesystem (v4.0)
### KreiselInsert.lsp - Kreisel Modul-Einfuegesystem (v4.0)
Zeichnet ILS-Kreiselmodule mit konfigurierbarem Abstand und PIN-Typ.
@@ -31,7 +31,7 @@ dxfmakros/
├── Blocks/ # DWG-Bloecke (Motorstation, Spannstation, Vertikalboegen, etc.)
├── Lisp/ # AutoLISP-Makros
│ ├── VarioFoerderer.lsp
│ └── ILSModulInsert.lsp
│ └── KreiselInsert.lsp
├── bin/ # Hilfs-Skripte
├── result/ # Ergebnisse / DXF-Exporte (nicht im Git)
├── LICENSE