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

Textos en Linea de Centros

3 participantes

Ir abajo

Textos en Linea de Centros Empty Textos en Linea de Centros

Mensaje por saulo2016 Mar Abr 26, 2016 10:36 pm

Maestros necesito de su ayuda, en esta ocasión tengo este problema, quiero en una linea de centros agregar un texto que yo pueda teclear la descripcion que yo quiera, pero al seleccionar la linea quiero que agregue una L y una C empalmadas, aqui esta un ejemplo y el codigo que tengo hecho hasta ahora pero no me funciona, haber si me pueden ayudar o si alguien tiene una mejor idea o si ya tienen hecho un codigo les agradezco de su apoyo:


Textos en Linea de Centros Ilknjm


Código:
(defun C:lc (/ pt1 pt2 ang ng1 ng2 ng3 pt3 pt4 pt5 pt6 TP1 TP2 TP3 TP4 BT dtr rtd)

(setq CMO (getvar "CMDECHO"))
(setq BMO (getvar "BLIPMODE"))
(setvar "CMDECHO" 0)(setvar "BLIPMODE" 0)(setq lay (getvar "clayer"))
(setq txt (getvar "dimasz"))(setq es (/ txt 2.0))

 (txtosclam)
  (setvar "CMDECHO" CMO)
  (command "layer" "s" LAY "" )
  (setvar "BLIPMODE" BMO)(princ));defun

  (command "STYLE" "ROMANS" "Romans" txt "1" "" "N" "N" "N")
       (cond ((= nil (tblsearch "layer" "TEX"))
       (command "layer" "n" "TEX" "c" "3" "TEX" ""))))


(defun dtr (x) (* pi (/ x 180.0))); convertir grados a radianes
(defun rtd (a) (* 180.0 (/ a pi)));convertir radianes a grados



 (setvar "osmode" 512)
 (setq pt1 (getpoint "\nPunto de Linea Centro: ")
       pt2 (getpoint pt1 "\nDireccion del Texto: ")
       ang (angle pt1 pt2)
       ng1 (+ ang (dtr 90))
       ng2 (+ ang (dtr -90))
       ng3 (+ ang (dtr 25))
        an (rtd ang)
       pt3 (polar pt1 ng1 (* 2.5 es))
       pt4 (polar pt3 ng2 (* 5 es))
       pt5 (polar pt1 ng3 (* 1.8 es))
       pt6 (polar pt4 ang (* 1.6 es))

);setq


(setvar "osmode" 0)
(command "layer" "s" "tex" ""
         "line" pt3 pt4 pt6 ""
         "text" "M" pt1 an "C"

);COMMAND

    (princ))


Saludos Maestros
saulo2016
saulo2016

Mensajes : 210
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico

Volver arriba Ir abajo

Textos en Linea de Centros Empty Re: Textos en Linea de Centros

Mensaje por eliasp Miér Abr 27, 2016 12:14 am

Que tal Saulo2016, buen día.

Antes que nada, yo no soy un experto, ni maestro, pero.... una pregunta: ¿Usaste el código que publicas?

El asunto es que inicias tu código con un defun (lc) que llama a otra defun que no existe (txtosclam).... luego, al cargar la rutina, comienzas a ejecutar el pedir los puntos, pero necesitas un valor (es) que aún no calculas...

Si ya lo usaste, vuelve a copiarlo, porque está fallo. Si no lo has usado, comienza por imaginar cual sería secuencia "natural" y así prográmalo. De entrada, yo sacaría el código de la función lc para que se ejecute antes de pedir los puntos y buscaría que hace la función (txtosclam) y la colocaría.

Saludos y suerte

eliasp

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

Volver arriba Ir abajo

Textos en Linea de Centros Empty Re: Textos en Linea de Centros

Mensaje por saulo2016 Miér Abr 27, 2016 12:40 am

Perdon aqui esta como lo tenia antes de comenzar a batallar, pero no me funciona:



