Aller au contenu

[Résolu] Retours de initget et getkword incohérents


Aleck_Ultimate

Messages recommandés

Bonjour à tous.

 

Je me suis arraché les cheveux un bon moment avant de comprendre l'origine du problème.

 

Avec le code :

 

(initget "Parent Numero_dossier Etudes test_4 test_5") ;_ Choix de l'utilisateur
(setq chn_setq_getkword (getkword "Quel dossier ouvrire ? [Parent/Numero_dossier/Etudes/test_4/test_5]"))

Si je choisis "Parent" il me retourne "dossier"

 

Si je choisis "Numero_dossier" il me retourne "Etudes"

 

Si je choisis "Etudes" "Test_4" ou "Test_5" il me retourne une erreur si j'ai DYNMODE désactivé et "nil" si j'ai DYNMODE activé.

 

Par contre avec le même code sans les tirets bas.

 

(initget "Parent Numerodossier Etudes test4 test5") ;_ Choix de l'utilisateur
(setq chn_setq_getkword (getkword "Quel dossier ouvrir ? [Parent/Numerodossier/Etudes/test4/test5]"))

Tout marche normalement.

 

Je comprend pas pourquoi les tirets bas font tout buger. C'est normal ? Corrigible ? Explicable ?

 

Si c'est une contrainte tant-pis, mais je trouve que ça fait quand-même pas un outil très pratique alors que certains commande natives d'AutoCAD comportent même des espaces dans les noms de leurs options.

 

Merci.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

A tu essayer avec un "\" devant ton "_" ?

Effectivement non, mais le retour est le même chose avec ou sans "\".

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

(initget) utilisé avec (getkword) a une syntaxe particulière permettant l'internationalisation du lisp.

En effet si on fait:

(initget "Bonjour Aurevoir _Hello Byebye")(getkword "\nJe dis [bonjour/Aurevoir]?: ")

Si l'on renseigne "b", "B" (au minimum: la lettre ou les lettre en Majuscule définie-s) ou "bonjour" "Hello" est retourné.Si l'on renseigne "_h", "_H" ou plus, "Hello" est aussi retourné.Donc si initget rencontre un underscore dans ses paramètres, il considère que les mots suivants ( en nombre équivalent) sont en langue international et retournera ceux-ci et non ceux défini en Français.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Pour ajouter à ce qu'a dit bonuscad, dans le initget, on ne met que les "mots clé" à savoir un seul mot par "mot clé"; mais dans l'invite, on peut mettre des espaces et/ou des tirets bas. La valeur retournée par getkword est le "mot clé"

D'autre part, si on ne spécifie pas le bit 1 dans le initget (pour refuser que l'utilisateur fasse Entrée), il est préférable de spécifier une option par défaut.

 

(initget "Parent Numero Etudes 4 5")
(setq chn_setq_getkword (getkword "\nQuel dossier ouvrir [Parent/Numero dossier/Etudes/test 4/test 5] <Parent>: "))
(cond
 ((= chn_setq_getkword "Numero")
  (alert "Numero")
 )
 ((= chn_setq_getkword "Etudes")
  (alert "Etudes")
 )
 ((= chn_setq_getkword "4")
  (alert "4")
 )
 ((= chn_setq_getkword "5")
  (alert "5")
 )
 (T (alert "Parent"))
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup. Comme quoi vaut mieux un qui sait (en l'occurrence deux) que moi qui cherche pendant des heures laugh.gif

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

Lien vers le commentaire
Partager sur d’autres sites

  • 3 ans après...
Le 10/10/2018 à 14:19, (gile) a dit :

Pour ajouter à ce qu'a dit bonuscad, dans le initget, on ne met que les "mots clé" à savoir un seul mot par "mot clé"; mais dans l'invite, on peut mettre des espaces et/ou des tirets bas. La valeur retournée par getkword est le "mot clé"

Cela signifie qu'on peut avoir un (initget de ce type ?

(initget "1 2 3")
(setq Choix (getkword "\nChoix de l'option [1-Ajouter/2-Modifier/3-Supprimer] : "))

 

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Merci @didierpour ta réponse.
Parfait, ça va me faciliter la vie cette astuce.
Denis.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Le 24/08/2022 à 08:58, DenisHen a dit :

Cela signifie qu'on peut avoir un (initget de ce type ?

(initget "1 2 3")
(setq Choix (getkword "\nChoix de l'option [1-Ajouter/2-Modifier/3-Supprimer] : "))

Pour avoir rapidement une réponse à ce genre de question, il suffit de tester. La console Visual LISP est ta meilleure amie.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @(gile) et merci pour ton conseil.
Je ne pense jamais à tester le code dans la console, mais tu as raison, elle est notre amie.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité