Consulta sobre cuadro
2 participantes
Página 1 de 1.
Consulta sobre cuadro
Buen dia. Hice un cuadrito muy sencillo para una rutina que uso para balance de superficies ,tiene tres opciones con radio button y anda bien, solamente que lo puse dentro de un while y cada vez que se vuelve a abrir para cambiar de opcion se desactiva el que habia elegido previamente. Seria una cuestion visual simplemente pero me interesa aprender mas que nada.
esto seria el cuadrito:
cuadrito:dialog {label="Cuadrito balance";
:column {
spacer_1;
:boxed_radio_row {label="------";
:radio_button {label="Cubierta";key="supcub";}
:radio_button {label="Semi cubierta";key="supsem";}
:radio_button {label="Pileta/Espejo";key="supesp";}
spacer_1;
}
}
spacer_1;
ok_cancel;
}
y esto en autolisp:
(setq indice (load_dialog "C:/Carpeta/prueba2.DCL"))
(new_dialog "cuadrito" indice)
(setq cub (GET_TILE "supcub" ))
(setq smc (GET_TILE "supsem" ))
(setq esp (GET_TILE "supesp" ))
(setq acep (GET_TILE "accept"))
(setq canc (GET_TILE "cancel"))
(action_tile "supcub" "(setq cub $value)")
(action_tile "supsem" "(setq smc $value)")
(action_tile "supesp" "(setq esp $value)")
(action_tile "accept" "(setq acep $value)(done_dialog)")
(action_tile "cancel" "(setq canc $value)(done_dialog)")
(start_dialog)
(start_dialog)
(unload_dialog indice)
(done_dialog)
Saludos
esto seria el cuadrito:
cuadrito:dialog {label="Cuadrito balance";
:column {
spacer_1;
:boxed_radio_row {label="------";
:radio_button {label="Cubierta";key="supcub";}
:radio_button {label="Semi cubierta";key="supsem";}
:radio_button {label="Pileta/Espejo";key="supesp";}
spacer_1;
}
}
spacer_1;
ok_cancel;
}
y esto en autolisp:
(setq indice (load_dialog "C:/Carpeta/prueba2.DCL"))
(new_dialog "cuadrito" indice)
(setq cub (GET_TILE "supcub" ))
(setq smc (GET_TILE "supsem" ))
(setq esp (GET_TILE "supesp" ))
(setq acep (GET_TILE "accept"))
(setq canc (GET_TILE "cancel"))
(action_tile "supcub" "(setq cub $value)")
(action_tile "supsem" "(setq smc $value)")
(action_tile "supesp" "(setq esp $value)")
(action_tile "accept" "(setq acep $value)(done_dialog)")
(action_tile "cancel" "(setq canc $value)(done_dialog)")
(start_dialog)
(start_dialog)
(unload_dialog indice)
(done_dialog)
Saludos
arielbnvo- Mensajes : 20
Fecha de inscripción : 21/03/2016
Re: Consulta sobre cuadro
Buenas tardes. Me voy a responder a mi mismo por si alguien tuviera el mismo problema y por ahi le sirve. Encima investigando en internet casi todo esta en ingles y dependo del tradutor de google, asi que si vuelvo a tener el mismo problema por lo menos me va a servir a mi.
El problema es que no se mucho del tema pero estuve investigando y encontre una solucion y por ahora esta funcionando bien, por ahi haya alguien que sepa programar de verdad y sepa resolverlo como corresponde, y principalmente que lo pueda explicar por que esto lo resolvi mas que nada por prueba y error pero ni yo lo termino de entender ja ja.
Primero pongo if por si devuelven nil las variables cuando entro al bucle por primera vez y se crean las mismas con setq y lo guardo en la variable "activado" con $key. Luego se activan o desactivan los botones comparando la variable "activado" con la clave de cada radio_button y cada vez que vuelve a apaecer el cuadrito ya se muestra activado el que active anteriormente, era simplemente una cuestion visual pero lo queria hacer asi.
Saludos.
(if (= cub nil) (progn (setq cub (GET_TILE "supcub" )) (action_tile "supcub" "(setq activado $key)")) (action_tile "supcub" "(setq activado $key)"))
(if (= smc nil) (progn (setq smc (GET_TILE "supsem" )) (action_tile "supsem" "(setq activado $key)")) (action_tile "supsem" "(setq activado $key)"))
(if (= esp nil) (progn (setq esp (GET_TILE "supesp" )) (action_tile "supesp" "(setq activado $key)")) (action_tile "supesp" "(setq activado $key)"))
(if (= activado "supcub") (progn (setq cub "1") (setq smc "0") (setq esp "0") (set_tile "supcub" "1") (set_tile "supsem" "0") (set_tile "supesp" "0")))
(if (= activado "supsem") (progn (setq smc "1") (setq cub "0") (setq esp "0") (set_tile "supsem" "1") (set_tile "supcub" "0") (set_tile "supesp" "0")))
(if (= activado "supesp") (progn (setq esp "1") (setq cub "0") (setq smc "0") (set_tile "supesp" "1") (set_tile "supcub" "0") (set_tile "supsem" "0")))
El problema es que no se mucho del tema pero estuve investigando y encontre una solucion y por ahora esta funcionando bien, por ahi haya alguien que sepa programar de verdad y sepa resolverlo como corresponde, y principalmente que lo pueda explicar por que esto lo resolvi mas que nada por prueba y error pero ni yo lo termino de entender ja ja.
Primero pongo if por si devuelven nil las variables cuando entro al bucle por primera vez y se crean las mismas con setq y lo guardo en la variable "activado" con $key. Luego se activan o desactivan los botones comparando la variable "activado" con la clave de cada radio_button y cada vez que vuelve a apaecer el cuadrito ya se muestra activado el que active anteriormente, era simplemente una cuestion visual pero lo queria hacer asi.
Saludos.
(if (= cub nil) (progn (setq cub (GET_TILE "supcub" )) (action_tile "supcub" "(setq activado $key)")) (action_tile "supcub" "(setq activado $key)"))
(if (= smc nil) (progn (setq smc (GET_TILE "supsem" )) (action_tile "supsem" "(setq activado $key)")) (action_tile "supsem" "(setq activado $key)"))
(if (= esp nil) (progn (setq esp (GET_TILE "supesp" )) (action_tile "supesp" "(setq activado $key)")) (action_tile "supesp" "(setq activado $key)"))
(if (= activado "supcub") (progn (setq cub "1") (setq smc "0") (setq esp "0") (set_tile "supcub" "1") (set_tile "supsem" "0") (set_tile "supesp" "0")))
(if (= activado "supsem") (progn (setq smc "1") (setq cub "0") (setq esp "0") (set_tile "supsem" "1") (set_tile "supcub" "0") (set_tile "supesp" "0")))
(if (= activado "supesp") (progn (setq esp "1") (setq cub "0") (setq smc "0") (set_tile "supesp" "1") (set_tile "supcub" "0") (set_tile "supsem" "0")))
arielbnvo- Mensajes : 20
Fecha de inscripción : 21/03/2016
Re: Consulta sobre cuadro
Probar con esto un poco mas estructurado y sencillo. Saludos..
Fichero "Prueba2.DCL":
Cógigo lisp:
Fichero "Prueba2.DCL":
- Código:
cuadrito : dialog {label="Cuadrito balance";
: column {
spacer_1;
: boxed_radio_row {
label="Opciones:";
key = "optionselect";
: radio_button {
label="Cubierta";
key="supcub";
}
: radio_button {
label="Semi cubierta";
key="supsem";
}
: radio_button {
label="Pileta/Espejo";
key="supesp";
}
spacer_1;
}
}
spacer_1;
ok_cancel;
}
Cógigo lisp:
- Código:
(defun c:prueba2 ( / accion idx)
(if (not optionselect) (setq optionselect "supcub"))
(if (not pos_dia_prueba2) (setq pos_dia_prueba2 '(-1 -1)))
(setq idx (load_dialog "E:\\PROGRAMACION\\000_Pruebas\\Prueba2.dcl")
accion T)
(while accion
;;cargar archivo de cuadro de dialogo en pantalla
(if (not (new_dialog "cuadrito" idx "" pos_dia_prueba2)) (exit))
;;-----------------------------------
;;asignaciones de cuadro de dialogo:
(set_tile "optionselect" optionselect)
;;-----------------------------------
;;Acciones de cuadro de dialogo:
(action_tile "supcub" "(setq optionselect $key)")
(action_tile "supsem" "(setq optionselect $key)")
(action_tile "supesp" "(setq optionselect $key)")
(action_tile "accept" "(setq pos_dia_prueba2 (done_dialog 1))")
(action_tile "cancel" "(setq pos_dia_prueba2 (done_dialog 0))")
;;Activación del cuadro de dialogo
(setq accion (start_dialog))
(cond
;;Boton de cancelar
((= accion 0)
(unload_dialog idx)
(setq accion nil)
)
;;Boton de aceptar
((= accion 1)
(alert (strcat "Ha seleccionado la opción: [ " optionselect " ].\n\nContinue..."))
;;Aqui el resto de código que necesite ejecutar con esa opción.
(princ)
)
);c.cond
);c.while
);c.defun
nikitonipongo- Mensajes : 4
Fecha de inscripción : 08/02/2017
Temas similares
» Consulta Opciones
» Consulta rutina de mtext
» Manejo de atributos, consulta y escritura.
» Datos de Cuadro de Construcción
» Cuadro de coordenadas DTcuadro_coor
» Consulta rutina de mtext
» Manejo de atributos, consulta y escritura.
» Datos de Cuadro de Construcción
» Cuadro de coordenadas DTcuadro_coor
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|