Código:
(defun C:lc (/ pt1 pt2 ang ng1 ng2 ng3 pt3 pt4 pt5 pt6 TP1 TP2 TP3 TP4 BT dtr rtd)

(setq CMO (getvar "CMDECHO"))
(setq BMO (getvar "BLIPMODE"))
(setvar "CMDECHO" 0)(setvar "BLIPMODE" 0)(setq lay (getvar "clayer"))
(setq txt (getvar "dimasz"))(setq es (/ txt 2.0))

 (txtosclam)
  (setvar "CMDECHO" CMO)
  (command "layer" "s" LAY "" )
  (setvar "BLIPMODE" BMO)(princ));defun

  (command "STYLE" "ROMANS" "Romans" txt "1" "" "N" "N" "N")
       (cond ((= nil (tblsearch "layer" "TEX"))
       (command "layer" "n" "TEX" "c" "3" "TEX" ""))))


(defun dtr (x) (* pi (/ x 180.0))); convertir grados a radianes
(defun rtd (a) (* 180.0 (/ a pi)));convertir radianes a grados



 (setvar "osmode" 512)
 (setq pt1 (getpoint "\nPunto de Linea Centro: ")
       pt2 (getpoint pt1 "\nDireccion del Texto: ")
       ang (angle pt1 pt2)
       ng1 (+ ang (dtr 90))
       ng2 (+ ang (dtr -90))
       ng3 (+ ang (dtr 25))
        an (rtd ang)
       pt3 (polar pt1 ng1 (* 2.5 es))
       pt4 (polar pt3 ng2 (* 5 es))
       pt5 (polar pt1 ng3 (* 1.8 es))
       pt6 (polar pt4 ang (* 1.6 es))

);setq


(setvar "osmode" 0)
(command "layer" "s" "tex" ""
         "line" pt3 pt4 pt6 ""
         "text" "M" pt1 an "C"

);COMMAND




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun C:txtosclam (/ TP1 TP2 TP3 TP4 BT)
    (command "layer" "s" "tex" "")
        (setq TP1 PT5)
        (setq TP2 (polar TP1 ng1 txt)
              TP3 (polar TP1 ang (* 30 es))
              TP4 (polar TP3 ng1 txt))
                      (grdraw TP1 TP2 7 -1)
                      (grdraw TP2 TP4 7 -1)
                      (grdraw TP4 TP3 7 -1)
                      (grdraw TP3 TP1 7 -1)
       (setq BT (getstring T "\nTexto del Nivel: "))
                      (grdraw TP1 TP2 0)
                      (grdraw TP2 TP4 0)
                      (grdraw TP4 TP3 0)
                      (grdraw TP3 TP1 0)
    (command "text" pt5 AN BT)
     (princ))

saulo2016
saulo2016

Mensajes : 210
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico

Volver arriba Ir abajo

Textos en Linea de Centros Empty Re: Textos en Linea de Centros

Mensaje por eliasp Miér Abr 27, 2016 1:07 am

A ver saulo. O lo copiaste mal o te lo pasaron mal, pero en fin. Aquí lo tienes corregido. Una sugerencia, no metas los nombres de las funciones auxiliares como variables locales....

Código:

(defun dtr(x) (* pi (/ x 180.0))); convertir grados a radianes
(defun rtd(a) (* 180.0 (/ a pi)));convertir radianes a grados

(defun C:lc (/ pt1 pt2 ang ng1 ng2 ng3 pt3 pt4 pt5 pt6 TP1 TP2 TP3 TP4 BT); dtr rtd)
  (setq CMO (getvar "CMDECHO"))
  (setq BMO (getvar "BLIPMODE"))
  (setvar "CMDECHO" 0)(setvar "BLIPMODE" 0)(setq lay (getvar "clayer"))
  (setq txt (getvar "dimasz"))(setq es (/ txt 2.0))
  
  (setvar "CMDECHO" CMO)
  (command "layer" "s" LAY "" )
  (setvar "BLIPMODE" BMO)
  (princ)
  
