diff --git a/CLAUDE.md b/CLAUDE.md index f4144f9..546df9e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -135,7 +135,7 @@ Werden via `bin/setenv.bat` gesetzt. Wichtigste: - AutoLISP-Funktionsnamen: `ssg-*` fuer Kernfunktionen, `C:BEFEHLSNAME` fuer User-Commands - Alle Texte in Dateien ohne Umlaute (ae, oe, ue statt ae, oe, ue) -- Bloecke werden als DWG in `data/ils/` abgelegt, Block-Libraries als DXF in `data/block_libraries/` +- Bloecke werden als DWG **flach** in `data/ils/` abgelegt (Block-Libraries als DXF in `data/block_libraries/`). Die Dimension steckt seit dem Flach-Refactor im **Dateinamen bzw. Blocknamen** als Suffix `_2D`/`_3D` (z.B. `AN8_2D.dwg`, `Vario_Bogen_auf_3_TEF_rechts_3D.dwg`), damit 2D- und 3D-Variante gleichzeitig in einer Zeichnung stehen koennen. Zentrale Aufloesung: `ssg-ils-blockname[-dim]` / `ssg-ils-block-datei[-dim]` / `ssg-ils-block-laden[-dim]` in `ssg_core.lsp`. Ausnahmen ohne Suffix: `KS_EIN`/`KS_AUS`/`K1`-`K4` und die Wrapper-Bloecke `VF_*`/`GF_*`/`KREISEL_*`/`ECKRAD_*`. Alle Feature-Module (Kreisel, VarioFoerderer, Gefaellestrecke) folgen der aktuellen Dimension (`ssg-ils-dim-aktuell`: transienter Override `*ssg-ils-dim*` -> `DXFM_DIM`) mit automatischem 3D-Fallback, sodass 2D- und 3D-Aufbau funktionieren. (Die alten Unterordner `data/ils/2D` und `data/ils/3D` bleiben uebergangsweise als Quelle der Batch-/Attribut-Tools bestehen.) - Komponentendaten (Masse, Sivas-IDs) liegen als JSON in `data/json/` - Sprache im Code und Kommentaren: Deutsch diff --git a/Lisp/Gefaellestrecke.lsp b/Lisp/Gefaellestrecke.lsp index 90b2d2d..00cba50 100644 --- a/Lisp/Gefaellestrecke.lsp +++ b/Lisp/Gefaellestrecke.lsp @@ -57,21 +57,21 @@ (if (null *gf-L-ohne-as-es*) (setq *gf-L-ohne-as-es* nil)) (if (null *gf-sum-dz-bogen*) (setq *gf-sum-dz-bogen* 0.0)) -;; DXFM_DIM lesen; 2D wird auf 3D korrigiert (Gefaellestrecke benoetigt Z-Geometrie) -(setq *gf-dxfm-dim* (getenv "DXFM_DIM")) -(if (or (not (= (type *gf-dxfm-dim*) 'STR)) (= *gf-dxfm-dim* "2D")) - (setq *gf-dxfm-dim* "3D")) -;; Block-Pfad: data/ils/3D/ wenn DXFM_DIM nicht gesetzt oder 2D +;; Bloecke liegen seit dem Flach-Refactor direkt unter data/ils/ (die Dimension +;; steckt im Dateinamen bzw. Blocknamen als Suffix _2D/_3D, siehe ssg_core.lsp). +;; Gefaellestrecke folgt der aktuellen Dimension (ssg-ils-dim-aktuell) mit +;; 3D-Fallback; das Laden erfolgt zentral ueber ensure-block-loaded. +;; block-pfad dient nur noch der Info-Ausgabe (Basisverzeichnis). (if (null block-pfad) (setq block-pfad (cond ((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR)) (strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO"))) - "/data/ils/" *gf-dxfm-dim* "/")) + "/data/ils/")) ((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/" *gf-dxfm-dim* "/")) + "/data/ils/")) (t nil) ) ) @@ -116,13 +116,18 @@ ;; --- Block als einzelne DWG-Datei aus block-pfad laden --- (if (null (car (atoms-family 1 '("ENSURE-BLOCK-LOADED")))) (defun ensure-block-loaded (blockname / ) - ;; Zentraler Loader (aktuelle Dimension + 3D-Fallback, Neudefinition bei - ;; Dimensionswechsel). Meldung nur bei Fehlschlag. + ;; Zentraler Loader (flache Ablage). Laedt den Block in der AKTUELLEN Dimension + ;; (ssg-ils-dim-aktuell: *ssg-ils-dim*-Override -> DXFM_DIM) mit automatischem + ;; 3D-Fallback, sodass 2D- und 3D-Aufbau gleichermassen funktionieren. Laedt + ;; den Block unter seinem effektiven, dim-suffigierten Namen und GIBT DIESEN + ;; ZURUECK, damit Aufrufer ihn zum Einfuegen verwenden. Meldung nur bei + ;; Fehlschlag. (if (not (ssg-ils-block-laden blockname)) (progn (princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list blockname))) ) ) + (ssg-ils-blockname blockname) ) ) @@ -239,7 +244,7 @@ block-obj temp-obj ks-data ks-ein ks-aus rad-h chv shv ein-x ein-y ein-z dx-loc dy-loc dz-loc offset ausgang) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "gf-fehler-block-fehlt" (list blockname))) @@ -302,7 +307,7 @@ (if (<= laenge 0.1) (progn (princ (ssg-text "gf-laenge-null-uebersprungen")) startpunkt) (progn - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (setq scale (/ (float laenge) 1000.0)) (setq rad-v (* (float winkel) (/ pi 180.0))) (setq rad-h (* (float hz) (/ pi 180.0))) @@ -343,7 +348,7 @@ ks-ein-raw ks-aus-raw ein-x ein-y ein-z aus-x aus-y aus-z dx dz ins-pt) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (setq rad-v (* (float winkel) (/ pi 180.0))) (setq rad-h (* (float hz) (/ pi 180.0))) (setq chv (cos rad-h) shv (sin rad-h) cvv (cos rad-v) svv (sin rad-v)) @@ -440,18 +445,18 @@ ;; --- Bibliothek initialisieren: AS/ES-Masse aus einzelnen DWG-Dateien extrahieren --- (if (null (car (atoms-family 1 '("GF-INIT-BIBLIOTHEK")))) - (defun gf-init-bibliothek ( / temp-obj ks-data ks-ein ks-aus) + (defun gf-init-bibliothek ( / temp-obj ks-data ks-ein ks-aus as-blk es-blk) (if *lib-initialized* t (progn - ;; AS-Block laden und Masse extrahieren - (ensure-block-loaded "AS_Element_90_links") - (if (tblsearch "BLOCK" "AS_Element_90_links") + ;; AS-Block laden und Masse extrahieren (effektiver, dim-suffigierter Name) + (setq as-blk (ensure-block-loaded "AS_Element_90_links")) + (if (tblsearch "BLOCK" as-blk) (progn (setq temp-obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) - "AS_Element_90_links" 1.0 1.0 1.0 0)) + as-blk 1.0 1.0 1.0 0)) (setq ks-data (extract-ks-from-block temp-obj)) (vla-Delete temp-obj) (setq ks-ein (cadr (assoc "KS_EIN" ks-data))) @@ -465,14 +470,14 @@ ) ) ) - ;; ES-Block laden und Masse extrahieren - (ensure-block-loaded "ES_Element_90_links") - (if (tblsearch "BLOCK" "ES_Element_90_links") + ;; ES-Block laden und Masse extrahieren (effektiver, dim-suffigierter Name) + (setq es-blk (ensure-block-loaded "ES_Element_90_links")) + (if (tblsearch "BLOCK" es-blk) (progn (setq temp-obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) - "ES_Element_90_links" 1.0 1.0 1.0 0)) + es-blk 1.0 1.0 1.0 0)) (setq ks-data (extract-ks-from-block temp-obj)) (vla-Delete temp-obj) (setq ks-ein (cadr (assoc "KS_EIN" ks-data))) @@ -517,7 +522,7 @@ (if (<= laenge 0.1) (progn (princ (ssg-text "gf-laenge-null-uebersprungen")) pt) (progn - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (setq scale (/ (float laenge) 1000.0)) (setq chz (cos (* (float hz-grad) (/ pi 180.0)))) (setq shz (sin (* (float hz-grad) (/ pi 180.0)))) @@ -549,7 +554,7 @@ ;; dz: vertikaler Offset im Block (mm, 0 fuer gerade Bloecke) (defun gf-insert-hz-with-ks (blockname pt hz-grad vert-grad dx dz / chz shz cv sv block-obj endpunkt) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (setq chz (cos (* (float hz-grad) (/ pi 180.0)))) (setq shz (sin (* (float hz-grad) (/ pi 180.0)))) (setq cv (cos (* (float vert-grad) (/ pi 180.0)))) @@ -581,7 +586,7 @@ temp-obj block-obj ks-data ks-ein ks-aus p-ein p-aus p-ein-rot p-aus-rot offset ausgang) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "gf-fehler-block-fehlt-ausruf" (list blockname))) @@ -672,7 +677,7 @@ blockname temp-obj ks-data ks-ein-pos ks-aus-pos dx dz) (setq blockname (gf-bogen-blockname bwinkel bseite)) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "gf-warnung-block-fehlt-nullwerte" (list blockname))) diff --git a/Lisp/KreiselInsert.lsp b/Lisp/KreiselInsert.lsp index f3f0bc9..98011f5 100644 --- a/Lisp/KreiselInsert.lsp +++ b/Lisp/KreiselInsert.lsp @@ -19,17 +19,19 @@ ;; 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")) -;; Modul-eigener Block-Pfad (nicht in globalem block-pfad speichern, -;; da GF/VF stets 3D-Pfad benoetigen, KI aber DXFM_DIM-abhaengig) +;; Modul-eigener Block-Pfad: seit dem Flach-Refactor liegen alle Bloecke direkt +;; unter data/ils/ (die Dimension steckt jetzt im Dateinamen, z.B. AN8_2D.dwg). +;; KI ist DXFM_DIM-abhaengig (*ki-dxfm-dim*); der Dateiname wird an der Einfuege- +;; stelle mit dem Suffix gebildet. (setq *block-path* (cond ((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR)) (strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO"))) - "/data/ils/" *ki-dxfm-dim* "/")) + "/data/ils/")) ((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/" *ki-dxfm-dim* "/")) + "/data/ils/")) (t (princ (ssg-text "kreisel-warn-blockpfad")) nil) @@ -415,11 +417,11 @@ (setq lastEnt nil) ;; Zeichnung ist leer ) - ;; AN8 Kreis (Antriebsstation) bei (radius, 0) - (command "_.INSERT" (strcat *block-path* "AN8.dwg") (list radius 0.0 0.0) 1 1 0) + ;; AN8 Kreis (Antriebsstation) bei (radius, 0) - Dim-Suffix im Dateinamen + (command "_.INSERT" (strcat *block-path* "AN8_" *ki-dxfm-dim* ".dwg") (list radius 0.0 0.0) 1 1 0) - ;; SP8 Kreis (Spannstation) bei (radius+abstand, 0) - (command "_.INSERT" (strcat *block-path* "SP8.dwg") (list (+ radius abstand) 0.0 0.0) 1 1 0) + ;; SP8 Kreis (Spannstation) bei (radius+abstand, 0) - Dim-Suffix im Dateinamen + (command "_.INSERT" (strcat *block-path* "SP8_" *ki-dxfm-dim* ".dwg") (list (+ radius abstand) 0.0 0.0) 1 1 0) ;; Tangenten auf Layer S_LP (ssg-make-layer "S_LP" "7" T) @@ -1217,9 +1219,9 @@ (setq lastEnt nil) ) - ;; AN8 Block einfuegen bei (0,0) - Eckrad ist ein einzelner Kreis - (dbgp (strcat "INSERT Block: " *block-path* "AN8.dwg")) - (command "_.INSERT" (strcat *block-path* "AN8.dwg") (list 0.0 0.0 0.0) 1 1 0) + ;; AN8 Block einfuegen bei (0,0) - Eckrad ist ein einzelner Kreis (Dim-Suffix im Dateinamen) + (dbgp (strcat "INSERT Block: " *block-path* "AN8_" *ki-dxfm-dim* ".dwg")) + (command "_.INSERT" (strcat *block-path* "AN8_" *ki-dxfm-dim* ".dwg") (list 0.0 0.0 0.0) 1 1 0) ;; Unsichtbare Attribut-Definitionen erzeugen (dbgp (strcat "Erzeuge " (itoa (length *eckrad-attrib-defs*)) " Attribut-Definitionen")) diff --git a/Lisp/SSG_LIB_Commands.lsp b/Lisp/SSG_LIB_Commands.lsp index 563b365..5bcce07 100644 --- a/Lisp/SSG_LIB_Commands.lsp +++ b/Lisp/SSG_LIB_Commands.lsp @@ -178,7 +178,9 @@ (setq dim-neu (if (equal (strcase (getenv "DXFM_DIM")) "3D") "2D" "3D")) (setq basis (getenv "DXFMAKRO")) (setenv "DXFM_DIM" dim-neu) - (setenv "DXFM_BLOCKS" (strcat basis "\\data\\ils\\" dim-neu)) + ;; ILS-Bloecke liegen flach unter data\ils (Dimension im Dateinamen) - kein + ;; -Unterordner mehr. Omniflo behaelt die alte Struktur. + (setenv "DXFM_BLOCKS" (strcat basis "\\data\\ils")) (setenv "DXFM_OMNIFLO" (strcat basis "\\data\\omniflo\\" dim-neu)) (princ (ssg-textf "dim-switch-modus" (list dim-neu))) (princ (ssg-textf "dim-switch-blocks" (list (getenv "DXFM_BLOCKS")))) diff --git a/Lisp/ssg_core.lsp b/Lisp/ssg_core.lsp index 8aff964..c2712ed 100644 --- a/Lisp/ssg_core.lsp +++ b/Lisp/ssg_core.lsp @@ -329,71 +329,112 @@ "/data/ils/")) (t nil))) -;; Liefert den vollstaendigen .dwg-Pfad zu einem ILS-Block anhand der -;; aktuellen Dimension (siehe ssg-ils-dim-aktuell). Faellt automatisch auf die -;; 3D-Variante zurueck, wenn der Block in der aktuellen Dimension (noch) nicht +;; Effektiver Blockname zu einem ROH-Namen fuer eine EXPLIZITE Dimension. +;; Seit dem Flach-Refactor tragen Blocknamen das Dimensionssuffix _2D/_3D, damit +;; 2D- und 3D-Variante gleichzeitig in einer Zeichnung existieren koennen +;; (Datei = Blockname + ".dwg", flach unter data/ils/). Ausnahmen ohne Suffix: +;; - Koordinaten-/Subbloecke KS_EIN/KS_AUS/KSYS_*/K1..K4 (exakte Export-Matches), +;; - bereits mit _2D/_3D versehene Namen (kein doppeltes Anhaengen). +(defun ssg-ils-blockname-dim (roh dim / ) + (cond + ((wcmatch (strcase roh) "KS_EIN,KS_AUS,KSYS_EIN,KSYS_AUS,K1,K2,K3,K4") roh) + ((wcmatch (strcase roh) "*_2D,*_3D") roh) + (t (strcat roh "_" dim)))) + +;; Effektiver Blockname fuer die AKTUELLE Dimension (siehe ssg-ils-dim-aktuell). +(defun ssg-ils-blockname (roh / ) + (ssg-ils-blockname-dim roh (ssg-ils-dim-aktuell))) + +;; Liefert den vollstaendigen .dwg-Pfad (flache Ablage data/ils/.dwg) +;; zu einem ROH-Blocknamen fuer eine EXPLIZITE Dimension. Faellt automatisch auf +;; die 3D-Variante zurueck, wenn die Datei der gewuenschten Dimension (noch) nicht ;; existiert - so nutzen z.B. Vario_Motorstation/-Umlenkstation im 2D-Modus ;; vorlaeufig die 3D-Datei. ;; Rueckgabe: Pfad-String oder nil (Block weder in Dim noch in 3D gefunden). -(defun ssg-ils-block-datei (blockname / basis dim datei datei3d) +(defun ssg-ils-block-datei-dim (blockname dim / basis datei datei3d) (setq basis (ssg-ils-basis)) (if (null basis) nil (progn - (setq dim (ssg-ils-dim-aktuell)) - (setq datei (strcat basis dim "/" blockname ".dwg")) - (setq datei3d (strcat basis "3D/" blockname ".dwg")) + (setq datei (strcat basis (ssg-ils-blockname-dim blockname dim) ".dwg")) + (setq datei3d (strcat basis (ssg-ils-blockname-dim blockname "3D") ".dwg")) (cond - ((findfile datei) datei) ; aktuelle Dimension + ((findfile datei) datei) ; gewuenschte Dimension ((findfile datei3d) datei3d) ; Fallback: 3D-Variante (t nil)) ) ) ) -;; Merker: welche Dimension ("2D"/"3D") aktuell je Blockname geladen ist. -;; (blockname . dim). Verhindert unnoetiges Neu-Definieren bei gleicher Dim. -(if (not (boundp '*ssg-ils-dim-geladen*)) (setq *ssg-ils-dim-geladen* '())) +;; Wie ssg-ils-block-datei-dim, aber fuer die AKTUELLE Dimension. +(defun ssg-ils-block-datei (blockname / ) + (ssg-ils-block-datei-dim blockname (ssg-ils-dim-aktuell))) -;; Stellt sicher, dass die Block-DEFINITION 'blockname' in der AKTUELLEN -;; Dimension geladen ist. Weil 2D- und 3D-Datei denselben Blocknamen tragen, -;; muss bei einem Dimensionswechsel aus der Zieldatei NEU definiert werden - -;; sonst bliebe die alte Definition (z.B. 3D) erhalten. -;; Rueckgabe: T (geladen/vorhanden) oder nil (Datei nicht gefunden). -(defun ssg-ils-block-laden (blockname / dim exists datei temp-obj osm areq adia) - (setq dim (ssg-ils-dim-aktuell)) - (setq exists (tblsearch "BLOCK" blockname)) - (cond - ;; Schon in der gewuenschten Dimension geladen -> nichts tun. - ((and exists (equal (cdr (assoc blockname *ssg-ils-dim-geladen*)) dim)) T) - (t - (setq datei (ssg-ils-block-datei blockname)) - (if (null datei) - nil - (progn - (if exists - ;; Existiert (evtl. andere Dimension) -> aus Datei NEU definieren. - ;; "_Y" beantwortet die Redefine-Abfrage; danach wird die eigentliche - ;; Einfuegung abgebrochen (die Neudefinition ist bereits wirksam). - (progn - (setq areq (getvar "ATTREQ") adia (getvar "ATTDIA") osm (getvar "OSMODE")) - (setvar "ATTREQ" 0)(setvar "ATTDIA" 0)(setvar "OSMODE" 0) - (command "_.-INSERT" (strcat blockname "=" datei) "_Y") - ;; laufende Einfuegung abbrechen (Neudefinition ist bereits wirksam) - (if (> (getvar "CMDACTIVE") 0) (command)) - (if (> (getvar "CMDACTIVE") 0) (command)) - (setvar "OSMODE" osm)(setvar "ATTREQ" areq)(setvar "ATTDIA" adia)) - ;; Neu -> bewaehrter COM-Weg (kein Redefine-Prompt). - (progn - (setq temp-obj (vla-InsertBlock modelspace - (vlax-3D-point '(0 0 0)) datei 1.0 1.0 1.0 0)) - (vla-Delete temp-obj))) - ;; Merker aktualisieren (alten Dim-Eintrag dieses Blocks ersetzen). - (setq *ssg-ils-dim-geladen* - (cons (cons blockname dim) - (vl-remove-if (function (lambda (p) (equal (car p) blockname))) - *ssg-ils-dim-geladen*))) - T))))) +;; Stellt sicher, dass die Block-DEFINITION zum ROH-Namen 'blockname' in einer +;; EXPLIZITEN Dimension geladen ist. Blocknamen tragen das Suffix _2D/_3D +;; (siehe ssg-ils-blockname-dim), daher koennen 2D und 3D gleichzeitig existieren. +;; WICHTIG: Ein bereits vorhandener gleichnamiger Block wird IMMER neu aus der +;; Datei definiert (Redefine), damit sein Inhalt zur aktuellen Datei passt. Sonst +;; bliebe eine veraltete Definition (z.B. mit falschem 2D/3D-Inhalt aus einer +;; frueheren Sitzung) bestehen und wuerde wiederverwendet. +;; Rueckgabe: effektiver (suffigierter) Blockname oder nil (Datei nicht gefunden). +(defun ssg-ils-block-laden-dim (blockname dim / eff datei base temp-obj osm areq adia) + (setq eff (ssg-ils-blockname-dim blockname dim)) + (setq datei (ssg-ils-block-datei-dim blockname dim)) + (if (null datei) + nil + (progn + (setq base (vl-filename-base datei)) + ;; --- TEMP-DIAGNOSE (nach Klaerung wieder entfernen) --- + (princ (strcat "\n[SSG-DBG] roh=" blockname " dim=" dim + " eff=" eff + " existiert-vorher=" (if (tblsearch "BLOCK" eff) "JA" "NEIN") + " datei=" datei)) + ;; --- ENDE TEMP-DIAGNOSE --- + ;; Sichtbar machen, wenn die Datei der gewuenschten Dimension fehlt und der + ;; 3D-Fallback greift (dann traegt der Block den gewuenschten Namen, aber + ;; den Inhalt der anderen Dimension = potenziell falsche Referenz). Jeder + ;; aktiv eingefuegte Block sollte in BEIDEN Dimensionen vorliegen. + (if (not (= (strcase base) (strcase eff))) + (princ (strcat "\n[SSG] WARNUNG: Blockdatei '" eff + ".dwg' fehlt - Fallback auf '" base + ".dwg' (Inhalt evtl. andere Dimension)."))) + (if (and (not (tblsearch "BLOCK" eff)) (= (strcase base) (strcase eff))) + ;; Neu UND Dateiname == Blockname -> COM-Weg (kein Prompt). + (progn + (setq temp-obj (vla-InsertBlock modelspace + (vlax-3D-point '(0 0 0)) datei 1.0 1.0 1.0 0)) + (vla-Delete temp-obj)) + ;; Sonst (Block existiert bereits ODER Dateiname != Blockname wg. + ;; 3D-Fallback) -> aus Datei (neu) definieren. "_Y" beantwortet die + ;; Redefine-Abfrage, falls der Block bereits vorhanden ist; danach die + ;; laufende Einfuegung sofort abbrechen (Definition ist bereits wirksam). + (progn + (setq areq (getvar "ATTREQ") adia (getvar "ATTDIA") osm (getvar "OSMODE")) + (setvar "ATTREQ" 0)(setvar "ATTDIA" 0)(setvar "OSMODE" 0) + (if (tblsearch "BLOCK" eff) + (command "_.-INSERT" (strcat eff "=" datei) "_Y") ; Redefine bestehender Block + (command "_.-INSERT" (strcat eff "=" datei))) ; neu (kein Redefine-Prompt) + (if (> (getvar "CMDACTIVE") 0) (command)) + (if (> (getvar "CMDACTIVE") 0) (command)) + (setvar "OSMODE" osm)(setvar "ATTREQ" areq)(setvar "ATTDIA" adia))) + ;; --- TEMP-DIAGNOSE: verschachtelte Blocknamen in eff auflisten --- + (if (tblsearch "BLOCK" eff) + (progn + (princ (strcat "\n[SSG-DBG] nested in " eff ":")) + (vl-catch-all-apply + (function (lambda () + (vlax-for e (vla-Item + (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object))) + eff) + (if (= (vla-get-ObjectName e) "AcDbBlockReference") + (princ (strcat " [" (vla-get-Name e) "]"))))))))) + ;; --- ENDE TEMP-DIAGNOSE --- + eff))) + +;; Wie ssg-ils-block-laden-dim, aber fuer die AKTUELLE Dimension. +(defun ssg-ils-block-laden (blockname / ) + (ssg-ils-block-laden-dim blockname (ssg-ils-dim-aktuell))) ;; ------------------------------------------------------------ ;; DIMENSIONS-XDATA (2D/3D) je Block - App "SSG_DIM" diff --git a/Lisp/vf_core.lsp b/Lisp/vf_core.lsp index 812acad..9a94ea8 100644 --- a/Lisp/vf_core.lsp +++ b/Lisp/vf_core.lsp @@ -11,20 +11,20 @@ ;; ============================================================ ;; TEIL 1: ABHAENGIGKEITEN ;; ============================================================ -;; DXFM_DIM lesen; 2D wird auf 3D korrigiert (VF/GF benoetigen Z-Geometrie) -(setq *vf-dxfm-dim* (getenv "DXFM_DIM")) -(if (or (not (= (type *vf-dxfm-dim*) 'STR)) (= *vf-dxfm-dim* "2D")) - (setq *vf-dxfm-dim* "3D")) -;; Block-Pfad: data/ils/3D/ wenn DXFM_DIM nicht gesetzt oder 2D +;; Bloecke liegen seit dem Flach-Refactor direkt unter data/ils/ (die Dimension +;; steckt im Dateinamen bzw. Blocknamen als Suffix _2D/_3D, siehe ssg_core.lsp). +;; VF folgt der aktuellen Dimension (ssg-ils-dim-aktuell) mit 3D-Fallback; das +;; Laden erfolgt zentral ueber ensure-block-loaded/ssg-ils-block-laden. +;; modul-pfad/block-pfad dienen nur noch der Info-Ausgabe (Basisverzeichnis). (setq modul-pfad (cond ((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR)) (strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO"))) - "/data/ils/" *vf-dxfm-dim* "/")) + "/data/ils/")) ((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/" *vf-dxfm-dim* "/")) + "/data/ils/")) (t (princ "\n[vf_core] WARNUNG: Block-Pfad nicht ermittelbar!") nil) @@ -259,11 +259,16 @@ ;; TEIL 5: KS_EIN/KS_AUS EXTRAKTION ;; ============================================================ (defun ensure-block-loaded (blockname / ) - ;; Zentraler Loader (aktuelle Dimension + 3D-Fallback, Neudefinition bei - ;; Dimensionswechsel). Meldung nur bei Fehlschlag. + ;; Zentraler Loader (flache Ablage). Laedt den Block in der AKTUELLEN Dimension + ;; (ssg-ils-dim-aktuell: *ssg-ils-dim*-Override -> DXFM_DIM) mit automatischem + ;; 3D-Fallback, sodass 2D- und 3D-Aufbau gleichermassen funktionieren. Laedt den + ;; Block unter seinem effektiven, dim-suffigierten Namen und GIBT DIESEN ZURUECK, + ;; damit Aufrufer ihn zum Einfuegen (vla-InsertBlock/tblsearch) verwenden. + ;; Meldung nur bei Fehlschlag. (if (not (ssg-ils-block-laden blockname)) (princ (ssg-textf "vfc-fehler-block-datei-fehlt" (list blockname))) ) + (ssg-ils-blockname blockname) ) (defun extract-ks-from-block-raw (block-obj / sub-entities sub-obj ks-results @@ -450,7 +455,7 @@ (exit) ) ) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname))) @@ -522,7 +527,7 @@ P-ein xe ye ze P-aus xu-aus yu-aus zu-aus R R-Pein R-Paus tx ty tz T4 P-out xu-out yu-out zu-out) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek" (list blockname))) @@ -610,7 +615,7 @@ xe ye ze P-ein P-aus xu-aus yu-aus zu-aus R P-xyref P-zref R-xyref R-zref tx ty tz T4 R-Paus P-out xu-out yu-out zu-out) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek" (list blockname))) @@ -693,7 +698,7 @@ ;; ============================================================ ;; Masse (KS_EIN->KS_AUS als (dx dy dz)) eines Elements aus dem Block ziehen. (defun vf-element-masse (blockname / temp-obj ks-data ke ka) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) nil (progn @@ -713,7 +718,7 @@ ;; oder gerade). Wird genutzt, um KS_EIN so zu drehen, dass KS_AUS entlang hz ;; zeigt: ein-hz = hz - plan-turn. Fallback 90 (Vorgabe fuer 90-Grad-Element). (defun vf-element-plan-turn (blockname / temp-obj ks-data fe fa) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) 90.0 (progn @@ -734,7 +739,7 @@ ;; vx / vy : KS_AUS.origin - KS_EIN.origin (Block-XY) ;; Damit laesst sich die KS_AUS-Lage + Achsrichtung analytisch vorausberechnen. (defun vf-element-ks-info (blockname / temp-obj ks-data fe fa) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) nil (progn @@ -780,7 +785,7 @@ startpunkt ) (progn - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname))) @@ -843,7 +848,7 @@ startpunkt ) (progn - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfc-fehler-block-nicht-in-bibliothek-abgebrochen" (list blockname))) diff --git a/Lisp/vf_etage.lsp b/Lisp/vf_etage.lsp index 6d5301f..bd647e1 100644 --- a/Lisp/vf_etage.lsp +++ b/Lisp/vf_etage.lsp @@ -50,8 +50,8 @@ ;; TEIL 2: BIBLIOTHEK INITIALISIEREN (ETAGE-SPEZIFISCH) ;; ============================================================ (defun init-bibliothek-etage ( / temp-obj ks-data ks-ein-pos ks-aus-pos - gefaelle-blockname) - (if (and *etage-lib-initialized* (not (tblsearch "BLOCK" "AS_Element_30_rechts"))) + gefaelle-blockname as30-blk es30-blk) + (if (and *etage-lib-initialized* (not (tblsearch "BLOCK" (ssg-ils-blockname "AS_Element_30_rechts")))) (setq *etage-lib-initialized* nil)) (if *etage-lib-initialized* (progn (princ (ssg-text "vfe-bib-bereits-init")) t) @@ -65,13 +65,13 @@ ;; AS_30_rechts Masse extrahieren (princ (ssg-text "vfe-extrahiere-as30")) - (ensure-block-loaded "AS_Element_30_rechts") + (setq as30-blk (ensure-block-loaded "AS_Element_30_rechts")) (ensure-block-loaded "AS_Element_30_links") - (if (tblsearch "BLOCK" "AS_Element_30_rechts") + (if (tblsearch "BLOCK" as30-blk) (progn (setq temp-obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) - "AS_Element_30_rechts" 1.0 1.0 1.0 0)) + as30-blk 1.0 1.0 1.0 0)) (setq ks-data (extract-ks-from-block temp-obj)) (vla-Delete temp-obj) (setq ks-ein-pos nil ks-aus-pos nil) @@ -99,13 +99,13 @@ ;; ES_30_rechts Masse extrahieren (princ (ssg-text "vfe-extrahiere-es30")) - (ensure-block-loaded "ES_Element_30_rechts") + (setq es30-blk (ensure-block-loaded "ES_Element_30_rechts")) (ensure-block-loaded "ES_Element_30_links") - (if (tblsearch "BLOCK" "ES_Element_30_rechts") + (if (tblsearch "BLOCK" es30-blk) (progn (setq temp-obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) - "ES_Element_30_rechts" 1.0 1.0 1.0 0)) + es30-blk 1.0 1.0 1.0 0)) (setq ks-data (extract-ks-from-block temp-obj)) (vla-Delete temp-obj) (setq ks-ein-pos nil ks-aus-pos nil) @@ -134,7 +134,7 @@ ;; Gefaellebogen_links_30 Masse extrahieren (setq gefaelle-blockname "Gefaellebogen_links_30_R500") (princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname))) - (ensure-block-loaded gefaelle-blockname) + (setq gefaelle-blockname (ensure-block-loaded gefaelle-blockname)) (if (tblsearch "BLOCK" gefaelle-blockname) (progn (setq temp-obj (vla-InsertBlock modelspace @@ -167,7 +167,7 @@ ;; Gefaellebogen_rechts_30 Masse extrahieren (setq gefaelle-blockname "Gefaellebogen_rechts_30_R500") (princ (ssg-textf "vfe-extrahiere-block-mass" (list gefaelle-blockname))) - (ensure-block-loaded gefaelle-blockname) + (setq gefaelle-blockname (ensure-block-loaded gefaelle-blockname)) (if (tblsearch "BLOCK" gefaelle-blockname) (progn (setq temp-obj (vla-InsertBlock modelspace @@ -220,7 +220,7 @@ (setq rad-vert (* (float vert-winkel) (/ pi 180.0))) (setq chz (cos rad-hz) shz (sin rad-hz)) (setq cv (cos rad-vert) sv (sin rad-vert)) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname))) @@ -256,7 +256,7 @@ (setq rad-vert (* (float vert-winkel) (/ pi 180.0))) (setq chz (cos rad-hz) shz (sin rad-hz)) (setq cv (cos rad-vert) sv (sin rad-vert)) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname))) @@ -290,7 +290,7 @@ temp-obj block-obj ks-data ks-ein ks-aus p-ein p-aus p-ein-rot p-aus-rot offset ausgang) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname))) @@ -355,7 +355,7 @@ temp-obj block-obj ks-data ks-ein ks-aus p-ein p-aus p-ein-s p-aus-s p-ein-rot p-aus-rot offset ausgang) - (ensure-block-loaded blockname) + (setq blockname (ensure-block-loaded blockname)) (if (not (tblsearch "BLOCK" blockname)) (progn (princ (ssg-textf "vfe-block-fehlt-abbruch" (list blockname))) @@ -630,7 +630,7 @@ "Gefaellebogen_rechts_30_R500" )) ;; Sentinel: Bibliothek neu initialisieren wenn Bloecke fehlen - (if (and *etage-lib-initialized* (not (tblsearch "BLOCK" "AS_Element_30_rechts"))) + (if (and *etage-lib-initialized* (not (tblsearch "BLOCK" (ssg-ils-blockname "AS_Element_30_rechts")))) (setq *etage-lib-initialized* nil)) (if (not *etage-lib-initialized*) (init-bibliothek-etage)) @@ -690,11 +690,11 @@ ;; 7. 1. Vertikalbogen (3 Grad geneigt) (if (= richtung "Auf") (progn - (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-auf best-winkel)) ) (progn - (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-ab best-winkel)) ) ) @@ -727,11 +727,11 @@ ;; 9. 2. Vertikalbogen (if (= richtung "Auf") (progn - (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-ab best-winkel)) ) (progn - (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-auf best-winkel)) ) ) diff --git a/Lisp/vf_linienzug.lsp b/Lisp/vf_linienzug.lsp index 72da806..d1f7633 100644 --- a/Lisp/vf_linienzug.lsp +++ b/Lisp/vf_linienzug.lsp @@ -319,7 +319,7 @@ (setq hz (car (frame->hz-winkel frame))) (setq m (get-bogen-mass bogen-ab 3)) (princ (ssg-text "vfl-bogen-ab3-uebergang")) - (setq pt (insert-rotated-block-with-ks "Vario_Bogen_ab_3" (car frame) + (setq pt (insert-rotated-block-with-ks "Vario_Bogen_ab_3_TEF_rechts" (car frame) 0 (car m) (caddr m) hz)) (vfl-frame-3grad pt hz)) frame)) @@ -341,7 +341,7 @@ (progn (setq m1 (get-bogen-mass bogen-auf 3)) (princ (ssg-text "vfl-bogen-auf3-uebergang")) - (setq pt (insert-rotated-block-with-ks "Vario_Bogen_auf_3" pt + (setq pt (insert-rotated-block-with-ks "Vario_Bogen_auf_3_TEF_rechts" pt (ssg-cfg-or "vario" "gefaelle_winkel" 3) (car m1) (caddr m1) hz)))) ;; optionaler Separator VOR - in der horizontalen Ebene (0 Grad) (if sep-vor (setq pt (vfl-sep-hz pt hz))) @@ -1204,7 +1204,7 @@ ;; Aufruf in BricsCAD: VFL_KS_DIAG -> Blockname eingeben. (defun c:VFL_KS_DIAG ( / bname obj subs s nm inner il ilnm ps pe len) (setq bname (getstring "\nBlockname fuer KS-Diagnose: ")) - (ensure-block-loaded bname) + (setq bname (ensure-block-loaded bname)) (if (not (tblsearch "BLOCK" bname)) (progn (princ (strcat "\nBlock '" bname "' nicht gefunden.")) (exit))) (setq obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) bname 1.0 1.0 1.0 0)) @@ -1712,13 +1712,13 @@ ;; (Rotation 3 Grad). Rueckgabe: neuer Punkt. (defun vfl3-flach-ein (pt hz / m) (setq m (get-bogen-mass bogen-auf 3)) - (insert-rotated-block-with-ks "Vario_Bogen_auf_3" pt 3 (car m) (caddr m) hz)) + (insert-rotated-block-with-ks "Vario_Bogen_auf_3_TEF_rechts" pt 3 (car m) (caddr m) hz)) ;; Uebergang aus der flachen Zone (0 Grad) zurueck auf 3-Grad-Basis: EIN ab_3-Bogen ;; (Rotation 0 Grad). Rueckgabe: neuer Punkt. (defun vfl3-flach-aus (pt hz / m) (setq m (get-bogen-mass bogen-ab 3)) - (insert-rotated-block-with-ks "Vario_Bogen_ab_3" pt 0 (car m) (caddr m) hz)) + (insert-rotated-block-with-ks "Vario_Bogen_ab_3_TEF_rechts" pt 0 (car m) (caddr m) hz)) ;; Kletter-Segment loesen und Winkel WAEHLEN LASSEN (Modus-1-Solver + vfl-waehle-winkel). ;; Mittige Bruecke -> KEIN terminales AS/ES (Masse auf 0, Save/Restore). feste = fester diff --git a/Lisp/vf_standard.lsp b/Lisp/vf_standard.lsp index dae178e..78948b4 100644 --- a/Lisp/vf_standard.lsp +++ b/Lisp/vf_standard.lsp @@ -65,15 +65,16 @@ "Staustrecke_SP_1000_mm" "Staustrecke_Separator_SP_300_mm" "Vario_Umlenkstation_500mm_links" "Vario_Umlenkstation_500mm_rechts" "Vario_Motorstation_500mm_links" "Vario_Motorstation_500mm_rechts") - (mapcar (function (lambda (w) (strcat "Vario_Bogen_auf_" (itoa w)))) bogen-winkel) - (mapcar (function (lambda (w) (strcat "Vario_Bogen_ab_" (itoa w)))) bogen-winkel) + (mapcar (function (lambda (w) (strcat "Vario_Bogen_auf_" (itoa w) "_TEF_rechts"))) bogen-winkel) + (mapcar (function (lambda (w) (strcat "Vario_Bogen_ab_" (itoa w) "_TEF_rechts"))) bogen-winkel) ) ) (setq missing '()) (foreach bname required-blocks - (setq datei (strcat block-pfad bname ".dwg")) - (if (not (findfile datei)) - (setq missing (cons datei missing)) + ;; Existenz ueber den zentralen Resolver (flache Ablage + Dim-Suffix der + ;; aktuellen Dimension + 3D-Fallback). + (if (not (ssg-ils-block-datei bname)) + (setq missing (cons (ssg-ils-blockname bname) missing)) ) ) (if missing @@ -95,12 +96,12 @@ ;; TEIL 3: BIBLIOTHEK INITIALISIEREN ;; ============================================================ (defun init-bibliothek ( / temp-obj bogen-winkel ks-data ks-ein-pos ks-aus-pos - dx dy dz bogen-name) + dx dy dz bogen-name as-blk es-blk) ;; "bereits initialisiert" nur, wenn das Flag gesetzt UND die Bogen-Tabelle ;; tatsaechlich befuellt ist. Sonst (Stuck-State: Flag gesetzt, aber bogen-auf ;; leer - z.B. nach einer fehlgeschlagenen Extraktion) neu initialisieren. (if (and *lib-initialized* bogen-auf bogen-ab - (tblsearch "BLOCK" "AS_Element_90_links")) + (tblsearch "BLOCK" (ssg-ils-blockname "AS_Element_90_links"))) (progn (princ (ssg-text "vfs-lib-bereits-init")) t @@ -114,13 +115,13 @@ ;; AS_90 Masse extrahieren (princ (ssg-text "vfs-extrahiere-aus")) - (ensure-block-loaded "AS_Element_90_links") + (setq as-blk (ensure-block-loaded "AS_Element_90_links")) (ensure-block-loaded "AS_Element_90_rechts") - (if (tblsearch "BLOCK" "AS_Element_90_links") + (if (tblsearch "BLOCK" as-blk) (progn (setq temp-obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) - "AS_Element_90_links" 1.0 1.0 1.0 0)) + as-blk 1.0 1.0 1.0 0)) (setq ks-data (extract-ks-from-block temp-obj)) (vla-Delete temp-obj) (setq ks-ein-pos nil ks-aus-pos nil) @@ -143,13 +144,13 @@ ;; ES_90 Masse extrahieren (princ (ssg-text "vfs-extrahiere-ein")) - (ensure-block-loaded "ES_Element_90_links") + (setq es-blk (ensure-block-loaded "ES_Element_90_links")) (ensure-block-loaded "ES_Element_90_rechts") - (if (tblsearch "BLOCK" "ES_Element_90_links") + (if (tblsearch "BLOCK" es-blk) (progn (setq temp-obj (vla-InsertBlock modelspace (vlax-3D-point '(0 0 0)) - "ES_Element_90_links" 1.0 1.0 1.0 0)) + es-blk 1.0 1.0 1.0 0)) (setq ks-data (extract-ks-from-block temp-obj)) (vla-Delete temp-obj) (setq ks-ein-pos nil ks-aus-pos nil) @@ -178,8 +179,8 @@ '(3 6 9 12 15 18 21 27 33 39 45 51))) (foreach w bogen-winkel ;; Aufwaertsbogen - (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa w))) - (ensure-block-loaded bogen-name) + (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa w) "_TEF_rechts")) + (setq bogen-name (ensure-block-loaded bogen-name)) (if (tblsearch "BLOCK" bogen-name) (progn (setq temp-obj (vla-InsertBlock modelspace @@ -205,8 +206,8 @@ (princ (ssg-textf "vfs-bogen-auf-block-fehlt" (list (itoa w)))) ) ;; Abwaertsbogen - (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa w))) - (ensure-block-loaded bogen-name) + (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa w) "_TEF_rechts")) + (setq bogen-name (ensure-block-loaded bogen-name)) (if (tblsearch "BLOCK" bogen-name) (progn (setq temp-obj (vla-InsertBlock modelspace @@ -521,16 +522,16 @@ ;; horizontalen Mitte vermitteln muessen. (if (= best-winkel 0) (progn - (setq bogen-name "Vario_Bogen_auf_3") + (setq bogen-name "Vario_Bogen_auf_3_TEF_rechts") (setq bogen-mass (get-bogen-mass bogen-auf 3)) ) (if (= richtung "Auf") (progn - (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-auf best-winkel)) ) (progn - (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-ab best-winkel)) ) ) @@ -576,16 +577,16 @@ ;; 7. 2. Vertikalbogen (if (= best-winkel 0) (progn - (setq bogen-name "Vario_Bogen_ab_3") + (setq bogen-name "Vario_Bogen_ab_3_TEF_rechts") (setq bogen-mass (get-bogen-mass bogen-ab 3)) ) (if (= richtung "Auf") (progn - (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_ab_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-ab best-winkel)) ) (progn - (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel))) + (setq bogen-name (strcat "Vario_Bogen_auf_" (itoa best-winkel) "_TEF_rechts")) (setq bogen-mass (get-bogen-mass bogen-auf best-winkel)) ) ) diff --git a/bin/setenv.bat b/bin/setenv.bat index 6551c91..15405f0 100644 --- a/bin/setenv.bat +++ b/bin/setenv.bat @@ -64,7 +64,9 @@ if /i "%1"=="3D" set "DXFM_DIM=3D" if /i "%1"=="2D" set "DXFM_DIM=2D" REM Abhaengige Pfade nach Override berechnen -set "DXFM_BLOCKS=%DXFMAKRO%\data\ils\%DXFM_DIM%" +REM ILS-Bloecke liegen seit dem Flach-Refactor direkt unter data\ils +REM (Dimension steckt im Dateinamen, z.B. AN8_2D.dwg) - kein -Unterordner mehr. +set "DXFM_BLOCKS=%DXFMAKRO%\data\ils" set "DXFM_OMNIFLO=%DXFMAKRO%\data\omniflo\%DXFM_DIM%" diff --git a/data/ils/AN8_2D.dwg b/data/ils/AN8_2D.dwg new file mode 100644 index 0000000..6754a0b Binary files /dev/null and b/data/ils/AN8_2D.dwg differ diff --git a/data/ils/AN8_3D.dwg b/data/ils/AN8_3D.dwg new file mode 100644 index 0000000..7eb3b3a Binary files /dev/null and b/data/ils/AN8_3D.dwg differ diff --git a/data/ils/AS_Element_30_links_2D.dwg b/data/ils/AS_Element_30_links_2D.dwg new file mode 100644 index 0000000..6a2fd7e Binary files /dev/null and b/data/ils/AS_Element_30_links_2D.dwg differ diff --git a/data/ils/AS_Element_30_links_3D.dwg b/data/ils/AS_Element_30_links_3D.dwg new file mode 100644 index 0000000..72dfcff Binary files /dev/null and b/data/ils/AS_Element_30_links_3D.dwg differ diff --git a/data/ils/AS_Element_30_rechts_2D.dwg b/data/ils/AS_Element_30_rechts_2D.dwg new file mode 100644 index 0000000..2bf79ff Binary files /dev/null and b/data/ils/AS_Element_30_rechts_2D.dwg differ diff --git a/data/ils/AS_Element_30_rechts_3D.dwg b/data/ils/AS_Element_30_rechts_3D.dwg new file mode 100644 index 0000000..63a63e8 Binary files /dev/null and b/data/ils/AS_Element_30_rechts_3D.dwg differ diff --git a/data/ils/AS_Element_90_links_2D.dwg b/data/ils/AS_Element_90_links_2D.dwg new file mode 100644 index 0000000..ad5c21a Binary files /dev/null and b/data/ils/AS_Element_90_links_2D.dwg differ diff --git a/data/ils/AS_Element_90_links_3D.dwg b/data/ils/AS_Element_90_links_3D.dwg new file mode 100644 index 0000000..36d1db6 Binary files /dev/null and b/data/ils/AS_Element_90_links_3D.dwg differ diff --git a/data/ils/AS_Element_90_rechts_2D.dwg b/data/ils/AS_Element_90_rechts_2D.dwg new file mode 100644 index 0000000..5bf44c4 Binary files /dev/null and b/data/ils/AS_Element_90_rechts_2D.dwg differ diff --git a/data/ils/AS_Element_90_rechts_3D.dwg b/data/ils/AS_Element_90_rechts_3D.dwg new file mode 100644 index 0000000..f4c8256 Binary files /dev/null and b/data/ils/AS_Element_90_rechts_3D.dwg differ diff --git a/data/ils/BTMT-Beladung_3D.dwg b/data/ils/BTMT-Beladung_3D.dwg new file mode 100644 index 0000000..6b4c8a0 Binary files /dev/null and b/data/ils/BTMT-Beladung_3D.dwg differ diff --git a/data/ils/ES_Element_30_links_2D.dwg b/data/ils/ES_Element_30_links_2D.dwg new file mode 100644 index 0000000..c131e29 Binary files /dev/null and b/data/ils/ES_Element_30_links_2D.dwg differ diff --git a/data/ils/ES_Element_30_links_3D.dwg b/data/ils/ES_Element_30_links_3D.dwg new file mode 100644 index 0000000..7ff7d0a Binary files /dev/null and b/data/ils/ES_Element_30_links_3D.dwg differ diff --git a/data/ils/ES_Element_30_rechts_2D.dwg b/data/ils/ES_Element_30_rechts_2D.dwg new file mode 100644 index 0000000..9f69d5e Binary files /dev/null and b/data/ils/ES_Element_30_rechts_2D.dwg differ diff --git a/data/ils/ES_Element_30_rechts_3D.dwg b/data/ils/ES_Element_30_rechts_3D.dwg new file mode 100644 index 0000000..1af7043 Binary files /dev/null and b/data/ils/ES_Element_30_rechts_3D.dwg differ diff --git a/data/ils/ES_Element_90_links_2D.dwg b/data/ils/ES_Element_90_links_2D.dwg new file mode 100644 index 0000000..9db90ff Binary files /dev/null and b/data/ils/ES_Element_90_links_2D.dwg differ diff --git a/data/ils/ES_Element_90_links_3D.dwg b/data/ils/ES_Element_90_links_3D.dwg new file mode 100644 index 0000000..219b57f Binary files /dev/null and b/data/ils/ES_Element_90_links_3D.dwg differ diff --git a/data/ils/ES_Element_90_rechts_2D.dwg b/data/ils/ES_Element_90_rechts_2D.dwg new file mode 100644 index 0000000..2ad6b93 Binary files /dev/null and b/data/ils/ES_Element_90_rechts_2D.dwg differ diff --git a/data/ils/ES_Element_90_rechts_3D.dwg b/data/ils/ES_Element_90_rechts_3D.dwg new file mode 100644 index 0000000..c72934a Binary files /dev/null and b/data/ils/ES_Element_90_rechts_3D.dwg differ diff --git a/data/ils/Gefaellebogen_links_30_R500_2D.dwg b/data/ils/Gefaellebogen_links_30_R500_2D.dwg new file mode 100644 index 0000000..86aa919 Binary files /dev/null and b/data/ils/Gefaellebogen_links_30_R500_2D.dwg differ diff --git a/data/ils/Gefaellebogen_links_30_R500_3D.dwg b/data/ils/Gefaellebogen_links_30_R500_3D.dwg new file mode 100644 index 0000000..6a90326 Binary files /dev/null and b/data/ils/Gefaellebogen_links_30_R500_3D.dwg differ diff --git a/data/ils/Gefaellebogen_links_60_R500_2D.dwg b/data/ils/Gefaellebogen_links_60_R500_2D.dwg new file mode 100644 index 0000000..750fc4f Binary files /dev/null and b/data/ils/Gefaellebogen_links_60_R500_2D.dwg differ diff --git a/data/ils/Gefaellebogen_links_60_R500_3D.dwg b/data/ils/Gefaellebogen_links_60_R500_3D.dwg new file mode 100644 index 0000000..1747088 Binary files /dev/null and b/data/ils/Gefaellebogen_links_60_R500_3D.dwg differ diff --git a/data/ils/Gefaellebogen_links_90_R500_2D.dwg b/data/ils/Gefaellebogen_links_90_R500_2D.dwg new file mode 100644 index 0000000..eaa7bfa Binary files /dev/null and b/data/ils/Gefaellebogen_links_90_R500_2D.dwg differ diff --git a/data/ils/Gefaellebogen_links_90_R500_3D.dwg b/data/ils/Gefaellebogen_links_90_R500_3D.dwg new file mode 100644 index 0000000..1ec4fe5 Binary files /dev/null and b/data/ils/Gefaellebogen_links_90_R500_3D.dwg differ diff --git a/data/ils/Gefaellebogen_rechts_30_R500_2D.dwg b/data/ils/Gefaellebogen_rechts_30_R500_2D.dwg new file mode 100644 index 0000000..d468173 Binary files /dev/null and b/data/ils/Gefaellebogen_rechts_30_R500_2D.dwg differ diff --git a/data/ils/Gefaellebogen_rechts_30_R500_3D.dwg b/data/ils/Gefaellebogen_rechts_30_R500_3D.dwg new file mode 100644 index 0000000..437814e Binary files /dev/null and b/data/ils/Gefaellebogen_rechts_30_R500_3D.dwg differ diff --git a/data/ils/Gefaellebogen_rechts_60_R500_2D.dwg b/data/ils/Gefaellebogen_rechts_60_R500_2D.dwg new file mode 100644 index 0000000..fb8776f Binary files /dev/null and b/data/ils/Gefaellebogen_rechts_60_R500_2D.dwg differ diff --git a/data/ils/Gefaellebogen_rechts_60_R500_3D.dwg b/data/ils/Gefaellebogen_rechts_60_R500_3D.dwg new file mode 100644 index 0000000..9417388 Binary files /dev/null and b/data/ils/Gefaellebogen_rechts_60_R500_3D.dwg differ diff --git a/data/ils/Gefaellebogen_rechts_90_R500_2D.dwg b/data/ils/Gefaellebogen_rechts_90_R500_2D.dwg new file mode 100644 index 0000000..cb3d099 Binary files /dev/null and b/data/ils/Gefaellebogen_rechts_90_R500_2D.dwg differ diff --git a/data/ils/Gefaellebogen_rechts_90_R500_3D.dwg b/data/ils/Gefaellebogen_rechts_90_R500_3D.dwg new file mode 100644 index 0000000..e22f104 Binary files /dev/null and b/data/ils/Gefaellebogen_rechts_90_R500_3D.dwg differ diff --git a/data/ils/Modulweiche_RG_links_Passiv_2D.dwg b/data/ils/Modulweiche_RG_links_Passiv_2D.dwg new file mode 100644 index 0000000..04f4b31 Binary files /dev/null and b/data/ils/Modulweiche_RG_links_Passiv_2D.dwg differ diff --git a/data/ils/Modulweiche_RG_links_Passiv_3D.dwg b/data/ils/Modulweiche_RG_links_Passiv_3D.dwg new file mode 100644 index 0000000..04f4b31 Binary files /dev/null and b/data/ils/Modulweiche_RG_links_Passiv_3D.dwg differ diff --git a/data/ils/Modulweiche_RG_links_Pneumatik_2D.dwg b/data/ils/Modulweiche_RG_links_Pneumatik_2D.dwg new file mode 100644 index 0000000..2915de9 Binary files /dev/null and b/data/ils/Modulweiche_RG_links_Pneumatik_2D.dwg differ diff --git a/data/ils/Modulweiche_RG_links_Pneumatik_3D.dwg b/data/ils/Modulweiche_RG_links_Pneumatik_3D.dwg new file mode 100644 index 0000000..2915de9 Binary files /dev/null and b/data/ils/Modulweiche_RG_links_Pneumatik_3D.dwg differ diff --git a/data/ils/Modulweiche_RG_links_Zylinder_2D.dwg b/data/ils/Modulweiche_RG_links_Zylinder_2D.dwg new file mode 100644 index 0000000..6efcdd5 Binary files /dev/null and b/data/ils/Modulweiche_RG_links_Zylinder_2D.dwg differ diff --git a/data/ils/Modulweiche_RG_links_Zylinder_3D.dwg b/data/ils/Modulweiche_RG_links_Zylinder_3D.dwg new file mode 100644 index 0000000..6efcdd5 Binary files /dev/null and b/data/ils/Modulweiche_RG_links_Zylinder_3D.dwg differ diff --git a/data/ils/Modulweiche_RG_rechts_Passiv_2D.dwg b/data/ils/Modulweiche_RG_rechts_Passiv_2D.dwg new file mode 100644 index 0000000..1bf5e59 Binary files /dev/null and b/data/ils/Modulweiche_RG_rechts_Passiv_2D.dwg differ diff --git a/data/ils/Modulweiche_RG_rechts_Passiv_3D.dwg b/data/ils/Modulweiche_RG_rechts_Passiv_3D.dwg new file mode 100644 index 0000000..1bf5e59 Binary files /dev/null and b/data/ils/Modulweiche_RG_rechts_Passiv_3D.dwg differ diff --git a/data/ils/Modulweiche_RG_rechts_Pneumatik_2D.dwg b/data/ils/Modulweiche_RG_rechts_Pneumatik_2D.dwg new file mode 100644 index 0000000..7709ca8 Binary files /dev/null and b/data/ils/Modulweiche_RG_rechts_Pneumatik_2D.dwg differ diff --git a/data/ils/Modulweiche_RG_rechts_Pneumatik_3D.dwg b/data/ils/Modulweiche_RG_rechts_Pneumatik_3D.dwg new file mode 100644 index 0000000..7709ca8 Binary files /dev/null and b/data/ils/Modulweiche_RG_rechts_Pneumatik_3D.dwg differ diff --git a/data/ils/Modulweiche_RG_rechts_Zylinder_2D.dwg b/data/ils/Modulweiche_RG_rechts_Zylinder_2D.dwg new file mode 100644 index 0000000..40dd502 Binary files /dev/null and b/data/ils/Modulweiche_RG_rechts_Zylinder_2D.dwg differ diff --git a/data/ils/Modulweiche_RG_rechts_Zylinder_3D.dwg b/data/ils/Modulweiche_RG_rechts_Zylinder_3D.dwg new file mode 100644 index 0000000..40dd502 Binary files /dev/null and b/data/ils/Modulweiche_RG_rechts_Zylinder_3D.dwg differ diff --git a/data/ils/Modulweiche_RR_Passiv_2D.dwg b/data/ils/Modulweiche_RR_Passiv_2D.dwg new file mode 100644 index 0000000..a3d0b5d Binary files /dev/null and b/data/ils/Modulweiche_RR_Passiv_2D.dwg differ diff --git a/data/ils/Modulweiche_RR_Passiv_3D.dwg b/data/ils/Modulweiche_RR_Passiv_3D.dwg new file mode 100644 index 0000000..a3d0b5d Binary files /dev/null and b/data/ils/Modulweiche_RR_Passiv_3D.dwg differ diff --git a/data/ils/Modulweiche_RR_Pneumatik_2D.dwg b/data/ils/Modulweiche_RR_Pneumatik_2D.dwg new file mode 100644 index 0000000..09b24f7 Binary files /dev/null and b/data/ils/Modulweiche_RR_Pneumatik_2D.dwg differ diff --git a/data/ils/Modulweiche_RR_Pneumatik_3D.dwg b/data/ils/Modulweiche_RR_Pneumatik_3D.dwg new file mode 100644 index 0000000..09b24f7 Binary files /dev/null and b/data/ils/Modulweiche_RR_Pneumatik_3D.dwg differ diff --git a/data/ils/Modulweiche_RR_Zylinder_2D.dwg b/data/ils/Modulweiche_RR_Zylinder_2D.dwg new file mode 100644 index 0000000..171f963 Binary files /dev/null and b/data/ils/Modulweiche_RR_Zylinder_2D.dwg differ diff --git a/data/ils/Modulweiche_RR_Zylinder_3D.dwg b/data/ils/Modulweiche_RR_Zylinder_3D.dwg new file mode 100644 index 0000000..171f963 Binary files /dev/null and b/data/ils/Modulweiche_RR_Zylinder_3D.dwg differ diff --git a/data/ils/SC_Entladung_2D.dwg b/data/ils/SC_Entladung_2D.dwg new file mode 100644 index 0000000..4618d81 Binary files /dev/null and b/data/ils/SC_Entladung_2D.dwg differ diff --git a/data/ils/SC_Entladung_3D.dwg b/data/ils/SC_Entladung_3D.dwg new file mode 100644 index 0000000..5e8436d Binary files /dev/null and b/data/ils/SC_Entladung_3D.dwg differ diff --git a/data/ils/SP8_2D.dwg b/data/ils/SP8_2D.dwg new file mode 100644 index 0000000..78bac4b Binary files /dev/null and b/data/ils/SP8_2D.dwg differ diff --git a/data/ils/SP8_3D.dwg b/data/ils/SP8_3D.dwg new file mode 100644 index 0000000..3554754 Binary files /dev/null and b/data/ils/SP8_3D.dwg differ diff --git a/data/ils/Scanner_2D.dwg b/data/ils/Scanner_2D.dwg new file mode 100644 index 0000000..df80344 Binary files /dev/null and b/data/ils/Scanner_2D.dwg differ diff --git a/data/ils/Scanner_3D.dwg b/data/ils/Scanner_3D.dwg new file mode 100644 index 0000000..c9b1bd0 Binary files /dev/null and b/data/ils/Scanner_3D.dwg differ diff --git a/data/ils/Separator_SP_2D.dwg b/data/ils/Separator_SP_2D.dwg new file mode 100644 index 0000000..fe021d9 Binary files /dev/null and b/data/ils/Separator_SP_2D.dwg differ diff --git a/data/ils/Separator_SP_3D.dwg b/data/ils/Separator_SP_3D.dwg new file mode 100644 index 0000000..019f25d Binary files /dev/null and b/data/ils/Separator_SP_3D.dwg differ diff --git a/data/ils/Staustrecke_SP_1000_mm_2D.dwg b/data/ils/Staustrecke_SP_1000_mm_2D.dwg new file mode 100644 index 0000000..00117ec Binary files /dev/null and b/data/ils/Staustrecke_SP_1000_mm_2D.dwg differ diff --git a/data/ils/Staustrecke_SP_1000_mm_3D.dwg b/data/ils/Staustrecke_SP_1000_mm_3D.dwg new file mode 100644 index 0000000..20fdcea Binary files /dev/null and b/data/ils/Staustrecke_SP_1000_mm_3D.dwg differ diff --git a/data/ils/Staustrecke_SP_Vario_links_1000_mm_2D.dwg b/data/ils/Staustrecke_SP_Vario_links_1000_mm_2D.dwg new file mode 100644 index 0000000..6f70dc7 Binary files /dev/null and b/data/ils/Staustrecke_SP_Vario_links_1000_mm_2D.dwg differ diff --git a/data/ils/Staustrecke_SP_Vario_links_1000_mm_3D.dwg b/data/ils/Staustrecke_SP_Vario_links_1000_mm_3D.dwg new file mode 100644 index 0000000..9fd2d81 Binary files /dev/null and b/data/ils/Staustrecke_SP_Vario_links_1000_mm_3D.dwg differ diff --git a/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_2D.dwg b/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_2D.dwg new file mode 100644 index 0000000..2360f67 Binary files /dev/null and b/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_2D.dwg differ diff --git a/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_3D.dwg b/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_3D.dwg new file mode 100644 index 0000000..525fc82 Binary files /dev/null and b/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_3D.dwg differ diff --git a/data/ils/Staustrecke_Separator_SP_300_mm_2D.dwg b/data/ils/Staustrecke_Separator_SP_300_mm_2D.dwg new file mode 100644 index 0000000..7397a96 Binary files /dev/null and b/data/ils/Staustrecke_Separator_SP_300_mm_2D.dwg differ diff --git a/data/ils/Staustrecke_Separator_SP_300_mm_3D.dwg b/data/ils/Staustrecke_Separator_SP_300_mm_3D.dwg new file mode 100644 index 0000000..8fd22c2 Binary files /dev/null and b/data/ils/Staustrecke_Separator_SP_300_mm_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_12_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_12_TEF_rechts_2D.dwg new file mode 100644 index 0000000..cf50945 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_12_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_12_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_12_TEF_rechts_3D.dwg new file mode 100644 index 0000000..040112a Binary files /dev/null and b/data/ils/Vario_Bogen_ab_12_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_15_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_15_TEF_rechts_2D.dwg new file mode 100644 index 0000000..a4efc4f Binary files /dev/null and b/data/ils/Vario_Bogen_ab_15_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_15_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_15_TEF_rechts_3D.dwg new file mode 100644 index 0000000..642a9b9 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_15_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_18_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_18_TEF_rechts_2D.dwg new file mode 100644 index 0000000..06b89c0 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_18_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_18_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_18_TEF_rechts_3D.dwg new file mode 100644 index 0000000..170aa1f Binary files /dev/null and b/data/ils/Vario_Bogen_ab_18_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_21_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_21_TEF_rechts_2D.dwg new file mode 100644 index 0000000..df6ae19 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_21_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_21_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_21_TEF_rechts_3D.dwg new file mode 100644 index 0000000..8e28d9f Binary files /dev/null and b/data/ils/Vario_Bogen_ab_21_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_27_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_27_TEF_rechts_2D.dwg new file mode 100644 index 0000000..e1b180c Binary files /dev/null and b/data/ils/Vario_Bogen_ab_27_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_27_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_27_TEF_rechts_3D.dwg new file mode 100644 index 0000000..31d742a Binary files /dev/null and b/data/ils/Vario_Bogen_ab_27_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_33_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_33_TEF_rechts_2D.dwg new file mode 100644 index 0000000..4789c0a Binary files /dev/null and b/data/ils/Vario_Bogen_ab_33_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_33_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_33_TEF_rechts_3D.dwg new file mode 100644 index 0000000..fc43b7c Binary files /dev/null and b/data/ils/Vario_Bogen_ab_33_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_39_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_39_TEF_rechts_2D.dwg new file mode 100644 index 0000000..c23273b Binary files /dev/null and b/data/ils/Vario_Bogen_ab_39_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_39_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_39_TEF_rechts_3D.dwg new file mode 100644 index 0000000..09d3f46 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_39_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_3_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_3_TEF_rechts_2D.dwg new file mode 100644 index 0000000..171e468 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_3_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_3_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_3_TEF_rechts_3D.dwg new file mode 100644 index 0000000..6c7e79f Binary files /dev/null and b/data/ils/Vario_Bogen_ab_3_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_45_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_45_TEF_rechts_2D.dwg new file mode 100644 index 0000000..3fa528c Binary files /dev/null and b/data/ils/Vario_Bogen_ab_45_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_45_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_45_TEF_rechts_3D.dwg new file mode 100644 index 0000000..a8cbb65 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_45_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_51_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_51_TEF_rechts_2D.dwg new file mode 100644 index 0000000..530b051 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_51_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_51_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_51_TEF_rechts_3D.dwg new file mode 100644 index 0000000..8d07336 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_51_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_6_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_6_TEF_rechts_2D.dwg new file mode 100644 index 0000000..343ce2e Binary files /dev/null and b/data/ils/Vario_Bogen_ab_6_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_6_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_6_TEF_rechts_3D.dwg new file mode 100644 index 0000000..bfaa878 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_6_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_9_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_ab_9_TEF_rechts_2D.dwg new file mode 100644 index 0000000..dabd1c1 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_9_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_ab_9_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_ab_9_TEF_rechts_3D.dwg new file mode 100644 index 0000000..aebd0b8 Binary files /dev/null and b/data/ils/Vario_Bogen_ab_9_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_12_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_12_TEF_rechts_2D.dwg new file mode 100644 index 0000000..ada1fc2 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_12_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_12_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_12_TEF_rechts_3D.dwg new file mode 100644 index 0000000..e4d7b66 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_12_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_15_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_15_TEF_rechts_2D.dwg new file mode 100644 index 0000000..7d58bb8 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_15_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_15_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_15_TEF_rechts_3D.dwg new file mode 100644 index 0000000..e4cf17c Binary files /dev/null and b/data/ils/Vario_Bogen_auf_15_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_18_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_18_TEF_rechts_2D.dwg new file mode 100644 index 0000000..beb7a77 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_18_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_18_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_18_TEF_rechts_3D.dwg new file mode 100644 index 0000000..cb09ec6 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_18_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_21_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_21_TEF_rechts_2D.dwg new file mode 100644 index 0000000..7abb31a Binary files /dev/null and b/data/ils/Vario_Bogen_auf_21_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_21_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_21_TEF_rechts_3D.dwg new file mode 100644 index 0000000..8b4a85e Binary files /dev/null and b/data/ils/Vario_Bogen_auf_21_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_27_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_27_TEF_rechts_2D.dwg new file mode 100644 index 0000000..f1988ce Binary files /dev/null and b/data/ils/Vario_Bogen_auf_27_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_27_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_27_TEF_rechts_3D.dwg new file mode 100644 index 0000000..f1d29ff Binary files /dev/null and b/data/ils/Vario_Bogen_auf_27_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_33_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_33_TEF_rechts_2D.dwg new file mode 100644 index 0000000..43eb1f0 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_33_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_33_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_33_TEF_rechts_3D.dwg new file mode 100644 index 0000000..1edf1aa Binary files /dev/null and b/data/ils/Vario_Bogen_auf_33_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_39_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_39_TEF_rechts_2D.dwg new file mode 100644 index 0000000..bf5ea0c Binary files /dev/null and b/data/ils/Vario_Bogen_auf_39_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_39_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_39_TEF_rechts_3D.dwg new file mode 100644 index 0000000..b9faada Binary files /dev/null and b/data/ils/Vario_Bogen_auf_39_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_3_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_3_TEF_rechts_2D.dwg new file mode 100644 index 0000000..99b404b Binary files /dev/null and b/data/ils/Vario_Bogen_auf_3_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_3_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_3_TEF_rechts_3D.dwg new file mode 100644 index 0000000..366e6e4 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_3_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_45_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_45_TEF_rechts_2D.dwg new file mode 100644 index 0000000..01e0439 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_45_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_45_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_45_TEF_rechts_3D.dwg new file mode 100644 index 0000000..d776ff0 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_45_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_51_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_51_TEF_rechts_2D.dwg new file mode 100644 index 0000000..3b2e75a Binary files /dev/null and b/data/ils/Vario_Bogen_auf_51_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_51_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_51_TEF_rechts_3D.dwg new file mode 100644 index 0000000..69a7be2 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_51_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_6_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_6_TEF_rechts_2D.dwg new file mode 100644 index 0000000..12bc7a1 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_6_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_6_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_6_TEF_rechts_3D.dwg new file mode 100644 index 0000000..6545fb5 Binary files /dev/null and b/data/ils/Vario_Bogen_auf_6_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_9_TEF_rechts_2D.dwg b/data/ils/Vario_Bogen_auf_9_TEF_rechts_2D.dwg new file mode 100644 index 0000000..b8a855f Binary files /dev/null and b/data/ils/Vario_Bogen_auf_9_TEF_rechts_2D.dwg differ diff --git a/data/ils/Vario_Bogen_auf_9_TEF_rechts_3D.dwg b/data/ils/Vario_Bogen_auf_9_TEF_rechts_3D.dwg new file mode 100644 index 0000000..3668a5e Binary files /dev/null and b/data/ils/Vario_Bogen_auf_9_TEF_rechts_3D.dwg differ diff --git a/data/ils/Vario_Kurve_links_30_TEF_aussen_2D.dwg b/data/ils/Vario_Kurve_links_30_TEF_aussen_2D.dwg new file mode 100644 index 0000000..2bcccb7 Binary files /dev/null and b/data/ils/Vario_Kurve_links_30_TEF_aussen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_links_30_TEF_aussen_3D.dwg b/data/ils/Vario_Kurve_links_30_TEF_aussen_3D.dwg new file mode 100644 index 0000000..c0ef882 Binary files /dev/null and b/data/ils/Vario_Kurve_links_30_TEF_aussen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_links_30_TEF_innen_2D.dwg b/data/ils/Vario_Kurve_links_30_TEF_innen_2D.dwg new file mode 100644 index 0000000..e235504 Binary files /dev/null and b/data/ils/Vario_Kurve_links_30_TEF_innen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_links_30_TEF_innen_3D.dwg b/data/ils/Vario_Kurve_links_30_TEF_innen_3D.dwg new file mode 100644 index 0000000..750a202 Binary files /dev/null and b/data/ils/Vario_Kurve_links_30_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_links_60_TEF_aussen_2D.dwg b/data/ils/Vario_Kurve_links_60_TEF_aussen_2D.dwg new file mode 100644 index 0000000..99ed7f4 Binary files /dev/null and b/data/ils/Vario_Kurve_links_60_TEF_aussen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_links_60_TEF_aussen_3D.dwg b/data/ils/Vario_Kurve_links_60_TEF_aussen_3D.dwg new file mode 100644 index 0000000..5b9154a Binary files /dev/null and b/data/ils/Vario_Kurve_links_60_TEF_aussen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_links_60_TEF_innen_2D.dwg b/data/ils/Vario_Kurve_links_60_TEF_innen_2D.dwg new file mode 100644 index 0000000..2f9893b Binary files /dev/null and b/data/ils/Vario_Kurve_links_60_TEF_innen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_links_60_TEF_innen_3D.dwg b/data/ils/Vario_Kurve_links_60_TEF_innen_3D.dwg new file mode 100644 index 0000000..27042e1 Binary files /dev/null and b/data/ils/Vario_Kurve_links_60_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_links_90_TEF_aussen_2D.dwg b/data/ils/Vario_Kurve_links_90_TEF_aussen_2D.dwg new file mode 100644 index 0000000..f25e3ab Binary files /dev/null and b/data/ils/Vario_Kurve_links_90_TEF_aussen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_links_90_TEF_aussen_3D.dwg b/data/ils/Vario_Kurve_links_90_TEF_aussen_3D.dwg new file mode 100644 index 0000000..0bcd676 Binary files /dev/null and b/data/ils/Vario_Kurve_links_90_TEF_aussen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_links_90_TEF_innen_2D.dwg b/data/ils/Vario_Kurve_links_90_TEF_innen_2D.dwg new file mode 100644 index 0000000..f921c4a Binary files /dev/null and b/data/ils/Vario_Kurve_links_90_TEF_innen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_links_90_TEF_innen_3D.dwg b/data/ils/Vario_Kurve_links_90_TEF_innen_3D.dwg new file mode 100644 index 0000000..efd8d6d Binary files /dev/null and b/data/ils/Vario_Kurve_links_90_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_30_TEF_aussen_2D.dwg b/data/ils/Vario_Kurve_rechts_30_TEF_aussen_2D.dwg new file mode 100644 index 0000000..a6238cb Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_30_TEF_aussen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_30_TEF_aussen_3D.dwg b/data/ils/Vario_Kurve_rechts_30_TEF_aussen_3D.dwg new file mode 100644 index 0000000..ab78086 Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_30_TEF_aussen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_30_TEF_innen_2D.dwg b/data/ils/Vario_Kurve_rechts_30_TEF_innen_2D.dwg new file mode 100644 index 0000000..d9ea655 Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_30_TEF_innen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_30_TEF_innen_3D.dwg b/data/ils/Vario_Kurve_rechts_30_TEF_innen_3D.dwg new file mode 100644 index 0000000..5327f5b Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_30_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_60_TEF_aussen_2D.dwg b/data/ils/Vario_Kurve_rechts_60_TEF_aussen_2D.dwg new file mode 100644 index 0000000..961ed8b Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_60_TEF_aussen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_60_TEF_aussen_3D.dwg b/data/ils/Vario_Kurve_rechts_60_TEF_aussen_3D.dwg new file mode 100644 index 0000000..35355ea Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_60_TEF_aussen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_60_TEF_innen_2D.dwg b/data/ils/Vario_Kurve_rechts_60_TEF_innen_2D.dwg new file mode 100644 index 0000000..5f8e38e Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_60_TEF_innen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_60_TEF_innen_3D.dwg b/data/ils/Vario_Kurve_rechts_60_TEF_innen_3D.dwg new file mode 100644 index 0000000..4ea0933 Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_60_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_90_TEF_aussen_2D.dwg b/data/ils/Vario_Kurve_rechts_90_TEF_aussen_2D.dwg new file mode 100644 index 0000000..914b2f4 Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_90_TEF_aussen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_90_TEF_aussen_3D.dwg b/data/ils/Vario_Kurve_rechts_90_TEF_aussen_3D.dwg new file mode 100644 index 0000000..fb6f22f Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_90_TEF_aussen_3D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_90_TEF_innen_2D.dwg b/data/ils/Vario_Kurve_rechts_90_TEF_innen_2D.dwg new file mode 100644 index 0000000..9ca865b Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_90_TEF_innen_2D.dwg differ diff --git a/data/ils/Vario_Kurve_rechts_90_TEF_innen_3D.dwg b/data/ils/Vario_Kurve_rechts_90_TEF_innen_3D.dwg new file mode 100644 index 0000000..ddc3519 Binary files /dev/null and b/data/ils/Vario_Kurve_rechts_90_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Motorstation_500mm_3D.dwg b/data/ils/Vario_Motorstation_500mm_3D.dwg new file mode 100644 index 0000000..967f13e Binary files /dev/null and b/data/ils/Vario_Motorstation_500mm_3D.dwg differ diff --git a/data/ils/Vario_Motorstation_500mm_links_2D.dwg b/data/ils/Vario_Motorstation_500mm_links_2D.dwg new file mode 100644 index 0000000..c028296 Binary files /dev/null and b/data/ils/Vario_Motorstation_500mm_links_2D.dwg differ diff --git a/data/ils/Vario_Motorstation_500mm_links_3D.dwg b/data/ils/Vario_Motorstation_500mm_links_3D.dwg new file mode 100644 index 0000000..643150f Binary files /dev/null and b/data/ils/Vario_Motorstation_500mm_links_3D.dwg differ diff --git a/data/ils/Vario_Motorstation_500mm_rechts_2D.dwg b/data/ils/Vario_Motorstation_500mm_rechts_2D.dwg new file mode 100644 index 0000000..39095b5 Binary files /dev/null and b/data/ils/Vario_Motorstation_500mm_rechts_2D.dwg differ diff --git a/data/ils/Vario_Motorstation_500mm_rechts_3D.dwg b/data/ils/Vario_Motorstation_500mm_rechts_3D.dwg new file mode 100644 index 0000000..dcc87aa Binary files /dev/null and b/data/ils/Vario_Motorstation_500mm_rechts_3D.dwg differ diff --git a/data/ils/Vario_Staustrecke_SP_1000_mm_3D.dwg b/data/ils/Vario_Staustrecke_SP_1000_mm_3D.dwg new file mode 100644 index 0000000..43dd190 Binary files /dev/null and b/data/ils/Vario_Staustrecke_SP_1000_mm_3D.dwg differ diff --git a/data/ils/Vario_Umlenkstation_500mm_3D.dwg b/data/ils/Vario_Umlenkstation_500mm_3D.dwg new file mode 100644 index 0000000..c8d71d8 Binary files /dev/null and b/data/ils/Vario_Umlenkstation_500mm_3D.dwg differ diff --git a/data/ils/Vario_Umlenkstation_500mm_links_2D.dwg b/data/ils/Vario_Umlenkstation_500mm_links_2D.dwg new file mode 100644 index 0000000..1a2c993 Binary files /dev/null and b/data/ils/Vario_Umlenkstation_500mm_links_2D.dwg differ diff --git a/data/ils/Vario_Umlenkstation_500mm_links_3D.dwg b/data/ils/Vario_Umlenkstation_500mm_links_3D.dwg new file mode 100644 index 0000000..2c79c1f Binary files /dev/null and b/data/ils/Vario_Umlenkstation_500mm_links_3D.dwg differ diff --git a/data/ils/Vario_Umlenkstation_500mm_rechts_2D.dwg b/data/ils/Vario_Umlenkstation_500mm_rechts_2D.dwg new file mode 100644 index 0000000..705b0c5 Binary files /dev/null and b/data/ils/Vario_Umlenkstation_500mm_rechts_2D.dwg differ diff --git a/data/ils/Vario_Umlenkstation_500mm_rechts_3D.dwg b/data/ils/Vario_Umlenkstation_500mm_rechts_3D.dwg new file mode 100644 index 0000000..66e2a56 Binary files /dev/null and b/data/ils/Vario_Umlenkstation_500mm_rechts_3D.dwg differ diff --git a/data/ils/Vereinzeler_BHS_links_3D.dwg b/data/ils/Vereinzeler_BHS_links_3D.dwg new file mode 100644 index 0000000..55d1efd Binary files /dev/null and b/data/ils/Vereinzeler_BHS_links_3D.dwg differ diff --git a/data/ils/Vereinzeler_BHS_rechts_3D.dwg b/data/ils/Vereinzeler_BHS_rechts_3D.dwg new file mode 100644 index 0000000..964254a Binary files /dev/null and b/data/ils/Vereinzeler_BHS_rechts_3D.dwg differ