AutoCad - Lisp para modificar cotas

 
Vista:
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Juanma (140 intervenciones) el 07/12/2022 08:28:48
Buenas, necesito una lisp que seleccionando varias cotas, le introduzca a cada una su mismo valor de medida, como texto modificado.

Es para acotar, y luego poder escalar o distorsionar sin que cambie el valor mostrado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.285
Oro
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Gerardo (986 intervenciones) el 08/12/2022 12:22:59
Hola
prueba con esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(if	(setq i 0
				sset (ssget '((0 . "DIMENSION")))
		)
	(repeat (sslength sset)
		(setq lent (entget (ssname sset i))
				i (1+ i)
		)
		(entmod
			(subst
				(cons 1 (rtos (cdr (assoc 42 lent))))
				(assoc 1 lent)
				lent
			)
		)
	)
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Juanma (140 intervenciones) el 08/12/2022 14:05:54
Genial!!! Es exactamente lo que quería.

Una vez implementada en una lisp, y con un pequeño añadido, queda así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
;;toma las cotas seleccionadas y les aplica su medida, con los decimales indicados como texto modificado
(defun c:mco (/)
 
(setq decimales (getint "decimales:"))
 
(if	(setq i 0
				sset (ssget '((0 . "DIMENSION")))
		)
	(repeat (sslength sset)
		(setq lent (entget (ssname sset i))
				i (1+ i)
		)
		(entmod
			(subst
				(cons 1 (rtos (cdr (assoc 42 lent)) 2 decimales))
				(assoc 1 lent)
				lent
			)
		)
	)
)
)

esto me vendrá genial, tanto para retocar detalles en los planos, como para realizar planos de isometricos a partir de ejes en dimensiones reales.

Muchas gracias Gerardo.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Marisa

Lisp para modificar cotas

Publicado por Marisa (12 intervenciones) el 02/02/2023 16:52:46
Y con que orden se ejecuta ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Juanma (140 intervenciones) el 02/02/2023 21:31:39
Todas las lisp traen una línea que comienza por defun c:xxxxx, como esta
(defun c:mco (/)

Pues esa es la orden: "mco"

Si cambias esas letras, cambias la orden. Yo por ejemplo siempre intento poner letras o números y letras de la parte izquierda del teclado, por comodidad para la mano, o letras que me recuerden para que sirve, esta es " modificar cotas"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marisa

Lisp para modificar cotas

Publicado por Marisa (12 intervenciones) el 03/02/2023 12:12:09
Este si que me funciona.

Y matizando su finalidad este sirve para cambiar la cota y poner la que tu consideres en todas las cotas que marques?

¿es correcto?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Juanma (140 intervenciones) el 03/02/2023 16:36:19
No, pero algo parecido, lo que hace es coger el valor que ha medido la cota y "ponérselo a mano" de forma que si luego escalas el dibujo, ya las cotas no cambian de valor.

Lo uso para hacer detalles ampliados, y para planos
isométricos de tuberías.

Si lo hiciera de la forma tradicional, tendría que ir una por una cambiando el valor de cota por un texto fijo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marisa

Lisp para modificar cotas

Publicado por Marisa (12 intervenciones) el 03/02/2023 16:41:35
Pues que curioso porque a mi cuando le pongo el comando “mco” lo que me pregunta son los decimales que quiero poner en la cota que marco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Juanma (140 intervenciones) el 03/02/2023 16:50:58
Si, pero porque la cota es un número con decimales, que tú puedes cambiar en las propiedades, entonces te lo pregunta por qué internamente, el valor de cota tiene decimales, y quiere saber con cuánta precisión te va a cambiar el valor por un "número escrito"

Te invito a dibujar algo, acotarlo, usar la lisp y luego escalarlo todo, verás que las cotas no cambian.

Si le das dos decimales verás lo mismo que si cambias la precisión de la cota a 0,00 pero al escalar una cota cambia la medida, a no ser que la cambies a mano, descompongan la cota, o uses está lisp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marisa

Lisp para modificar cotas

Publicado por Marisa (12 intervenciones) el 03/02/2023 19:09:45
Muchas gracias Juanma!

Muy interesante!

¿Tienes algún autolisp más? Que utilices asiduamente …..
Creo que me voy hacer una buena biblioteca… jaja

Me encantaría aprender hacerlos…
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juanma
Val: 171
Bronce
Ha mantenido su posición en AutoCad (en relación al último mes)
Gráfica de AutoCad

Lisp para modificar cotas

Publicado por Juanma (140 intervenciones) el 03/02/2023 19:22:20
Pues tengo una que calcula el peso de sólidos, y les coloca un texto en el centro con su peso a cada sólido, y uno más con la suma total.

Te recomiendo las web

https://www.afralisp.net/
http://www.lee-mac.com/programs.html

Si andas medio bien de inglés
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marisa

Lisp para modificar cotas

Publicado por Marisa (12 intervenciones) el 04/02/2023 23:24:52
Muchas gracias!

Les echo un vistazo y te cuento…

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gerardo

Lisp para modificar cotas

Publicado por Gerardo (4 intervenciones) el 07/06/2023 21:57:00
Aquí tienes un ejemplo de una función LISP que te permitirá seleccionar múltiples cotas y asignarles el mismo valor de medida como texto modificado:

(defun c:IntroducirValorCotas (/ ss ent val)
(setq ss (ssget "_X" '((0 . "DIMENSION"))))

(if ss
(progn
(setq val (getreal "\nIntroduce el valor de medida: "))

(setq ent (ssname ss 0))
(command "_.dimedit" ent "" "_txtext" "" (rtos val))

(setq i 1)
(while (setq ent (ssname ss i))
(command "_.dimedit" ent "" "_txtext" "" (rtos val))
(setq i (1+ i))
)

(princ "\nLos valores de medida de las cotas se han actualizado correctamente.")
)
(princ "\nNo se han encontrado cotas seleccionadas.")
)

(princ)
)


Puedes cargar esta función LISP en AutoCAD y luego ejecutar el comando "INTRODUCIRVALORCOTAS" para utilizarla.

Cuando ejecutes el comando, se te pedirá que introduzcas el valor de medida que deseas asignar a las cotas. Una vez que ingreses el valor, todas las cotas seleccionadas tendrán su texto de medida actualizado con el valor especificado.

Recuerda que al utilizar esta función, el texto de medida de las cotas se modificará directamente. Si posteriormente escalas o distorsionas las cotas, el valor mostrado no cambiará ya que se actualizó como texto modificado.

Ten en cuenta que esta es una función básica que asume que todas las cotas seleccionadas son cotas lineales. Si tienes diferentes tipos de cotas en la selección, es posible que necesites realizar adaptaciones adicionales al código.


______________________________________________________
Estudia la Licenciaturas Ejecutivas en Programación y Transformación Digital
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar