Zitat:
Original erstellt von redfire:
Hallo zusammenIch versuche mittels lisp den Befehl Blockreplace zu verwenden, leider erhalte ich immer folgende Fehler:
-----
Befehl: AUTOBR
-BLOCKREPLACE Unbekannter Befehl "-BLOCKREPLACE". Drücken Sie F1-Taste für Hilfe.
Befehl: Block_1_alt Unbekannter Befehl "BLOCK_1_ALT". Drücken Sie F1-Taste für Hilfe.
Befehl: Block_3_neu Unbekannter Befehl "BLOCK_3_NEU". Drücken Sie F1-Taste für Hilfe.
Befehl: y Unbekannter Befehl "Y". Drücken Sie F1-Taste für Hilfe.
------
Code:
(defun C:AUTOBR ()
(command "-BLOCKREPLACE" "Block_1_alt" "Block_3_neu" "y" "")
(princ)
)
Kann mir jemand sagen was ich falsch mache? Besten Dank für eure Unterstützung
Durchsuche das Forum mal nach "SSMODENT". Damit kannst Du jeden DXF-Gruppencode jedes Entities ändern. Der Blockname einer Blockreferenz steht in Gruppencode 2, also geht das dann so:
(ssmodent <ename> 2 ""Block_3_neu")
Und wenn Du nur Blockreferenzen auf den Namen "Block_1_alt" ändern willst, dann mithilfe der folgenden SS->LIST dann so:
(mapcar '(lambda (en) (ssmodent en 2 ""Block_3_neu")) (ss-list (ssget '((2 . "Block_1_alt")))
Code:
(defun ss->list (sset / eset counter)
(setq counter 0)
(if (= 'PICKSET (type sset))
(repeat (sslength sset)
(setq eset (cons (ssname sset counter) eset)
counter (1+ counter)
)
)
)
eset
)
Ergänzung: BLOCKREPLACE wird vermutlich kein COMMAND sein, sondern höchstwahrscheinlich auch in Lisp oder C# o.ä geschrieben und wird dann mit (BLOCKREPLACE ...) aufgerufen
[Diese Nachricht wurde von archtools am 07. Mai. 2024 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP