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
+74
View File
@@ -126,5 +126,79 @@
(princ)
)
;; ============================================================
;; SSG_BLOCKEDIT - Kontextmenue-Dispatcher
;; Erkennt den selektierten Blocktyp und ruft den passenden
;; Bearbeitungsbefehl auf (Rechtsklick-Kontextmenue).
;; ============================================================
(defun c:SSG_BLOCKEDIT ( / ss ent ed bname attribs teileart)
;; Implied Selection pruefen (Block muss vorselektiert sein)
(setq ss (ssget "I"))
(if (null ss)
(progn
(princ "\nBitte zuerst einen Block auswaehlen.")
(princ)
(exit)
)
)
(if (/= (sslength ss) 1)
(progn
(princ "\nBitte genau einen Block auswaehlen.")
(princ)
(exit)
)
)
(setq ent (ssname ss 0))
(setq ed (entget ent))
(if (/= (cdr (assoc 0 ed)) "INSERT")
(progn
(princ "\nKein Block ausgewaehlt.")
(princ)
(exit)
)
)
(setq bname (cdr (assoc 2 ed)))
(cond
;; Kreisel-Bloecke -> KreiselEdit
((wcmatch bname "KREISEL_*")
(princ (strcat "\nKreisel bearbeiten: " bname))
(c:KreiselEdit)
)
;; Eckrad-Bloecke -> BEDIT (kein eigener Edit-Dialog in LISP)
((wcmatch bname "ECKRAD_*")
(princ (strcat "\nEckrad bearbeiten: " bname))
(command "_.BEDIT" bname)
)
;; Omniflo-Bloecke -> OMNI_EDIT
;; Erkennung: TEILEART-Attribut vorhanden, AP110-Blockname oder rein numerisch
((progn
(setq attribs (ssg-attrib-read ent))
(setq teileart (cdr (assoc "TEILEART" attribs)))
(or
teileart
(wcmatch (strcase bname) "AP110*,AP_110*,APG110*")
(wcmatch bname "#*")
)
)
(princ (strcat "\nOmniflo Element bearbeiten: " bname))
(c:OMNI_EDIT)
)
;; Unbekannter Blocktyp -> Standard BEDIT
(t
(princ (strcat "\nBlock bearbeiten (BEDIT): " bname))
(command "_.BEDIT" bname)
)
)
(princ)
)
(princ "\nSSG_LIB_Commands.lsp geladen - Dummy-Befehle registriert.")
(princ)