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]
|
||||
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})
|
||||
|
||||
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)
|
||||
msp.add_blockref("AN8",(x,y))
|
||||
# kurvenrichtung = merkmale.get("Kurvenrichtung")
|
||||
# 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):
|
||||
import_block("AN8",lib_doc,doc)
|
||||
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
|
||||
omnisivas = config.get("Omniflo","OFgeradesivas")
|
||||
tefsivas = config.get("Omniflo","Tefgeradesivas")
|
||||
foerderer = config.get("Omniflo","OFfoerderer")
|
||||
|
||||
if merkmale.get("SivasNummer") == omnisivas or merkmale.get("SivasNummer") == tefsivas:
|
||||
try:
|
||||
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:
|
||||
print(f"[INFO] Omniflo Gerade → {teileid} Linie von ({start[0]:.1f}, {start[1]:.1f}) nach ({ende[0]:.1f}, {ende[1]:.1f})")
|
||||
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
|
||||
if not lib_doc:
|
||||
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
|
||||
|
||||
|
||||
|
||||
# --------------------------------------------------------- Hauptfunktion
|
||||
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 ):
|
||||
@@ -3555,6 +3595,15 @@ def main(csv_path: Path, lib_path: Path, cfg_path: Path, allgemein_cfg_path: Pat
|
||||
else:
|
||||
print(msg)
|
||||
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 = []
|
||||
# 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:
|
||||
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):
|
||||
lib_doc = None
|
||||
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("-v", "--verbose", action="store_true", help="mehr Ausgaben anzeigen")
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
|
||||
# Verzeichnisse aus Umgebungsvariablen
|
||||
log_dir = check_environment_var("PROJECT_LOG")
|
||||
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_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)
|
||||
logger.info("=== plant2dxf Verarbeitung abgeschlossen ===")
|
||||
logger.info("=== plant2dxf Verarbeitung abgeschlossen ===")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user