(command "STYLE" "ROMANS" "Romans" txt "1" "" "N" "N" "N")
(cond ((= nil (tblsearch "layer" "TEX"))
       (command "layer" "n" "TEX" "c" "3" "TEX" ""))
      )
(setvar "osmode" 512)
(setq pt1 (getpoint "\nPunto de Linea Centro: ")
      pt2 (getpoint pt1 "\nDireccion del Texto: ")
      ang (angle pt1 pt2)
      ng1 (+ ang (dtr 90))
      ng2 (+ ang (dtr -90))
      ng3 (+ ang (dtr 25))
      an (rtd ang)
      pt3 (polar pt1 ng1 (* 2.5 es))
      pt4 (polar pt3 ng2 (* 5 es))
      pt5 (polar pt1 ng3 (* 1.8 es))
      pt6 (polar pt4 ang (* 1.6 es))
      );setq
(setvar "osmode" 0)
(command "layer" "s" "tex" ""
    "line" pt3 pt4 pt6 ""
    "text" "M" pt1 an "C"
    );COMMAND
(txtosclam)
);defun
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun txtosclam (/ TP1 TP2 TP3 TP4 BT)
  (command "layer" "s" "tex" "")
  (setq TP1 PT5)
  (setq TP2 (polar TP1 ng1 txt)
   TP3 (polar TP1 ang (* 30 es))
   TP4 (polar TP3 ng1 txt))
  (grdraw TP1 TP2 7 -1)
  (grdraw TP2 TP4 7 -1)
  (grdraw TP4 TP3 7 -1)
  (grdraw TP3 TP1 7 -1)
  (setq BT (getstring T "\nTexto del Nivel: "))
  (grdraw TP1 TP2 0)
  (grdraw TP2 TP4 0)
  (grdraw TP4 TP3 0)
  (grdraw TP3 TP1 0)
  (command "text" pt5 AN BT)
  (princ)
  )
Por enseñanzas del maestro Devitg, las funciones auxiliares, como dtr rtd y textosclam se deben definir por fuera del defun principal. Otra observación, la función textosclam la tenías definida como c:, pero al llamarla lo hacías como si no tuviera c:.... En fín, ahí está

Saludos

eliasp

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

Volver arriba Ir abajo

Textos en Linea de Centros Empty simbolo de linea de centro

Mensaje por devitg Miér Abr 27, 2016 3:54 am

En Acad existe el símbolo para linea de centro

Se puede obtener mediante el comando MTEXT y picando en el símbolo en la parte superior derecha


Textos en Linea de Centros Linea_10
Textos en Linea de Centros Como_o10

Se lo puede convertir en un bloque , previamente justificar como MIDDLE CENTER o CENTRO MEDIO

Hay un código , que no sé como aplicarlo  \u+2104


SIMBOLO LINEA DE CENMTRO








Última edición por Admin el Miér Abr 27, 2016 3:57 am, editado 2 veces (Razón : corrección ortográfica)

devitg
Admin

Mensajes : 257
Fecha de inscripción : 16/03/2016
Edad : 75
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

Textos en Linea de Centros Empty Re: Textos en Linea de Centros

Mensaje por saulo2016 Miér Abr 27, 2016 2:43 pm

Gracias Eliasp y Devitg, asi era como yo queria que quedara, pero como estoy aprendiendo todavia, la rutina la fui armando mas o menos como yo entiendo......y hay muchas cosas que revuelvo, cambio de lugar o simplemente no me queda claro....

Pero asi era como lo necesitaba, gracias



Saludos
saulo2016
saulo2016

Mensajes : 210
Fecha de inscripción : 17/03/2016
Edad : 58
Localización : Monterrey, Nuevo León, Mexico

Volver arriba Ir abajo

Textos en Linea de Centros Empty Re: Textos en Linea de Centros

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

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