Ayuda con una rutina de coordenadas
Página 1 de 1.
Ayuda con una rutina de coordenadas
Buen día a todos.
Como siempre, molestando.
Tengo un pequeño lisp que básicamente selecciona un valor numérico, coordenada X, luego selecciona otro valor numérico, coordenada Y y crea un nodo en esas coordenadas.
Pasa que por la prisa, de vez en cuando no selecciono un texto (pico en la pantalla) y la rutina da la opción de "intente de nuevo".
Hasta ahí todo bien, pero............ el pero de siempre, cuando quiero que la rutina finalice, debo salir con ESC ya que con botón derecho del mouse, sigue dando la opción de "intente de nuevo".
La pregunta: me pueden ayudar modificando el lisp para que si me equivoco a la hora de seleccionar la coordenada, continué dando la opción de intentar de nuevo, pero cuando quiera salir o que la rutina finalice, lo pueda hacer con el botón derecho del mouse?
Les agradezco su ayuda desde ya.
Saludos
El lisp:
Gracias
Como siempre, molestando.
Tengo un pequeño lisp que básicamente selecciona un valor numérico, coordenada X, luego selecciona otro valor numérico, coordenada Y y crea un nodo en esas coordenadas.
Pasa que por la prisa, de vez en cuando no selecciono un texto (pico en la pantalla) y la rutina da la opción de "intente de nuevo".
Hasta ahí todo bien, pero............ el pero de siempre, cuando quiero que la rutina finalice, debo salir con ESC ya que con botón derecho del mouse, sigue dando la opción de "intente de nuevo".
La pregunta: me pueden ayudar modificando el lisp para que si me equivoco a la hora de seleccionar la coordenada, continué dando la opción de intentar de nuevo, pero cuando quiera salir o que la rutina finalice, lo pueda hacer con el botón derecho del mouse?
Les agradezco su ayuda desde ya.
Saludos
El lisp:
- Código:
(defun c:ptx (/ entx enty cx cy pt1 esc msc tp xd ht)
(vl-load-com)
(setvar "CMDECHO" 0)
(vl-cmdf "_UNITS" "2" "3" "2" "3" "90" "_Y")
(vl-cmdf "_setvar" "angdir" "1")
(vl-cmdf "_setvar" "dimzin" "1")
(vl-cmdf "_setvar" "angbase" "270")
(vl-cmdf "_OSNAP" "_OFF")
(setvar "pdmode" 32)
(setq esc 500)
(setq msc (/ 1000 esc))
(setq tp (/ 1.5 msc))
(setq xd 1)
(setq ht (/ 2.0 msc))
(setvar "pdsize" tp)
;****************************************************
(if nold
()
(setq nold "1")
)
;****************************************************
(princ "\nPrimer Punto:< ")
(princ (strcat nold " >: "))
(setq x (getstring))
(if (= x "")
(setq n nold)
(setq n x)
)
(setq nold n)
(if (and (>= (ascii n) 48)
(<= (ascii n) 57)
)
(setq n (atoi n))
)
;**********************************
(vl-cmdf "_-STYLE" "Romans" "romans.shx" 0 1 0 "NO" "NO" "")
(vl-cmdf "_layer" "_m" "cn" "_c" "70" "" "")
(vl-cmdf "_layer" "_m" "nombre del punto" "_c" "4" "" "")
(setq entx (car (entsel "\nSeleccione la Coordenada X :")))
(if (null entx)
(while (null entx)
(princ "\nIntente de Nuevo ")
(setq entx (car (entsel)))
)
)
(while
(setq cx (atof (cdr (assoc 1 (entget entx)))))
(vl-cmdf "_erase" entx "")
(setq enty (car (entsel "\nSeleccione la Coordenada Y :")))
(if (null enty)
(while (null enty)
(princ "\nIntente de Nuevo ")
(setq enty (car (entsel)))
)
)
(setq cy (atof (cdr (assoc 1 (entget enty)))))
(vl-cmdf "_erase" enty "")
(setq cxt (+ cx xd))
(setq pt (list cx cy))
(setq ptt (list cxt cy))
(setvar "clayer" "cn")
(vl-cmdf "_point" pt)
(setvar "clayer" "nombre del punto")
(vl-cmdf "_text" ptt ht "90" n)
;********************************************************
(cond
((= (type n) 'int)
(setq n (+ 1 n))
(setq nold (itoa n))
)
((= (type n) 'str)
(setq n (chr (+ (ascii n) 1)))
(if (> n "z")
(setq n "A")
)
(setq nold n)
)
)
;********************************************************
(setvar "clayer" "0")
(setq entx (car (entsel "\nSeleccione la Coordenada X :")))
(if (null entx)
(while (null entx)
(princ "\nIntente de Nuevo ")
(setq entx (car (entsel)))
)
)
)
(setvar "osmode" 45)
(princ)
)
Gracias
José Francisco- Mensajes : 46
Fecha de inscripción : 30/03/2016
Temas similares
» Ayuda con rutina lisp de Coordenadas
» Ayuda para obtener las coordenadas de un punto
» ayuda con rutina
» Ayuda con esta rutina
» Ayuda con una rutina de áreas.
» Ayuda para obtener las coordenadas de un punto
» ayuda con rutina
» Ayuda con esta rutina
» Ayuda con una rutina de áreas.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|