Maquinaria
Moderador: Moderadores
-
- Auxiliar
- Mensajes: 52
- Registrado: Mié Feb 20, 2008 1:35 pm
- Ubicación: Tavernes Blanques (Valencia)
- Contactar:
Maquinaria
Tengo un problema con ciertos planos que me dan.
Resulta que muchas veces me pasan planos de maquinaria de una industria, hay mucha maquinaria en bloques, bloques anidados en otros, y muchas capas distintas con distintos colores y casi nunca en color por capa.
Mi pregunta es la siguiente: ¿Hay alguna forma, de poder cambiar fácilmente todas los elementos de esa maquinaria, bien a una capa con un color específico o bien cambiar los todos los elementos de la maquinaria para que sean en color por capa?. Gracias.
Resulta que muchas veces me pasan planos de maquinaria de una industria, hay mucha maquinaria en bloques, bloques anidados en otros, y muchas capas distintas con distintos colores y casi nunca en color por capa.
Mi pregunta es la siguiente: ¿Hay alguna forma, de poder cambiar fácilmente todas los elementos de esa maquinaria, bien a una capa con un color específico o bien cambiar los todos los elementos de la maquinaria para que sean en color por capa?. Gracias.
Se me ocurre
Se me ocurre que si no son muchas maquinas diferentes y si lo són utiliza más paciencia. modificas las características de cada uno de esos bloques a tu gusto y los unes todos en un mismo archivo de dibujo.
Luego utilizas este dibujo como base en el cual insertas los otros. De esta manera las definiciones de bloque NO se redefiniran a las de ellos, manteniendo de esta manera tus características necesarias.
Espero que te venga bien.
Luego utilizas este dibujo como base en el cual insertas los otros. De esta manera las definiciones de bloque NO se redefiniran a las de ellos, manteniendo de esta manera tus características necesarias.
Espero que te venga bien.
Un saludo de......Julio
Delineando, ando.
Delineando, ando.
- Paco Fernandez
- Moderador
- Mensajes: 1018
- Registrado: Jue Jul 06, 2006 11:30 am
- Ubicación: BADAJOZ
- Contactar:
Ese mismo problema lo tenemos nosotros con algunos CD que nos mandan las empresas suministradoras de maquinaria (bombas, pretratamientos compactos, soplantes, valvuleria.........) y no hemos encontrado una solucion final y viable. Algunos incluso al descomponerlos para poder tenerlos en una sola capa y a escala real para poder insertarlos donde precisemos, desaparecen, otros es imposible y traen asociadas capas imborrables. En fin una locura, al final hemos tamado la decision de al abrir el fichero en cuestion lo descomponemos un monton de veces, limpiamos lineas que no valgan, limpiamos tambien el fichero, lo pasamos a escala real, capa 0 y color por capa y luego ya lo insertamos, ay aun asi alguans veces se trae algo.
Eso si una vez lo conseguimos lo guardamos en una base de datos para usarlos ya tranquilamente.
Un saludo
Eso si una vez lo conseguimos lo guardamos en una base de datos para usarlos ya tranquilamente.
Un saludo
-
- En prácticas
- Mensajes: 6
- Registrado: Jue Abr 03, 2008 7:40 pm
- Contactar:
-
- Auxiliar
- Mensajes: 46
- Registrado: Lun May 05, 2008 5:45 pm
- Ubicación: Asturias - España
- Contactar:
En la versión 2007 eso es fácil.
Editas bloque, haces una captura, cambias todo al mismo color o misma capa. Si hay otro bloque dentro de ese, lo mismo: editar bloque. Así hasta que tengas todos los bloques editados.
Luego acuérdate de guardar los cambios.
No es necesario andar "explotando" nada. Te siguen quedando como bloques, lo que pasa es que están todos en la misma capa/color.
Editas bloque, haces una captura, cambias todo al mismo color o misma capa. Si hay otro bloque dentro de ese, lo mismo: editar bloque. Así hasta que tengas todos los bloques editados.
Luego acuérdate de guardar los cambios.
No es necesario andar "explotando" nada. Te siguen quedando como bloques, lo que pasa es que están todos en la misma capa/color.
Si Arquímedes puede mover el mundo con una palanca, yo puedo mover a Arquímedes con mi lápiz.
- Paco Fernandez
- Moderador
- Mensajes: 1018
- Registrado: Jue Jul 06, 2006 11:30 am
- Ubicación: BADAJOZ
- Contactar:
- elhombredelsaco
- Auxiliar
- Mensajes: 62
- Registrado: Vie Abr 11, 2008 7:45 pm
- Ubicación: Granada
- Contactar:
- elhombredelsaco
- Auxiliar
- Mensajes: 62
- Registrado: Vie Abr 11, 2008 7:45 pm
- Ubicación: Granada
- Contactar:
http://www.draftsperson.net/index.php?t ... _Free_LISP
Un saludo a todos.
Un saludo a todos.
elhombredelsaco escribió:http://www.draftsperson.net/index.php?t ... _Free_LISP
Un saludo a todos.
a las muy buenas, yo no puedo acceder
- elhombredelsaco
- Auxiliar
- Mensajes: 62
- Registrado: Vie Abr 11, 2008 7:45 pm
- Ubicación: Granada
- Contactar:
Efectivamente la URL parece no funcionar (hoy) pero rebuscando entre mis archivos, lo he encontrado.
Espero que os sirva; ya me contareis.
Un saludo a todos.
Espero que os sirva; ya me contareis.
Código: Seleccionar todo
; File Name: FIXBLOCK.LSP
; Description: put... all of a blocks sub-entities on layer 0 with color and
; linetype set to BYBLOCK. The block, itself, will remain on
; its' original layer.
;
; Revision:
; 3-Dec-2003 YZ
; Changed program to work from a keyword on the command line
;*******************************************************************************
(defun d_FixBlock (/ eBlockSel ; Block selection
lInsertData ; Entity data
sBlockName ; Block name
lBlockData ; Entity data
eSubEntity ; Sub-entity name
lSubData ; Sub-entity data
iCount ; Counter
)
;; Redefine error handler
(setq
d_#error *error*
*error* d_FB_Error
) ;_ end setq
;; Set up environment
(setq #SYSVARS (#SaveSysVars (list "cmdecho")))
(setvar "cmdecho" 0)
(command "._undo" "_group")
;; Get block from user and make sure it's an INSERT type
(if (setq eBlockSel (entsel "\nSelecciona bloque para cambiar color a Por bloque :"))
(progn
(if (setq lInsertData (entget (car eBlockSel)))
(if (= (cdr (assoc 0 lInsertData)) "INSERT")
(setq sBlockName (cdr (assoc 2 lInsertData)))
(progn
(alert "El objeto seleccionado no es un bloque!")
(exit)
) ;_ end progn
) ;_ end if
(progn
(alert "El bloque ni ha sido seleccionado!")
(exit)
) ;_ end progn
) ;_ end if
;; Get block info from the block table
(setq
lBlockData (tblsearch "BLOCK" sBlockName)
eSubEntity (cdr (assoc -2 lBlockData))
) ;_ end setq
;; Make sure block is not an Xref
(if (not (assoc 1 lBlockData))
(progn
(princ "\nProcessing block: ")
(princ sBlockName)
(princ "\nUpdating blocks sub-entities. . .")
;; Parse through all of the blocks sub-entities
(while eSubEntity
(princ " .")
(setq lSubData (entget eSubEntity))
;; Update layer property
(if (assoc 8 lSubData)
(progn
(setq lSubData
(subst
(cons 8 "0")
(assoc 8 lSubData)
lSubData
) ;_ end subst
) ;_ end setq
(entmod lSubData)
) ;_ end progn
) ;_ end if
;; Update the linetype property
(if (assoc 6 lSubData)
(progn
(setq lSubData
(subst
(cons 6 "BYBLOCK")
(assoc 6 lSubData)
lSubData
) ;_ end subst
) ;_ end setq
(entmod lSubData)
) ;_ end progn
(entmod (append lSubData (list (cons 6 "BYBLOCK"))))
) ;_ end if
;; Update the color property
(if (assoc 62 lSubData)
(progn
(setq lSubData
(subst
(cons 62 0)
(assoc 62 lSubData)
lSubData
) ;_ end subst
) ;_ end setq
(entmod lSubData)
) ;_ end progn
(entmod (append lSubData (list (cons 62 0))))
) ;_ end if
(setq eSubEntity (entnext eSubEntity))
; get next sub entity
) ; end while
;; Update attributes
(idc_FB_UpdAttribs)
) ; end progn
(alert "XREF selected. Not updated!")
) ; end if
) ; end progn
(alert "Nothing selected.")
) ; end if
;;; Pop error stack and reset environment
(idc_RestoreSysVars)
(princ "\nDone!")
(setq *error* d_#error)
(princ)
) ; end defun
;*******************************************************************************
; Function to update block attributes
;*******************************************************************************
(defun idc_FB_UpdAttribs ()
;; Update any attribute definitions
(setq iCount 0)
(princ "\nUpdating attributes. . .")
(if (setq ssInserts (ssget "x"
(list (cons 0 "INSERT")
(cons 66 1)
(cons 2 sBlockName)
) ;_ end list
) ;_ end ssget
) ;_ end setq
(repeat (sslength ssInserts)
(setq eBlockName (ssname ssInserts iCount))
(if (setq eSubEntity (entnext eBlockName))
(setq
lSubData (entget eSubEntity)
eSubType (cdr (assoc 0 lSubData))
) ;_ end setq
) ;_ end if
(while (or (= eSubType "ATTRIB") (= eSubType "SEQEND"))
;; Update layer property
(if (assoc 8 lSubData)
(progn
(setq lSubData
(subst
(cons 8 "0")
(assoc 8 lSubData)
lSubData
) ;_ end subst
) ;_ end setq
(entmod lSubData)
) ;_ end progn
) ;_ end if
;; Update the linetype property
(if (assoc 6 lSubData)
(progn
(setq lSubData
(subst
(cons 6 "BYBLOCK")
(assoc 6 lSubData)
lSubData
) ;_ end subst
) ;_ end setq
(entmod lSubData)
) ;_ end progn
(entmod (append lSubData (list (cons 6 "BYBLOCK"))))
) ;_ end if
;; Update the color property
(if (assoc 62 lSubData)
(progn
(setq lSubData
(subst
(cons 62 0)
(assoc 62 lSubData)
lSubData
) ;_ end subst
) ;_ end setq
(entmod lSubData)
) ;_ end progn
(entmod (append lSubData (list (cons 62 0))))
) ;_ end if
(if (setq eSubEntity (entnext eSubEntity))
(setq
lSubData (entget eSubEntity)
eSubType (cdr (assoc 0 lSubData))
) ;_ end setq
(setq eSubType nil)
) ;_ end if
) ; end while
(setq iCount (1+ iCount))
) ; end repeat
) ; end if
(command "regen")
) ; end defun
;*******************************************************************************
; Function to save a list of system variables
;*******************************************************************************
(defun #SaveSysVars (lVarList / sSystemVar)
(mapcar
'(lambda (sSystemVar)
(setq lSystemVars
(append lSystemVars
(list (list sSystemVar (getvar sSystemVar)))
) ;_ end append
) ;_ end setq
) ;_ end lambda
lVarList
) ;_ end mapcar
lSystemVars
) ;_ end defun
;*******************************************************************************
; Function to restore a list of system variables
;*******************************************************************************
(defun idc_RestoreSysVars ()
(mapcar
'(lambda (sSystemVar)
(setvar (car sSystemVar) (cadr sSystemVar))
) ;_ end lambda
#SYSVARS
) ;_ end mapcar
) ;_ end defun
;*******************************************************************************
; Error Handler
;*******************************************************************************
(defun d_FB_Error (msg)
(princ "\nError occurred in the Fix Block routine...")
(princ "\nError: ")
(princ msg)
(setq *error* d_#error)
(if *error*
(*error* msg)
) ;_ end if
(command)
(if (/= msg "quit / exit abort")
(progn
(command "._undo" "_end")
(command "._u")
) ;_ end progn
) ;_ end if
(idc_RestoreSysVars)
(princ)
) ;_ end defun
;*******************************************************************************
(defun C:FIXBLOCK () (d_FixBlock))
(princ)
- elhombredelsaco
- Auxiliar
- Mensajes: 62
- Registrado: Vie Abr 11, 2008 7:45 pm
- Ubicación: Granada
- Contactar:
¿Como funciona la rutina? o ¿Como cargar la rutina?
Para lo primero, si ya tienes cargada la rutina, lo unico que tienes que hacer es llamar a la orden tecleando en la linea de comandos fixblock,
despues seleccionas el bloque que quieres arreglar (arregla la definición de bloque, con lo que arreglando uno, te arregla todos los bloques iguales que tengas insertados en el archivo).
Una vez hecho esto ya puedes poner todos los bloques de esa definición en el color y el tipo de linea que quieras (incluido porcapa).
La finalidad de la herramienta es poder modificar bloques que tienen (dentro de la definicion) diferentes elementos en color por objeto, y que por lo tanto una vez insertados, dichos elementos no son susceptibles de ser modificados.
Un saludo.
Para lo primero, si ya tienes cargada la rutina, lo unico que tienes que hacer es llamar a la orden tecleando en la linea de comandos fixblock,
despues seleccionas el bloque que quieres arreglar (arregla la definición de bloque, con lo que arreglando uno, te arregla todos los bloques iguales que tengas insertados en el archivo).
Una vez hecho esto ya puedes poner todos los bloques de esa definición en el color y el tipo de linea que quieras (incluido porcapa).
La finalidad de la herramienta es poder modificar bloques que tienen (dentro de la definicion) diferentes elementos en color por objeto, y que por lo tanto una vez insertados, dichos elementos no son susceptibles de ser modificados.
Un saludo.
- elhombredelsaco
- Auxiliar
- Mensajes: 62
- Registrado: Vie Abr 11, 2008 7:45 pm
- Ubicación: Granada
- Contactar:
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados