Vorbereitung von omniflofoerder und auskommentieren des Förderer kurve bis die Blöcke vorhanden sind
This commit is contained in:
+2
-1
@@ -51,4 +51,5 @@ bogen_3_ab = Vario_Bogen_ab_3°
|
|||||||
|
|
||||||
[Omniflo]
|
[Omniflo]
|
||||||
OFgeradesivas = 821106002
|
OFgeradesivas = 821106002
|
||||||
Tefgeradesivas = 1
|
Tefgeradesivas = 1
|
||||||
|
OFfoerderer = 2
|
||||||
+62
-6
@@ -1292,8 +1292,17 @@ def handle_ils_2_0_variofoerderer(msp, teileid, merkmale, x, y, doc, lib_doc, ve
|
|||||||
msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
|
msp.add_blockref(blockname,(x,y,hoehe_vario),dxfattribs={"rotation": rotation})
|
||||||
|
|
||||||
def handle_ils_2_0_kurve_angetrieben(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
def handle_ils_2_0_kurve_angetrieben(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||||
import_block("AN8",lib_doc,doc)
|
# kurvenrichtung = merkmale.get("Kurvenrichtung")
|
||||||
msp.add_blockref("AN8",(x,y))
|
# kurvenwinkel = float(merkmale.get("Kurvenwinkel"))
|
||||||
|
# h0 = float(merkmale.get("Höhe Anfang"))
|
||||||
|
# h1 = float(merkmale.get("Höhe Ende"))
|
||||||
|
# h_zwischen = (h0 +h1)/2
|
||||||
|
# rotation = float(merkmale.get("Drehung"))
|
||||||
|
# blockname = (f"Kurve{h1}")
|
||||||
|
# import_block(blockname,lib_doc,doc)
|
||||||
|
# msp.add_blockref,(x,y,h_zwischen))
|
||||||
|
test = 2
|
||||||
|
|
||||||
def handle_ils_2_0_kurve(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
def handle_ils_2_0_kurve(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols, strecken_nachbarn,config,config_allgemein):
|
||||||
import_block("AN8",lib_doc,doc)
|
import_block("AN8",lib_doc,doc)
|
||||||
msp.add_blockref("AN8",(x,y))
|
msp.add_blockref("AN8",(x,y))
|
||||||
@@ -1311,6 +1320,8 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
|
|||||||
# Prüfen, ob es sich um eine Gerade handelt
|
# Prüfen, ob es sich um eine Gerade handelt
|
||||||
omnisivas = config.get("Omniflo","OFgeradesivas")
|
omnisivas = config.get("Omniflo","OFgeradesivas")
|
||||||
tefsivas = config.get("Omniflo","Tefgeradesivas")
|
tefsivas = config.get("Omniflo","Tefgeradesivas")
|
||||||
|
foerderer = config.get("Omniflo","OFfoerderer")
|
||||||
|
|
||||||
if merkmale.get("SivasNummer") == omnisivas or merkmale.get("SivasNummer") == tefsivas:
|
if merkmale.get("SivasNummer") == omnisivas or merkmale.get("SivasNummer") == tefsivas:
|
||||||
try:
|
try:
|
||||||
laenge = float(merkmale.get("Länge in Meter", "0").replace(",", ".")) * 1000 # Meter → mm
|
laenge = float(merkmale.get("Länge in Meter", "0").replace(",", ".")) * 1000 # Meter → mm
|
||||||
@@ -1342,6 +1353,33 @@ def handle_omniflo(msp, teileid, merkmale, x, y, doc, lib_doc, verbose, symbols,
|
|||||||
if verbose:
|
if verbose:
|
||||||
print(f"[INFO] Omniflo Gerade → {teileid} Linie von ({start[0]:.1f}, {start[1]:.1f}) nach ({ende[0]:.1f}, {ende[1]:.1f})")
|
print(f"[INFO] Omniflo Gerade → {teileid} Linie von ({start[0]:.1f}, {start[1]:.1f}) nach ({ende[0]:.1f}, {ende[1]:.1f})")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if merkmale.get("SivasNummer") == foerderer:
|
||||||
|
import_block("bogen1",lib_doc,doc)
|
||||||
|
import_block("bogen2",lib_doc,doc)
|
||||||
|
rotation = float(merkmale.get("Drehung"))
|
||||||
|
laenge = float(merkmale.get("laenge in meter")) * 1000
|
||||||
|
h0 = float(merkmale.get("Höhe unten"))
|
||||||
|
h1 = float(merkmale.get("Höhe oben"))
|
||||||
|
h_zwischen = (h0 + h1)/2
|
||||||
|
blockname = (f"OF_Förderer_{laenge}_{h_zwischen}")
|
||||||
|
winkel_rad = math.radians(rotation)
|
||||||
|
halbe_laenge = laenge / 2
|
||||||
|
# Man muss bei sin -1 machen wegen des links koordinaten system
|
||||||
|
dx = halbe_laenge * math.sin(rotation * -1)
|
||||||
|
dy = halbe_laenge * math.cos(rotation)
|
||||||
|
start = (x + dx, y + dy, float(merkmale.get("Höhe oben")) )
|
||||||
|
ende = (x - dx, y - dy, float(merkmale.get("Höhe unten")))
|
||||||
|
if blockname not in doc.blocks:
|
||||||
|
block = doc.blocks.new(blockname, base_point=(0,0,0))
|
||||||
|
block.add_blockref("bogen1",start)
|
||||||
|
block.add_blockref("bogen2",ende)
|
||||||
|
line = Line.new(dxfattribs={"start": start,"end":ende})
|
||||||
|
copy = line.copy()
|
||||||
|
copy.translate(-x,-y,-h_zwischen)
|
||||||
|
block.add_entity(copy)
|
||||||
|
msp.add_blockref(blockname,(x,y,h_zwischen),dxfattribs={"rotation": rotation})
|
||||||
|
return
|
||||||
# Sonst wie gehabt: Block mit SivasNummer
|
# Sonst wie gehabt: Block mit SivasNummer
|
||||||
if not lib_doc:
|
if not lib_doc:
|
||||||
print("[WARN] lib_doc nicht verfügbar, Block wird nicht eingefügt.")
|
print("[WARN] lib_doc nicht verfügbar, Block wird nicht eingefügt.")
|
||||||
@@ -3449,6 +3487,8 @@ def get_rotations_of_strecken(csv_path:Path) -> dict:
|
|||||||
|
|
||||||
return strecken_nachbarn
|
return strecken_nachbarn
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------- Hauptfunktion
|
# --------------------------------------------------------- Hauptfunktion
|
||||||
def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Path,
|
def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Path,
|
||||||
output_path: Path, output_path_jason: Path, verbose=False, logger=None ):
|
output_path: Path, output_path_jason: Path, verbose=False, logger=None ):
|
||||||
@@ -3555,6 +3595,15 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Pat
|
|||||||
else:
|
else:
|
||||||
print(msg)
|
print(msg)
|
||||||
continue
|
continue
|
||||||
|
# if "Motor" not in doc.layers:
|
||||||
|
# doc.layers.add(name="Motor", color=2)
|
||||||
|
# for insert in msp.query("INSERT"):
|
||||||
|
# change_layer(doc, insert)
|
||||||
|
|
||||||
|
|
||||||
|
for insert in msp.query("INSERT"):
|
||||||
|
basepoint = insert.dxf.insert
|
||||||
|
|
||||||
# data = []
|
# data = []
|
||||||
# for e in msp.query("INSERT"):
|
# for e in msp.query("INSERT"):
|
||||||
|
|
||||||
@@ -3602,6 +3651,13 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Pat
|
|||||||
else:
|
else:
|
||||||
print(f"[DONE] DXF gespeichert unter: {output_path}")
|
print(f"[DONE] DXF gespeichert unter: {output_path}")
|
||||||
|
|
||||||
|
# def change_layer(doc, insert):
|
||||||
|
# src = doc.blocks[insert.dxf.name]
|
||||||
|
# for e in src:
|
||||||
|
# e.dxf.layer = "Motor"
|
||||||
|
# if e.dxftype() == "INSERT":
|
||||||
|
# change_layer(doc,e)
|
||||||
|
|
||||||
def check_dxflibrary_path(lib_path, verbose, logger):
|
def check_dxflibrary_path(lib_path, verbose, logger):
|
||||||
lib_doc = None
|
lib_doc = None
|
||||||
if lib_path.exists():
|
if lib_path.exists():
|
||||||
@@ -3633,10 +3689,8 @@ if __name__ == "__main__":
|
|||||||
parser.add_argument("-o", "--output", help="Ziel-DXF (Standard: PROJECT_WORK/anlage.dxf)", metavar="anlage.dxf")
|
parser.add_argument("-o", "--output", help="Ziel-DXF (Standard: PROJECT_WORK/anlage.dxf)", metavar="anlage.dxf")
|
||||||
parser.add_argument("-v", "--verbose", action="store_true", help="mehr Ausgaben anzeigen")
|
parser.add_argument("-v", "--verbose", action="store_true", help="mehr Ausgaben anzeigen")
|
||||||
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
# Verzeichnisse aus Umgebungsvariablen
|
# Verzeichnisse aus Umgebungsvariablen
|
||||||
log_dir = check_environment_var("PROJECT_LOG")
|
log_dir = check_environment_var("PROJECT_LOG")
|
||||||
data_dir = check_environment_var("PROJECT_DATA")
|
data_dir = check_environment_var("PROJECT_DATA")
|
||||||
@@ -3658,4 +3712,6 @@ if __name__ == "__main__":
|
|||||||
output_path = Path(args.output) if args.output else (work_dir / f"{csv_path.stem}.dxf")
|
output_path = Path(args.output) if args.output else (work_dir / f"{csv_path.stem}.dxf")
|
||||||
output_path_jason = Path(args.output) if args.output else (work_dir / f"{csv_path.stem}.jason")
|
output_path_jason = Path(args.output) if args.output else (work_dir / f"{csv_path.stem}.jason")
|
||||||
main(csv_path, default_lib_path, cfg_path,allgemein_cfg_path, output_path,output_path_jason, verbose=args.verbose, logger=logger)
|
main(csv_path, default_lib_path, cfg_path,allgemein_cfg_path, output_path,output_path_jason, verbose=args.verbose, logger=logger)
|
||||||
logger.info("=== plant2dxf Verarbeitung abgeschlossen ===")
|
logger.info("=== plant2dxf Verarbeitung abgeschlossen ===")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user