Contextmenü für die Rechte Maustaste eingeführt um Elemente zu bearbeiten

This commit is contained in:
2026-06-15 14:30:55 +02:00
parent b829b7e961
commit c915a4031f
3 changed files with 90 additions and 16 deletions
+12 -15
View File
@@ -11,14 +11,14 @@ Vorgehen pro DXF-Datei:
3. Neue ATTDEFs gemaess cfg/attradd.cfg und JSON-Daten einfuegen.
Attributwerte werden aus omniflo_boegen.json / omniflo_weichen.json
aufgeloest; der Layer-Name kommt aus dem [layer]-Abschnitt der Config.
4. Alle Entities (Geometrie + ATTDEFs) in eine Blockdefinition verschieben.
Der Blockname entspricht der Sivasnummer (= Dateiname ohne .dxf).
Als Basispunkt der Blockdefinition wird $INSBASE aus dem DXF-Header
verwendet (gesetzt von set_einfuegepkt.py).
5. Im Modelspace einen INSERT auf den neuen Block einfuegen, mit
ATTRIB-Entities befuellt aus den ATTDEF-Standardwerten. Dadurch zeigt
BricsCAD beim Klick auf den Block alle Attributwerte an.
6. Ergebnis in results/omniflo/<sivasnr>.dxf speichern.
4. Ergebnis in results/omniflo/<sivasnr>.dxf speichern.
Hinweis zur Blockstruktur:
Die Geometrie und ATTDEFs verbleiben direkt im Modelspace (flache Struktur).
BricsCAD erstellt beim Einfuegen via LISP (_.INSERT <sivasnr>.dxf) automatisch
einen Block mit dem Dateinamen (= Sivasnr) und befuellt die ATTDEFs mit den
Standardwerten als ATTRIBs. Jedes eingefuegte Element wird als eigenstaendiger
Block im Ziel-DWG referenziert.
Voraussetzung:
Die Quelldateien in data/omniflo/ sollten bereits durch set_einfuegepkt.py
@@ -219,6 +219,7 @@ def wrap_entities_in_block(doc, block_name):
dxfattribs={
"layer": attdef.dxf.layer,
"height": attdef.dxf.height,
"flags": attdef.dxf.flags,
},
)
@@ -226,9 +227,8 @@ def wrap_entities_in_block(doc, block_name):
def add_attdefs_to_dxf(dxf_path, output_path, attr_defs, json_entry, sivasnr,
layer_value=""):
"""
Oeffnet eine DXF-Datei, fuegt ATTDEF-Entities in den Modelspace ein,
fasst alle Entities anschliessend in einen Block mit dem Namen sivasnr
zusammen und speichert das Ergebnis.
Oeffnet eine DXF-Datei, fuegt ATTDEF-Entities in den Modelspace ein
und speichert das Ergebnis.
attr_defs: Liste von (TAG, source_expression) aus der Config
json_entry: Dict mit den JSON-Daten fuer dieses Element
@@ -266,15 +266,12 @@ def add_attdefs_to_dxf(dxf_path, output_path, attr_defs, json_entry, sivasnr,
"height": ATTDEF_HEIGHT,
"insert": (0, y_pos),
"prompt": prompt,
"flags": 0, # sichtbar
"flags": 3, # unsichtbar (1) + konstant (2)
},
)
y_pos += ATTDEF_SPACING
count += 1
# Alle Entities (Geometrie + ATTDEFs) in Block mit Sivasnr-Namen fassen
wrap_entities_in_block(doc, sivasnr)
doc.saveas(output_path)
return count