Hallo
Ich habe hier im Forum ein tolles kleines Tool gefunden.
mit dam den gewählten blocken neue Nahmen geben kann.
(defun c:NeuBlock (/ ss1 i1 ename edate NameAlt NameNeu)
;;:angepasst 11.07.2006 westphal
;;;der neue blockname wird abgefragt
(setq NameNeu (getstring "\nNeuer Blockname: "))
(cond ((setq ss1 (ssget (list (cons 0 "INSERT"))))
(setq i1 0)
(repeat (sslength ss1)
(setq ename (ssname ss1 i1)
edate (entget ename)
NameAlt (cdr (assoc 2 edate))
;;; NameNeu (HoleNeuenBlockName)
i1 (1+ i1)
)
(if (KopiereBlock NameAlt NameNeu)
(entmod (subst (cons 2 NameNeu) (assoc 2 edate) edate))
)
)
)
)
;;;alte bloecke eventuell bereinigen
;;; (command "-bereinig" "BL" "" "n")
)
;
; Kopieren einer Blockdefinition
;
(defun KopiereBlock (alt neu / block ename edate )
(setq block (tblsearch "BLOCK" alt))
(setq ename (cdr (assoc -2 block)))
(entmake)
(entmake (subst (cons 2 neu) (assoc 2 block) block))
(while ename
(setq edate (entget ename))
(entmake edate)
(setq ename (entnext ename))
)
(entmake (list (cons 0 "ENDBLK")))
)
Da man bei diesem tool den Blocknamen in der Komandozeile eingeben muss kann ich keine blocknamen vergeben mit einem Leerschlag dazwischen.
Kann man mit einem Trick doch in der komandozeile leerschläge machen oder kann man das tool irgenwie modifizieren das dies auch geht.
Gruss
------------------
Moni
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP