From 726ca87e9679367acbbfcbda082109d3843c1ca4 Mon Sep 17 00:00:00 2001
From: Paul Wolok
Date: Tue, 2 Dec 2025 11:02:15 +0100
Subject: [PATCH] As und es Elemente werden nun in 3d gebogen
---
lib/plant2dxf.py | 517 ++++++++++-------------------------------------
1 file changed, 111 insertions(+), 406 deletions(-)
diff --git a/lib/plant2dxf.py b/lib/plant2dxf.py
index 9b2a17d..041f680 100644
--- a/lib/plant2dxf.py
+++ b/lib/plant2dxf.py
@@ -1453,7 +1453,8 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
block_vario = doc.blocks.new(blockname, base_point=(0,0,0))
# Schauen welche es oder as element man braucht man braucht und diese in den block einfügen
# Entnehmen von start und end Werte für spätere vario erstellung
- start, ende =gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_vario, lower_hoehe_vario, hoehe_vario,richtung2, drehung0, drehung1, laenge, None, blockname,cofig,block_vario,voerder_richtung)
+
+ start, ende =gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_vario, lower_hoehe_vario, hoehe_vario,richtung2, drehung0, drehung1, laenge, None, blockname,config,block_vario,voerder_richtung)
# Erstellung des Vario selber
vario_erstellung(msp,merkmale, x, y, doc, lib_doc, config, winkel, hoehe_vario, laenge, block_vario,block_name_links, start, ende,voerder_richtung,winkel_VP_offset_vorne,winkel_VP_offset_hinten )
# Reintuen des endblockes in den Modelspace
@@ -1625,14 +1626,34 @@ def erstellung_gefaelle_block_verbunenden_am_einen(msp,x, y, doc, lib_doc, upper
asoffset_z = asoffset * math.sin(math.radians(winkel_as))
esoffset_y = esoffset * math.cos(math.radians(winkel_as))
esoffset_z = esoffset * math.sin(math.radians(winkel_as))
-
+ block_as = None
+ block_es = None
if (( 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")or (vario_richtung == "Horizontal" and drehung0 == "GUZS" and (mit_horizontal_verbunden == "unten_drehung_0_or_-90" or mit_horizontal_verbunden == "oben_drehung_-180_or_-270"))):
block_as = "200000241_AS-Element_90_rechts"
import_block(block_as,lib_doc,doc)
block_as = dreh_block(block_as,doc,math.radians(winkel_as))
+
+ elif ((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")or (vario_richtung == "Horizontal" and drehung0 == "GUZS" and (mit_horizontal_verbunden == "oben_drehung_0_or_-90" or mit_horizontal_verbunden == "unten_drehung_-180_or_-270"))):
+ block_es = "200000146_ES-Element_90_rechts"
+ import_block(block_es,lib_doc,doc)
+ block_es = dreh_block(block_es,doc,math.radians(winkel_es))
+
+ elif ((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")or (vario_richtung == "Horizontal" and drehung0 == "UZS" and (mit_horizontal_verbunden == "unten_drehung_0_or_-90" or mit_horizontal_verbunden == "oben_drehung_-180_or_-270"))):
+ block_as = "200000217_AS-Element_90_links"
+ import_block(block_as,lib_doc,doc)
+ block_as = dreh_block(block_as,doc,math.radians(winkel_es))
+
+ elif (( 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")or (vario_richtung == "Horizontal" and drehung0 == "UZS" and (mit_horizontal_verbunden == "oben_drehung_0_or_-90" or mit_horizontal_verbunden == "unten_drehung_-180_or_-270"))):
+ block_es = "400102632_ES-Element_90_links"
+ import_block(block_es,lib_doc,doc)
+ block_es = dreh_block(block_es,doc,math.radians(winkel_es))
+ if block_as != None:
if vario_richtung == "Auf" or vario_richtung =="Horizontal":
start = (x , y + dy ,upper_hoehe_gefaehlle)
ende = (x , y - dy + asoffset_y ,lower_hoehe_gefaehlle - asoffset_z)
@@ -1657,85 +1678,16 @@ def erstellung_gefaelle_block_verbunenden_am_einen(msp,x, y, doc, lib_doc, upper
else:
msp.add_blockref(block_as,(x,y,upper_hoehe_gefaehlle))
return True
-
- elif ((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")or (vario_richtung == "Horizontal" and drehung0 == "GUZS" and (mit_horizontal_verbunden == "oben_drehung_0_or_-90" or mit_horizontal_verbunden == "unten_drehung_-180_or_-270"))):
- block_es = "200000146_ES-Element_90_rechts"
- import_block(block_es,lib_doc,doc)
- block_es = dreh_block(block_es,doc,math.radians(winkel_es))
-
- if vario_richtung == "Auf" or vario_richtung =="Horizontal":
- start = (x , y + dy-esoffset_y,upper_hoehe_gefaehlle + esoffset_z)
- ende = (x , y - dy ,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset_y-y ,start[2] -hoehe_gefaehlle -esoffset_z ),dxfattribs={"rotation": 180})
- return start, ende
- elif vario_richtung == "Ab":
- start = (x , y + dy,upper_hoehe_gefaehlle )
- ende = (x , y - dy + esoffset_y,lower_hoehe_gefaehlle +esoffset_z)
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y-y ,ende[2] -hoehe_gefaehlle -esoffset_z))
- return start, ende
-
- if laenge > esoffset:
- ende[1] = ende[1] + esoffset_y
- ende[2] = ende[2] + esoffset_z
- line = Line.new(dxfattribs={"start": start, "end": ende})
- line.dxf.layer = "6-SP"
- copy= line.copy()
-
- copy.translate(-x,-y,-hoehe_gefaehlle)
- gefaelle_block.add_entity(copy)
-
- gefaelle_block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y-y ,ende[2] -hoehe_gefaehlle - esoffset_z))
- return False
- else:
- msp.add_blockref(block_es,(x,y,lower_hoehe_gefaehlle))
- return True
-
- elif ((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")or (vario_richtung == "Horizontal" and drehung0 == "UZS" and (mit_horizontal_verbunden == "unten_drehung_0_or_-90" or mit_horizontal_verbunden == "oben_drehung_-180_or_-270"))):
- block_as = "200000241_AS-Element_90_rechts"
- block_as = "200000217_AS-Element_90_links"
- import_block(block_as,lib_doc,doc)
- if vario_richtung == "Auf" or vario_richtung =="Horizontal":
- start = (x , y + dy ,upper_hoehe_gefaehlle)
- ende = (x , y - dy + asoffset_y,lower_hoehe_gefaehlle - asoffset_z)
-
- block_vario.add_blockref(block_as,(ende[0]-x ,ende[1]-asoffset_y -y,ende[2] - hoehe_gefaehlle + asoffset_z))
- return start, ende
- elif vario_richtung == "Ab":
- start = (x , y + dy - asoffset_y,upper_hoehe_gefaehlle -asoffset_z)
- ende = (x , y - dy ,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset_y -y,start[2] - hoehe_gefaehlle + asoffset_z),dxfattribs={"rotation": 180})
- return start, ende
-
- if laenge > asoffset:
- start[1] = start[1] - asoffset_y
- start[2] = start[2] - asoffset_z
- line = Line.new(dxfattribs={"start": start, "end": ende})
- line.dxf.layer = "6-SP"
- copy= line.copy()
- copy.translate(-x ,-y,-hoehe_gefaehlle)
- gefaelle_block.add_entity(copy)
- gefaelle_block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset_y -y,start[2] - hoehe_gefaehlle + asoffset_z),dxfattribs={"rotation": 180})
- return False
- else:
- msp.add_blockref(block_as,(x,y,upper_hoehe_gefaehlle),dxfattribs={"rotation": 180})
- return True
-
- elif (( 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")or (vario_richtung == "Horizontal" and drehung0 == "UZS" and (mit_horizontal_verbunden == "oben_drehung_0_or_-90" or mit_horizontal_verbunden == "unten_drehung_-180_or_-270"))):
- block_es = "400102632_ES-Element_90_links"
- import_block(block_es,lib_doc,doc)
-
+ elif block_es != None:
if vario_richtung == "Auf" or vario_richtung =="Horizontal":
start = (x , y + dy-esoffset_y ,upper_hoehe_gefaehlle + esoffset_z)
ende = (x , y - dy,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset_y -y,start[2] - hoehe_gefaehlle - esoffset_z))
+ block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset_y -y,start[2] - hoehe_gefaehlle - esoffset_z),dxfattribs={"rotation": 180})
return start, ende
elif vario_richtung == "Ab":
start = (x , y + dy ,upper_hoehe_gefaehlle)
ende = (x , y - dy + esoffset_y,lower_hoehe_gefaehlle + esoffset_z)
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y -y,ende[2] - hoehe_gefaehlle -esoffset_z),dxfattribs={"rotation": 180})
+ block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y -y,ende[2] - hoehe_gefaehlle -esoffset_z))
return start,ende
if laenge > esoffset:
@@ -1746,10 +1698,10 @@ def erstellung_gefaelle_block_verbunenden_am_einen(msp,x, y, doc, lib_doc, upper
copy= line.copy()
copy.translate(-x ,-y,-hoehe_gefaehlle)
gefaelle_block.add_entity(copy)
- gefaelle_block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y -y,ende[2] - hoehe_gefaehlle -esoffset_z),dxfattribs={"rotation": 180})
+ gefaelle_block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y -y,ende[2] - hoehe_gefaehlle -esoffset_z))
return False
else:
- msp.add_blockref(block_es,(x,y,lower_hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ msp.add_blockref(block_es,(x,y,lower_hoehe_gefaehlle))
return True
def gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, hoehe_gefaehlle,richtung2, drehung0, drehung1, laenge, hight_position, blockname,config, block_vario = None,voerder_richtung = None, am_kreisel = None, erster_kreisel_höher = None,y1=None,z1 =None):
@@ -1763,390 +1715,141 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_h
asoffset_z = asoffset * math.sin(math.radians(winkel_as))
esoffset_y = esoffset * math.cos(math.radians(winkel_as))
esoffset_z = esoffset * math.sin(math.radians(winkel_as))
+ block_as = None
+ block_es = None
+ halbe_laenge = laenge / 2
+ dy = halbe_laenge * math.cos(0)
if upper_hoehe_gefaehlle < lower_hoehe_gefaehlle:
middle_hoehe = upper_hoehe_gefaehlle
upper_hoehe_gefaehlle = lower_hoehe_gefaehlle
lower_hoehe_gefaehlle = middle_hoehe
if richtung2!= "DEFAULT" or am_kreisel != None:
- if ((blockname not in doc.blocks and drehung0 == "GUZS" and drehung1 == "GUZS" and hight_position == "higher") or
+ if ((drehung0 == "GUZS" and drehung1 == "GUZS" and hight_position == "higher") or
(voerder_richtung == "Auf" and((am_kreisel == 1 and erster_kreisel_höher == False)or (am_kreisel== 2 and erster_kreisel_höher == True)) and drehung0 == "GUZS" and drehung1== "GUZS") or
(voerder_richtung == "Ab"and ((am_kreisel == 1 and erster_kreisel_höher == True)or (am_kreisel== 2 and erster_kreisel_höher == False)) and drehung0 == "GUZS" and drehung1== "GUZS")):
block_es = "200000146_ES-Element_90_rechts"
import_block(block_es,lib_doc,doc)
block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- # block_es = dreh_block(block_es,doc,math.radians(3))
- # esoffset_y = esoffset * math.cos(math.radians(3))
- # esoffset_z = esoffset * math.sin(math.radians(3))
-
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y+ dy - esoffset_y,upper_hoehe_gefaehlle)
- ende = (x , y1 ,z1)
- block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset_y-y ,start[2] -hoehe_gefaehlle),dxfattribs={"rotation": 180})
- return start,ende
- elif(voerder_richtung == "Ab"):
- start = (x , y1 ,z1)
- ende = (x , y - dy + esoffset_y,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y-y ,ende[2] -hoehe_gefaehlle))
- return start, ende
- start = (x , y + dy,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset_y,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 drehung0 == "GUZS" and drehung1 == "GUZS") or
+
+
+ elif ((drehung0 == "GUZS" and drehung1 == "GUZS") or
(am_kreisel != None and drehung0 == "GUZS" and drehung1 == "GUZS")):
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
block_as = "200000241_AS-Element_90_rechts"
import_block(block_as,lib_doc,doc)
block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y1 ,z1)
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y1 ,z1)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[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.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] -hoehe_gefaehlle))
- elif ((blockname not in doc.blocks and (drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "higher"))or
+ elif (( drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "higher")or
(voerder_richtung == "Auf" and((am_kreisel == 1 and erster_kreisel_höher == False)or (am_kreisel == 2 and erster_kreisel_höher == True))and (drehung0 == "UZS" and drehung1 == "GUZS")) or
(voerder_richtung == "Ab" and((am_kreisel == 1 and erster_kreisel_höher == True) or (am_kreisel ==2 and erster_kreisel_höher ==False))and (drehung0 == "GUZS" and drehung1 == "UZS"))):
block_es = "400102632_ES-Element_90_links"
import_block(block_es,lib_doc,doc)
block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
- ende = (x , y1 ,z1)
- block_vario.add_blockref(block_es,(start[0]-x ,start[1]+esoffset -y,start[2] - hoehe_gefaehlle))
- return start,ende
- elif voerder_richtung == "Ab":
- start = (x , y1 ,z1)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_es,(ende[0]-x ,ende[1]-esoffset -y,ende[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), dxfattribs={"rotation": 180})
- elif (blockname not in doc.blocks and (drehung0 == "UZS" and drehung1 == "GUZS" and hight_position == "lower")or
+ elif ((drehung0 == "UZS" and drehung1 == "GUZS" and hight_position == "lower")or
(voerder_richtung == "Auf" and((am_kreisel == 1 and erster_kreisel_höher == True)or (am_kreisel == 2 and erster_kreisel_höher == False))and (drehung0 == "UZS" and drehung1 == "GUZS")) or
(voerder_richtung == "Ab"and ((am_kreisel == 1 and erster_kreisel_höher == False)or (am_kreisel == 2 and erster_kreisel_höher == True))and (drehung0 == "GUZS" and drehung1 == "UZS"))):
block_as = "200000241_AS-Element_90_rechts"
import_block(block_as,lib_doc,doc)
block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y1,z1)
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y1 ,z1)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[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.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle))
- elif ((blockname not in doc.blocks and drehung0 == "UZS" and drehung1 == "UZS" and hight_position == "higher")or
+ elif ((drehung0 == "UZS" and drehung1 == "UZS" and hight_position == "higher")or
(voerder_richtung == "Auf" and((am_kreisel == 1 and erster_kreisel_höher == False)or (am_kreisel== 2 and erster_kreisel_höher == True)) and drehung0 == "UZS" and drehung1== "UZS")or
(voerder_richtung == "Ab" and((am_kreisel == 1 and erster_kreisel_höher == True)or (am_kreisel== 2 and erster_kreisel_höher == False)) and drehung0 == "UZS" and drehung1== "UZS")):
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
+
block_es = "400102632_ES-Element_90_links"
import_block(block_es,lib_doc,doc)
block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
- ende = (x , y1,z1)
- block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset -y,start[2] - hoehe_gefaehlle))
- return start,ende
- elif voerder_richtung == "Ab":
- start = (x , y1 ,z1)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -y,ende[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),dxfattribs={"rotation": 180})
-
- elif (((blockname not in doc.blocks and drehung0 == "UZS" and drehung1 == "UZS")or
+ elif (((drehung0 == "UZS" and drehung1 == "UZS")or
(am_kreisel!= None and drehung0 == "UZS" and drehung1 == "UZS"))):
block_as = "200000217_AS-Element_90_links"
import_block(block_as,lib_doc,doc)
block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y1,z1)
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y1 ,z1)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[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),dxfattribs={"rotation": 180})
-
- elif (blockname not in doc.blocks and ((drehung0 == "UZS" and drehung1 == "GUZS" and hight_position== "higher"))or
+ elif (((drehung0 == "UZS" and drehung1 == "GUZS" and hight_position== "higher"))or
(voerder_richtung == "Auf"and ((am_kreisel == 1 and erster_kreisel_höher == False) or (am_kreisel ==2 and erster_kreisel_höher ==True))and (drehung0 == "GUZS" and drehung1 == "UZS")) or
(voerder_richtung == "Ab" and((am_kreisel == 1 and erster_kreisel_höher == True)or (am_kreisel == 2 and erster_kreisel_höher == False))and (drehung0 == "UZS" and drehung1 == "GUZS"))):
block_es = "200000146_ES-Element_90_rechts"
import_block(block_es,lib_doc,doc)
block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- if am_kreisel == None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- start = (x , y + dy - esoffset,upper_hoehe_gefaehlle)
- ende = (x , y1 ,z1)
- block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
- return start, ende
- elif voerder_richtung == "Ab":
- start = (x , y1,z1)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -y,ende[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))
- elif (blockname not in doc.blocks and (drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "lower")or
+ elif ((drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "lower")or
(voerder_richtung == "Auf"and((am_kreisel == 1 and erster_kreisel_höher == True)or (am_kreisel == 2 and erster_kreisel_höher == False))and (drehung0 == "GUZS" and drehung1 == "UZS")) or
(voerder_richtung == "Ab" and((am_kreisel == 1 and erster_kreisel_höher == False)or (am_kreisel == 2 and erster_kreisel_höher == True))and (drehung0 == "UZS" and drehung1 == "GUZS"))):
block_as = "200000217_AS-Element_90_links"
import_block(block_as,lib_doc,doc)
block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- if am_kreisel == None:
+
+ if block_es != None:
+ if voerder_richtung == "Auf":
+ start = (x , y+ dy - esoffset_y,upper_hoehe_gefaehlle + esoffset_z)
+ ende = (x , y1 ,z1)
+ block_vario.add_blockref(block_es, (start[0]-x ,start[1]+esoffset_y-y ,start[2] - esoffset_z-hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ return start,ende
+ elif(voerder_richtung == "Ab"):
+ start = (x , y1 ,z1)
+ ende = (x , y - dy + esoffset_y,lower_hoehe_gefaehlle + esoffset_z)
+ block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y-y ,ende[2] - esoffset_z -hoehe_gefaehlle))
+ return start, ende
+ elif am_kreisel == None and blockname not in doc.blocks:
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_y,lower_hoehe_gefaehlle + esoffset_z)
+ 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 -y ,ende[2] -hoehe_gefaehlle ))
+ if block_as != None:
if voerder_richtung == "Auf":
start = (x , y1,z1)
- 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))
+ ende = (x , y - dy + asoffset_y ,lower_hoehe_gefaehlle)
+ block_vario.add_blockref(block_as,(ende[0]-x ,ende[1]-asoffset_y -y,ende[2] - esoffset_z - hoehe_gefaehlle ),dxfattribs={"rotation": 180})
return start, ende
elif voerder_richtung == "Ab":
- start = (x , y +dy - asoffset,upper_hoehe_gefaehlle)
+ start = (x , y +dy - asoffset_y,upper_hoehe_gefaehlle - asoffset_z)
ende = (x , y1 ,z1)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
+ block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset_y -y,start[2] + asoffset_z - 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.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") 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)
- block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- if hight_position != None:
+ elif am_kreisel == None and blockname not in doc.blocks:
block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
+ start = (x , y +dy - asoffset_y,upper_hoehe_gefaehlle- asoffset_z)
+ ende = (x , y - dy ,lower_hoehe_gefaehlle)
+ line = Line.new(dxfattribs={"start": start, "end": ende})
+ line.dxf.layer = "6-SP"
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] -hoehe_gefaehlle))
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset-y ,ende[2] -hoehe_gefaehlle))
- return start, ende
+ copy= line.copy()
+ copy.translate(-x ,-y,-hoehe_gefaehlle)
- start = (x , y + dy - asoffset,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_entity(copy)
+ block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset_y -y,start[2] + asoffset_z - hoehe_gefaehlle))
+ else:
+ if (( 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)
- 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")) or
+ elif (((drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "higher")or (drehung0 == "UZS" and drehung1 == "GUZS" and hight_position == "lower")) or
(voerder_richtung == "Auf" and drehung0 == "UZS"and drehung1 == "GUZS") or
(voerder_richtung == "Ab" and drehung0 == "GUZS" and drehung1 == "UZS")) :
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_as = dreh_block(block_as,doc,math.radians(winkel_as))
- block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- 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 voerder_richtung == "Auf":
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle))
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]- esoffset-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})
- 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))
- 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") or (voerder_richtung != None and drehung0 == "UZS" and drehung1 == "UZS")):
+ elif (( 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)
- block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- 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 voerder_richtung == "Auf":
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -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})
- 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),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")))or
+ elif ((((drehung0 == "UZS" and drehung1 == "GUZS" and hight_position== "higher")or (drehung0 == "GUZS" and drehung1 == "UZS" and hight_position == "lower")))or
(voerder_richtung == "Auf" and drehung0 == "GUZS" and drehung1 == "UZS") or
(voerder_richtung == "Ab" and drehung0 == "UZS"and drehung1 == "GUZS")) :
@@ -2154,29 +1857,15 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_h
import_block(block_as,lib_doc,doc)
block_es = "200000146_ES-Element_90_rechts"
import_block(block_es,lib_doc,doc)
- block_as = dreh_block(block_as,doc,math.radians(winkel_as))
- block_es = dreh_block(block_es,doc,math.radians(winkel_es))
- if hight_position != None:
- block = doc.blocks.new(name=blockname, base_point=(0,0,0))
- halbe_laenge = laenge / 2
+ block_as = dreh_block(block_as,doc,math.radians(winkel_as))
+ block_es = dreh_block(block_es,doc,math.radians(winkel_es))
+ halbe_laenge = laenge / 2
- dy = halbe_laenge * math.cos(0)
- if voerder_richtung == "Auf":
- 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
- elif voerder_richtung == "Ab":
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
-
- block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset -y,start[2] - hoehe_gefaehlle),dxfattribs={"rotation": 180})
- block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -y,ende[2] - hoehe_gefaehlle))
- return start,ende
- start = (x , y + dy - asoffset,upper_hoehe_gefaehlle)
- ende = (x , y - dy + esoffset,lower_hoehe_gefaehlle)
+ dy = halbe_laenge * math.cos(0)
+ if hight_position != None and blockname not in doc.blocks:
+ block = doc.blocks.new(name=blockname, base_point=(0,0,0))
+ start = (x , y + dy - asoffset_y,upper_hoehe_gefaehlle- asoffset_z)
+ ende = (x , y - dy + esoffset_y,lower_hoehe_gefaehlle + esoffset_z)
line = Line.new(dxfattribs={"start": start, "end": ende})
line.dxf.layer = "6-SP"
@@ -2184,8 +1873,24 @@ def gefaellegerade_erstellung(x, y, doc, lib_doc, upper_hoehe_gefaehlle, lower_h
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),dxfattribs={"rotation": 180})
- block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset -y,ende[2] - hoehe_gefaehlle))
+ block.add_blockref(block_as,(start[0]-x ,start[1]+asoffset_y -y,start[2] + asoffset_z - hoehe_gefaehlle ))
+ block.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y -y,ende[2] - esoffset_z - hoehe_gefaehlle ))
+ return
+ if voerder_richtung == "Auf":
+ start = (x , y + dy - esoffset_y,upper_hoehe_gefaehlle + esoffset_z)
+ ende = (x , y - dy + asoffset,lower_hoehe_gefaehlle -asoffset_z)
+
+ block_vario.add_blockref(block_es,(start[0]-x ,start[1]+esoffset_y -y,start[2] - esoffset_z - hoehe_gefaehlle ),dxfattribs={"rotation": 180})
+ block_vario.add_blockref(block_as, (ende[0]-x ,ende[1]-asoffset_y -y,ende[2] + asoffset_z - hoehe_gefaehlle ),dxfattribs={"rotation": 180})
+ return start,ende
+ elif voerder_richtung == "Ab":
+ start = (x , y + dy - asoffset_y,upper_hoehe_gefaehlle - asoffset_z)
+ ende = (x , y - dy + esoffset_y,lower_hoehe_gefaehlle + esoffset_z)
+
+ block_vario.add_blockref(block_as,(start[0]-x ,start[1]+asoffset_y -y,start[2] + asoffset_z - hoehe_gefaehlle ))
+ block_vario.add_blockref(block_es, (ende[0]-x ,ende[1]-esoffset_y -y,ende[2] - esoffset_z - hoehe_gefaehlle))
+ return start,ende
+
def am_kreisel_direct_verbunden(x, y, upper_hoehe_gefaehlle, lower_hoehe_gefaehlle, x0_kreisel, y0_kreisel, richtung_rad0, abstand0, dx, dy, x1_kreisel, y1_kreisel, richtung_rad1, abstand1,kreisel_verbunden= None, richtung0 = None, richtung1 = None, richtung2 = None):
if kreisel_verbunden == None:
@@ -2731,8 +2436,8 @@ def vario_erstellung(msp,merkmale, x, y, doc, lib_doc, config, winkel, hoehe_var
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"
+ if (entity.dxf.name.startswith("400102632_ES-Element_90_links") or entity.dxf.name.startswith("200000146_ES-Element_90_rechts") or
+ entity.dxf.name.startswith("200000241_AS-Element_90_rechts") or entity.dxf.name.startswith("200000217_AS-Element_90_links")
):
block_links.add_entity(clone)
else: