Ik heb een tekening waarin ik kant- en klare blokken heb gedownload en gebruikt. (meubels).
Nu hebben die blokken geen duidelijke namen maar nummers.
Nu kan ik met het commando RENAME deze blokken een nieuwe naam geven maar omdat sommige meubels uit meerdere blokken bestaan wil ik liever alle blokken 'resetten' en zelf nieuwe blokken creëren met het commando create.
Maar ik kan niet duidelijk terugvinden hoe ik dat moet doen. Dus het resetten van de blokdefinities zonder de objecten te wissen.
Wil je de oude namen terughebben?
Indien wel zie ik geen andere optie dan terug rename toe te passen, maar dan naar de oorspronkelijke naam.
Ik heb het niet helemaal duidelijk uitgelegd maar ik wil zelf namen bedenken. Een stoel heet nu 6354738 of zo iets. Echter die kan ik eenvoudig renamen naar bijvoorbeeld ''Stoel eetkamer''
Maar er zijn ook meubelstukken die bestaan uit meerdere blokken met meerdere namen dus.
Ik wil van zo een meubelstuk 1 blok maken zodat ik die waslijst van blokken voor 1 meubelstuk niet meer heb.
Hoe doe ik dit.
Dat kan op verschillende manieren
zijn de blokken genest dan eerst het Block dat aan de top staat een nieuwe naam geven
vervolgens dit Block openen in de bockeditor alle geneste blocken exploderen en het block opslaan.
dan de tekening purgen
zo ga je alle blocken langs.
zijn ze niet genest maar zit alles op het eerste level in de tekening
dan gewoon exploderen en met block nieuwe blocks maken door je meubels te selecteren een naam en een logische insertpoint te kiezen als je convert to block aanzet blijft het getekende als nieuw block in je tekening staan
met purge gooi je ook bij deze methode de oude blocken uit je tekening
Als je eerst de blocks verwijderd die je niet gebruikt...
Plaats dan alle blocks in je tekening.
Daarna rename je ze allemaal.
Je zou daarvoor deze tool kunnen gebruiken:
(defun c:QRenameBlock (/ ent name new)
;; conditional variable to make sure object selected
(if (and (setq ent (car (entsel "\nSelect block to rename: ")))
;; check to make sure object is a block
(or (eq "INSERT" (cdr (assoc 0 (entget ent))))
(alert "Invalid object!")
)
;; print block name to command line
(princ (strcat "\n->>> " (setq name (cdr (assoc 2 (entget ent)))) " <<<-"))
;; prompt for new block name and make sure result not equal to ""
(/= "" (setq new (getstring T "\nspecify new block name: ")))
)
(cond
;; check if new name already exists
((tblsearch "block" new) (alert (strcat "Block: " new " already exists.")))
;; check if new name is valid
((not (snvalid new)) (alert (strcat "Invalid block name: " new)))
;; valid name, rename block
((snvalid new)
(command "_.rename" "_block" name new)
(princ (strcat "\nBlock \"" name "\" renamed to ->>> " new " <<<-"))
)
)
)
(princ)
);end defun
Deze start je met het commando: QRENAMEBLOCK
Heb je dit gedaan en wil je de blocks los bewaren, per block een dwg, dan kun je bv deze tool gebruiken:
https://lispbox.wordpress.com/2014/12/15/export-wblock-all-blocks-in-drawing-in-one-click/
Ook de "BLOCKREPLACE" van de expresstools kan handig zijn als je een block wil vervangen door een andere.