Aller au contenu

petit problème avec un (vlax-ldata-get.


DenisHen

Messages recommandés

Bonjour à tous.

 

J'ai un petit problème de compréhension d'un (vlax-ldata-get. D'après ce que j'ai compris de l'aide en ligne, on peut proposer une valeur si la clef du dictionnaire n'existe pas.

 

Mais je tombe sur ce problème, je ne récupère qu'un nil :

_$ (vlax-ldata-get "DenisH" "EtiqPRD_OptionIns" "Automatiquement")

nil

_$ (setq def (vlax-ldata-get "DenisH" "EtiqPRD_OptionIns" "Automatiquement"))

nil

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

Bonjour à tous.

 

J'ai un petit problème de compréhension d'un (vlax-ldata-get. D'après ce que j'ai compris de l'aide en ligne, on peut proposer une valeur si la clef du dictionnaire n'existe pas.

 

Mais je tombe sur ce problème, je ne récupère qu'un nil :

Salut

 

Ben oui, je ne vois pas où est le problème ?

 

Par exemple

(or (setq def (vlax-ldata-get "DenisH" "EtiqPRD_OptionIns"))(setq def "Automatiquement"))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Salut Patrick_35, et merci pour ta réponse.

 

Normalement, si la clef du dictionnaire est vide, (vlax-ldata-get "DenisH" "EtiqPRD_OptionIns" "Automatiquement") devrait retourner "Automatiquement" et non nil...

 

D'après ce que j'ai compris sur l'aide en ligne... En anglais...

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

Salut Patrick_35, et merci pour ta réponse.

 

Normalement, si la clef du dictionnaire est vide, (vlax-ldata-get "DenisH" "EtiqPRD_OptionIns" "Automatiquement") devrait retourner "Automatiquement" et non nil...

 

D'après ce que j'ai compris sur l'aide en ligne... En anglais...

Oui, et c'est bien ce que me retourne Autocad d'après ton exemple. J'ai la bonne valeur.

Je te proposais une solution alternative.

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Merci pour ta proposition, je vais faire avec...

 

Mais c'est tout de même curieux ce comportement de ce (vlax-ldata...

 

Du coup, voici mon code :

  (if (= (setq def (vlax-ldata-get "DenisH" "EtiqPRD_OptionIns" "Automatiquement")) nil)
   (setq def "Automatiquement")
 ) ;_ Fin de if
 (initget "Automatiquement Manuellement Gauche Droite Non")
 (setq OptionIns (getkword
                   (strcat "\nPlacement des textes [Automatiquement/Manuellement/Gauche/Droite/Non] <" def "> : ") ;_ Fin de strcat
                 ) ;_ Fin de getkword
 ) ;_ Fin de setq
 (if (= OptionIns nil)
   (vlax-ldata-put "DenisH" "EtiqPRD_OptionIns" def)
   (vlax-ldata-put "DenisH" "EtiqPRD_OptionIns" OptionIns)
 ) ;_ Fin de if

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

Mais c'est tout de même curieux ce comportement de ce (vlax-ldata...

Salut

 

Oui. Je suis sur une 2017, c'est peut-être la différence.

J'ai aussi découvert il y a peu une nouvelle fonction.

(vla-postcommand (vla-get-activedocument (vlax-get-acad-object)) ...)

Quid du command, command-s, vl-cmdf et maintenant vla-postcommand

 

ps : tu n'as pas compris la subtilité du or ;)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Salut.

 

Effectivement, je n'avais pas saisi cette astuce...

 

Après quelques testes dans la console, je comprend mieux, et je l'ai intégré à mon code...

 

Encore merci...

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é