Background a un mtex
4 participantes
Página 1 de 1.
Background a un mtex
Buen día señores.
Resulta que necesito "leer" la altura de curvas de nivel, entonces escribí una rutinita para hacerlo. El proceso sería: Seleccionar la curva, click en un punto parta insertar el mtex y otro clic para obtener un angulo para alinear el mtext e insertar el mtext con la inclinación deseada. Pero he tenido algunos problemillas con el código 50 del entmake.... y no supe como agregarle el background con el color de fondo.
Espero haber sido claro y puedan revisar mi código y sacarme de mi error.
Saludos y gracias
https://we.tl/t-vu8h4eEaK1
Resulta que necesito "leer" la altura de curvas de nivel, entonces escribí una rutinita para hacerlo. El proceso sería: Seleccionar la curva, click en un punto parta insertar el mtex y otro clic para obtener un angulo para alinear el mtext e insertar el mtext con la inclinación deseada. Pero he tenido algunos problemillas con el código 50 del entmake.... y no supe como agregarle el background con el color de fondo.
Espero haber sido claro y puedan revisar mi código y sacarme de mi error.
Saludos y gracias
- Código:
(DEFUN C:cCURVA (/ curva pto pto2 cota)
(tblobjname "STYLE" "nombredeestilo")
(command "_-style" "nombredeestilo" "verdana" "0" "1" "0" "_no" "_no")
(command "_-layer" "make" "elev_curva" "_color" "7" "elev_curva" "")
(while(/=(setq curva(ENTSEL "\nSeleccionar curva de nivel: "))nil)
(setq cota (cdr (assoc 38 (entget (car curva))))
pto (GETPOINT "\n Indicar punto de insercion: ")
pto2(getpoint "\n Alinear hacia....")
)
(setq cota (RTOS cota 2 3))
(setq ang1(angle pto pto2)
ang2(/(* pi ang1)180)
)
;(COMMAND "_TEXT" "_c" PTO 1 pause COTA "" "")
(setq mtx
(entmake (list
'(0 . "MTEXT"); tipo de entidad
'(100 . "AcDbEntity"); Marcador de subclase
'(100 . "AcDbMText"); Marcador de subclase
'(8 . "elev_curva");capa
(cons 10 pto); coordenadas de inserción del recángulo del texto(sup. izdo.)
(cons 1 cota); el texto
'(40 . 0.35);altura texto
'(62 . 256);color
(50 . ang2);angulo de inclinación del texto
;'(41 . 10.0);anchura rectángulo
;'(71 . 1);punto de enlace
;'(72 . 5);Dirección de dibujo
);list
);entmake
)
)
)
https://we.tl/t-vu8h4eEaK1
eliasp- Mensajes : 225
Fecha de inscripción : 17/03/2016
Re: Background a un mtex
El código 50, al meterlo como variable, tienes que usar el CONS
(cons 50 ang2)
y el background debes usar los códigos 90, 63 y 45
'(90 . 3);fondo
'(63 . 256);color
'(45 . 1.15);margen del fondo sobre el texto
(cons 50 ang2)
y el background debes usar los códigos 90, 63 y 45
'(90 . 3);fondo
'(63 . 256);color
'(45 . 1.15);margen del fondo sobre el texto
Re: Background a un mtex
Muchas gracias, quedó de lujo.
Saludos
Saludos
eliasp- Mensajes : 225
Fecha de inscripción : 17/03/2016
Re: Background a un mtex
Eliasp nos podrías compartir tu rutina ya ajustada? Yo debo de tener algunas de rotulación por si las necesitas me comentas
Saludos Bernardo Corradine
Saludos Bernardo Corradine
bernie67- Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 57
Localización : Bogota DC-Colombia
Re: Background a un mtex
Suena a que la rutina la podrías extender a un comando que haga lo siguiente.
- Código:
Pedir dos puntos que atraviesen las curvas de nivel.
Crear una línea temporal (L1) a partir de los dos puntos
Seleccionar con ssget fence, las curvas que toquen la L1
Mediante vlax-intersectwith obtener los puntos de intersección de L1 con cada curva (ver http://lee-mac.com/intersectionfunctions.html)
Por cada curva, obtener el parámetro de la polilínea mediante getparameteratpoint para con este obtener el [url=https://forums.augi.com/showthread.php?32645-vlax-routine-perpendicular-lines-along-polyline]Obtener ángulo de un segmento[/url]
En el punto de intersección y con el ángulo crear el Mtexto que indica la altura de la curva.
Marco Jacinto- Mensajes : 107
Fecha de inscripción : 12/08/2016
Re: Background a un mtex
Hola, buen día.
Claro que si, con gusto la comparto.
Saludos
Claro que si, con gusto la comparto.
Saludos
- Código:
(DEFUN C:cCURVA ();/ curva pto pto2 cota)
(tblobjname "STYLE" "nombredeestilo")
(command "_-style" "nombredeestilo" "verdana" "0" "1" "0" "_no" "_no")
(command "_-layer" "make" "elev_curva" "_color" "7" "elev_curva" "")
(setq oldDZin (getvar "dimzin"))
(setvar "dimzin" (logand oldDZin (~ 8)))
(while(/=(setq curva(ENTSEL "\nSeleccionar curva de nivel: "))nil)
(setq cota (cdr (assoc 38 (entget (car curva))))
pto (GETPOINT "\n Indicar punto de insercion: ")
pto2(getpoint "\n Alinear hacia....")
)
(setq cota (RTOS cota 2 3))
(setq ang1(angle pto pto2)
ang2(/(* pi ang1)180)
)
(setq mtx
(entmake (list
'(0 . "MTEXT"); tipo de entidad
'(100 . "AcDbEntity"); Marcador de subclase
'(100 . "AcDbMText"); Marcador de subclase
'(8 . "elev_curva");capa
(cons 10 pto); coordenadas de inserción del recángulo del texto(sup. izdo.)
(cons 1 cota); el texto
'(40 . 0.35);altura texto
'(62 . 256);color
(cons 50 ang1)
'(7 . "nombredeestilo")
;'(41 . 10.0);anchura rectángulo
'(71 . 5);punto de enlace
;'(72 . 5);Dirección de dibujo
'(90 . 3);fondo
'(63 . 256);color
'(45 . 1.5);margen del fondo sobre el texto
);list
);entmake
)
)
(setvar "dimzin" oldDZin)
)
eliasp- Mensajes : 225
Fecha de inscripción : 17/03/2016
A bernie67 le gusta esta publicaciòn
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.