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 Basis­punkt 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})