Omniflo Boegen und Weichen auch durch .py erzeugen und ändern.
This commit is contained in:
+24
-18
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user