acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Background a un mtex

4 participantes

Ir abajo

Background a un mtex Empty Background a un mtex

Mensaje por eliasp Mar Sep 28, 2021 4:37 pm

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
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
 )
    )
  )
PD. Aunque el archivo son sólo curvas de nivel, anexo dwg.
https://we.tl/t-vu8h4eEaK1

eliasp

Mensajes : 225
Fecha de inscripción : 17/03/2016

Volver arriba Ir abajo

Background a un mtex Empty Re: Background a un mtex

Mensaje por robierzo Mar Sep 28, 2021 5:39 pm

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
robierzo
robierzo

Mensajes : 105
Fecha de inscripción : 17/03/2016
Localización : La Coruña

http://www.selmotopografia.es

Volver arriba Ir abajo

Background a un mtex Empty Re: Background a un mtex

Mensaje por eliasp Mar Sep 28, 2021 5:59 pm

Muchas gracias, quedó de lujo.

Saludos

eliasp

Mensajes : 225
Fecha de inscripción : 17/03/2016

Volver arriba Ir abajo

Background a un mtex Empty Re: Background a un mtex

Mensaje por bernie67 Jue Sep 30, 2021 10:10 pm

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
bernie67
bernie67

Mensajes : 98
Fecha de inscripción : 22/03/2016
Edad : 57
Localización : Bogota DC-Colombia

Volver arriba Ir abajo

Background a un mtex Empty Re: Background a un mtex

Mensaje por Marco Jacinto Jue Sep 30, 2021 10:59 pm

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

Volver arriba Ir abajo

Background a un mtex Empty Re: Background a un mtex

Mensaje por eliasp Lun Oct 04, 2021 5:46 pm

Hola, buen día.

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)
  )

Espero les sirva

eliasp

Mensajes : 225
Fecha de inscripción : 17/03/2016

A bernie67 le gusta esta publicaciòn

Volver arriba Ir abajo

Background a un mtex Empty Re: Background a un mtex

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.