sábado 24 de octubre de 2009

Renombra Bloque

;;;El comando chBlock permite cambiar el nombre de cualquier bloque que se seleccione en pantalla, en caso de
;;;ya existir el bloqe el programa lo indica
;;;Autor: Marco Jacinto
;;;Puerto Vallarta Jalisco
(defun c:chblock (/ block ent newblock obj oldname)
(
setq *adoc* (vla-get-activedocument(vlax-get-acad-object))
*blocks* (vla-get-blocks *adoc*)
)
(
while (null obj)
(
setq ent (entsel "\n Selecciona un bloque: "))
(
if (and ent
(=(cdr(assoc 0 (entget (car ent))))"INSERT")
)
(
progn
(and(setq newblock (getstring "\n Nuevo nombre para el bloque: "))
(
/= newblock "")
(
setq oldname (cdr(assoc 2 (entget (car ent))))
obj (vlax-ename->vla-Object (car ent)))
)
(
if (vl-catch-all-error-p
(vl-catch-all-apply
'vla-item (list *blocks* NewBlock)
)
)
(
progn
(vla-startUndoMark *adoc*)
(
vla-put-name
(vla-item *blocks* oldName)
newblock
)
(
mapcar 'princ (list "\n Bloque " oldname "renombrado a " newBlock"."))
(
vla-EndUndoMark *adoc*)
)
(
princ "\n El bloque ya existe, intenta, con otro nombre.")
)
)
(
princ "\n No seleccionaste un bloque, intenta de nuevo.")
)
)
(
princ)
)

1
1