From a56fa8918a6d514fffc380ac492d0cccb3d1feb2 Mon Sep 17 00:00:00 2001
From: Paul Wolok
Date: Tue, 21 Oct 2025 16:27:26 +0200
Subject: [PATCH] Die Vario Foerder kann man nun mit Kreisel verbinden
---
cfg/shapes.cfg | 65 +++-
lib/plant2dxf.py | 811 ++++++++++++++++++++++++++++++++++-------------
2 files changed, 648 insertions(+), 228 deletions(-)
diff --git a/cfg/shapes.cfg b/cfg/shapes.cfg
index c0dc8a9..a5d7570 100644
--- a/cfg/shapes.cfg
+++ b/cfg/shapes.cfg
@@ -16,8 +16,65 @@ esoffset = 479.95
[ILS 2.0 Variofoerderer]
-Vario_Bogen_auf_39_Delta_SP_0 = 489.1281, 0, 25.6341
-Vario_Bogen_auf_39_Delta_SP_1 = 358.3992, 0, 260.3923
-Vario_Bogen_ab_39_Delta_SP_0 = 335.7703, 0, 243.9534
-Vario_Bogen_ab_39_Delta_SP_1 =461.1878, 0, 24.1747
+Umlenkstation = 499.3148,0,26.1680
+
+
+Vario_Bogen_auf_51_Delta_SP_0_aufwaerts= 629.34, 0, 32.98
+Vario_Bogen_auf_51_Delta_SP_1_aufwaerts = 433.90, 0, 481.89
+
+Vario_Bogen_ab_51_Delta_SP_0_aufwaerts = 408.68, 0, 453.89
+Vario_Bogen_ab_51_Delta_SP_1_aufwaerts =591.71, 0, 31.01
+
+Vario_Bogen_auf_51_Delta_VP_1_aufwaerts = 30.77, 51.3653,28.59
+Vario_Bogen_ab_51_Delta_VP_0_aufwaerts = 32.97,51.3653,26.6341
+
+Vario_Bogen_auf_39_Delta_SP_0_aufwaerts= 489.1281, 0, 25.6341
+Vario_Bogen_auf_39_Delta_SP_1_aufwaerts = 358.3992, 0, 260.3923
+
+Vario_Bogen_ab_39_Delta_SP_0_aufwaerts = 335.7703, 0, 243.9534
+Vario_Bogen_ab_39_Delta_SP_1_aufwaerts =461.1878, 0, 24.1747
+
+Vario_Bogen_auf_39_Delta_VP_1_aufwaerts = 335.3992, 51.3653, 35.5535
+Vario_Bogen_ab_39_Delta_VP_0_aufwaerts = 364.86,51.3653,25.6341
+
+
+Vario_Bogen_auf_27_Delta_SP_0_aufwaerts =320.5894, 0, 16.8014
+Vario_Bogen_auf_27_Delta_SP_1_aufwaerts = 262.5433,0,116.8918
+
+Vario_Bogen_ab_27_Delta_SP_0_aufwaerts =245.2168, 0, 109.1776
+Vario_Bogen_ab_27_Delta_SP_1_aufwaerts = 301.6492,0,15.8088
+
+Vario_Bogen_auf_27_Delta_VP_1_aufwaerts = 15.4583, 50, 38.66
+Vario_Bogen_ab_27_Delta_VP_0_aufwaerts = 18.928,50, 37.988
+
+Vario_Bogen_auf_18_Delta_SP_0_aufwaerts = 301.4561, 0,15.7986
+Vario_Bogen_auf_18_Delta_SP_1_aufwaerts = 291.5838, 0,78.1296
+
+Vario_Bogen_ab_18_Delta_SP_0_aufwaerts = 279.4978, 0,74.8912
+Vario_Bogen_ab_18_Delta_SP_1_aufwaerts = 288.9608, 0,15.1438
+
+
+Vario_Bogen_auf_18_Delta_VP_1_aufwaerts = 11.62, 50, 40.37
+Vario_Bogen_ab_18_Delta_VP_0_aufwaerts = 10.53,50, 40.59
+
+
+Vario_Bogen_auf_15_Delta_SP_0_aufwaerts = 149.7944, 0,7.8504
+Vario_Bogen_auf_15_Delta_SP_1_aufwaerts = 146.7221, 0,31.1868
+
+Vario_Bogen_ab_15_Delta_SP_0_aufwaerts = 136.55, 0,29.02
+Vario_Bogen_ab_15_Delta_SP_1_aufwaerts = 139.41, 0,7.31
+
+Vario_Bogen_auf_15_Delta_VP_1_aufwaerts = 8.28, 50, 41.18
+Vario_Bogen_ab_15_Delta_VP_0_aufwaerts = 9.15,50, 40.99
+
+Vario_Bogen_auf_12_Delta_SP_0_aufwaerts = 149.7944, 0,7.8504
+Vario_Bogen_auf_12_Delta_SP_1_aufwaerts = 148.1533, 0,23.4652
+
+Vario_Bogen_ab_12_Delta_SP_0_aufwaerts = 139.95, 0,22.17
+Vario_Bogen_ab_12_Delta_SP_1_aufwaerts = 141.5026, 0,7.4158
+
+Vario_Bogen_auf_12_Delta_VP_1_aufwaerts = 5.5, 50, 41.49
+Vario_Bogen_ab_12_Delta_VP_0_aufwaerts = 7.23,50, 41.38
+
+
diff --git a/lib/plant2dxf.py b/lib/plant2dxf.py
index 7e11079..f1e467b 100644
--- a/lib/plant2dxf.py
+++ b/lib/plant2dxf.py
@@ -14,9 +14,6 @@ import ezdxf
from ezdxf import units
from ezdxf.entities import Line
from ezdxf.math import Matrix44, X_AXIS,Y_AXIS,Z_AXIS
-from ezdxf.math import UCS
-from ezdxf import transform
-from ezdxf.addons.importer import Importer
from pathlib import Path
import math
from utils import check_environment_var, setup_logger
@@ -91,8 +88,7 @@ def import_block(block_name: str, from_doc, to_doc, winkel = None) -> None:
- Stellt sicher, dass benutzte Layer im Ziel existieren (mit Eigenschaften)
- Übernimmt Basispunkt und Block-Layer, falls vorhanden
"""
- if block_name == '200000291_Staustrecke_SP_steigend__6':
- test = 3
+
if (block_name in to_doc.blocks):
return
@@ -428,41 +424,41 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
abstand_gegen_kreis_ende_y_round = ende_round[0] , ende_round[1] - RADIUS
- if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_start_x_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_start_x_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_start_x_floor == pos0_1_floor) or
- (abstand_fuer_kreis_ende_x_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_ende_x_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_ende_x_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_ende_x_floor == pos0_1_floor) or
+ if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_start_x_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_start_x_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_start_x_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_ende_x_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_ende_x_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_ende_x_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_ende_x_floor == pos0_1_floor) or
- (abstand_fuer_kreis_start_y_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_start_y_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos0_1_floor) or
- (abstand_fuer_kreis_ende_y_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_ende_y_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos0_1_floor) or
- (abstand_fuer_kreis_start_x_round == pos0_0_round )or
- ( abstand_fuer_kreis_start_x_round == pos0_1_round) or
- ( abstand_gegen_kreis_start_x_round == pos0_0_round) or
- ( abstand_gegen_kreis_start_x_round == pos0_1_round) or
- (abstand_fuer_kreis_ende_x_round == pos0_0_round)or
- ( abstand_fuer_kreis_ende_x_round== pos0_1_round) or
- ( abstand_gegen_kreis_ende_x_round == pos0_0_round) or
- ( abstand_gegen_kreis_ende_x_round == pos0_1_round) or
+ (abstand_fuer_kreis_start_x_round == pos0_0_round) or
+ (abstand_fuer_kreis_start_x_round == pos0_1_round) or
+ (abstand_gegen_kreis_start_x_round == pos0_0_round) or
+ (abstand_gegen_kreis_start_x_round == pos0_1_round) or
+ (abstand_fuer_kreis_ende_x_round == pos0_0_round) or
+ (abstand_fuer_kreis_ende_x_round == pos0_1_round) or
+ (abstand_gegen_kreis_ende_x_round == pos0_0_round) or
+ (abstand_gegen_kreis_ende_x_round == pos0_1_round) or
- (abstand_fuer_kreis_start_y_round == pos0_0_round)or
- (abstand_fuer_kreis_start_y_round == pos0_1_round) or
+ (abstand_fuer_kreis_start_y_round == pos0_0_round) or
+ (abstand_fuer_kreis_start_y_round == pos0_1_round) or
(abstand_gegen_kreis_start_y_round == pos0_0_round) or
(abstand_gegen_kreis_start_y_round == pos0_1_round) or
- (abstand_fuer_kreis_ende_y_round == pos0_0_round)or
- ( abstand_fuer_kreis_ende_y_round == pos0_1_round) or
- ( abstand_gegen_kreis_ende_y_round == pos0_0_round) or
- ( abstand_gegen_kreis_ende_y_round == pos0_1_round)
+ (abstand_fuer_kreis_ende_y_round == pos0_0_round) or
+ (abstand_fuer_kreis_ende_y_round == pos0_1_round) or
+ (abstand_gegen_kreis_ende_y_round == pos0_0_round) or
+ (abstand_gegen_kreis_ende_y_round == pos0_1_round)
):
kreisel_verbunden = kreisel_verbunden +1
# setzung auf kreisel 1 für spätere ausrechnung der geraden form
@@ -484,7 +480,7 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
rotation = 90
elif gefaelle == "rechts" :
rotation = 270
- erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle, drehung0, laenge, hight, blockname)
+ erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle, drehung0, laenge, blockname,hight)
blockref_layer = get_layer(doc, lib_doc, blockname)
bref =msp.add_blockref(blockname,(x,y,hoehe_gefaehlle),dxfattribs={"rotation": rotation, "layer": blockref_layer})
a =bref.add_attrib(
@@ -570,41 +566,41 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
# vergleich mit einem kreisel von zwei
- if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_start_x_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_start_x_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_start_x_floor == pos0_1_floor) or
- (abstand_fuer_kreis_ende_x_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_ende_x_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_ende_x_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_ende_x_floor == pos0_1_floor) or
+ if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_start_x_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_start_x_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_start_x_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_ende_x_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_ende_x_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_ende_x_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_ende_x_floor == pos0_1_floor) or
- (abstand_fuer_kreis_start_y_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_start_y_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos0_1_floor) or
- (abstand_fuer_kreis_ende_y_floor == pos0_0_floor )or
- ( abstand_fuer_kreis_ende_y_floor == pos0_1_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos0_0_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos0_1_floor) or
- (abstand_fuer_kreis_start_x_round == pos0_0_round )or
- ( abstand_fuer_kreis_start_x_round == pos0_1_round) or
- ( abstand_gegen_kreis_start_x_round == pos0_0_round) or
- ( abstand_gegen_kreis_start_x_round == pos0_1_round) or
- (abstand_fuer_kreis_ende_x_round == pos0_0_round)or
- ( abstand_fuer_kreis_ende_x_round== pos0_1_round) or
- ( abstand_gegen_kreis_ende_x_round == pos0_0_round) or
- ( abstand_gegen_kreis_ende_x_round == pos0_1_round) or
+ (abstand_fuer_kreis_start_x_round == pos0_0_round ) or
+ (abstand_fuer_kreis_start_x_round == pos0_1_round) or
+ (abstand_gegen_kreis_start_x_round == pos0_0_round) or
+ (abstand_gegen_kreis_start_x_round == pos0_1_round) or
+ (abstand_fuer_kreis_ende_x_round == pos0_0_round) or
+ (abstand_fuer_kreis_ende_x_round == pos0_1_round) or
+ (abstand_gegen_kreis_ende_x_round == pos0_0_round) or
+ (abstand_gegen_kreis_ende_x_round == pos0_1_round) or
- (abstand_fuer_kreis_start_y_round == pos0_0_round)or
- (abstand_fuer_kreis_start_y_round == pos0_1_round) or
+ (abstand_fuer_kreis_start_y_round == pos0_0_round) or
+ (abstand_fuer_kreis_start_y_round == pos0_1_round) or
(abstand_gegen_kreis_start_y_round == pos0_0_round) or
(abstand_gegen_kreis_start_y_round == pos0_1_round) or
- (abstand_fuer_kreis_ende_y_round == pos0_0_round)or
- ( abstand_fuer_kreis_ende_y_round == pos0_1_round) or
- ( abstand_gegen_kreis_ende_y_round == pos0_0_round) or
- ( abstand_gegen_kreis_ende_y_round == pos0_1_round)
+ (abstand_fuer_kreis_ende_y_round == pos0_0_round) or
+ (abstand_fuer_kreis_ende_y_round == pos0_1_round) or
+ (abstand_gegen_kreis_ende_y_round == pos0_0_round) or
+ (abstand_gegen_kreis_ende_y_round == pos0_1_round)
):
kreisel_verbunden = kreisel_verbunden +1
# setzung auf kreisel 1 für spätere ausrechnung der geraden form
@@ -612,41 +608,41 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
- if( (abstand_fuer_kreis_start_x_floor == pos1_0_floor )or
- ( abstand_fuer_kreis_start_x_floor == pos1_1_floor) or
- ( abstand_gegen_kreis_start_x_floor == pos1_0_floor) or
- ( abstand_gegen_kreis_start_x_floor == pos1_1_floor) or
- (abstand_fuer_kreis_ende_x_floor == pos1_0_floor )or
- ( abstand_fuer_kreis_ende_x_floor == pos1_1_floor) or
- ( abstand_gegen_kreis_ende_x_floor == pos1_0_floor) or
- ( abstand_gegen_kreis_ende_x_floor == pos1_1_floor) or
+ if( (abstand_fuer_kreis_start_x_floor == pos1_0_floor )or
+ (abstand_fuer_kreis_start_x_floor == pos1_1_floor) or
+ (abstand_gegen_kreis_start_x_floor == pos1_0_floor) or
+ (abstand_gegen_kreis_start_x_floor == pos1_1_floor) or
+ (abstand_fuer_kreis_ende_x_floor == pos1_0_floor) or
+ (abstand_fuer_kreis_ende_x_floor == pos1_1_floor) or
+ (abstand_gegen_kreis_ende_x_floor == pos1_0_floor) or
+ (abstand_gegen_kreis_ende_x_floor == pos1_1_floor) or
- (abstand_fuer_kreis_start_y_floor == pos1_0_floor )or
- ( abstand_fuer_kreis_start_y_floor == pos1_1_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos1_0_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos1_1_floor) or
- (abstand_fuer_kreis_ende_y_floor == pos1_0_floor )or
- ( abstand_fuer_kreis_ende_y_floor == pos1_1_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos1_0_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos1_1_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos1_0_floor ) or
+ (abstand_fuer_kreis_start_y_floor == pos1_1_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos1_0_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos1_1_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos1_0_floor ) or
+ (abstand_fuer_kreis_ende_y_floor == pos1_1_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos1_0_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos1_1_floor) or
- (abstand_fuer_kreis_start_x_round == pos1_0_round )or
- ( abstand_fuer_kreis_start_x_round == pos1_1_round) or
- ( abstand_gegen_kreis_start_x_round == pos1_0_round) or
- ( abstand_gegen_kreis_start_x_round == pos1_1_round) or
- (abstand_fuer_kreis_ende_x_round == pos1_0_round)or
- ( abstand_fuer_kreis_ende_x_round== pos1_1_round) or
- ( abstand_gegen_kreis_ende_x_round == pos1_0_round) or
- ( abstand_gegen_kreis_ende_x_round == pos1_1_round) or
+ (abstand_fuer_kreis_start_x_round == pos1_0_round ) or
+ (abstand_fuer_kreis_start_x_round == pos1_1_round) or
+ (abstand_gegen_kreis_start_x_round == pos1_0_round) or
+ (abstand_gegen_kreis_start_x_round == pos1_1_round) or
+ (abstand_fuer_kreis_ende_x_round == pos1_0_round) or
+ (abstand_fuer_kreis_ende_x_round == pos1_1_round) or
+ (abstand_gegen_kreis_ende_x_round == pos1_0_round) or
+ (abstand_gegen_kreis_ende_x_round == pos1_1_round) or
- (abstand_fuer_kreis_start_y_round == pos1_0_round)or
- (abstand_fuer_kreis_start_y_round == pos1_1_round) or
+ (abstand_fuer_kreis_start_y_round == pos1_0_round) or
+ (abstand_fuer_kreis_start_y_round == pos1_1_round) or
(abstand_gegen_kreis_start_y_round == pos1_0_round) or
(abstand_gegen_kreis_start_y_round == pos1_1_round) or
- (abstand_fuer_kreis_ende_y_round == pos1_0_round)or
- ( abstand_fuer_kreis_ende_y_round == pos1_1_round) or
- ( abstand_gegen_kreis_ende_y_round == pos1_0_round) or
- ( abstand_gegen_kreis_ende_y_round == pos1_1_round)
+ (abstand_fuer_kreis_ende_y_round == pos1_0_round) or
+ (abstand_fuer_kreis_ende_y_round == pos1_1_round) or
+ (abstand_gegen_kreis_ende_y_round == pos1_0_round) or
+ (abstand_gegen_kreis_ende_y_round == pos1_1_round)
):
kreisel_verbunden = kreisel_verbunden +1
am_kreisel = 2
@@ -675,42 +671,42 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
# setzung von richtung2 auf vertikal oder horizontal je nach dem welche orientierung der kreisel hat mit dem man am kreisel verbunden ist
if (richtung0 != richtung1 and kreisel_verbunden ==1):
if(
- (abstand_fuer_kreis_start_y_floor== pos0_0_floor)or
- (abstand_fuer_kreis_start_y_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos0_0_floor)or
+ (abstand_fuer_kreis_start_y_floor == pos0_1_floor) or
(abstand_gegen_kreis_start_y_floor == pos0_0_floor) or
(abstand_gegen_kreis_start_y_floor == pos0_1_floor) or
- (abstand_fuer_kreis_ende_y_floor == pos0_0_floor)or
- (abstand_fuer_kreis_ende_y_floor== pos0_1_floor) or
- (abstand_gegen_kreis_ende_y_floor == pos0_0_floor) or
- (abstand_gegen_kreis_ende_y_floor== pos0_1_floor) or
- (abstand_fuer_kreis_start_y_round == pos0_0_round)or
- (abstand_fuer_kreis_start_y_round == pos0_1_round) or
+ (abstand_fuer_kreis_ende_y_floor == pos0_0_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos0_1_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos0_0_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos0_1_floor) or
+ (abstand_fuer_kreis_start_y_round == pos0_0_round)or
+ (abstand_fuer_kreis_start_y_round == pos0_1_round) or
(abstand_gegen_kreis_start_y_round == pos0_0_round) or
- (abstand_gegen_kreis_start_y_round== pos0_1_round) or
- (abstand_fuer_kreis_ende_y_round == pos0_0_round)or
- (abstand_fuer_kreis_ende_y_round== pos0_1_round) or
- (abstand_gegen_kreis_ende_y_round== pos0_0_round) or
- (abstand_gegen_kreis_ende_y_round == pos0_1_round) or
+ (abstand_gegen_kreis_start_y_round == pos0_1_round) or
+ (abstand_fuer_kreis_ende_y_round == pos0_0_round) or
+ (abstand_fuer_kreis_ende_y_round == pos0_1_round) or
+ (abstand_gegen_kreis_ende_y_round == pos0_0_round) or
+ (abstand_gegen_kreis_ende_y_round == pos0_1_round) or
- (abstand_fuer_kreis_start_y_floor == pos1_0_floor )or
- ( abstand_fuer_kreis_start_y_floor == pos1_1_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos1_0_floor) or
- ( abstand_gegen_kreis_start_y_floor == pos1_1_floor) or
- (abstand_fuer_kreis_ende_y_floor == pos1_0_floor )or
- ( abstand_fuer_kreis_ende_y_floor== pos1_1_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos1_0_floor) or
- ( abstand_gegen_kreis_ende_y_floor == pos1_1_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos1_0_floor) or
+ (abstand_fuer_kreis_start_y_floor == pos1_1_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos1_0_floor) or
+ (abstand_gegen_kreis_start_y_floor == pos1_1_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos1_0_floor) or
+ (abstand_fuer_kreis_ende_y_floor == pos1_1_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos1_0_floor) or
+ (abstand_gegen_kreis_ende_y_floor == pos1_1_floor) or
- (abstand_fuer_kreis_start_y_round == pos1_0_round)or
- ( abstand_fuer_kreis_start_y_round == pos1_1_round) or
- ( abstand_gegen_kreis_start_y_round == pos1_0_round) or
- ( abstand_gegen_kreis_start_y_round== pos1_1_round) or
- (abstand_fuer_kreis_ende_y_round == pos1_0_round)or
- ( abstand_fuer_kreis_ende_y_round == pos1_1_round) or
- ( abstand_gegen_kreis_ende_y_round == pos1_0_round) or
- ( abstand_gegen_kreis_ende_y_round == pos1_1_round)
+ (abstand_fuer_kreis_start_y_round == pos1_0_round) or
+ (abstand_fuer_kreis_start_y_round == pos1_1_round) or
+ (abstand_gegen_kreis_start_y_round == pos1_0_round) or
+ (abstand_gegen_kreis_start_y_round == pos1_1_round) or
+ (abstand_fuer_kreis_ende_y_round == pos1_0_round) or
+ (abstand_fuer_kreis_ende_y_round == pos1_1_round) or
+ (abstand_gegen_kreis_ende_y_round == pos1_0_round) or
+ (abstand_gegen_kreis_ende_y_round == pos1_1_round)
):
richtung2= "Vertikal"
else:
@@ -851,69 +847,359 @@ def handle_ils_2_0_gefaellestrecke(msp, teileid, merkmale, x, y, doc, lib_doc, v
def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config):
if "VARIO" not in doc.layers:
doc.layers.add(name="VARIO", color=3)
+ voerder_richtung = merkmale.get("Förderrichtung")
+ winkel = int(merkmale.get("Winkel"))
verbunden_am_einen = False
-
-
am_kreisel = 0
+ ein_kreisel_höher = False
richtung2 ="DEFAULT"
unterschiedlich = False
asoffset = float(config.get("ILS 2.0 Gefällestrecke", "asoffset"))
esoffset = float(config.get("ILS 2.0 Gefällestrecke", "esoffset"))
- Vario_Bogen_auf_39_Delta_SP_0 = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_39_Delta_SP_0")).split(","))
- Vario_Bogen_auf_39_Delta_SP_1 = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_39_Delta_SP_1")).split(","))
- Vario_Bogen_ab_39_Delta_SP_0 = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_39_Delta_SP_0")).split(","))
- Vario_Bogen_ab_39_Delta_SP_1 = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_39_Delta_SP_1")).split(","))
+ umlenk_motor_offset = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Umlenkstation")).split(","))
block_Vario_Umlenkstation_500mm ="Vario_Umlenkstation_500mm"
- block_Vario_Bogen_auf_39 = "Vario_Bogen_auf_39°"
- block_Vario_Bogen_ab_39 = "Vario_Bogen_ab_39°"
block_Vario_Motorstation_500mm = "Vario_Motorstation_500mm"
- upper_hoehe_vario= float(merkmale.get("Höhe Anfang")) *1000
- lower_hoehe_vario = float(merkmale.get("Höhe Ende")) *1000
- hoehe_vario= (upper_hoehe_vario + lower_hoehe_vario)/2
- for nachbarn in strecken_nachbarn:
- if teileid == nachbarn.get("Id"):
- gefaellestrecke_vario = nachbarn
- break
- block = doc.blocks.new(name="test", base_point=(0,0,0))
- import_block(block_Vario_Umlenkstation_500mm, lib_doc, doc,math.radians(3))
- import_block(block_Vario_Bogen_auf_39, lib_doc, doc,math.radians(3))
- import_block(block_Vario_Bogen_ab_39, lib_doc, doc,math.radians(-36))
import_block( block_Vario_Motorstation_500mm, lib_doc, doc,math.radians(3))
- laenge = float(merkmale.get("Länge in Meter")) *1000
- halbe_laenge = laenge/2
- dx = halbe_laenge * math.cos(0)
+ import_block( block_Vario_Umlenkstation_500mm , lib_doc, doc,math.radians(3))
+
+
+
+
+ upper_hoehe_vario= float(merkmale.get("Höhe Ende")) *1000
+ lower_hoehe_vario = float(merkmale.get("Höhe Anfang")) *1000
if upper_hoehe_vario< lower_hoehe_vario:
hight = upper_hoehe_vario
upper_hoehe_vario = lower_hoehe_vario
lower_hoehe_vario = hight
- start = (x+ dx,y, upper_hoehe_vario)
- ende = (x -dx,y, lower_hoehe_vario)
- # msp.add_line(start, ende)
-
- block.add_blockref(block_Vario_Umlenkstation_500mm,(ende[0] + 249.6574 -x,ende[1] -y ,ende[2] - hoehe_vario -13.0840 ))
- ende = (ende[0] + 499.3148,ende[1],ende[2] -26.1680)
- # msp.add_line(ende, (0, y , ende[2]))
- block.add_blockref(block_Vario_Bogen_auf_39,(ende[0] -x +Vario_Bogen_auf_39_Delta_SP_0[0],ende[1] -y ,ende[2] - Vario_Bogen_auf_39_Delta_SP_0[2]- hoehe_vario ))
- ende = (ende[0] +Vario_Bogen_auf_39_Delta_SP_1[0] + Vario_Bogen_auf_39_Delta_SP_0[0] ,ende[1] ,ende[2] + Vario_Bogen_auf_39_Delta_SP_1[2] - Vario_Bogen_auf_39_Delta_SP_0[2])
-
- block.add_blockref(block_Vario_Motorstation_500mm, (start[0]-x - 249.6574, start[1] -y ,start[2] - hoehe_vario +13.0840))
- start = start[0] - 499.3148, start[1],start[2] +26.1680
- block.add_blockref(block_Vario_Bogen_ab_39 ,(start[0]-x - Vario_Bogen_ab_39_Delta_SP_1[0],start[1] -y ,start[2] - hoehe_vario+Vario_Bogen_ab_39_Delta_SP_1[2]))
- start = start[0] - Vario_Bogen_ab_39_Delta_SP_0[0] - Vario_Bogen_ab_39_Delta_SP_1[0],start[1],start[2] -Vario_Bogen_ab_39_Delta_SP_0[2] + Vario_Bogen_ab_39_Delta_SP_1[2]
- line = Line.new(dxfattribs={"start": start, "end": ende})
-
- copy= line.copy()
+ rotation = rotation -180
+ hoehe_vario= (upper_hoehe_vario + lower_hoehe_vario)/2
+ rotation = float(merkmale.get("Drehung"))
+ for nachbarn in strecken_nachbarn:
+ if teileid == nachbarn.get("Id"):
+ gefaellestrecke_vario = nachbarn
+ break
+ laenge = float(merkmale.get("Länge in Meter")) *1000
+ if "Drehung0" in gefaellestrecke_vario and "Drehung1" not in gefaellestrecke_vario:
+ drehung0 = gefaellestrecke_vario.get("Drehung0")
+ if upper_hoehe_vario == gefaellestrecke_vario.get("Hoehe0"):
+ ein_kreisel_höher = True
+ blockname = (f"Vario_Foerderer_{winkel}_{voerder_richtung}_{laenge}_{hoehe_vario}_rechts_{ein_kreisel_höher}_{drehung0}")
+ block_name_links = (f"Vario_Foerderer_{winkel}_{voerder_richtung}_{laenge}_{hoehe_vario}_links_{ein_kreisel_höher}_{drehung0}")
+ if blockname in doc.blocks:
+ if merkmale.get("Motorseite")== "links":
+ msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ return
+ elif merkmale.get("Motorseite")== "rechts":
+ msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ return
+ block_vario = doc.blocks.new(blockname, base_point=(0,0,0))
+ start, ende =erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_vario, lower_hoehe_vario, hoehe_vario, drehung0, laenge, blockname,None ,block_vario, voerder_richtung, ein_kreisel_höher)
+ if blockname not in doc.blocks or block_name_links not in doc.blocks:
+ vario_erstellung(merkmale, x, y, doc, lib_doc, config, winkel, umlenk_motor_offset, block_Vario_Umlenkstation_500mm, block_Vario_Motorstation_500mm, hoehe_vario, laenge, block_vario,block_name_links, start, ende)
+ if merkmale.get("Motorseite")== "links":
+ msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ if merkmale.get("Motorseite")== "rechts":
+ msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+
+ elif "Drehung0" in gefaellestrecke_vario and "Drehung1" in gefaellestrecke_vario:
+
+ drehung0 = gefaellestrecke_vario.get("Drehung0")
+ drehung1 = gefaellestrecke_vario.get("Drehung1")
+ kreisel_hoehe0 =float(gefaellestrecke_vario.get("Hoehe0"))
+ kreisel_hoehe1= float(gefaellestrecke_vario.get("Hoehe1"))
+ if float(gefaellestrecke_vario.get("Hoehe0"))< float(gefaellestrecke_vario.get("Hoehe1")):
+ drehung2 = drehung0
+ drehung0 = drehung1
+ drehung1 = drehung2
+ blockname = (f"Vario_Foerderer_{winkel}_{voerder_richtung}_{laenge}_{hoehe_vario}_rechts_{drehung0}_{drehung1}")
+ block_name_links = (f"Vario_Foerderer_{winkel}_{voerder_richtung}_{laenge}_{hoehe_vario}_links_{drehung0}_{drehung1}")
+
- copy.translate(-x,-y,-hoehe_vario)
- block.add_entity(copy)
- bref =msp.add_blockref("test",(x,y,hoehe_vario))
- # msp.add_blockref(block_Vario_Bogen_ab_39,(x,y,0 ))
- # msp.add_line((x,y+250,0 ),(x,y-250,0))
- # msp.add_line((x+250,y,0 ),(x-250,y,0))
+ if blockname in doc.blocks:
+ if merkmale.get("Motorseite")== "links":
+ msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ return
+ elif merkmale.get("Motorseite")== "rechts":
+ msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ return
+ block_vario = doc.blocks.new(blockname, base_point=(0,0,0))
+ start, ende =gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_vario, lower_hoehe_vario, hoehe_vario,richtung2, drehung0, drehung1, laenge, None, blockname,block_vario,voerder_richtung)
+ if blockname not in doc.blocks or block_name_links not in doc.blocks:
+ vario_erstellung(merkmale, x, y, doc, lib_doc, config, winkel, umlenk_motor_offset, block_Vario_Umlenkstation_500mm, block_Vario_Motorstation_500mm, hoehe_vario, laenge, block_vario,block_name_links, start, ende)
+ if merkmale.get("Motorseite")== "links":
+ msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ elif merkmale.get("Motorseite")== "rechts":
+ msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ else:
+ halbe_laenge = laenge/2
+ dy = halbe_laenge * math.cos(0)
+ blockname = (f"Vario_Foerderer_{winkel}_{voerder_richtung}_{laenge}_{hoehe_vario}_rechts")
+ block_name_links =(f"Vario_Foerderer_{winkel}_{voerder_richtung}_{laenge}_{hoehe_vario}_links")
+ if blockname in doc.blocks:
+ if merkmale.get("Motorseite")== "links":
+ msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ return
+ elif merkmale.get("Motorseite")== "rechts":
+ msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ return
+ block = doc.blocks.new(blockname, base_point=(0,0,0))
+ start = (x,y +dy, upper_hoehe_vario)
+ ende = (x ,y -dy, lower_hoehe_vario)
+
+
+ if blockname not in doc.blocks or block_name_links not in doc.blocks:
+
+ vario_erstellung(merkmale, x, y, doc, lib_doc, config, winkel, umlenk_motor_offset, block_Vario_Umlenkstation_500mm, block_Vario_Motorstation_500mm, hoehe_vario, laenge, block,block_name_links, start, ende)
+ if merkmale.get("Motorseite")== "links":
+ msp.add_blockref(block_name_links,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+ if merkmale.get("Motorseite")== "rechts":
+ msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
+
+def vario_erstellung(merkmale, x, y, doc, lib_doc, config, winkel, umlenk_motor_offset, block_Vario_Umlenkstation_500mm, block_Vario_Motorstation_500mm, hoehe_vario, laenge, block,block_name_links, start, ende):
+ if merkmale.get("Förderrichtung") == "Auf":
+ block.add_blockref(block_Vario_Umlenkstation_500mm,(ende[0] -x,ende[1] -y + umlenk_motor_offset[0]/2,ende[2] - hoehe_vario -umlenk_motor_offset[2]/2 ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] + umlenk_motor_offset[0],ende[2] -umlenk_motor_offset[2])
+ block.add_blockref(block_Vario_Motorstation_500mm, (start[0]-x , start[1] - umlenk_motor_offset[0]/2 -y ,start[2] - hoehe_vario +umlenk_motor_offset[2]/2),dxfattribs={"rotation": 90})
+ start = start[0] , start[1] - umlenk_motor_offset[0],start[2] +umlenk_motor_offset[2]
+ if winkel == 48:
+ block_Vario_Bogen_auf_51 = "Vario_Bogen_auf_51°"
+ block_Vario_Bogen_ab_51 = "Vario_Bogen_ab_51°"
+ Vario_Bogen_auf_51_Delta_SP_0_aufwaerts = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_51_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_auf_51_Delta_SP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_51_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_51_Delta_SP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_51_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_ab_51_Delta_SP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_51_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_auf_51_Delta_VP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_51_Delta_VP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_51_Delta_VP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_51_Delta_VP_0_aufwaerts")).split(","))
+ import_block(block_Vario_Bogen_auf_51, lib_doc, doc,math.radians(3))
+ import_block(block_Vario_Bogen_ab_51, lib_doc, doc,math.radians(-48))
+
+
+ block.add_blockref(block_Vario_Bogen_auf_51,(ende[0] -x ,ende[1] +Vario_Bogen_auf_51_Delta_SP_0_aufwaerts[0] -y ,ende[2] - Vario_Bogen_auf_51_Delta_SP_0_aufwaerts[2]- hoehe_vario ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] +Vario_Bogen_auf_51_Delta_SP_1_aufwaerts[0] + Vario_Bogen_auf_51_Delta_SP_0_aufwaerts[0] ,ende[2] + Vario_Bogen_auf_51_Delta_SP_1_aufwaerts[2] - Vario_Bogen_auf_51_Delta_SP_0_aufwaerts[2])
+ ende_VP = (ende[0] +Vario_Bogen_auf_51_Delta_VP_1_aufwaerts[1], ende[1]-Vario_Bogen_auf_51_Delta_VP_1_aufwaerts[0],ende[2] + Vario_Bogen_auf_51_Delta_VP_1_aufwaerts[2])
+
+
+ block.add_blockref(block_Vario_Bogen_ab_51 ,(start[0]-x,start[1] - Vario_Bogen_ab_51_Delta_SP_1_aufwaerts[0] -y ,start[2] - hoehe_vario+Vario_Bogen_ab_51_Delta_SP_1_aufwaerts[2]),dxfattribs={"rotation": 90})
+
+ start = start[0] ,start[1] - Vario_Bogen_ab_51_Delta_SP_0_aufwaerts[0] - Vario_Bogen_ab_51_Delta_SP_1_aufwaerts[0],start[2] + Vario_Bogen_ab_51_Delta_SP_1_aufwaerts[2]- Vario_Bogen_ab_51_Delta_SP_0_aufwaerts[2]
+
+ start_VP = start[0] +Vario_Bogen_ab_51_Delta_VP_0_aufwaerts[1],start[1]+Vario_Bogen_ab_51_Delta_VP_0_aufwaerts[0] ,start[2]-Vario_Bogen_ab_51_Delta_VP_0_aufwaerts[2]
+ line_VP = Line.new(dxfattribs={"start":start_VP,"end": ende_VP})
+ line_VP.dxf.layer = "VARIO"
+ copy_VP = line_VP.copy()
+
+ copy_VP.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy_VP)
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+
+
+ elif winkel == 36:
+ block_Vario_Bogen_auf_39 = "Vario_Bogen_auf_39°"
+ block_Vario_Bogen_ab_39 = "Vario_Bogen_ab_39°"
+ Vario_Bogen_auf_39_Delta_SP_0_aufwaerts = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_39_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_auf_39_Delta_SP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_39_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_39_Delta_SP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_39_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_ab_39_Delta_SP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_39_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_auf_39_Delta_VP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_39_Delta_VP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_39_Delta_VP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_39_Delta_VP_0_aufwaerts")).split(","))
+ import_block(block_Vario_Bogen_auf_39, lib_doc, doc,math.radians(3))
+ import_block(block_Vario_Bogen_ab_39, lib_doc, doc,math.radians(-36))
+
+
+ block.add_blockref(block_Vario_Bogen_auf_39,(ende[0] -x ,ende[1] +Vario_Bogen_auf_39_Delta_SP_0_aufwaerts[0] -y ,ende[2] - Vario_Bogen_auf_39_Delta_SP_0_aufwaerts[2]- hoehe_vario ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] +Vario_Bogen_auf_39_Delta_SP_1_aufwaerts[0] + Vario_Bogen_auf_39_Delta_SP_0_aufwaerts[0] ,ende[2] + Vario_Bogen_auf_39_Delta_SP_1_aufwaerts[2] - Vario_Bogen_auf_39_Delta_SP_0_aufwaerts[2])
+ ende_VP = (ende[0] +Vario_Bogen_auf_39_Delta_VP_1_aufwaerts[1], ende[1] +Vario_Bogen_auf_39_Delta_SP_1_aufwaerts[0]-Vario_Bogen_auf_39_Delta_VP_1_aufwaerts[0],ende[2] - Vario_Bogen_auf_39_Delta_VP_1_aufwaerts[2])
+
+
+ block.add_blockref(block_Vario_Bogen_ab_39 ,(start[0]-x,start[1] - Vario_Bogen_ab_39_Delta_SP_1_aufwaerts[0] -y ,start[2] - hoehe_vario+Vario_Bogen_ab_39_Delta_SP_1_aufwaerts[2]),dxfattribs={"rotation": 90})
+
+ start = start[0] ,start[1] - Vario_Bogen_ab_39_Delta_SP_0_aufwaerts[0] - Vario_Bogen_ab_39_Delta_SP_1_aufwaerts[0],start[2] -Vario_Bogen_ab_39_Delta_SP_0_aufwaerts[2] + Vario_Bogen_ab_39_Delta_SP_1_aufwaerts[2]
+
+ start_VP = start[0] +Vario_Bogen_ab_39_Delta_VP_0_aufwaerts[1],start[1]+Vario_Bogen_ab_39_Delta_VP_0_aufwaerts[0] - Vario_Bogen_ab_39_Delta_SP_0_aufwaerts[0],start[2]-Vario_Bogen_ab_39_Delta_VP_0_aufwaerts[2]
+ line_VP = Line.new(dxfattribs={"start":start_VP,"end": ende_VP})
+ line_VP.dxf.layer = "VARIO"
+ copy_VP = line_VP.copy()
+
+ copy_VP.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy_VP)
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+
+ elif winkel == 24:
+ block_Vario_Bogen_auf_27 = "Vario_Bogen_auf_27°"
+ block_Vario_Bogen_ab_27 = "Vario_Bogen_ab_27°"
+ Vario_Bogen_auf_27_Delta_SP_0_aufwaerts = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_27_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_auf_27_Delta_SP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_27_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_27_Delta_SP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_27_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_ab_27_Delta_SP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_27_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_auf_27_Delta_VP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_27_Delta_VP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_27_Delta_VP_0_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_27_Delta_VP_0_aufwaerts")).split(","))
+ import_block(block_Vario_Bogen_auf_27, lib_doc, doc,math.radians(3))
+ import_block(block_Vario_Bogen_ab_27, lib_doc, doc,math.radians(-24))
+ block.add_blockref(block_Vario_Bogen_auf_27,(ende[0] -x ,ende[1] +Vario_Bogen_auf_27_Delta_SP_0_aufwaerts[0] -y ,ende[2] - Vario_Bogen_auf_27_Delta_SP_0_aufwaerts[2]- hoehe_vario ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] +Vario_Bogen_auf_27_Delta_SP_1_aufwaerts[0] + Vario_Bogen_auf_27_Delta_SP_0_aufwaerts[0] ,ende[2] + Vario_Bogen_auf_27_Delta_SP_1_aufwaerts[2] - Vario_Bogen_auf_27_Delta_SP_0_aufwaerts[2])
+ ende_VP = (ende[0] +Vario_Bogen_auf_27_Delta_VP_1_aufwaerts[1], ende[1] +Vario_Bogen_auf_27_Delta_VP_1_aufwaerts[0],ende[2] - Vario_Bogen_auf_27_Delta_VP_1_aufwaerts[2])
+
+ block.add_blockref(block_Vario_Bogen_ab_27 ,(start[0]-x,start[1] - Vario_Bogen_ab_27_Delta_SP_1_aufwaerts[0] -y ,start[2] - hoehe_vario + Vario_Bogen_ab_27_Delta_SP_1_aufwaerts[2]),dxfattribs={"rotation": 90})
+ start = start[0] ,start[1] - Vario_Bogen_ab_27_Delta_SP_0_aufwaerts[0] - Vario_Bogen_ab_27_Delta_SP_1_aufwaerts[0],start[2] -Vario_Bogen_ab_27_Delta_SP_0_aufwaerts[2] + Vario_Bogen_ab_27_Delta_SP_1_aufwaerts[2]
+ start_VP = start[0] +Vario_Bogen_ab_27_Delta_VP_0_aufwaerts[1],start[1]+Vario_Bogen_ab_27_Delta_VP_0_aufwaerts[0] ,start[2]-Vario_Bogen_ab_27_Delta_VP_0_aufwaerts[2]
+ line_VP = Line.new(dxfattribs={"start":start_VP,"end": ende_VP})
+ line_VP.dxf.layer = "VARIO"
+ copy_VP = line_VP.copy()
+
+ copy_VP.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy_VP)
+
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+
+
+ elif winkel == 15:
+ block_Vario_Bogen_ab_18 = "Vario_Bogen_ab_18°"
+ block_Vario_Bogen_auf_18 = "Vario_Bogen_auf_18°"
+ Vario_Bogen_auf_18_Delta_SP_0_aufwaerts = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_18_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_auf_18_Delta_SP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_18_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_18_Delta_SP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_18_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_ab_18_Delta_SP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_18_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_auf_18_Delta_VP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_18_Delta_VP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_18_Delta_VP_0_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_18_Delta_VP_0_aufwaerts")).split(","))
+ import_block(block_Vario_Bogen_auf_18, lib_doc, doc,math.radians(3))
+ import_block(block_Vario_Bogen_ab_18, lib_doc, doc,math.radians(-15))
+ block.add_blockref(block_Vario_Bogen_auf_18,(ende[0] -x ,ende[1] +Vario_Bogen_auf_18_Delta_SP_0_aufwaerts[0] -y ,ende[2] - Vario_Bogen_auf_18_Delta_SP_0_aufwaerts[2]- hoehe_vario ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] +Vario_Bogen_auf_18_Delta_SP_1_aufwaerts[0] + Vario_Bogen_auf_18_Delta_SP_0_aufwaerts[0] ,ende[2] + Vario_Bogen_auf_18_Delta_SP_1_aufwaerts[2] - Vario_Bogen_auf_18_Delta_SP_0_aufwaerts[2])
+ ende_VP = (ende[0] +Vario_Bogen_auf_18_Delta_VP_1_aufwaerts[1], ende[1] +Vario_Bogen_auf_18_Delta_VP_1_aufwaerts[0],ende[2] - Vario_Bogen_auf_18_Delta_VP_1_aufwaerts[2])
+
+ block.add_blockref(block_Vario_Bogen_ab_18 ,(start[0]-x,start[1] - Vario_Bogen_ab_18_Delta_SP_1_aufwaerts[0] -y ,start[2] - hoehe_vario+Vario_Bogen_ab_18_Delta_SP_1_aufwaerts[2]),dxfattribs={"rotation": 90})
+ start = start[0] ,start[1] - Vario_Bogen_ab_18_Delta_SP_0_aufwaerts[0] - Vario_Bogen_ab_18_Delta_SP_1_aufwaerts[0],start[2] -Vario_Bogen_ab_18_Delta_SP_0_aufwaerts[2] + Vario_Bogen_ab_18_Delta_SP_1_aufwaerts[2]
+ start_VP = start[0] +Vario_Bogen_ab_18_Delta_VP_0_aufwaerts[1],start[1]+Vario_Bogen_ab_18_Delta_VP_0_aufwaerts[0] ,start[2]-Vario_Bogen_ab_18_Delta_VP_0_aufwaerts[2]
+ line_VP = Line.new(dxfattribs={"start":start_VP,"end": ende_VP})
+ line_VP.dxf.layer = "VARIO"
+ copy_VP = line_VP.copy()
+
+ copy_VP.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy_VP)
+
+
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+
+
+ elif winkel == 12:
+ block_Vario_Bogen_ab_15 = "Vario_Bogen_ab_15°"
+ block_Vario_Bogen_auf_15 = "Vario_Bogen_auf_15°"
+ Vario_Bogen_auf_15_Delta_SP_0_aufwaerts = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_15_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_auf_15_Delta_SP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_15_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_15_Delta_SP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_15_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_ab_15_Delta_SP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_15_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_auf_15_Delta_VP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_15_Delta_VP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_15_Delta_VP_0_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_15_Delta_VP_0_aufwaerts")).split(","))
+ import_block(block_Vario_Bogen_auf_15, lib_doc, doc,math.radians(3))
+ import_block(block_Vario_Bogen_ab_15, lib_doc, doc,math.radians(-12))
+ block.add_blockref(block_Vario_Bogen_auf_15,(ende[0] -x ,ende[1] +Vario_Bogen_auf_15_Delta_SP_0_aufwaerts[0] -y ,ende[2] - Vario_Bogen_auf_15_Delta_SP_0_aufwaerts[2]- hoehe_vario ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] +Vario_Bogen_auf_15_Delta_SP_1_aufwaerts[0] + Vario_Bogen_auf_15_Delta_SP_0_aufwaerts[0] ,ende[2] + Vario_Bogen_auf_15_Delta_SP_1_aufwaerts[2] - Vario_Bogen_auf_15_Delta_SP_0_aufwaerts[2])
+ ende_VP = (ende[0] +Vario_Bogen_auf_15_Delta_VP_1_aufwaerts[1], ende[1] +Vario_Bogen_auf_15_Delta_VP_1_aufwaerts[0],ende[2] - Vario_Bogen_auf_15_Delta_VP_1_aufwaerts[2])
+
+ block.add_blockref(block_Vario_Bogen_ab_15 ,(start[0]-x,start[1] - Vario_Bogen_ab_15_Delta_SP_1_aufwaerts[0] -y ,start[2] - hoehe_vario+Vario_Bogen_ab_15_Delta_SP_1_aufwaerts[2]),dxfattribs={"rotation": 90})
+ start = start[0] ,start[1] - Vario_Bogen_ab_15_Delta_SP_0_aufwaerts[0] - Vario_Bogen_ab_15_Delta_SP_1_aufwaerts[0],start[2] -Vario_Bogen_ab_15_Delta_SP_0_aufwaerts[2] + Vario_Bogen_ab_15_Delta_SP_1_aufwaerts[2]
+ start_VP = start[0] +Vario_Bogen_ab_15_Delta_VP_0_aufwaerts[1],start[1]+Vario_Bogen_ab_15_Delta_VP_0_aufwaerts[0] ,start[2]-Vario_Bogen_ab_15_Delta_VP_0_aufwaerts[2]
+ line_VP = Line.new(dxfattribs={"start":start_VP,"end": ende_VP})
+ line_VP.dxf.layer = "VARIO"
+ copy_VP = line_VP.copy()
+
+ copy_VP.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy_VP)
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+
+
+ elif winkel == 9:
+ block_Vario_Bogen_ab_12 = "Vario_Bogen_ab_12°"
+ block_Vario_Bogen_auf_12 = "Vario_Bogen_auf_12°"
+ Vario_Bogen_auf_12_Delta_SP_0_aufwaerts = tuple(float(x)for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_12_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_auf_12_Delta_SP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_12_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_12_Delta_SP_0_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_12_Delta_SP_0_aufwaerts")).split(","))
+ Vario_Bogen_ab_12_Delta_SP_1_aufwaerts = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_12_Delta_SP_1_aufwaerts")).split(","))
+ Vario_Bogen_auf_12_Delta_VP_1_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_auf_12_Delta_VP_1_aufwaerts")).split(","))
+ Vario_Bogen_ab_12_Delta_VP_0_aufwaerts = tuple(float(x) for x in (config.get("ILS 2.0 Variofoerderer","Vario_Bogen_ab_12_Delta_VP_0_aufwaerts")).split(","))
+ import_block(block_Vario_Bogen_auf_12, lib_doc, doc,math.radians(3))
+ import_block(block_Vario_Bogen_ab_12, lib_doc, doc,math.radians(-9))
+ block.add_blockref(block_Vario_Bogen_auf_12,(ende[0] -x ,ende[1] +Vario_Bogen_auf_12_Delta_SP_0_aufwaerts[0] -y ,ende[2] - Vario_Bogen_auf_12_Delta_SP_0_aufwaerts[2]- hoehe_vario ),dxfattribs={"rotation": 90})
+ ende = (ende[0] ,ende[1] +Vario_Bogen_auf_12_Delta_SP_1_aufwaerts[0] + Vario_Bogen_auf_12_Delta_SP_0_aufwaerts[0] ,ende[2] + Vario_Bogen_auf_12_Delta_SP_1_aufwaerts[2] - Vario_Bogen_auf_12_Delta_SP_0_aufwaerts[2])
+ ende_VP = (ende[0] +Vario_Bogen_auf_12_Delta_VP_1_aufwaerts[1], ende[1] +Vario_Bogen_auf_12_Delta_VP_1_aufwaerts[0],ende[2] - Vario_Bogen_auf_12_Delta_VP_1_aufwaerts[2])
+
+ block.add_blockref(block_Vario_Bogen_ab_12 ,(start[0]-x,start[1] - Vario_Bogen_ab_12_Delta_SP_1_aufwaerts[0] -y ,start[2] - hoehe_vario+Vario_Bogen_ab_12_Delta_SP_1_aufwaerts[2]),dxfattribs={"rotation": 90})
+ start = start[0] ,start[1] - Vario_Bogen_ab_12_Delta_SP_0_aufwaerts[0] - Vario_Bogen_ab_12_Delta_SP_1_aufwaerts[0],start[2] -Vario_Bogen_ab_12_Delta_SP_0_aufwaerts[2] + Vario_Bogen_ab_12_Delta_SP_1_aufwaerts[2]
+ start_VP = start[0] +Vario_Bogen_ab_12_Delta_VP_0_aufwaerts[1],start[1]+Vario_Bogen_ab_12_Delta_VP_0_aufwaerts[0] ,start[2]-Vario_Bogen_ab_12_Delta_VP_0_aufwaerts[2]
+ line_VP = Line.new(dxfattribs={"start":start_VP,"end": ende_VP})
+ line_VP.dxf.layer = "VARIO"
+ copy_VP = line_VP.copy()
+
+ copy_VP.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy_VP)
+
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+
+
+ elif winkel == 3:
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_vario)
+ block.add_entity(copy)
+
+ matrix = Matrix44.scale(-1,1,1)
+ block_links = doc.blocks.new(block_name_links, base_point=(0,0,0))
+ for entity in block:
+ clone= entity.copy()
+ if entity.dxftype() == "INSERT":
+ if (entity.dxf.name == "400102632_ES-Element_90_links" or entity.dxf.name == "200000146_ES-Element_90_rechts" or
+ entity.dxf.name == "200000241_AS-Element_90_rechts" or entity.dxf.name == "200000217_AS-Element_90_links"
+ ):
+ block_links.add_entity(clone)
+ else:
+ clone.transform(matrix)
+ block_links.add_entity(clone)
+ else:
+ clone.transform(matrix)
+ block_links.add_entity(clone)
+
def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config):
"""
@@ -978,65 +1264,104 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
-def erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle, drehung0, laenge, hight, blockname):
- if blockname not in doc.blocks and hight == "higher" and drehung0 == "GUZS":
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+def erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle, drehung0, laenge,blockname, hight = None, block_vario = None, vario_richtung = None, verbungden_höher = None):
+ if ((blockname not in doc.blocks and hight == "higher" and drehung0 == "GUZS" )or (vario_richtung == "Auf"and verbungden_höher == False and drehung0 == "GUZS")or (vario_richtung == "Ab" and verbungden_höher == True and drehung0 == "GUZS") ):
+ if hight != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2
-
- dy = halbe_laenge * math.cos(0)
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y - dy ,lower_hoehe_gefaehlle)
- line = Line.new(dxfattribs={"start": start, "end": ende})
- line.dxf.layer = "6-SP"
- copy= line.copy()
-
- copy.translate(-x,-y,-hoehe_gefaehlle)
- block.add_entity(copy)
block_as = "200000241_AS-Element_90_rechts"
import_block(block_as,lib_doc,doc)
-
- block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] -hoehe_gefaehlle))
- elif blockname not in doc.blocks and hight == "lower" and drehung0 == "GUZS":
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
- start = (x , y + dy,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
+ if vario_richtung != None:
+ start = (x , y + dy ,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + asoffset ,lower_hoehe_gefaehlle)
+
+ block_vario.add_blockref(block_as,(ende[0]-x ,ende[1]-asoffset -y,ende[2] -hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ return start, ende
+ start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
+ ende = (x , y - dy ,lower_hoehe_gefaehlle)
+
line = Line.new(dxfattribs={"start": start, "end": ende})
line.dxf.layer = "6-SP"
copy= line.copy()
copy.translate(-x,-y,-hoehe_gefaehlle)
block.add_entity(copy)
+
+
+ block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] -hoehe_gefaehlle))
+ elif ((blockname not in doc.blocks and hight == "lower" and drehung0 == "GUZS") or (vario_richtung == "Auf"and verbungden_höher == True and drehung0 == "GUZS") or (vario_richtung == "Ab" and verbungden_höher == False and drehung0 == "GUZS")):
block_es = "200000146_ES-Element_90_rechts"
import_block(block_es,lib_doc,doc)
-
- block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset-y ,ende[2] -hoehe_gefaehlle))
- elif blockname not in doc.blocks and hight == "higher" and drehung0 == "UZS":
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ if hight != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
+ if vario_richtung != None:
+ start = (x , y + dy-esoffset,upper_hoehe_gefaehlle)
+ ende = (x , y - dy ,lower_hoehe_gefaehlle)
+ block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset-y ,start[2] -hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ return start, ende
+ start = (x , y + dy,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
+
+
+
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+ line.dxf.layer = "6-SP"
+ copy= line.copy()
+
+ copy.translate(-x,-y,-hoehe_gefaehlle)
+ block.add_entity(copy)
+
+
+ block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset-y ,ende[2] -hoehe_gefaehlle))
+ elif ((blockname not in doc.blocks and hight == "higher" and drehung0 == "UZS")or (vario_richtung == "Auf"and verbungden_höher == False and drehung0 == "UZS") or (vario_richtung == "Ab" and verbungden_höher == True and drehung0 == "UZS")):
+ block_as = "200000217_AS-Element_90_links"
+ import_block(block_as,lib_doc,doc)
+ if hight != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ halbe_laenge = laenge / 2
+
+ dy = halbe_laenge * math.cos(0)
+ if vario_richtung != None:
+ start = (x , y + dy ,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + asoffset,lower_hoehe_gefaehlle)
+
+ block_vario.add_blockref(block_as,(ende[0]-x ,ende[1]-asoffset -y,ende[2] - hoehe_gefaehlle))
+ return start, ende
start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy ,lower_hoehe_gefaehlle)
+
+
line = Line.new(dxfattribs={"start": start, "end": ende})
line.dxf.layer = "6-SP"
copy= line.copy()
copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy)
- block_as = "200000217_AS-Element_90_links"
- import_block(block_as,lib_doc,doc)
+
block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
- elif blockname not in doc.blocks and hight == "lower" and drehung0 == "UZS":
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ elif (( blockname not in doc.blocks and hight == "lower" and drehung0 == "UZS") or (vario_richtung == "Auf" and verbungden_höher == True and drehung0 == "UZS") or (vario_richtung == "Ab" and verbungden_höher == False and drehung0 == "UZS")):
+ if hight != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ block_es = "400102632_ES-Element_90_links"
+ import_block(block_es,lib_doc,doc)
halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
+ if vario_richtung != None:
+ start = (x , y + dy-esoffset ,upper_hoehe_gefaehlle)
+ ende = (x , y - dy,lower_hoehe_gefaehlle)
+ block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset -y,start[2] - hoehe_gefaehlle))
+ return start, ende
start = (x , y + dy ,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
+
+
line = Line.new(dxfattribs={"start": start, "end": ende})
line.dxf.layer = "6-SP"
copy= line.copy()
@@ -1044,15 +1369,14 @@ def erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset,
copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy)
- block_es = "400102632_ES-Element_90_links"
- import_block(block_es,lib_doc,doc)
+
block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -y,ende[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
-def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle,richtung2, drehung0, drehung1, laenge, hight_position, blockname):
+def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle,richtung2, drehung0, drehung1, laenge, hight_position, blockname, block_vario = None,voerder_richtung = None):
#erstellung des blockes falls die gefaelle strecke mit einem kreisel verbunden ist, mehrere variation von selben weil diese nötig sind sobald man die richtigen inserts bekommen
if upper_hoehe_gefaehlle < lower_hoehe_gefaehlle:
middle_hoehe = upper_hoehe_gefaehlle
@@ -1218,12 +1542,24 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoeh
block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
#erstellung von den normalen gefällestrecken
else:
- if blockname not in doc.blocks and drehung0 == "GUZS" and drehung1 == "GUZS" :
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ if ((blockname not in doc.blocks and drehung0 == "GUZS" and drehung1 == "GUZS") or (voerder_richtung != None and drehung0 == "GUZS" and drehung1 == "GUZS")):
+ block_as = "200000241_AS-Element_90_rechts"
+ import_block(block_as,lib_doc,doc)
+ block_es = "200000146_ES-Element_90_rechts"
+ import_block(block_es,lib_doc,doc)
+ if hight_position != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
-
+ if hight_position == None:
+ start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + asoffset,lower_hoehe_gefaehlle)
+ block_vario.add_blockref(block_es,(start[0]-x ,start[1]+esoffset -y,start[2] -hoehe_gefaehlle), dxfattribs={"rotation": 180})
+ block_vario.add_blockref(block_as, (ende[0]-x ,ende[1]-asoffset-y ,ende[2] -hoehe_gefaehlle), dxfattribs={"rotation": 180})
+ return start,ende
+
+
start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende})
@@ -1240,11 +1576,23 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoeh
block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] -hoehe_gefaehlle))
block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset-y ,ende[2] -hoehe_gefaehlle))
- elif blockname not in doc.blocks and ((drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "higher")or (drehung0 == "UZS" and drehung1 == "GUZS" and hight_position == "lower")):
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ elif (blockname not in doc.blocks and((drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "higher")or (drehung0 == "UZS" and drehung1 == "GUZS" and hight_position == "lower")) or
+ voerder_richtung != None and drehung0 == "UZS"and drehung1 == "GUZS"):
+ block_as = "200000241_AS-Element_90_rechts"
+ import_block(block_as,lib_doc,doc)
+ block_es = "400102632_ES-Element_90_links"
+ import_block(block_es,lib_doc,doc)
+ if hight_position != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
+ if hight_position == None:
+ start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + asoffset,lower_hoehe_gefaehlle)
+ block_vario.add_blockref(block_es,(start[0]-x ,start[1]+ esoffset -y,start[2] - hoehe_gefaehlle))
+ block_vario.add_blockref(block_as, (ende[0]-x ,ende[1]- asoffset-y,ende[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ return start, ende
start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende})
@@ -1254,20 +1602,27 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoeh
copy.translate(-x,-y,-hoehe_gefaehlle)
block.add_entity(copy)
- block_as = "200000241_AS-Element_90_rechts"
- import_block(block_as,lib_doc,doc)
- block_es = "400102632_ES-Element_90_links"
- import_block(block_es,lib_doc,doc)
+
block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle))
block.add_blockref(block_es, (ende[0]-x ,ende[1]- esoffset-y,ende[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
- elif blockname not in doc.blocks and drehung0 == "UZS" and drehung1 == "UZS":
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ elif ((blockname not in doc.blocks and drehung0 == "UZS" and drehung1 == "UZS") or (voerder_richtung != None and drehung0 == "UZS" and drehung1 == "UZS")):
+ block_as = "200000217_AS-Element_90_links"
+ import_block(block_as,lib_doc,doc)
+ block_es = "400102632_ES-Element_90_links"
+ import_block(block_es,lib_doc,doc)
+ if hight_position !=None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
-
+ if hight_position == None:
+ start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + asoffset,lower_hoehe_gefaehlle)
+ block_vario.add_blockref(block_es,(start[0]-x ,start[1]+esoffset -y,start[2] - hoehe_gefaehlle))
+ block_vario.add_blockref(block_as, (ende[0]-x ,ende[1]-asoffset -y,ende[2] - hoehe_gefaehlle))
+ return start, ende
start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende})
@@ -1277,22 +1632,32 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoeh
copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy)
- block_as = "200000217_AS-Element_90_links"
- import_block(block_as,lib_doc,doc)
- block_es = "400102632_ES-Element_90_links"
- import_block(block_es,lib_doc,doc)
+
block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -y,ende[2] - hoehe_gefaehlle) ,dxfattribs={"rotation": 180})
- elif blockname not in doc.blocks and ((drehung0 == "UZS" and drehung1 == "GUZS" and hight_position== "higher")or (drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "lower")):
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ elif ((blockname not in doc.blocks and ((drehung0 == "UZS" and drehung1 == "GUZS" and hight_position== "higher")or (drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "lower")))or
+ voerder_richtung != None and drehung0 == "GUZS" and drehung1 == "UZS"):
+
+ block_as = "200000217_AS-Element_90_links"
+ import_block(block_as,lib_doc,doc)
+ block_es = "200000146_ES-Element_90_rechts"
+ import_block(block_es,lib_doc,doc)
+ if hight_position != None:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0)
-
+ if hight_position == None:
+ start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
+ ende = (x , y - dy + asoffset,lower_hoehe_gefaehlle)
+
+ block_vario.add_blockref(block_es,(start[0]-x ,start[1]+esoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ block_vario.add_blockref(block_as, (ende[0]-x ,ende[1]-asoffset -y,ende[2] - hoehe_gefaehlle))
+ return start,ende
start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende})
@@ -1302,10 +1667,8 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, asoffset, esoffset, upper_hoeh
copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy)
- block_as = "200000217_AS-Element_90_links"
- import_block(block_as,lib_doc,doc)
- block_es = "200000146_ES-Element_90_rechts"
- import_block(block_es,lib_doc,doc)
+
+
block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})