;;;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)
)



;;;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)
)

0 comentarios:
Publicar un comentario en la entrada