- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Lien permanent
- Imprimer
- Signaler
Bonsoir,
Je viens à vous concernant un problème entre ma boîte de dialogue et mon LISP.
Dans un premier temps, dans ma boîte de dialogue je demande le "diamètre du réseau". En exécution ma boîte de dialogue s'affiche correctement mais ne récupère pas la valeur entrée par l'utilisateur.
Dans un second temps, je demande d'écrire le nom du réseau choisit parmi les types que j'indique (EP/EU/CFA/CFO...)
J'aimerais plutôt que l'utilisateur rentre n'importe quel nom de réseau et que ce nom serve à créer un calque de type
PIC- Réseau "Réseau choisit"
J'espère pouvoir trouver votre aide et vous remercie par avance.
Très bonne soirée.😙
Voici le dcl :
reseauxboite: dialog {
label = "Sélection du réseau";
: column {
: edit_box {
label = "Réseau (EU/EP/CFA/CFO)";
key = "cléres";
}
: edit_box {
label = "Diametre du reseau (m)";
key = "clédiam";
}
: row {
: button {
label = "OK";
is_default = true;
key = "accept";
}
: button {
label = "Annuler";
is_default = false;
is_cancel = true;
key = "cancel";
}
}
Et le LISP
(defun c:réseaux()
(setq Acro (getvar "osmode"))
(setq id (load_dialog "Boitereseaux.dcl"))
(new_dialog "reseauxboite" id)
(setq Choix_reseaux 1)
(if (or (= Choix_reseaux nil)(= Choix_reseaux "")) (set_tile "cléres" Choix_reseaux) (set_tile "cléres" "EP"))
(action_tile "accept" "(fonctionok)")
(action_tile "cancel" "(fonctionannuler)")
(start_dialog)
(cond
((= Choix_reseaux "EU")
(if (not (tblsearch "layer" "PIC-Réseau EU"));test de l'existence
(command "_layer" "_M" "PIC-Réseau EU" "");si n'existe pas il est créé
(progn ;s'il existe
(command "_layer" "_T" "PIC-Réseau EU""");il est dégelé (au cas où)
(command "_layer" "_S" "PIC-Réseau EU""");il devient courant
)))
((= Choix_reseaux "EP")
(if (not (tblsearch "layer" "PIC-Réseau EP"));test de l'existence
(command "_layer" "_M" "PIC-Réseau EP" "");si n'existe pas il est créé
(progn ;s'il existe
(command "_layer" "_T" "PIC-Réseau EP""");il est dégelé (au cas où)
(command "_layer" "_S" "PIC-Réseau EP""");il devient courant
)))
((= Choix_reseaux "CFA")
(if (not (tblsearch "layer" "PIC-Réseau CFA"));test de l'existence
(command "_layer" "_M" "PIC-Réseau CFA" "");si n'existe pas il est créé
(progn ;s'il existe
(command "_layer" "_T" "PIC-Réseau CFA""");il est dégelé (au cas où)
(command "_layer" "_S" "PIC-Réseau CFA""");il devient courant
)))
((= Choix_reseaux "CFO")
(if (not (tblsearch "layer" "PIC-Réseau CFO"));test de l'existence
(command "_layer" "_M" "PIC-Réseau CFO" "");si n'existe pas il est créé
(progn ;s'il existe
(command "_layer" "_T" "PIC-Réseau CFO""");il est dégelé (au cas où)
(command "_layer" "_S" "PIC-Réseau CFO""");il devient courant
)))
(T (command "_layer" "_T" "0""");il est dégelé (au cas où)
(command "_layer" "_S" "0"""));il devient courant )
)
;(setq d0 (getreal "Diamètre du réseau"))
(setq pts nil)
(setvar "osmode" 0)
(command "polylign")
(while (setq p2 (getpoint "Premier point ou Point suivant :"))
(command p2)
(setq pts (cons p2 pts)))
(command "")
(setq name(getpoint "saisir le point d'insertion du linéaire total"))
(setq périmètre (* pi d0))
(command "texte" name 2 0 (strcat "Longueur du réseau (m) : " (rtos périmètre)))
(setq name1 (getpoint "saisir le point d'insertion de la valeur du diamètre"))
(setq diamètre d0)
(command "texte" name1 2 0 (strcat "Diamètre du réseau (m) : " (rtos diamètre)))
(setvar "osmode" acro)
(defun fonctionok ()
(setq Choix_reseaux (atoi(get_tile "cléres")))
(done_dialog))
(defun fonctionannuler ()
(done_dialog)
(exit)))
}
}
Résolu ! Accéder à la solution.