Omniflo Boegen und Weichen auch durch .py erzeugen und ändern.

This commit is contained in:
2026-06-01 11:08:19 +02:00
parent 35e4e707aa
commit d0373d09f3
13 changed files with 1088 additions and 1277 deletions
+24 -18
View File
@@ -426,23 +426,11 @@ def cmd_kreisel_quick():
print("\nSchnell Einfuegen fertig.")
@Rx.command("KreiselEdit")
def cmd_kreisel_edit():
"""KreiselEdit: Bestehenden Kreisel per wxPython-Dialog bearbeiten."""
ed = Ed.Editor()
db = Db.HostApplicationServices().workingDatabase()
# 1. Block auswaehlen
res = ed.entSel("\nKreisel-Block auswaehlen: ")
if res[0] != Ed.PromptStatus.eOk:
return
ent_id = res[1]
ent = Db.Entity(ent_id, Db.OpenMode.kForRead)
if not ent.isKindOf(Db.BlockReference.desc()):
print("\nKein Block ausgewaehlt!")
return
def kreisel_edit_entity(db, ent_id):
"""Kreisel per wxPython-Dialog bearbeiten (fuer eine bestimmte Entity-ID).
Wird von KreiselEdit und SSG_BLOCKEDIT aufgerufen.
"""
bref = Db.BlockReference(ent_id, Db.OpenMode.kForRead)
attribs = read_block_attribs(bref)
base_point = bref.position()
@@ -464,7 +452,7 @@ def cmd_kreisel_edit():
f" Drehung={rotation:.1f}"
f" Art={attribs.get('KREISELART')}")
# 2. wxPython-Dialog (ersetzt DCL)
# wxPython-Dialog
dlg = KreiselEditDialog(None, attribs, rotation)
result = dlg.ShowModal()
@@ -472,7 +460,6 @@ def cmd_kreisel_edit():
new_values = dlg.get_values()
dlg.Destroy()
# Attribute aktualisieren
attribs["NAME"] = new_values["name"]
attribs["HOEHE"] = new_values["hoehe"]
attribs["KREISELART"] = new_values["kreiselart"]
@@ -498,6 +485,25 @@ def cmd_kreisel_edit():
print("\nAbgebrochen.")
@Rx.command("KreiselEdit")
def cmd_kreisel_edit():
"""KreiselEdit: Bestehenden Kreisel per wxPython-Dialog bearbeiten."""
ed = Ed.Editor()
db = Db.HostApplicationServices().workingDatabase()
res = ed.entSel("\nKreisel-Block auswaehlen: ")
if res[0] != Ed.PromptStatus.eOk:
return
ent_id = res[1]
ent = Db.Entity(ent_id, Db.OpenMode.kForRead)
if not ent.isKindOf(Db.BlockReference.desc()):
print("\nKein Block ausgewaehlt!")
return
kreisel_edit_entity(db, ent_id)
@Rx.command("KreiselParams")
def cmd_kreisel_params():
"""KreiselParams: Aktuelle Parameter anzeigen."""