This commit is contained in:
2025-10-22 11:31:13 +02:00
2 changed files with 648 additions and 228 deletions
+61 -4
View File
@@ -16,8 +16,65 @@ esoffset = 479.95
[ILS 2.0 Variofoerderer] [ILS 2.0 Variofoerderer]
Vario_Bogen_auf_39_Delta_SP_0 = 489.1281, 0, 25.6341 Umlenkstation = 499.3148,0,26.1680
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 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
+571 -208
View File
@@ -14,9 +14,6 @@ import ezdxf
from ezdxf import units from ezdxf import units
from ezdxf.entities import Line from ezdxf.entities import Line
from ezdxf.math import Matrix44, X_AXIS,Y_AXIS,Z_AXIS 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 from pathlib import Path
import math import math
from utils import check_environment_var, setup_logger 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) - Stellt sicher, dass benutzte Layer im Ziel existieren (mit Eigenschaften)
- Übernimmt Basis­punkt und Block-Layer, falls vorhanden - Übernimmt Basis­punkt und Block-Layer, falls vorhanden
""" """
if block_name == '200000291_Staustrecke_SP_steigend__6':
test = 3
if (block_name in to_doc.blocks): if (block_name in to_doc.blocks):
return 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 abstand_gegen_kreis_ende_y_round = ende_round[0] , ende_round[1] - RADIUS
if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor )or if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor) or
( abstand_fuer_kreis_start_x_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_start_x_floor == pos0_1_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_0_floor) or
( abstand_fuer_kreis_ende_x_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_ende_x_floor == pos0_1_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_0_floor) or
( abstand_fuer_kreis_start_y_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_start_y_floor == pos0_1_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_0_floor) or
( abstand_fuer_kreis_ende_y_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_ende_y_floor == pos0_1_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_0_round) or
( abstand_fuer_kreis_start_x_round == pos0_1_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_0_round) or
( abstand_gegen_kreis_start_x_round == pos0_1_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_0_round) or
( abstand_fuer_kreis_ende_x_round== pos0_1_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_0_round) or
( abstand_gegen_kreis_ende_x_round == pos0_1_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_0_round) or
(abstand_fuer_kreis_start_y_round == pos0_1_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_0_round) or
(abstand_gegen_kreis_start_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_0_round) or
( abstand_fuer_kreis_ende_y_round == pos0_1_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_0_round) or
( abstand_gegen_kreis_ende_y_round == pos0_1_round) (abstand_gegen_kreis_ende_y_round == pos0_1_round)
): ):
kreisel_verbunden = kreisel_verbunden +1 kreisel_verbunden = kreisel_verbunden +1
# setzung auf kreisel 1 für spätere ausrechnung der geraden form # 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 rotation = 90
elif gefaelle == "rechts" : elif gefaelle == "rechts" :
rotation = 270 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) blockref_layer = get_layer(doc, lib_doc, blockname)
bref =msp.add_blockref(blockname,(x,y,hoehe_gefaehlle),dxfattribs={"rotation": rotation, "layer": blockref_layer}) bref =msp.add_blockref(blockname,(x,y,hoehe_gefaehlle),dxfattribs={"rotation": rotation, "layer": blockref_layer})
a =bref.add_attrib( 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 # vergleich mit einem kreisel von zwei
if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor )or if( (abstand_fuer_kreis_start_x_floor == pos0_0_floor) or
( abstand_fuer_kreis_start_x_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_start_x_floor == pos0_1_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_0_floor) or
( abstand_fuer_kreis_ende_x_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_ende_x_floor == pos0_1_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_0_floor) or
( abstand_fuer_kreis_start_y_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_start_y_floor == pos0_1_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_0_floor) or
( abstand_fuer_kreis_ende_y_floor == pos0_1_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_0_floor) or
( abstand_gegen_kreis_ende_y_floor == pos0_1_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_0_round ) or
( abstand_fuer_kreis_start_x_round == pos0_1_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_0_round) or
( abstand_gegen_kreis_start_x_round == pos0_1_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_0_round) or
( abstand_fuer_kreis_ende_x_round== pos0_1_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_0_round) or
( abstand_gegen_kreis_ende_x_round == pos0_1_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_0_round) or
(abstand_fuer_kreis_start_y_round == pos0_1_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_0_round) or
(abstand_gegen_kreis_start_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_0_round) or
( abstand_fuer_kreis_ende_y_round == pos0_1_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_0_round) or
( abstand_gegen_kreis_ende_y_round == pos0_1_round) (abstand_gegen_kreis_ende_y_round == pos0_1_round)
): ):
kreisel_verbunden = kreisel_verbunden +1 kreisel_verbunden = kreisel_verbunden +1
# setzung auf kreisel 1 für spätere ausrechnung der geraden form # setzung auf kreisel 1 für spätere ausrechnung der geraden form
@@ -613,40 +609,40 @@ 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 if( (abstand_fuer_kreis_start_x_floor == pos1_0_floor )or
( abstand_fuer_kreis_start_x_floor == pos1_1_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_0_floor) or
( abstand_gegen_kreis_start_x_floor == pos1_1_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_0_floor) or
( abstand_fuer_kreis_ende_x_floor == pos1_1_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_0_floor) or
( abstand_gegen_kreis_ende_x_floor == pos1_1_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_0_floor ) or
( abstand_fuer_kreis_start_y_floor == pos1_1_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_0_floor) or
( abstand_gegen_kreis_start_y_floor == pos1_1_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_0_floor ) or
( abstand_fuer_kreis_ende_y_floor == pos1_1_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_0_floor) or
( abstand_gegen_kreis_ende_y_floor == pos1_1_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_0_round ) or
( abstand_fuer_kreis_start_x_round == pos1_1_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_0_round) or
( abstand_gegen_kreis_start_x_round == pos1_1_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_0_round) or
( abstand_fuer_kreis_ende_x_round== pos1_1_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_0_round) or
( abstand_gegen_kreis_ende_x_round == pos1_1_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_0_round) or
(abstand_fuer_kreis_start_y_round == pos1_1_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_0_round) or
(abstand_gegen_kreis_start_y_round == pos1_1_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_0_round) or
( abstand_fuer_kreis_ende_y_round == pos1_1_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_0_round) or
( abstand_gegen_kreis_ende_y_round == pos1_1_round) (abstand_gegen_kreis_ende_y_round == pos1_1_round)
): ):
kreisel_verbunden = kreisel_verbunden +1 kreisel_verbunden = kreisel_verbunden +1
am_kreisel = 2 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 # 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 (richtung0 != richtung1 and kreisel_verbunden ==1):
if( if(
(abstand_fuer_kreis_start_y_floor== pos0_0_floor)or (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_1_floor) or
(abstand_gegen_kreis_start_y_floor == pos0_0_floor) or (abstand_gegen_kreis_start_y_floor == pos0_0_floor) or
(abstand_gegen_kreis_start_y_floor == pos0_1_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_0_floor) or
(abstand_fuer_kreis_ende_y_floor== pos0_1_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_0_floor) or
(abstand_gegen_kreis_ende_y_floor== pos0_1_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_0_round)or
(abstand_fuer_kreis_start_y_round == pos0_1_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_0_round) or
(abstand_gegen_kreis_start_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_0_round) or
(abstand_fuer_kreis_ende_y_round== pos0_1_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_0_round) or
(abstand_gegen_kreis_ende_y_round == pos0_1_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_0_floor) or
( abstand_fuer_kreis_start_y_floor == pos1_1_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_0_floor) or
( abstand_gegen_kreis_start_y_floor == pos1_1_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_0_floor) or
( abstand_fuer_kreis_ende_y_floor== pos1_1_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_0_floor) or
( abstand_gegen_kreis_ende_y_floor == pos1_1_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_0_round) or
( abstand_fuer_kreis_start_y_round == pos1_1_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_0_round) or
( abstand_gegen_kreis_start_y_round== pos1_1_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_0_round) or
( abstand_fuer_kreis_ende_y_round == pos1_1_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_0_round) or
( abstand_gegen_kreis_ende_y_round == pos1_1_round) (abstand_gegen_kreis_ende_y_round == pos1_1_round)
): ):
richtung2= "Vertikal" richtung2= "Vertikal"
else: else:
@@ -851,68 +847,358 @@ 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): 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: if "VARIO" not in doc.layers:
doc.layers.add(name="VARIO", color=3) doc.layers.add(name="VARIO", color=3)
voerder_richtung = merkmale.get("Förderrichtung")
winkel = int(merkmale.get("Winkel"))
verbunden_am_einen = False verbunden_am_einen = False
am_kreisel = 0 am_kreisel = 0
ein_kreisel_höher = False
richtung2 ="DEFAULT" richtung2 ="DEFAULT"
unterschiedlich = False unterschiedlich = False
asoffset = float(config.get("ILS 2.0 Gefällestrecke", "asoffset")) asoffset = float(config.get("ILS 2.0 Gefällestrecke", "asoffset"))
esoffset = float(config.get("ILS 2.0 Gefällestrecke", "esoffset")) 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(",")) umlenk_motor_offset = tuple(float(x) for x in(config.get("ILS 2.0 Variofoerderer","Umlenkstation")).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(","))
block_Vario_Umlenkstation_500mm ="Vario_Umlenkstation_500mm" 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" 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)) import_block( block_Vario_Motorstation_500mm, lib_doc, doc,math.radians(3))
laenge = float(merkmale.get("Länge in Meter")) *1000 import_block( block_Vario_Umlenkstation_500mm , lib_doc, doc,math.radians(3))
halbe_laenge = laenge/2
dx = halbe_laenge * math.cos(0)
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: if upper_hoehe_vario< lower_hoehe_vario:
hight = upper_hoehe_vario hight = upper_hoehe_vario
upper_hoehe_vario = lower_hoehe_vario upper_hoehe_vario = lower_hoehe_vario
lower_hoehe_vario = hight lower_hoehe_vario = hight
start = (x+ dx,y, upper_hoehe_vario) rotation = rotation -180
ende = (x -dx,y, lower_hoehe_vario) hoehe_vario= (upper_hoehe_vario + lower_hoehe_vario)/2
# msp.add_line(start, ende) 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})
block.add_blockref(block_Vario_Umlenkstation_500mm,(ende[0] + 249.6574 -x,ende[1] -y ,ende[2] - hoehe_vario -13.0840 )) elif "Drehung0" in gefaellestrecke_vario and "Drehung1" in gefaellestrecke_vario:
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)) drehung0 = gefaellestrecke_vario.get("Drehung0")
start = start[0] - 499.3148, start[1],start[2] +26.1680 drehung1 = gefaellestrecke_vario.get("Drehung1")
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])) kreisel_hoehe0 =float(gefaellestrecke_vario.get("Hoehe0"))
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] 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}")
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}) line = Line.new(dxfattribs={"start": start, "end": ende})
copy= line.copy() copy= line.copy()
copy.translate(-x,-y,-hoehe_vario) copy.translate(-x,-y,-hoehe_vario)
block.add_entity(copy) 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))
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): def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config):
@@ -978,65 +1264,78 @@ 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): 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": 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)) block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2 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" block_as = "200000241_AS-Element_90_rechts"
import_block(block_as,lib_doc,doc) 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) dy = halbe_laenge * math.cos(0)
start = (x , y + dy,upper_hoehe_gefaehlle) if vario_richtung != None:
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle) 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 = Line.new(dxfattribs={"start": start, "end": ende})
line.dxf.layer = "6-SP" line.dxf.layer = "6-SP"
copy= line.copy() copy= line.copy()
copy.translate(-x,-y,-hoehe_gefaehlle) copy.translate(-x,-y,-hoehe_gefaehlle)
block.add_entity(copy) 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" block_es = "200000146_ES-Element_90_rechts"
import_block(block_es,lib_doc,doc) import_block(block_es,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-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)) 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": 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 = 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 = "200000217_AS-Element_90_links" block_as = "200000217_AS-Element_90_links"
import_block(block_as,lib_doc,doc) import_block(block_as,lib_doc,doc)
if hight != None:
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)) block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2 halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0) dy = halbe_laenge * math.cos(0)
if vario_richtung != None:
start = (x , y + dy ,upper_hoehe_gefaehlle) start = (x , y + dy ,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_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 = Line.new(dxfattribs={"start": start, "end": ende})
line.dxf.layer = "6-SP" line.dxf.layer = "6-SP"
copy= line.copy() copy= line.copy()
@@ -1044,15 +1343,40 @@ def erstellung_gefaelle_block_verbunenden_am_einen(x, y, doc, lib_doc, asoffset,
copy.translate(-x ,-y,-hoehe_gefaehlle) copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy) block.add_entity(copy)
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") 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" block_es = "400102632_ES-Element_90_links"
import_block(block_es,lib_doc,doc) 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()
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),dxfattribs={"rotation": 180}) 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 #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: if upper_hoehe_gefaehlle < lower_hoehe_gefaehlle:
middle_hoehe = upper_hoehe_gefaehlle middle_hoehe = upper_hoehe_gefaehlle
@@ -1218,11 +1542,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),dxfattribs={"rotation": 180}) 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 #erstellung von den normalen gefällestrecken
else: else:
if blockname not in doc.blocks and drehung0 == "GUZS" and drehung1 == "GUZS" : 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)) block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2 halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0) 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) start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle) ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
@@ -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_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)) 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")): 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)) block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2 halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0) 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) start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle) ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende}) 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) copy.translate(-x,-y,-hoehe_gefaehlle)
block.add_entity(copy) 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_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}) 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": 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)) block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2 halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0) 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) start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle) ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende}) 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) copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy) 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_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}) 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")): 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)) block = doc.blocks.new(name=blockname, base_point=(0,0,0))
halbe_laenge = laenge / 2 halbe_laenge = laenge / 2
dy = halbe_laenge * math.cos(0) 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) start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle) ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
line = Line.new(dxfattribs={"start": start, "end": ende}) 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) copy.translate(-x ,-y,-hoehe_gefaehlle)
block.add_entity(copy) 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}) block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})