como interrumpir o detener cuando hay un error
2 participantes
Página 1 de 1.
como interrumpir o detener cuando hay un error
Buenas. Recien estoy aprendiendo e intentaba hacer un simbolo de ventana, pero solo se dibuja correctamente dando clic de abajo hacia arriba e izquierda a derecha o tambien de arriba hacia abajo y derecha a izquierda, por eso queria saber si hay manera de interrumpirla combinando algun comando con if, por ejemplo si ang o angu tal cosa que se aborte o se anule.
En general si no sale lo que uno quiere, o si en la pantalla sale lo contrario a lo que uno necesita etc. ¿cual seria el comando para interrumpirlo y se cancele solo sin tener que apretar escape?
Aclaro que no necesito una rutina, ya tengo una que baje. Esto lo hice ayer para practicar y me surgio esa duda, mas que nada es por curiosidad. Gracias
En general si no sale lo que uno quiere, o si en la pantalla sale lo contrario a lo que uno necesita etc. ¿cual seria el comando para interrumpirlo y se cancele solo sin tener que apretar escape?
Aclaro que no necesito una rutina, ya tengo una que baje. Esto lo hice ayer para practicar y me surgio esa duda, mas que nada es por curiosidad. Gracias
- Código:
(setq pt1 (getpoint "\n--------------"))
(setq pt2 (getpoint pt1 "\n------------------"))
(setq pt3 (LIST (car pt2) (cadr pt1)))
(setq ang (angle pt3 pt2))
(setq angu (angle pt1 pt3))
(setq dis (distance pt3 pt1))
(setq dist (distance pt2 pt3))
(setq pt5 (polar pt1 ( + 0 ang ) dist ))
( if ( > dist dis )
(command "_line" pt1 pt3 "")
(command "_line" pt2 pt3 "")
)
( if ( > dist dis )
(command "_line" pt5 pt2 "")
(command "_line" pt5 pt1 "")
)
(setq pt6 ( polar pt1 ( + ( * ( / pi 2 ) 3 ) ang ) 0.05 ))
(setq pt7 ( polar pt6 ( + 0 ang ) 0.05 ))
(setq pt8 ( polar pt7 ( + 0 ang ) 0.05 ))
(setq pt9 ( polar pt8 ( + ( / pi 2 ) ang ) 0.05 ))
(setq pt10 ( polar pt3 ( + ( / pi 2 ) ang ) 0.05 ))
(setq pt11 ( polar pt10 ( + 0 ang ) 0.05 ))
(setq pt12 ( polar pt11 ( + 0 ang ) 0.05 ))
(setq pt13 ( polar pt12 ( + ( * ( / pi 2 ) 3 ) ang ) 0.05 ))
( if ( > dist dis )
(command "_line" pt1 pt5 "")
(command "_line" pt2 pt5 "")
)
(command "_pline" pt1 pt6 pt8 pt9 pt8 pt7 pt11 pt12 pt10 pt3 pt6 pt8 pt13 "" )
arielbnvo- Mensajes : 20
Fecha de inscripción : 21/03/2016
Re: como interrumpir o detener cuando hay un error
Hola arielbnvo como estas.
No estoy muy claro en lo que se quiere lograr, aunque como referencia de lo que dices puedes utilizar un quit y le das una salida limpia al final.
Te dejo un ejemplo, si seleccionas de der -> izq y inf -> sup te darás cuenta del error que surge al uno de los ángulos ser mayor que el otro.
Yo lo haría de esta manera para que la rutina no continué, porque si se deja solo el if no hace nada, pero la rutina continua funcionando.
También podemos esperar si alguno de los compañeros se sepa algún truco diferente y que no muestre el mensaje de ; error: quit / exit abort pero como te dije le puedes dar una salida limpia cuando ya la rutina este lista.
Bueno espero te sirva de algo.
Saludos.
No estoy muy claro en lo que se quiere lograr, aunque como referencia de lo que dices puedes utilizar un quit y le das una salida limpia al final.
Te dejo un ejemplo, si seleccionas de der -> izq y inf -> sup te darás cuenta del error que surge al uno de los ángulos ser mayor que el otro.
- Código:
(defun c:xxx (/ ang angu pt1 pt2 pt3)
(setq pt1 (getpoint "\n--------------"))
(setq pt2 (getpoint pt1 "\n------------------"))
(setq pt3 (list (car pt2) (cadr pt1)))
(setq ang (angle pt3 pt2))
(setq angu (angle pt1 pt3))
(if (> ang angu)
(command "_.line" pt1 pt2 "")
(progn (princ "\nLimite de angulo superado.") (quit)))
(princ))
Yo lo haría de esta manera para que la rutina no continué, porque si se deja solo el if no hace nada, pero la rutina continua funcionando.
También podemos esperar si alguno de los compañeros se sepa algún truco diferente y que no muestre el mensaje de ; error: quit / exit abort pero como te dije le puedes dar una salida limpia cuando ya la rutina este lista.
Bueno espero te sirva de algo.
Saludos.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Re: como interrumpir o detener cuando hay un error
Muchas gracias carlosmgilp era justo lo que preguntaba. Ahi subo la imagen de como quedaria correctamente o se interrumpe y sale un alerta que le puse si queda mal. Como veras me falta aprender muchisimo. ¡Muchas gracias!!!
" />
" />
- Código:
defunc:consulta
(setq pt1 (getpoint "\n--------------"))
(setq pt2 (getpoint pt1 "\n------------------"))
(setq pt3 (LIST (car pt2) (cadr pt1)))
(setq ang (angle pt3 pt2))
(setq angu (angle pt1 pt3))
(setq dis (distance pt3 pt1))
(setq dist (distance pt2 pt3))
(setq pt5 (polar pt1 ( + 0 ang ) dist ))
( if ( > dist dis ) (alert "quedo mal, intentar nuevamente") )
( if ( > dist dis ) (quit) ) ; <---------- aca se interrumpe si queda mal
( if ( = ang ( * ( / pi 2 ) 3 ) ) (alert "quedo mal, intentar nuevamente") )
( if ( = ang ( * ( / pi 2 ) 3 ) ) (quit) )
( if ( > dist dis )
(command "_line" pt1 pt3 "")
(command "_line" pt2 pt3 "")
)
( if ( > dist dis )
(command "_line" pt5 pt2 "")
(command "_line" pt5 pt1 "")
)
(setq pt6 ( polar pt1 ( + ( * ( / pi 2 ) 3 ) ang ) 0.05 ))
(setq pt7 ( polar pt6 ( + 0 ang ) 0.05 ))
(setq pt8 ( polar pt7 ( + 0 ang ) 0.05 ))
(setq pt9 ( polar pt8 ( + ( / pi 2 ) ang ) 0.05 ))
(setq pt10 ( polar pt3 ( + ( / pi 2 ) ang ) 0.05 ))
(setq pt11 ( polar pt10 ( + 0 ang ) 0.05 ))
(setq pt12 ( polar pt11 ( + 0 ang ) 0.05 ))
(setq pt13 ( polar pt12 ( + ( * ( / pi 2 ) 3 ) ang ) 0.05 ))
( if ( > dist dis )
(command "_line" pt1 pt5 "")
(command "_line" pt2 pt5 "")
)
(command "_pline" pt1 pt6 pt8 pt9 pt8 pt7 pt11 pt12 pt10 pt3 pt6 pt8 pt13 "" )
arielbnvo- Mensajes : 20
Fecha de inscripción : 21/03/2016
Re: como interrumpir o detener cuando hay un error
Hola me alegra que te haya servido.
Aunque yo haría un bloque dinámico y me ahorro código. Jejeje.
Saludos.
Aunque yo haría un bloque dinámico y me ahorro código. Jejeje.
Saludos.
carlosmgilp- Mensajes : 149
Fecha de inscripción : 17/03/2016
Edad : 42
Localización : Venezuela
Temas similares
» Error en funcion
» Error Load Layers
» Eliminar mensaje de error
» CODIGO FUENTE
» aprender a usar manejo de error y while
» Error Load Layers
» Eliminar mensaje de error
» CODIGO FUENTE
» aprender a usar manejo de error y while
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|