diff --git a/Lisp/addattribute.lsp b/Lisp/addattribute.lsp index 954cea6..7977f69 100644 --- a/Lisp/addattribute.lsp +++ b/Lisp/addattribute.lsp @@ -7,6 +7,9 @@ ;; (data/ils/allocations.json) und anschliessend werden ;; ausschliesslich die DWGs in genau diesem Verzeichnis bearbeitet. ;; +;; Es gibt zwei Modi (Auswahl beim Befehlsaufruf): +;; +;; MODUS "Ergaenzen" (Vorgabe, bisheriges Verhalten) ;; Ablauf je JSON-Eintrag "Blockname": {"TAG": "Wert", ...}: ;; - .dwg im selben Verzeichnis wie die JSON oeffnen ;; - je Attribut (TAG/Wert): @@ -17,17 +20,35 @@ ;; -> NUR ueberschreiben, ;; wenn der JSON-Wert NICHT leer ("") ist. Ein leerer JSON-Wert ;; loescht also nie einen bereits vorhandenen Wert. +;; - ATTDEFs, die in der JSON nicht vorkommen, bleiben unberuehrt. +;; +;; MODUS "Ersetzen" (die JSON ist die alleinige Quelle der Wahrheit) +;; - JSON-Wert wird IMMER gesetzt, auch ein leerer Wert (der Wert des +;; ATTDEF wird dann geleert) +;; - Tags, die in der DWG fehlen, werden neu angelegt +;; - ATTDEFs, deren Tag NICHT in der JSON steht, werden GELOESCHT +;; - vorhandene ATTDEFs werden dabei in-place geaendert, behalten also +;; Position, Texthoehe, Layer und Stil (im Unterschied zu +;; data/omniflo/2D/addattributes.py --replace, das alles neu stapelt) +;; +;; In beiden Modi gilt: ;; - DWG nur dann speichern, wenn sich mindestens ein Attributwert -;; geaendert hat oder neu angelegt wurde (bessere Nachverfolgbarkeit -;; im Versionsvergleich). Falls durch dieses Skript geoeffnet, wird -;; die DWG anschliessend wieder geschlossen. War die DWG schon vorher -;; offen, bleibt sie offen. +;; geaendert hat, neu angelegt oder geloescht wurde (bessere +;; Nachverfolgbarkeit im Versionsvergleich). Falls durch dieses +;; Skript geoeffnet, wird die DWG anschliessend wieder geschlossen. +;; War die DWG schon vorher offen, bleibt sie offen. +;; +;; TIPP vor dem ersten "Ersetzen"-Lauf: mit ILS_ATTR_COLLECT +;; (collect_attributes.lsp) den Ist-Zustand als allocations_collected.json +;; schreiben und gegen allocations.json vergleichen - jeder Tag, der nur +;; in der Collected-Datei steht, wird beim Ersetzen geloescht. ;; ;; Voraussetzung: DXFM_DATA ist gesetzt (siehe bin/setenv.bat). ;; ;; Aufruf in BricsCAD: ;; (load "C:/.../Lisp/addattribute.lsp") -;; ILS_ATTR_SYNC +;; ILS_ATTR_SYNC ; fragt den Modus ab (Vorgabe: Ergaenzen) +;; ILS_ATTR_REPLACE ; direkt Modus "Ersetzen" (mit Sicherheitsfrage) ;; ============================================================ (vl-load-com) @@ -60,10 +81,22 @@ ) ;; ------------------------------------------------------------ -;; Ein einzelnes ATTDEF aktualisieren (Ueberschreib-Regel) +;; Statistik-Liste (anz-neu anz-gesetzt anz-geloescht): +;; hat sich ueberhaupt etwas geaendert? +;; (Achtung: eine Liste aus Nullen ist in LISP truthy, daher diese +;; explizite Pruefung statt eines einfachen if.) +;; ------------------------------------------------------------ +(defun iad-stat-geaendert (stat) + (and stat (> (apply '+ stat) 0)) +) + +;; ------------------------------------------------------------ +;; Ein einzelnes ATTDEF aktualisieren +;; ersetzen = T -> JSON-Wert immer setzen (auch leer) +;; ersetzen = nil -> ein befuellter Wert bleibt bei leerem JSON-Wert stehen ;; Rueckgabe: t, wenn der Wert tatsaechlich geaendert wurde ;; ------------------------------------------------------------ -(defun iad-update-attdef (ent jsonwert / ed altwert) +(defun iad-update-attdef (ent jsonwert ersetzen / ed altwert) (setq ed (entget ent) altwert (cdr (assoc 1 ed)) ) @@ -73,7 +106,7 @@ (princ (strcat "\n = " (cdr (assoc 2 ed)) " = '" altwert "' (unveraendert)")) nil ) - ((or (= (strlen altwert) 0) (> (strlen jsonwert) 0)) + ((or ersetzen (= (strlen altwert) 0) (> (strlen jsonwert) 0)) (entmod (subst (cons 1 jsonwert) (assoc 1 ed) ed)) (princ (strcat "\n - " (cdr (assoc 2 ed)) " = '" jsonwert "'")) t @@ -103,19 +136,39 @@ ) ;; ------------------------------------------------------------ -;; Alle Attribute eines JSON-Eintrags im aktiven Dokument abgleichen -;; attribs = (("TAG" . "Wert") ...) -;; Rueckgabe: t, wenn mindestens ein Attribut geaendert/neu angelegt wurde +;; Vorhandenes ATTDEF loeschen (nur Modus "Ersetzen") ;; ------------------------------------------------------------ -(defun iad-sync-attribs-in-current-doc (attribs / texthoehe layer ss anzahl i ent ed - tag wert pt vorhandene ypos gefunden paar geaendert) +(defun iad-delete-attdef (ent / ed altwert) + (setq ed (entget ent) + altwert (cdr (assoc 1 ed)) + ) + (if (null altwert) (setq altwert "")) + (princ (strcat "\n x " (cdr (assoc 2 ed)) " = '" altwert "' (geloescht)")) + (entdel ent) +) + +;; ------------------------------------------------------------ +;; Alle Attribute eines JSON-Eintrags im aktiven Dokument abgleichen +;; attribs = (("TAG" . "Wert") ...) +;; ersetzen = T -> JSON ist die alleinige Quelle der Wahrheit +;; (Werte immer setzen, ueberzaehlige ATTDEFs loeschen) +;; Rueckgabe: Statistik-Liste (anz-neu anz-gesetzt anz-geloescht) +;; ------------------------------------------------------------ +(defun iad-sync-attribs-in-current-doc (attribs ersetzen / texthoehe layer ss anzahl i ent ed + tag wert pt vorhandene ypos gefunden paar + json-tags anz-neu anz-gesetzt anz-geloescht) (setq texthoehe (ssg-cfg-or "ils_attribut" "texthoehe" 50.0) layer (ssg-cfg-or "ils_attribut" "layer" "0") vorhandene nil ypos 0.0 - geaendert nil + anz-neu 0 + anz-gesetzt 0 + anz-geloescht 0 ) - ;; Vorhandene ATTDEFs einsammeln (Tag -> Entity) und tiefsten Y-Wert merken + ;; Vorhandene ATTDEFs einsammeln (Tag -> Entity) und tiefsten Y-Wert merken. + ;; Die Tags werden dabei ueber strcase normalisiert (ATTDEF-Tags haelt + ;; BricsCAD ohnehin in Grossschreibung), damit ein klein geschriebener + ;; JSON-Tag nicht als "fehlend" gilt und ein Duplikat erzeugt. (setq ss (ssget "X" '((0 . "ATTDEF")))) (if ss (progn @@ -126,7 +179,8 @@ tag (cdr (assoc 2 ed)) pt (cdr (assoc 10 ed)) ) - (setq vorhandene (cons (cons tag ent) vorhandene)) + (if (null tag) (setq tag "")) + (setq vorhandene (cons (cons (strcase tag) ent) vorhandene)) (if (and pt (< (cadr pt) ypos)) (setq ypos (cadr pt))) (setq i (1+ i)) ) @@ -134,30 +188,172 @@ ) (setq ypos (- ypos (* texthoehe 2.0))) + (setq json-tags nil) (foreach paar attribs - (setq tag (car paar) + (setq tag (strcase (car paar)) wert (cdr paar) ) (if (null wert) (setq wert "")) + (setq json-tags (cons tag json-tags)) (setq gefunden (cdr (assoc tag vorhandene))) (if gefunden - (if (iad-update-attdef gefunden wert) (setq geaendert t)) + (if (iad-update-attdef gefunden wert ersetzen) + (setq anz-gesetzt (1+ anz-gesetzt)) + ) (progn - (iad-create-attdef tag wert ypos texthoehe layer) + (iad-create-attdef (car paar) wert ypos texthoehe layer) (setq ypos (- ypos (* texthoehe 2.0))) - (setq geaendert t) + (setq anz-neu (1+ anz-neu)) ) ) ) - geaendert + + ;; Modus "Ersetzen": alle ATTDEFs entfernen, deren Tag nicht in der JSON steht + (if ersetzen + (foreach paar vorhandene + (if (not (member (car paar) json-tags)) + (progn + (iad-delete-attdef (cdr paar)) + (setq anz-geloescht (1+ anz-geloescht)) + ) + ) + ) + ) + + (list anz-neu anz-gesetzt anz-geloescht) ) ;; ------------------------------------------------------------ -;; Hauptbefehl +;; Sicherheitsfrage vor einem "Ersetzen"-Lauf +;; Rueckgabe: T, wenn der Anwender ausdruecklich "Ja" gewaehlt hat ;; ------------------------------------------------------------ -(defun c:ILS_ATTR_SYNC ( / data-dir json-pfad dwg-dir daten orig-doc anzahl-aktualisiert - anzahl-unveraendert anzahl-fehler anzahl-fehlt eintrag blockname attribs - dwg-pfad bereits-offen fehler fehlende-liste name) +(defun iad-ersetzen-bestaetigt (anzahl-eintraege) + (princ (strcat "\n[ATTR-SYNC] MODUS ERSETZEN: Attribute, die in der JSON nicht" + "\n aufgefuehrt sind, werden in den DWGs GELOESCHT.")) + (initget "Ja Nein") + (= (getkword (strcat "\n" (itoa anzahl-eintraege) + " JSON-Eintrag/-Eintraege jetzt verarbeiten? [Ja/Nein] : ")) + "Ja") +) + +;; ------------------------------------------------------------ +;; Alle JSON-Eintraege abarbeiten +;; daten = (("Blockname" ("TAG" . "Wert") ...) ...) +;; dwg-dir = Verzeichnis der DWGs (= Verzeichnis der JSON) +;; ersetzen = Modus (siehe iad-sync-attribs-in-current-doc) +;; ------------------------------------------------------------ +(defun ils-attr-sync-eintraege (daten dwg-dir ersetzen / orig-doc anzahl-aktualisiert + anzahl-unveraendert anzahl-fehler anzahl-fehlt eintrag + blockname attribs dwg-pfad bereits-offen ergebnis + fehlende-liste name summe-neu summe-gesetzt summe-geloescht) + (setq orig-doc (vla-get-ActiveDocument (vlax-get-acad-object)) + anzahl-aktualisiert 0 + anzahl-unveraendert 0 + anzahl-fehler 0 + anzahl-fehlt 0 + fehlende-liste nil + summe-neu 0 + summe-gesetzt 0 + summe-geloescht 0 + ) + + (princ (strcat "\n[ATTR-SYNC] Modus: " (if ersetzen "Ersetzen" "Ergaenzen"))) + + (foreach eintrag daten + (setq blockname (car eintrag) + attribs (cdr eintrag) + dwg-pfad (strcat dwg-dir "/" blockname ".dwg") + ) + (cond + ;; DWG zum JSON-Eintrag fehlt + ((not (findfile dwg-pfad)) + (setq anzahl-fehlt (1+ anzahl-fehlt)) + (setq fehlende-liste (cons (strcat blockname ".dwg") fehlende-liste)) + ) + + ;; Schutz: ein leerer JSON-Eintrag ("Blockname": {}) wuerde im Modus + ;; Ersetzen alle ATTDEFs der DWG loeschen. Das ist eher ein Fehler in + ;; der JSON als eine Absicht -> DWG unberuehrt lassen und warnen. + ((and ersetzen (null attribs)) + (princ (strcat "\n[ATTR-SYNC] " blockname ".dwg uebersprungen: JSON-Eintrag" + " ist leer (wuerde alle Attribute loeschen).")) + (setq anzahl-unveraendert (1+ anzahl-unveraendert)) + ) + + (T + (princ (strcat "\n[ATTR-SYNC] Bearbeite " blockname ".dwg ...")) + (setq bereits-offen (iad-find-open-doc dwg-pfad)) + (setq ergebnis + (vl-catch-all-apply + (function + (lambda ( / stat) + (if bereits-offen + (progn + (vlax-put-property (vlax-get-acad-object) 'ActiveDocument bereits-offen) + (setq stat (iad-sync-attribs-in-current-doc attribs ersetzen)) + ) + (progn + (command "_.OPEN" dwg-pfad) + (setq stat (iad-sync-attribs-in-current-doc attribs ersetzen)) + ) + ) + (if (iad-stat-geaendert stat) + (command "_.QSAVE") + (princ "\n (keine Aenderungen, DWG nicht gespeichert)") + ) + (if (not bereits-offen) (command "_.CLOSE")) + stat + ) + ) + nil + ) + ) + (if (vl-catch-all-error-p ergebnis) + (progn + (princ (strcat "\n[ATTR-SYNC] FEHLER bei " blockname ".dwg: " + (vl-catch-all-error-message ergebnis))) + (setq anzahl-fehler (1+ anzahl-fehler)) + ) + (progn + (setq summe-neu (+ summe-neu (nth 0 ergebnis)) + summe-gesetzt (+ summe-gesetzt (nth 1 ergebnis)) + summe-geloescht (+ summe-geloescht (nth 2 ergebnis)) + ) + (if (iad-stat-geaendert ergebnis) + (setq anzahl-aktualisiert (1+ anzahl-aktualisiert)) + (setq anzahl-unveraendert (1+ anzahl-unveraendert)) + ) + ) + ) + ) + ) + ) + + (vlax-put-property (vlax-get-acad-object) 'ActiveDocument orig-doc) + + (princ (strcat "\n[ATTR-SYNC] Fertig (Modus " (if ersetzen "Ersetzen" "Ergaenzen") "): " + (itoa anzahl-aktualisiert) " DWG(s) aktualisiert, " + (itoa anzahl-unveraendert) " ueberprueft (keine Aenderungen), " + (itoa anzahl-fehler) " Fehler, " + (itoa anzahl-fehlt) " nicht gefunden.")) + (princ (strcat "\n[ATTR-SYNC] Attribute: " (itoa summe-neu) " neu angelegt, " + (itoa summe-gesetzt) " Werte gesetzt, " + (itoa summe-geloescht) " geloescht.")) + (if fehlende-liste + (progn + (princ "\n[ATTR-SYNC] WARNUNG: DWG nicht gefunden fuer:") + (foreach name (reverse fehlende-liste) + (princ (strcat "\n - " name)) + ) + ) + ) + (princ) +) + +;; ------------------------------------------------------------ +;; Kernablauf: JSON aus DXFM_DATA/ils lesen und abarbeiten +;; ------------------------------------------------------------ +(defun ils-attr-sync-run (ersetzen / data-dir json-pfad dwg-dir daten) (setq data-dir (getenv "DXFM_DATA")) (if (not data-dir) (progn @@ -185,83 +381,30 @@ ) ) - (setq orig-doc (vla-get-ActiveDocument (vlax-get-acad-object)) - anzahl-aktualisiert 0 - anzahl-unveraendert 0 - anzahl-fehler 0 - anzahl-fehlt 0 - fehlende-liste nil - ) - - (foreach eintrag daten - (setq blockname (car eintrag) - attribs (cdr eintrag) - dwg-pfad (strcat dwg-dir "/" blockname ".dwg") - ) - (if (findfile dwg-pfad) - (progn - (princ (strcat "\n[ATTR-SYNC] Bearbeite " blockname ".dwg ...")) - (setq bereits-offen (iad-find-open-doc dwg-pfad)) - (setq fehler - (vl-catch-all-apply - (function - (lambda ( / geaendert) - (if bereits-offen - (progn - (vlax-put-property (vlax-get-acad-object) 'ActiveDocument bereits-offen) - (setq geaendert (iad-sync-attribs-in-current-doc attribs)) - ) - (progn - (command "_.OPEN" dwg-pfad) - (setq geaendert (iad-sync-attribs-in-current-doc attribs)) - ) - ) - (if geaendert - (command "_.QSAVE") - (princ "\n (keine Aenderungen, DWG nicht gespeichert)") - ) - (if (not bereits-offen) (command "_.CLOSE")) - geaendert - ) - ) - nil - ) - ) - (if (vl-catch-all-error-p fehler) - (progn - (princ (strcat "\n[ATTR-SYNC] FEHLER bei " blockname ".dwg: " - (vl-catch-all-error-message fehler))) - (setq anzahl-fehler (1+ anzahl-fehler)) - ) - (if fehler - (setq anzahl-aktualisiert (1+ anzahl-aktualisiert)) - (setq anzahl-unveraendert (1+ anzahl-unveraendert)) - ) - ) - ) - (progn - (setq anzahl-fehlt (1+ anzahl-fehlt)) - (setq fehlende-liste (cons (strcat blockname ".dwg") fehlende-liste)) - ) - ) - ) - - (vlax-put-property (vlax-get-acad-object) 'ActiveDocument orig-doc) - - (princ (strcat "\n[ATTR-SYNC] Fertig: " (itoa anzahl-aktualisiert) " DWG(s) aktualisiert, " - (itoa anzahl-unveraendert) " ueberprueft (keine Aenderungen), " - (itoa anzahl-fehler) " Fehler, " - (itoa anzahl-fehlt) " nicht gefunden.")) - (if fehlende-liste - (progn - (princ "\n[ATTR-SYNC] WARNUNG: DWG nicht gefunden fuer:") - (foreach name (reverse fehlende-liste) - (princ (strcat "\n - " name)) - ) - ) + (if (and ersetzen (not (iad-ersetzen-bestaetigt (length daten)))) + (princ "\n[ATTR-SYNC] Abgebrochen - keine Aenderungen.") + (ils-attr-sync-eintraege daten dwg-dir ersetzen) ) (princ) ) -(princ "\naddattribute.lisp geladen. Befehl: ILS_ATTR_SYNC") +;; ------------------------------------------------------------ +;; Hauptbefehl - Modus wird interaktiv abgefragt +;; (Grossbuchstaben in initget = zulaessige Abkuerzungen: ERG / ERS) +;; ------------------------------------------------------------ +(defun c:ILS_ATTR_SYNC ( / modus) + (initget "ERGaenzen ERSetzen") + (setq modus (getkword "\nModus waehlen [ERGaenzen/ERSetzen] : ")) + (if (not modus) (setq modus "ERGaenzen")) + (ils-attr-sync-run (= modus "ERSetzen")) +) + +;; ------------------------------------------------------------ +;; Direktbefehl fuer den Modus "Ersetzen" (Sicherheitsfrage bleibt) +;; ------------------------------------------------------------ +(defun c:ILS_ATTR_REPLACE () + (ils-attr-sync-run T) +) + +(princ "\naddattribute.lisp geladen. Befehle: ILS_ATTR_SYNC, ILS_ATTR_REPLACE") (princ) diff --git a/data/ils/AN8_2D.dwg b/data/ils/AN8_2D.dwg index 9adff39..2960975 100644 Binary files a/data/ils/AN8_2D.dwg and b/data/ils/AN8_2D.dwg differ diff --git a/data/ils/AN8_3D.dwg b/data/ils/AN8_3D.dwg index 7eb3b3a..e9fde43 100644 Binary files a/data/ils/AN8_3D.dwg and b/data/ils/AN8_3D.dwg differ diff --git a/data/ils/AP110_2D.dwg b/data/ils/AP110_2D.dwg index 57fb5e1..945cadb 100644 Binary files a/data/ils/AP110_2D.dwg and b/data/ils/AP110_2D.dwg differ diff --git a/data/ils/AP60_2D.dwg b/data/ils/AP60_2D.dwg index 1f83755..50f9b48 100644 Binary files a/data/ils/AP60_2D.dwg and b/data/ils/AP60_2D.dwg differ diff --git a/data/ils/APG110_2D.dwg b/data/ils/APG110_2D.dwg index 6b3fa8f..c683777 100644 Binary files a/data/ils/APG110_2D.dwg and b/data/ils/APG110_2D.dwg differ diff --git a/data/ils/AS_Element_30_links_2D.dwg b/data/ils/AS_Element_30_links_2D.dwg index de28a34..4dbe794 100644 Binary files a/data/ils/AS_Element_30_links_2D.dwg 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 index 7742f76..fc57e0c 100644 Binary files a/data/ils/AS_Element_30_links_3D.dwg 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 index 2bbbce6..981df7d 100644 Binary files a/data/ils/AS_Element_30_rechts_2D.dwg 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 index 07843d8..b6e142a 100644 Binary files a/data/ils/AS_Element_30_rechts_3D.dwg and b/data/ils/AS_Element_30_rechts_3D.dwg differ diff --git a/data/ils/BTMT-Beladung_2D.dwg b/data/ils/BTMT-Beladung_2D.dwg index 7b304ed..08c4d30 100644 Binary files a/data/ils/BTMT-Beladung_2D.dwg and b/data/ils/BTMT-Beladung_2D.dwg differ diff --git a/data/ils/BTMT-Beladung_3D.dwg b/data/ils/BTMT-Beladung_3D.dwg index d2586f1..7af273b 100644 Binary files a/data/ils/BTMT-Beladung_3D.dwg 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 index 75d33d9..1b6e4ba 100644 Binary files a/data/ils/ES_Element_30_links_2D.dwg 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 index 7ff7d0a..1326f53 100644 Binary files a/data/ils/ES_Element_30_links_3D.dwg 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 index 90a7d7a..bab8ced 100644 Binary files a/data/ils/ES_Element_30_rechts_2D.dwg 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 index 1af7043..d809699 100644 Binary files a/data/ils/ES_Element_30_rechts_3D.dwg and b/data/ils/ES_Element_30_rechts_3D.dwg differ diff --git a/data/ils/Gefaellebogen_links_30_R500_2D.dwg b/data/ils/Gefaellebogen_links_30_R500_2D.dwg index 38b5d81..379480e 100644 Binary files a/data/ils/Gefaellebogen_links_30_R500_2D.dwg 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 index 6a90326..673ba22 100644 Binary files a/data/ils/Gefaellebogen_links_30_R500_3D.dwg 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 index 95f1143..16906b1 100644 Binary files a/data/ils/Gefaellebogen_links_60_R500_2D.dwg 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 index 1747088..188e8bf 100644 Binary files a/data/ils/Gefaellebogen_links_60_R500_3D.dwg 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 index 34a4cc1..78801b2 100644 Binary files a/data/ils/Gefaellebogen_links_90_R500_2D.dwg 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 index 1ec4fe5..bddedc6 100644 Binary files a/data/ils/Gefaellebogen_links_90_R500_3D.dwg 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 index 6e0f70f..fd05f06 100644 Binary files a/data/ils/Gefaellebogen_rechts_30_R500_2D.dwg 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 index 437814e..b3aae86 100644 Binary files a/data/ils/Gefaellebogen_rechts_30_R500_3D.dwg 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 index 9c0350e..3186347 100644 Binary files a/data/ils/Gefaellebogen_rechts_60_R500_2D.dwg 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 index 9417388..ec49bf7 100644 Binary files a/data/ils/Gefaellebogen_rechts_60_R500_3D.dwg 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 index e5fc0bf..3c338f4 100644 Binary files a/data/ils/Gefaellebogen_rechts_90_R500_2D.dwg 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 index e22f104..c5c5fe3 100644 Binary files a/data/ils/Gefaellebogen_rechts_90_R500_3D.dwg 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 index 76d3cdf..b089cca 100644 Binary files a/data/ils/Modulweiche_RG_links_Passiv_2D.dwg 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 index d4c206e..849ab16 100644 Binary files a/data/ils/Modulweiche_RG_links_Passiv_3D.dwg 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 index 979794f..118e5ef 100644 Binary files a/data/ils/Modulweiche_RG_links_Pneumatik_2D.dwg 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 index fcddb5c..9b7f65b 100644 Binary files a/data/ils/Modulweiche_RG_links_Pneumatik_3D.dwg 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 index f08e568..07919fb 100644 Binary files a/data/ils/Modulweiche_RG_links_Zylinder_2D.dwg 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 index 9a6917f..d9597bd 100644 Binary files a/data/ils/Modulweiche_RG_links_Zylinder_3D.dwg 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 index 9d1f07d..2a86081 100644 Binary files a/data/ils/Modulweiche_RG_rechts_Passiv_2D.dwg 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 index 8627ec3..13e51c1 100644 Binary files a/data/ils/Modulweiche_RG_rechts_Passiv_3D.dwg 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 index 093686f..3b02624 100644 Binary files a/data/ils/Modulweiche_RG_rechts_Pneumatik_2D.dwg 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 index 4c757a4..516fbbc 100644 Binary files a/data/ils/Modulweiche_RG_rechts_Pneumatik_3D.dwg 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 index 0269fa3..590867c 100644 Binary files a/data/ils/Modulweiche_RG_rechts_Zylinder_2D.dwg 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 index 6496aaa..19b5dcc 100644 Binary files a/data/ils/Modulweiche_RG_rechts_Zylinder_3D.dwg 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 index 139a41a..2e18151 100644 Binary files a/data/ils/Modulweiche_RR_Passiv_2D.dwg 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 index b7d034b..0a06536 100644 Binary files a/data/ils/Modulweiche_RR_Passiv_3D.dwg 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 index d3a2f51..f446c16 100644 Binary files a/data/ils/Modulweiche_RR_Pneumatik_2D.dwg 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 index 4182221..b6a2585 100644 Binary files a/data/ils/Modulweiche_RR_Pneumatik_3D.dwg 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 index 752ab6e..7d37e37 100644 Binary files a/data/ils/Modulweiche_RR_Zylinder_2D.dwg 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 index 4812483..5608abd 100644 Binary files a/data/ils/Modulweiche_RR_Zylinder_3D.dwg 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 index 2d55705..cb795dd 100644 Binary files a/data/ils/SC_Entladung_2D.dwg 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 index 5e1f0cd..a73690e 100644 Binary files a/data/ils/SC_Entladung_3D.dwg and b/data/ils/SC_Entladung_3D.dwg differ diff --git a/data/ils/SP8_2D.dwg b/data/ils/SP8_2D.dwg index 426fd81..e4f9ddb 100644 Binary files a/data/ils/SP8_2D.dwg and b/data/ils/SP8_2D.dwg differ diff --git a/data/ils/SP8_3D.dwg b/data/ils/SP8_3D.dwg index 3554754..011e6e6 100644 Binary files a/data/ils/SP8_3D.dwg and b/data/ils/SP8_3D.dwg differ diff --git a/data/ils/Staustrecke_SP_1000_mm_2D.dwg b/data/ils/Staustrecke_SP_1000_mm_2D.dwg index 8e23716..db4a21b 100644 Binary files a/data/ils/Staustrecke_SP_1000_mm_2D.dwg 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 index 76af4c8..dfd8655 100644 Binary files a/data/ils/Staustrecke_SP_1000_mm_3D.dwg 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 index 34556d1..e7327c8 100644 Binary files a/data/ils/Staustrecke_SP_Vario_links_1000_mm_2D.dwg 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 index 9c2c59f..2ebc454 100644 Binary files a/data/ils/Staustrecke_SP_Vario_links_1000_mm_3D.dwg 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 index b024bfc..6b03ceb 100644 Binary files a/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_2D.dwg 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 index aee0a82..09cd04b 100644 Binary files a/data/ils/Staustrecke_SP_Vario_rechts_1000_mm_3D.dwg 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 index c2b183c..3573a4c 100644 Binary files a/data/ils/Staustrecke_Separator_SP_300_mm_2D.dwg 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 index 73bdbcd..a4f46f5 100644 Binary files a/data/ils/Staustrecke_Separator_SP_300_mm_3D.dwg 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 index 76727fa..6592103 100644 Binary files a/data/ils/Vario_Bogen_ab_12_TEF_rechts_2D.dwg 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 index 136c695..b7350db 100644 Binary files a/data/ils/Vario_Bogen_ab_12_TEF_rechts_3D.dwg 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 index 4e9fc3f..7247df6 100644 Binary files a/data/ils/Vario_Bogen_ab_15_TEF_rechts_2D.dwg 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 index d459bc3..46fb318 100644 Binary files a/data/ils/Vario_Bogen_ab_15_TEF_rechts_3D.dwg 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 index 8c8dd86..9602793 100644 Binary files a/data/ils/Vario_Bogen_ab_18_TEF_rechts_2D.dwg 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 index 8ccfc52..75ddd38 100644 Binary files a/data/ils/Vario_Bogen_ab_18_TEF_rechts_3D.dwg 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 index 5181c4f..f82e83f 100644 Binary files a/data/ils/Vario_Bogen_ab_21_TEF_rechts_2D.dwg 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 index 34e3780..3076142 100644 Binary files a/data/ils/Vario_Bogen_ab_21_TEF_rechts_3D.dwg 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 index 0b0d765..f32af5a 100644 Binary files a/data/ils/Vario_Bogen_ab_27_TEF_rechts_2D.dwg 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 index 771a72d..fb37abe 100644 Binary files a/data/ils/Vario_Bogen_ab_27_TEF_rechts_3D.dwg 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 index 1d329ab..14c8c6c 100644 Binary files a/data/ils/Vario_Bogen_ab_33_TEF_rechts_2D.dwg 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 index 2e17fc1..4d1cc7c 100644 Binary files a/data/ils/Vario_Bogen_ab_33_TEF_rechts_3D.dwg 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 index 075e155..21ea543 100644 Binary files a/data/ils/Vario_Bogen_ab_39_TEF_rechts_2D.dwg 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 index e857adb..5471839 100644 Binary files a/data/ils/Vario_Bogen_ab_39_TEF_rechts_3D.dwg 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 index 4a742c1..6b664f0 100644 Binary files a/data/ils/Vario_Bogen_ab_3_TEF_rechts_2D.dwg 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 index 31f05bb..cf7a752 100644 Binary files a/data/ils/Vario_Bogen_ab_3_TEF_rechts_3D.dwg 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 index e01b15c..aa3e458 100644 Binary files a/data/ils/Vario_Bogen_ab_45_TEF_rechts_2D.dwg 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 index 9813f37..c62b28c 100644 Binary files a/data/ils/Vario_Bogen_ab_45_TEF_rechts_3D.dwg 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 index 6440443..ea1cf96 100644 Binary files a/data/ils/Vario_Bogen_ab_51_TEF_rechts_2D.dwg 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 index ee37128..f39b956 100644 Binary files a/data/ils/Vario_Bogen_ab_51_TEF_rechts_3D.dwg 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 index c5f0683..abeea7e 100644 Binary files a/data/ils/Vario_Bogen_ab_6_TEF_rechts_2D.dwg 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 index b6e2759..f7a1187 100644 Binary files a/data/ils/Vario_Bogen_ab_6_TEF_rechts_3D.dwg 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 index 1ab2bad..7a20c64 100644 Binary files a/data/ils/Vario_Bogen_ab_9_TEF_rechts_2D.dwg 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 index 76b2521..577b7a2 100644 Binary files a/data/ils/Vario_Bogen_ab_9_TEF_rechts_3D.dwg 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 index 6b61744..f5c0249 100644 Binary files a/data/ils/Vario_Bogen_auf_12_TEF_rechts_2D.dwg 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 index 637db1e..46781e6 100644 Binary files a/data/ils/Vario_Bogen_auf_12_TEF_rechts_3D.dwg 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 index 8dc1793..29ca6d2 100644 Binary files a/data/ils/Vario_Bogen_auf_15_TEF_rechts_2D.dwg 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 index ff95eaa..b281e93 100644 Binary files a/data/ils/Vario_Bogen_auf_15_TEF_rechts_3D.dwg 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 index a313076..cb55175 100644 Binary files a/data/ils/Vario_Bogen_auf_18_TEF_rechts_2D.dwg 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 index 40732d3..3044aa8 100644 Binary files a/data/ils/Vario_Bogen_auf_18_TEF_rechts_3D.dwg 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 index 7d6704e..dd9a07a 100644 Binary files a/data/ils/Vario_Bogen_auf_21_TEF_rechts_2D.dwg 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 index 5788f08..7a6a414 100644 Binary files a/data/ils/Vario_Bogen_auf_21_TEF_rechts_3D.dwg 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 index 6fe72b8..564e7cf 100644 Binary files a/data/ils/Vario_Bogen_auf_27_TEF_rechts_2D.dwg 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 index 8ada581..b489a44 100644 Binary files a/data/ils/Vario_Bogen_auf_27_TEF_rechts_3D.dwg 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 index c2b0fc5..f765534 100644 Binary files a/data/ils/Vario_Bogen_auf_33_TEF_rechts_2D.dwg 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 index 779a08e..c43d429 100644 Binary files a/data/ils/Vario_Bogen_auf_33_TEF_rechts_3D.dwg 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 index dee60a9..832cc47 100644 Binary files a/data/ils/Vario_Bogen_auf_39_TEF_rechts_2D.dwg 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 index a8f9aa1..9ecfe1d 100644 Binary files a/data/ils/Vario_Bogen_auf_39_TEF_rechts_3D.dwg 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 index d80332c..09e9f83 100644 Binary files a/data/ils/Vario_Bogen_auf_3_TEF_rechts_2D.dwg 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 index 3e2509e..c1aca4b 100644 Binary files a/data/ils/Vario_Bogen_auf_3_TEF_rechts_3D.dwg 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 index 9954e45..6f57840 100644 Binary files a/data/ils/Vario_Bogen_auf_45_TEF_rechts_2D.dwg 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 index 4735a60..c16f342 100644 Binary files a/data/ils/Vario_Bogen_auf_45_TEF_rechts_3D.dwg 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 index f181c36..a1a06a4 100644 Binary files a/data/ils/Vario_Bogen_auf_51_TEF_rechts_2D.dwg 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 index 428726f..e5a9072 100644 Binary files a/data/ils/Vario_Bogen_auf_51_TEF_rechts_3D.dwg 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 index a9cb5f0..fec6d7e 100644 Binary files a/data/ils/Vario_Bogen_auf_6_TEF_rechts_2D.dwg 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 index 25350c5..2fd808e 100644 Binary files a/data/ils/Vario_Bogen_auf_6_TEF_rechts_3D.dwg 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 index 996bf87..05845ff 100644 Binary files a/data/ils/Vario_Bogen_auf_9_TEF_rechts_2D.dwg 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 index 6738e54..9127a1f 100644 Binary files a/data/ils/Vario_Bogen_auf_9_TEF_rechts_3D.dwg 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 index 2700029..90a27d1 100644 Binary files a/data/ils/Vario_Kurve_links_30_TEF_aussen_2D.dwg 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 index 4824591..26c471e 100644 Binary files a/data/ils/Vario_Kurve_links_30_TEF_aussen_3D.dwg 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 index 6a678bc..449f1a4 100644 Binary files a/data/ils/Vario_Kurve_links_30_TEF_innen_2D.dwg 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 index a08d432..e686ca2 100644 Binary files a/data/ils/Vario_Kurve_links_30_TEF_innen_3D.dwg 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 index ba6ad64..a7673a0 100644 Binary files a/data/ils/Vario_Kurve_links_60_TEF_aussen_2D.dwg 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 index 1b75d8f..3422e1a 100644 Binary files a/data/ils/Vario_Kurve_links_60_TEF_aussen_3D.dwg 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 index 6e4f3c3..9f9e50a 100644 Binary files a/data/ils/Vario_Kurve_links_60_TEF_innen_2D.dwg 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 index 956b81d..2431d8a 100644 Binary files a/data/ils/Vario_Kurve_links_60_TEF_innen_3D.dwg 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 index b95fd84..28a8c0b 100644 Binary files a/data/ils/Vario_Kurve_links_90_TEF_aussen_2D.dwg 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 index 689ddef..cac1a49 100644 Binary files a/data/ils/Vario_Kurve_links_90_TEF_aussen_3D.dwg 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 index be87805..115e777 100644 Binary files a/data/ils/Vario_Kurve_links_90_TEF_innen_2D.dwg 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 index ec3c3e6..1521527 100644 Binary files a/data/ils/Vario_Kurve_links_90_TEF_innen_3D.dwg 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 index dea3279..7643a5a 100644 Binary files a/data/ils/Vario_Kurve_rechts_30_TEF_aussen_2D.dwg 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 index cb8182c..0785c1c 100644 Binary files a/data/ils/Vario_Kurve_rechts_30_TEF_aussen_3D.dwg 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 index 026643b..70718a3 100644 Binary files a/data/ils/Vario_Kurve_rechts_30_TEF_innen_2D.dwg 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 index 094274c..305043a 100644 Binary files a/data/ils/Vario_Kurve_rechts_30_TEF_innen_3D.dwg 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 index f34c2a5..315a8bd 100644 Binary files a/data/ils/Vario_Kurve_rechts_60_TEF_aussen_2D.dwg 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 index b0bbf54..1cc9d37 100644 Binary files a/data/ils/Vario_Kurve_rechts_60_TEF_aussen_3D.dwg 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 index 1bf15de..7024b6d 100644 Binary files a/data/ils/Vario_Kurve_rechts_60_TEF_innen_2D.dwg 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 index 2f83b13..f2ce76c 100644 Binary files a/data/ils/Vario_Kurve_rechts_60_TEF_innen_3D.dwg 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 index 82f99af..b926fcf 100644 Binary files a/data/ils/Vario_Kurve_rechts_90_TEF_aussen_2D.dwg 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 index 4b4c28c..e8aee70 100644 Binary files a/data/ils/Vario_Kurve_rechts_90_TEF_aussen_3D.dwg 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 index 2ec611c..d3a9b0c 100644 Binary files a/data/ils/Vario_Kurve_rechts_90_TEF_innen_2D.dwg 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 index 84d5e3d..8d07940 100644 Binary files a/data/ils/Vario_Kurve_rechts_90_TEF_innen_3D.dwg and b/data/ils/Vario_Kurve_rechts_90_TEF_innen_3D.dwg differ diff --git a/data/ils/Vario_Motorstation_500mm_links_2D.dwg b/data/ils/Vario_Motorstation_500mm_links_2D.dwg index bb4a5e0..a6c3fe5 100644 Binary files a/data/ils/Vario_Motorstation_500mm_links_2D.dwg 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 index 71cc82f..7c5560c 100644 Binary files a/data/ils/Vario_Motorstation_500mm_links_3D.dwg 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 index 94660a6..4ed19e3 100644 Binary files a/data/ils/Vario_Motorstation_500mm_rechts_2D.dwg 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 index f1e41b9..3259cc6 100644 Binary files a/data/ils/Vario_Motorstation_500mm_rechts_3D.dwg 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 index 4c85643..4121f96 100644 Binary files a/data/ils/Vario_Staustrecke_SP_1000_mm_3D.dwg and b/data/ils/Vario_Staustrecke_SP_1000_mm_3D.dwg differ diff --git a/data/ils/Vario_Umlenkstation_500mm_links_2D.dwg b/data/ils/Vario_Umlenkstation_500mm_links_2D.dwg index 28462d2..4fac7f4 100644 Binary files a/data/ils/Vario_Umlenkstation_500mm_links_2D.dwg 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 index 0d593f2..ad5b554 100644 Binary files a/data/ils/Vario_Umlenkstation_500mm_links_3D.dwg 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 index db13742..3ccebca 100644 Binary files a/data/ils/Vario_Umlenkstation_500mm_rechts_2D.dwg 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 index 7fe33eb..e9de881 100644 Binary files a/data/ils/Vario_Umlenkstation_500mm_rechts_3D.dwg 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 index 1bdfd00..c3364bf 100644 Binary files a/data/ils/Vereinzeler_BHS_links_3D.dwg 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 index 701c2d9..6620b2e 100644 Binary files a/data/ils/Vereinzeler_BHS_rechts_3D.dwg and b/data/ils/Vereinzeler_BHS_rechts_3D.dwg differ