Red Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Question du jour bonjour ;) Ma question se trouve dans le code (initget "a1 a2") (setq REP (getkword "\nType de bordure [a1/a2] <a1> : ")) Lors de commande telles que ligne etc les sélection en bas se font avec une lettre en particulier (Bleutée) dans un lisp elles sont marquée comme cela je crois séLection avec la lettre L en sélection, ici je met a en minuscule pour avoir la sélection sur pavé numérique mais lorsque je fais entrer, ils me notifient "Choix de l'option incorrect" du coup comment lui dire que je peut valider avec ENTRER et accessoirement comment laisser les majuscules si possible. Merci de votre avis sur la question. “L'environnement est important, pour sauver un arbre, mangez un castor !”
x_all Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 ici je met a en minuscule pour avoir la sélection sur pavé numérique mais lorsque je fais entrer, ils me notifient "Choix de l'option incorrect"de mémoire il faut une majuscule pour avoir une lettre dans le word pour faire un appel rapide, un chiffre ne fera pas l'affaire.et pour passer avec un entré simple et assigner une valeur par defaut, je ferai un test.. si getkword renvoie nill tu fait un setq avec cette valleur quelques trucs sur autocad
bonuscad Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Bonjour, J'espère que tu comprend l'anglais, une page vers la documentation INIGETVoir surtout le bas de page. Autrement un exemple pour tester. ((lambda ( / ) (initget "Père Mère filS fillE _Father Mother Son Daugther") (while (setq cle (getkword "\nChoisir lien parental [Père/Mère/filS/fillE]?: ")) (princ cle) (initget "Père Mère filS fillE _Father Mother Son Daugther") ) (prin1) )) Les 2 options du fils et de la fille peuvent t'éclairer sur le rôle des majuscules Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Red Posté(e) le 24 février 2017 Auteur Posté(e) le 24 février 2017 Je re précise du coup, le lisp arrive déjà a avoir une valeur par défaut, seulement entre A1 et A2 je pensai faire une selection rapide en tapant 1 ou 2 au clavier :D Via la commande (if (not rep) (setq rep "A1") (defun c:bora ( / REP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A1_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A1_AVANT" "") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A1_ARRIERE")) (command "_.layer" "_new" "SRMV_Bordure_A1_ARRIERE" "") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A2_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A2_AVANT" "") ) (if (not (tblsearch "LAYER" "SRMV_Bordure_A2_ARRIERE")) (command "_.layer" "_new" "SRMV_Bordure_A2_ARRIERE" "") ) (prin1 "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>") (command "_.pline" pause "_width" 0.02 0.02) (while (not (zerop (getvar "CMDACTIVE"))) (command pause) ) (cond ((= REP "A1")(command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A1_AVANT" "") (setq DC 0.2) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A1_ARRIERE" "") (prin1) ) ((= REP "A2")(command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A2_AVANT" "") (setq DC 0.15) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "SRMV_Bordure_A2_ARRIERE" "") (prin1) ) ) (setvar "PLINEWID" 0) ) “L'environnement est important, pour sauver un arbre, mangez un castor !”
Tramber Posté(e) le 26 février 2017 Posté(e) le 26 février 2017 Ajoute "1" et "2" dans l'initget.(initget "a1 a2 1 2")suivi de (if(= rep "1")(setq rep "A1"))...etcCela devrait fonctionner Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Red Posté(e) le 27 février 2017 Auteur Posté(e) le 27 février 2017 (modifié) Salut, tout d'abord merci de ta réponse. Je l'ai placé comme ci dessous malheureusement lorsque je fais 2 ENTRER, la commande s'arrête et je me retrouve placé avec une polyligne placé dans le calque 0, la commande semble s'arrêter .. Problème résolu après l'avoir mis autre part, je te remercie pour l'aide, c'était plutôt logique comme procédure je n'y avais pas pensé .. Modifié le 27 février 2017 par Red “L'environnement est important, pour sauver un arbre, mangez un castor !”
Red Posté(e) le 27 février 2017 Auteur Posté(e) le 27 février 2017 De ce que je comprend, iniget est l'endroit ou l'on indique les différentes saisies prise en compte, et les (if (= rep "1")(setq rep "A1")) me disent si la réponse saisie est 1 alors met le dans la variable rep ? Je pose la question pour être sur. “L'environnement est important, pour sauver un arbre, mangez un castor !”
(gile) Posté(e) le 27 février 2017 Posté(e) le 27 février 2017 Salut, S'il n'y a pas de majuscules dans les mots clés initialisés avec initget ce sont les chiffres qui tiennent lieu de raccourci. Donc, ceci est suffisant :(initget "a1 a2") (if (not (setq rep (getkword "\nType de bordure [A1/A2] <A1> : "))) (setq rep "a1") ) ou, plus élégamment :(initget "a1 a2") (setq rep (cond ((getkword "\nType de bordure [A1/A2] <A1> : ")) ("a1") ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Red Posté(e) le 27 février 2017 Auteur Posté(e) le 27 février 2017 Merci pour le complément d'information. “L'environnement est important, pour sauver un arbre, mangez un castor !”
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant