Toggle on/off
2 participantes
Página 1 de 1.
Toggle on/off
Hola que tal:
Alguien me podria dar un ejemplo de como puedo crear un toggle que cuando este con check me active un edit_box y a la vez desactive un popup_list cuando se le quite el check haga la viceversa.
Alguien me podria dar un ejemplo de como puedo crear un toggle que cuando este con check me active un edit_box y a la vez desactive un popup_list cuando se le quite el check haga la viceversa.
Re: Toggle on/off
Con un bucle del que solo se pueda salir con los valores que asignes al 0k/cancel.
Si entiendo bien, solo quieres que con toggle cambie el modo de visualización, no que se oculte el edit_box/popup_list que son cosas muy distintas.
¿Vas a crear el dcl con el lisp o lo tienes aparte?
Por favor, muestra un trozo suficiente de la rutina, (en su caso, con el dcl en las versiones con el toggle activo e inactivo ) y te podremos completar la explicación sobre ella.
Un saludo
Si entiendo bien, solo quieres que con toggle cambie el modo de visualización, no que se oculte el edit_box/popup_list que son cosas muy distintas.
¿Vas a crear el dcl con el lisp o lo tienes aparte?
Por favor, muestra un trozo suficiente de la rutina, (en su caso, con el dcl en las versiones con el toggle activo e inactivo ) y te podremos completar la explicación sobre ella.
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Re: Toggle on/off
Ya tengon el toggle funcionando pero por algun motivo no se queda guardado el valor por defecto me sale un error
https://www.dropbox.com/sh/nzeyisvcy0pgn95/AADEUejcdwFIu7ChiRh_yxFra?dl=0
https://www.dropbox.com/sh/nzeyisvcy0pgn95/AADEUejcdwFIu7ChiRh_yxFra?dl=0
Re: Toggle on/off
A ver, lo que te he contado antes sobre el bucle es esto
Deberías hacer la operaciones de insertar dentro del bucle para que vuelva a aparecer el diálogo por si quieres seguir insertando cosas, o cambiar los valores de las acciones.
Como antes, he cambiado la ruta a c:/bloques para que funcione en mi máquina.
Por cierto, lo del atoi *tog1* que te fallaba lo he corregido pero lo de la inserción no entiendo como tienes previsto que funcione...
Un saludo
- Código:
;;;;el truco viene aqui
(setq ddiag 12)
( while (> ddiag 1)
(if (not (new_dialog "INSERTA" dch "" (cond (*screenpointE1*) ('(-1 -1)))))
(progn
(alert "\nCuadro de dialogo NO ENCONTRADO")
(exit)))
(foreach image images16 (LM:DisplayBitmap (car image) (cdr image)))
;, aqui llegaba *tog1* como número y no como string
(if (or(null *tog1*)(/=(type *tog1*)'str)) (setq *tog1* "0"))
(if (null *opcion2*) (setq *opcion2* "0"))
(if (null *opcion1*) (setq *opcion1* "0"))
;;(if (null *opcion3*) (setq *opcion3* "1:20"))
(1-edi-copiarapido_16 "img_editblock")
;; Use your global variable and build the default path and filename.
(setq path (strcat Path:2DAMobBasico"bloques/")) ;;; "AutoCAD 2008/"))
(setq folder (GetDwgsMob "Bloques"));;"AutoCAD 2008"))
;;--------------Asignar valores por defecto---------------------------------------
(setq f1 "1-DWG-ALUMBRADO")
(If (or(null bloList)(null (listp bloList)))(setq bloList (blokinf (strcat path f1 ".txt"))) )
(setq bloqxlist (nth (atoi *opcion1*) bloList))
;;--------------------------- _addlist -----------------------------------------
;;Agregamos la lista con su propio "key"
;;------------------------------------------------------------------------------
(_ax:start "infolist" folder)
(_ax:start "bloqlist" bloList)
(setq ListEscala '("1:20" "1:25" "1:50" "1:75" "1:100" "1:125" "1:200" "1:250" "1:500" "MS:PS"))
(_ax:start "key_list_escala" ListEscala)
;; aqui la condición de nuevas vueltas del bucle
(if (/= *tog1* "0") (mode_tile "key_list_escala" 1)(mode_tile "key_list_escala" 0))
;;(set_tile "key_list_escala" *opcion3*)
;;(action_tile "key_list_escala" "(setq *escalaopcion3* (nth (atoi (setq *opcion3* $value)) ListEscala))")
;;-------------- Toggle accion---------------------------------------
;;; aqui estaba el error, ponía *tog1* (atoi $value)
(action_tile "key_tog" "(setq *tog1* $value) (mode_tile \"key_list_escala\" (atoi *tog1*)) (mode_tile \"key_escala1\" (- 1 (atoi *tog1*)))")
(set_tile "key_tog" *tog1*)
;;--------------------------- set_tile / action_tile "infolist"-----------------------------------------
;;Definimos la lista de archivos en la carpte previamente especificada
;;para guardarlo en la varibale *opcion2*
;;------------------------------------------------------------------------------------------------------
(set_tile "infolist" *opcion2*)
(action_tile "infolist" "(_ax:start \"bloqlist\" (setq bloList (blokinf (strcat path (nth (atoi (setq *opcion2* $value)) folder) \".txt\"))))")
;;--------------------------- set_tile / action_tile "bloqlist"-----------------------------------------
;;Definimos la lista de bloques dependiento de la lista .txt seleccionada previamente
;;para guardarlo en la varibale *opcion1*
;;------------------------------------------------------------------------------------------------------
(set_tile "bloqlist" *opcion1*)
(action_tile "bloqlist" "(setq bloqxlist (nth (atoi (setq *opcion1* $value)) bloList))")
;;--------------------------- *AX:Escala1* ----------------------------------------
;; Variable para la escala del bloque a insertar por defecto "1.00"
;;---------------------------------------------------------------------------------
(if (= *AX:Escala1* nil) (set_tile "key_escala1" "1.00") (set_tile "key_escala1" (rtos *AX:Escala1* 2 2)))
(mode_tile "key_escala1" 1)
(action_tile "key_escala1" "(setq *AX:Escala1* (atof $value))")
;;---------------------------------------------------------------------------------
(action_tile "cancel" "(setq *screenpointE1* (done_dialog 1))")
(action_tile "accept" "(setq *screenpointE1* (done_dialog 2))")
(action_tile "img_editblock" "(setq *screenpointE1* (done_dialog 3)) (setq bloqxlist (nth (atoi (setq *opcion1* $value)) bloList))")
(setq ddiag (start_dialog))
) ;; fin de while
(setq dch (unload_dialog dch))
(if (and dcl (findfile dcl))
(vl-file-delete dcl))
(if (< 0 dch)
(unload_dialog dch)
)
(princ)
(if (= ddiag 1) (prompt "\nPrograma Cancelado..."))
(if (= ddiag 2) (insertax))
(if (= ddiag 3) (open_dwg))
(setvar "cmdecho" 1)
(princ))
(defun insertax ()
(setvar "cmdecho" 0)
;;(setq unitblock (getvar "insunits"))
;;(setvar "insunits" 4)
(setq msxb (strcat "\n>> Punto de Inserción del bloque [ " bloqxlist " ]: "))
(princ msxb)
;;;(cond ((= *opcion3* "1:20") (setq opcion3 0.4))
;;; ((= *opcion3* "1:25") (setq opcion3 0.5))
;;; ((= *opcion3* "1:50") (setq opcion3 1))
;;; ((= *opcion3* "1:100") (setq opcion3 2))
;;; ((= *opcion3* "1:125") (setq opcion3 2.5))
;;; ((= *opcion3* "1:200") (setq opcion3 4))
;;; ((= *opcion3* "1:250") (setq opcion3 5))
;;; ((= *opcion3* "1:500") (setq opcion3 10))
;;; ((= *opcion3* "MS:PS") (setq opcion3 20)))
;;; (cond ((= key_tog T) (command "._insert" bloqxlist "_s" *AX:Escala1*))
;;; ((= key_tog nil) (command "._insert" bloqxlist "_s" opcion3)))
;;;
(command "._insert" bloqxlist "_s" *AX:Escala1*)
(while (= (logand (getvar "cmdactive") 1) 1)
(command pause)
)
(vl-cmdf "_.explode" "_l")
;;(setvar "insunits" unitblock)
(setvar "cmdecho" 1)
(princ))
Deberías hacer la operaciones de insertar dentro del bucle para que vuelva a aparecer el diálogo por si quieres seguir insertando cosas, o cambiar los valores de las acciones.
Como antes, he cambiado la ruta a c:/bloques para que funcione en mi máquina.
Por cierto, lo del atoi *tog1* que te fallaba lo he corregido pero lo de la inserción no entiendo como tienes previsto que funcione...
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Re: Toggle on/off
Te agradesco nolo por la respuesta pero no logro salir del bucle ni me permite hacer nada, la otra era porque pones (setq ddiag 12)
Re: Toggle on/off
Por poner algo, un número mayor que las posibles respuestas y 12 me pareció bastante.
Tocando en cancel se hace (done_dialog 1) con lo que sale del bucle ( while (> ddiag 1) ya no se cumple
Ese valor lo manejas a tu antojo y lo recuperas con (setq ddiag (start_dialog))
Un saludo
Tocando en cancel se hace (done_dialog 1) con lo que sale del bucle ( while (> ddiag 1) ya no se cumple
Ese valor lo manejas a tu antojo y lo recuperas con (setq ddiag (start_dialog))
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Re: Toggle on/off
Hola que tal:
Nolo tengo este codigo que quiero agregarle a mi lisp pero me da error sigo con lo del valor por defecto del toggle que hasta ahora no me funciona.
------------------------------------------------------------------------------------------------------------------------------------------
Si derrepente el codigo te parece que no tiene por donde encajar te dejo un link donde el maestro LeeMac muestra una parte de lo que quiero pero sin el valor por defecto guardado.
https://www.dropbox.com/sh/1dkijg0tilfdoos/AAB7WkT8II7Ze5I2Eb75nqb-a?dl=0
Nolo tengo este codigo que quiero agregarle a mi lisp pero me da error sigo con lo del valor por defecto del toggle que hasta ahora no me funciona.
- Código:
(setq *op* (list (cons 'key_tog1 "0") (cons 'key_list_escala "0")))
(set_tile "key_tog1" key_tog1)
((setq key_tog1_fun
(lambda ( value )
(if (eq "1" value)
(progn (mode_tile "key_list_escala" 0) (mode_tile "key_escala1" 0))
(progn (mode_tile "key_list_escala" 1) (mode_tile "key_escala1" 1))))) key_tog1)
(action_tile "key_tog1" "(key_tog1_fun (setq key_tog1 $value))")
------------------------------------------------------------------------------------------------------------------------------------------
Si derrepente el codigo te parece que no tiene por donde encajar te dejo un link donde el maestro LeeMac muestra una parte de lo que quiero pero sin el valor por defecto guardado.
https://www.dropbox.com/sh/1dkijg0tilfdoos/AAB7WkT8II7Ze5I2Eb75nqb-a?dl=0
Re: Toggle on/off
No se puede ayudar si no te explicas detalladamente que quieres hacer.
¿Para que quieres que sirva ese código que adjuntas ahora ??
El código que te puse antes funciona hasta el insert (que no que que quieres hacer) y si quieres que salga con el 2, pues comienza el bucle con < 2.
Un saludo
¿Para que quieres que sirva ese código que adjuntas ahora ??
El código que te puse antes funciona hasta el insert (que no que que quieres hacer) y si quieres que salga con el 2, pues comienza el bucle con < 2.
Un saludo
nolo- Mensajes : 182
Fecha de inscripción : 17/03/2016
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|