Maquinaria

Dudas y consultas sobre CAD. AutoCAD, Microstation y resto de aplicaciones CAD

Moderador: Moderadores

Responder
nabero
Auxiliar
Mensajes: 52
Registrado: Mié Feb 20, 2008 1:35 pm
Ubicación: Tavernes Blanques (Valencia)
Contactar:

Maquinaria

Mensaje por nabero »

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.

Plannerly ™ La plataforma de gestión BIM ™ SmartLeanBIM® © 2021
Plantillas para crear el Plan de Ejecución BIM (BEP). Cumplimiento de la norma ISO-19650
Plan gratuito en el que puedes acceder a todas las plantillas y si al comprarlo introduces el código DELINEACION obtendrás un 10% de descuento
Avatar de Usuario
Julio
Jefe
Mensajes: 315
Registrado: Mié Abr 25, 2007 5:44 pm
Ubicación: BILBAO
Contactar:

Se me ocurre

Mensaje por Julio »

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. :D

Espero que te venga bien. :roll:
Un saludo de......Julio

Delineando, ando.
Avatar de Usuario
Paco Fernandez
Moderador
Moderador
Mensajes: 1018
Registrado: Jue Jul 06, 2006 11:30 am
Ubicación: BADAJOZ
Contactar:

Mensaje por Paco Fernandez »

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
nabero
Auxiliar
Mensajes: 52
Registrado: Mié Feb 20, 2008 1:35 pm
Ubicación: Tavernes Blanques (Valencia)
Contactar:

Mensaje por nabero »

Gracias chi@s, de momento seguiré descomponiendo. Es que no se si en las herramientas express había algo.
luzbe_merlo
En prácticas
Mensajes: 6
Registrado: Jue Abr 03, 2008 7:40 pm
Contactar:

Mensaje por luzbe_merlo »

Hu see a mi tambien me paso!! un monton de veces, que feo es tener que descubrir como hizo el trabajo otra persona!! a veces tambien acotan de manera distinta. o las cotas explotadas :? , todos las capas mezcladas
:x

Saludoss
Wasserkraft713
Auxiliar
Mensajes: 46
Registrado: Lun May 05, 2008 5:45 pm
Ubicación: Asturias - España
Contactar:

Mensaje por Wasserkraft713 »

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.
Si Arquímedes puede mover el mundo con una palanca, yo puedo mover a Arquímedes con mi lápiz.
Avatar de Usuario
Paco Fernandez
Moderador
Moderador
Mensajes: 1018
Registrado: Jue Jul 06, 2006 11:30 am
Ubicación: BADAJOZ
Contactar:

Mensaje por Paco Fernandez »

Pues te aseguro que muchos bloques de estas empresas suministradoras vienen preparados de tal manera que queden casi todas sus capas y si los editas desaparece el bloque entero, tambien muchas veces estas maquinas vienes compuestas de varios bloques y algun atributo y dan mucha lata.
Avatar de Usuario
elhombredelsaco
Auxiliar
Mensajes: 62
Registrado: Vie Abr 11, 2008 7:45 pm
Ubicación: Granada
Contactar:

Mensaje por elhombredelsaco »

Existe una rutina rulando por intenet llamada Fixblock.
Creo recordar que ponia en la base de datos de autocad, todos los objetos que componian un bloque en color "porbloque" y tipo de linea "porbloque", sin necesidad de descomponer el bloque en cuestion.
Avatar de Usuario
elhombredelsaco
Auxiliar
Mensajes: 62
Registrado: Vie Abr 11, 2008 7:45 pm
Ubicación: Granada
Contactar:

Mensaje por elhombredelsaco »

cacos
Proyectista
Mensajes: 178
Registrado: Mié Oct 17, 2007 4:05 pm
Contactar:

Mensaje por cacos »

elhombredelsaco escribió:http://www.draftsperson.net/index.php?t ... _Free_LISP
Un saludo a todos.

:? a las muy buenas, yo no puedo acceder
Avatar de Usuario
elhombredelsaco
Auxiliar
Mensajes: 62
Registrado: Vie Abr 11, 2008 7:45 pm
Ubicación: Granada
Contactar:

Mensaje por elhombredelsaco »

Efectivamente la URL parece no funcionar (hoy) pero rebuscando entre mis archivos, lo he encontrado.
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)
Un saludo a todos.
nabero
Auxiliar
Mensajes: 52
Registrado: Mié Feb 20, 2008 1:35 pm
Ubicación: Tavernes Blanques (Valencia)
Contactar:

Mensaje por nabero »

He conseguido bajarme el Fixblock.lsp

Podría explicarme alguien como co.. funciona esto. Gracias.
Avatar de Usuario
elhombredelsaco
Auxiliar
Mensajes: 62
Registrado: Vie Abr 11, 2008 7:45 pm
Ubicación: Granada
Contactar:

Mensaje por elhombredelsaco »

¿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.
Avatar de Usuario
elhombredelsaco
Auxiliar
Mensajes: 62
Registrado: Vie Abr 11, 2008 7:45 pm
Ubicación: Granada
Contactar:

Mensaje por elhombredelsaco »

Matizo, no son modificables salvo que realices un refedit, y manualmente dejes los colores y tipos de linea a tu antojo.
Si las modificaciones que pretendeis realizar son parciales o afectan al aspecto geometrico del propio bloque, del refedit no os libra ni...
Un saludo a todos.
nabero
Auxiliar
Mensajes: 52
Registrado: Mié Feb 20, 2008 1:35 pm
Ubicación: Tavernes Blanques (Valencia)
Contactar:

Mensaje por nabero »

OK Gracias. :wink:
Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 26 invitados