Seleccionar un bloque que está en varias presentaciones
Moderador: Moderadores
- Faber
- Administrador
- Mensajes: 3067
- Registrado: Mié Nov 09, 2005 12:10 am
- Ubicación: Irlanda
- Contactar:
Seleccionar un bloque que está en varias presentaciones
Hola. Quiero seleccionar el cajetín que está como bloque en muchas presentaciones a la vez, para editar los atributos conjuntamente porque por ejemplo cada vez que hay una revisión es un rollo añadir bloque por bloque.
¿Es posible?
¿Es posible?
si algo puede salir bien, saldrá bien
-
- En prácticas
- Mensajes: 2
- Registrado: Sab May 16, 2020 1:45 pm
- Contactar:
Re: Seleccionar un bloque que está en varias presentaciones
Con selección rápida referencia a bloque y filtrad por nombre
- Faber
- Administrador
- Mensajes: 3067
- Registrado: Mié Nov 09, 2005 12:10 am
- Ubicación: Irlanda
- Contactar:
Re: Seleccionar un bloque que está en varias presentaciones
De esa manera sólo en la presentación actualCarlitosdiaz81 escribió: ↑Jue Jul 02, 2020 2:57 pm Con selección rápida referencia a bloque y filtrad por nombre
si algo puede salir bien, saldrá bien
- Faber
- Administrador
- Mensajes: 3067
- Registrado: Mié Nov 09, 2005 12:10 am
- Ubicación: Irlanda
- Contactar:
Re: Seleccionar un bloque que está en varias presentaciones
Me respondo a mi mismo por si a alguien le sirve, es tan sencillo como editar el bloque y marcar los atributos como constantes y predefinidos
si algo puede salir bien, saldrá bien
- javi lapina
- Auxiliar
- Mensajes: 51
- Registrado: Sab Abr 14, 2018 7:33 pm
- Contactar:
Re: Seleccionar un bloque que está en varias presentaciones
Prueba este lisp de nuestro compañero Lee Mac
Como funciona el programa:
Primero cambia los valores de un bloque con atributos en una sola presentación, después ejecuta el programa y selecciona el bloque
que acabas de cambiar, el programa cambiara todos los bloques (que se llamen igual) igualándolos con los valores del bloque que has seleccionado.
Como funciona el programa:
Primero cambia los valores de un bloque con atributos en una sola presentación, después ejecuta el programa y selecciona el bloque
que acabas de cambiar, el programa cambiara todos los bloques (que se llamen igual) igualándolos con los valores del bloque que has seleccionado.
Código: Seleccionar todo
(defun c:syncatts ( / ent enx idx lst sel )
(while
(progn (setvar 'errno 0) (setq ent (car (entsel "\nSelect block: ")))
(cond
( (= 7 (getvar 'errno))
(princ "\nMissed, try again.")
)
( (null ent) nil)
( (or (/= "INSERT" (cdr (assoc 0 (setq enx (entget ent)))))
(/= 1 (cdr (assoc 66 enx)))
)
(princ "\nSelected object is not an attributed block.")
)
)
)
)
(if (and ent
(setq lst (LM:getattributes ent)
sel (ssget "_X" (list '(0 . "INSERT") '(66 . 1) (cons 410 (strcat "~" (getvar 'ctab)))))
)
)
(repeat (setq idx (sslength sel))
(LM:setattributevalues (ssname sel (setq idx (1- idx))) lst)
)
)
(princ)
)
;; Get Attributes - Lee Mac
;; Returns an association list of attributes present in the supplied block.
;; blk - [ent] Block (Insert) Entity Name
;; Returns: [lst] Association list of ((<Tag> . <Value>) ... )
(defun LM:getattributes ( blk / enx )
(if (= "ATTRIB" (cdr (assoc 0 (setq enx (entget (setq blk (entnext blk)))))))
(cons
(cons
(cdr (assoc 2 enx))
(cdr (assoc 1 enx))
)
(LM:getattributes blk)
)
)
)
;; Set Attribute Values - Lee Mac
;; Sets attributes with tags found in the association list to their associated values.
;; blk - [ent] Block (Insert) Entity Name
;; lst - [lst] Association list of ((<tag> . <value>) ... )
;; Returns: nil
(defun LM:setattributevalues ( blk lst / enx itm )
(if (= "ATTRIB" (cdr (assoc 0 (setq enx (entget (setq blk (entnext blk)))))))
(if (setq itm (assoc (cdr (assoc 2 enx)) lst))
(progn
(if (entmod (subst (cons 1 (cdr itm)) (assoc 1 enx) enx))
(entupd blk)
)
(LM:setattributevalues blk lst)
)
(LM:setattributevalues blk lst)
)
)
)
(princ)
Master en AutoCad y sigo aprendiendo.....
- Faber
- Administrador
- Mensajes: 3067
- Registrado: Mié Nov 09, 2005 12:10 am
- Ubicación: Irlanda
- Contactar:
Re: Seleccionar un bloque que está en varias presentaciones
Gracias Javi, pero es que eso tampoco me valdría, porque hay atributos que los valores son iguales pero otros diferentes
si algo puede salir bien, saldrá bien
Re: Seleccionar un bloque que está en varias presentaciones
Se me ocurren dos alternativas ...
1 Buscar y reemplazar....V2 por V3,...puedes saltar alguno que no quieras sustituir...
2 Hacer una referencia con el cajetín, con los datos generales y dejar como bloque solo los atributos que cambian ( n°,..título,...etc)
1 Buscar y reemplazar....V2 por V3,...puedes saltar alguno que no quieras sustituir...
2 Hacer una referencia con el cajetín, con los datos generales y dejar como bloque solo los atributos que cambian ( n°,..título,...etc)
- Faber
- Administrador
- Mensajes: 3067
- Registrado: Mié Nov 09, 2005 12:10 am
- Ubicación: Irlanda
- Contactar:
Re: Seleccionar un bloque que está en varias presentaciones
1 No puedo buscar un atributo que está en blanco, no hay nada en élJosess escribió: ↑Mié Jul 08, 2020 4:39 pm Se me ocurren dos alternativas ...
1 Buscar y reemplazar....V2 por V3,...puedes saltar alguno que no quieras sustituir...
2 Hacer una referencia con el cajetín, con los datos generales y dejar como bloque solo los atributos que cambian ( n°,..título,...etc)
2 Todo eso funcionaría pero hay un procedimiento en la empresa que impide hacer REFX del cajetín (ojalá). Por eso pregunto.
Gracias de todas formas por intentar ayudar. Lo he solucionado por esta vez como dije en mi anterior post.
si algo puede salir bien, saldrá bien
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 58 invitados