seleccionar todo y cambiar a bylayer
5 participantes
Página 1 de 1.
seleccionar todo y cambiar a bylayer
Buenos Dias: Tengo que cambiar en varios archivos y ordenarlos a BYLAYER
por lo pronto puedo seleccionar pero no se como indicar que cecolor haga el cambio...aver si me explico mejor:
(defun c:cbyl ()
(setq entg (ssget "_x")); hasta aca va bien
(command "cecolor" entg "256") ; aca ya me perdi
)
el comando cecolor te permite cambiar a bylayer cuando digitas 256, pero no se como indicarle que seleccione todo el archivo y lo cambie a bylayer, lo que pasa es que esta es una rutina que seria el final de otra es por eso que necesito esta ayuda.
saludos.
por lo pronto puedo seleccionar pero no se como indicar que cecolor haga el cambio...aver si me explico mejor:
(defun c:cbyl ()
(setq entg (ssget "_x")); hasta aca va bien
(command "cecolor" entg "256") ; aca ya me perdi
)
el comando cecolor te permite cambiar a bylayer cuando digitas 256, pero no se como indicarle que seleccione todo el archivo y lo cambie a bylayer, lo que pasa es que esta es una rutina que seria el final de otra es por eso que necesito esta ayuda.
saludos.
cyberactive- Mensajes : 28
Fecha de inscripción : 16/05/2016
Re: seleccionar todo y cambiar a bylayer
Hola cybor
No se si la necesidad es programarlo.
Pero yo aplico el comando SETBYLAYER luego YES YES y listo.
Te convierte todo a bylayer, y solo cambio el color del layer.
Y si no lo puedes aplicar así.
Espero te sirva de ayuda.
Saludos.
No se si la necesidad es programarlo.
Pero yo aplico el comando SETBYLAYER luego YES YES y listo.
Te convierte todo a bylayer, y solo cambio el color del layer.
Y si no lo puedes aplicar así.
- Código:
(defun c:xxx (/ entg)
(setq entg (ssget "_x"))
(command "_.setbylayer" entg "" "_yes" "_yes")
(princ))
Espero te sirva de ayuda.
Saludos.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: seleccionar todo y cambiar a bylayer
Que tal... buena respuesta. Yo iba a sugerir que, una vez seleccionado todo en el grupo, crees un bucle para ir cambiando cada objeto, pero esta solución está mucho mejor. Gracias por compartirla
Saludos
Saludos
eliasp- Mensajes : 223
Fecha de inscripción : 17/03/2016
Re: seleccionar todo y cambiar a bylayer
De nada, me alegra que les sirva mi ayuda.
Saludos.
Saludos.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: seleccionar todo y cambiar a bylayer
Hola Carlosmgilp: Muchas gracias, he probado en autocad 2016 y funciona correctamente pero en 2007 no existia ese comando por lo que me sale Unknown command "SETBYLAYER", existe algun comando o variable comun para todas las versiones?
cyberactive- Mensajes : 28
Fecha de inscripción : 16/05/2016
Re: seleccionar todo y cambiar a bylayer
Hola hermano como estás, de verdad esa información no la tengo clara, pues yo utilizo AutoCAD 2017 y no tengo como verificar.
Esperemos a ver que más aportan o si alguien sabe algo sobre ese comando en otras versiones.
Esperemos a ver que más aportan o si alguien sabe algo sobre ese comando en otras versiones.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: seleccionar todo y cambiar a bylayer
En ese caso, creo que mi sugerencia inicial te servirá mejor, aquí la tienes
- Código:
(vl-load-com)
(defun c:cambcol()
(prompt "\nRutina que cambia a color por capa")
(setq ind 0)
(setq conjunto(SSGET "_X"))
(setq cuantos(sslength conjunto))
(repeat cuantos
(setq ent(ssname conjunto ind))
(setq ent1(vlax-ename->vla-object ent))
(vla-put-color ent1 256)
(setq ind(1+ ind))
)
(prompt "\nNuevo comando ejecutado")
(princ)
)
eliasp- Mensajes : 223
Fecha de inscripción : 17/03/2016
Re: seleccionar todo y cambiar a bylayer
Muy buena opción, pero no entra dentro de los bloques, sería lo único que le veo, aparte de que si son bloques anidados se complica más.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: seleccionar todo y cambiar a bylayer
Pues si... así se complica. Y es inevitable recordar los "reglazos" del maestro Devitg, cuando solicita: "Explica bien que quieres, anexa un DWG con un antes y un después" una vez mas... ¡Que razón tienes maestro...!
jajajaja, fuera de todo esto. Creo recordar que el maestro Gerardo Calvo resolvió ese problema en el extinto Hispcad....
Sería interesante si alguien guardó esa solución que la comparta. O mejor aún, si el mismo Gerardo la puede subir.
Saludos
jajajaja, fuera de todo esto. Creo recordar que el maestro Gerardo Calvo resolvió ese problema en el extinto Hispcad....
Sería interesante si alguien guardó esa solución que la comparta. O mejor aún, si el mismo Gerardo la puede subir.
Saludos
eliasp- Mensajes : 223
Fecha de inscripción : 17/03/2016
Re: seleccionar todo y cambiar a bylayer
Yo cambiaría a un AutoCAD más nuevo, no subir al último pero si hasta el que tenga el comando, jejeje.
Que de por si, el 2008 me pareció el mejor. Pero no se si traía ese comando.
Voy a ver que investigó.
Que de por si, el 2008 me pareció el mejor. Pero no se si traía ese comando.
Voy a ver que investigó.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: seleccionar todo y cambiar a bylayer
Muchas gracias, funciona correctamente todo, me sirvió de mucho.
cyberactive- Mensajes : 28
Fecha de inscripción : 16/05/2016
Re: seleccionar todo y cambiar a bylayer
Hola que tal, te adjunto un lisp, espero que sea util.
- Código:
;;; File Name: Layerfix.LSP
;;; Description: Changes the block definitions to BYLAYER . Will skip all
;;; XREF & XREF dependent blocks.
;;;
;;; Global Variables: None
;;;
;;; Local Variables: Self-explanatory
;;;
;;; Program Arguments: None
;;; Subroutines/Functions Defined or Called: None
;;;
;;;***************************************************************************
(defun c:Layerfix (/ BLKDATA NEWCOLOR NEWCOLOR NEWLAYER LAYER XREFFLAG XDEPFLAG BLKENTNAME
COUNT ENTDATA ENTNAME ENTTYPE OLDCOLOR OLDLAYER SSCOUNT SS)
(command ".undo" "group")
(setq BLKDATA (tblnext "BLOCK" t))
(setq NEWCOLOR (cons 62 256)) ;this will set 62 (color) to bylayer
(setq NEWLAYER (cons 8 "0")) ;this will set 8 (layer) to 0
; While there is an entry in the block table to process, continue
(while BLKDATA
(prompt "\nRedefining colors for block: ")
(princ (cdr (assoc 2 BLKDATA)))
; Check to see if block is an XREF or is XREF dependent
(setq XREFFLAG (assoc 1 BLKDATA))
(setq XDEPFLAG (cdr (assoc 70 BLKDATA)))
; If block is not XREF or XREF dependent, i.e., regular block, then proceed.
(if (and (not XREFFLAG) (/= (logand XDEPFLAG 32) 32))
(progn
(setq BLKENTNAME (cdr (assoc -2 BLKDATA)))
(setq COUNT 1)
(terpri)
; As long as we haven't reached the end of the block's defintion, get the data
; for each entity and change its color assignment to BYLAYER.
(while BLKENTNAME
(princ COUNT)
(princ "\r")
(setq ENTDATA (entget BLKENTNAME)); get entities data
(setq OLDCOLOR (assoc 62 ENTDATA)) ;get entities old color value
(if OLDCOLOR ; if value exist (null = bylayer)
(entmod (subst newcolor oldcolor ENTDATA)) ; substitute old color to byblock
(entmod (cons newcolor ENTDATA)) ; modify ent data w/ byblock values
)
(setq BLKENTNAME (entnext BLKENTNAME)) ;if attributes exist, then edit next one
(setq COUNT (+ COUNT 1));
) ;end while for attribute trap
) ;progn
(progn
(princ " XREF...skipping!")
) ;progn
);end if not an Xref
(setq BLKDATA (tblnext "BLOCK")) ;next block please
) ;end while loop of blk data available to edit
(command ".undo" "end")
(command ".regen")
(princ))
Re: seleccionar todo y cambiar a bylayer
Hola hermano muchas gracias por la información, ya lo estaba sacando pero no había pensado en los xref.
Analizando y estudiando para futuros proyectos, saludos.
Analizando y estudiando para futuros proyectos, saludos.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: seleccionar todo y cambiar a bylayer
Sólo un apunte,
Desde las primeras versiones de Autocad, existe también el comando < _change >
Un saludo
Desde las primeras versiones de Autocad, existe también el comando < _change >
- Código:
(command "_change" <selección> "_p" "_la" "nueva_capa" "")
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Temas similares
» LISP (SELECCIÓNAR TODO Y CONVERTIR TODO COLOR PORCAPA), LISP (BLOQUES COLOR PORCAPA Y CAPA 0)
» HISPACAD CERRO DEL TODO
» Favor de cambiar la categoría de la pagina
» Cambiar numeración
» Cambiar propiedades de text y mtext
» HISPACAD CERRO DEL TODO
» Favor de cambiar la categoría de la pagina
» Cambiar numeración
» Cambiar propiedades de text y mtext
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|