Die Logik für EtageVariofoerderer also zur Verbindung Zwei Kreisel übereinander wurde gebaut, mit AS- und Einelement 30°

This commit is contained in:
2026-06-18 15:15:36 +02:00
parent 937d7b0e13
commit ee6ec9550f
5 changed files with 1144 additions and 4 deletions
File diff suppressed because it is too large Load Diff
+29 -4
View File
@@ -134,12 +134,19 @@
(defun ensure-block-loaded (blockname / lib-datei block-datei temp-obj)
(if (not (tblsearch "BLOCK" blockname))
(progn
;; Erste fehlender Block: gesamte Bibliothek laden (enthaelt alle 3D-Bloecke)
;; Bibliothek laden (enthaelt alle Bloecke).
;; *library-loaded* immer zuruecksetzen wenn ein Block fehlt:
;; - nach Zeichnungswechsel fehlen alle Bloecke
;; - oder die Bibliothek wurde von einem anderen Befehl geladen
;; aber der angeforderte Block war nicht enthalten
(if *library-loaded*
(setq *library-loaded* nil)
)
(if (not *library-loaded*)
(progn
(setq lib-datei
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_DATA"))
"/block_libraries/ils_library.dwg"))
"/block_libraries/ils_library.dxf"))
(if (findfile lib-datei)
(progn
(princ "\n Lade ils_library.dxf ...")
@@ -413,8 +420,7 @@
)
(progn
(setq *ks-cache* nil)
(princ "\n Lade Blockdefinitionen aus Einzeldateien...")
(princ (strcat "\n Block-Pfad: " block-pfad))
(princ "\n Initialisiere Bibliothek...")
;; === AUS_ELEMENT / EIN_ELEMENT beide Seiten vorladen ===
(ensure-block-loaded "_3D_AS_90_rechts")
@@ -579,6 +585,13 @@
(if (not *lib-initialized*) (init-bibliothek))
(ensure-block-loaded blockname)
(if (not (tblsearch "BLOCK" blockname))
(progn
(princ (strcat "\n FEHLER: Block '" blockname "' nicht in Bibliothek - Einfuegen abgebrochen"))
(exit)
)
)
(princ (strcat "\n Fuege Block '" blockname "' ein..."))
(setq block-obj (vla-InsertBlock modelspace
@@ -625,6 +638,12 @@
)
(progn
(ensure-block-loaded blockname)
(if (not (tblsearch "BLOCK" blockname))
(progn
(princ (strcat "\n FEHLER: Block '" blockname "' nicht in Bibliothek - Einfuegen abgebrochen"))
(exit)
)
)
(princ (strcat "\n Fuege '" blockname "' ein (Laenge=" (rtos laenge 2 2) " mm, Winkel=" (itoa winkel) "°)"))
(setq scale (/ laenge (ssg-cfg-or "vario" "skalierung_basis" 1000.0)))
@@ -671,6 +690,12 @@
)
(progn
(ensure-block-loaded blockname)
(if (not (tblsearch "BLOCK" blockname))
(progn
(princ (strcat "\n FEHLER: Block '" blockname "' nicht in Bibliothek - Einfuegen abgebrochen"))
(exit)
)
)
(princ (strcat "\n Fuege Block '" blockname "' ein (Rotation " (itoa winkel) "°)"))
(setq rad (* winkel (/ pi 180.0)))
Binary file not shown.
+1
View File
@@ -116,6 +116,7 @@
(ssg-ensure "ssg_id")
(ssg-ensure "KreiselInsert")
(ssg-ensure "VarioFoerderer")
(ssg-ensure "EtageVarioFoerderer")
(ssg-ensure "Gefaellestrecke")
(ssg-ensure "export")
(ssg-ensure "tests")
+1
View File
@@ -15,6 +15,7 @@
[ETF Etagenfoerderer]^C^CILS_ETF_Etagenfoerderer
[Durch TEF angetriebene Strecke]^C^CILS_TEF_Strecke
[VarioFoerderer]^C^CVarioFoerderer
[EtageVarioFoerderer]^C^CETAGEVARIOFOERDERER
[--]
[90 Kurve links angetrieben Aussen]^C^CILS_K90LA
[90 Kurve rechts angetrieben Aussen]^C^CILS_K90RA