Je souhaite savoir comment interagir avec l’utilisateur dans mes routines AutoLISP pour recueillir différents types d’informations, comme des nombres, des points ou du texte, et quelles fonctions utiliser pour cela.
Pour permettre à vos routines AutoLISP de solliciter des informations de l’utilisateur, vous devez utiliser la famille des fonctions get. Il est crucial d’insérer \n (New Line) au début de vos messages pour une meilleure lisibilité dans la ligne de commande.
Voici les principales fonctions d’entrée utilisateur et leurs usages :
getint: Demande un nombre entier. Idéal pour des quantités (ex: nombre de copies) ou des numéros de dossier.getreal: Demande un nombre réel (entier ou décimal). Pour des valeurs numériques brutes.getpoint: Demande une position à l’écran (clic ou saisie de coordonnées). Renvoie une liste de 3 nombres(X Y Z).getdist: Demande une distance. L’utilisateur peut taper une valeur ou cliquer deux points à l’écran. AutoCAD® affiche un élastique visuel, rendant cette méthode très intuitive.getstring: Demande une chaîne de caractères (texte).- Piège classique : Par défaut, la barre d’espace valide l’entrée. Pour autoriser les espaces dans le texte saisi, il est impératif d’utiliser le drapeau
T(True) comme premier argument :(getstring T "Votre texte : ").
- Piège classique : Par défaut, la barre d’espace valide l’entrée. Pour autoriser les espaces dans le texte saisi, il est impératif d’utiliser le drapeau
getkword: Demande à l’utilisateur de choisir parmi une liste de mots-clés prédéfinis. Cette fonction ne peut pas être utilisée seule ; elle doit être précédée d’un appel àinitgetpour définir les mots-clés acceptés.
En résumé, choisissez la fonction appropriée selon le type d’information attendue :
- Pour un nombre entier :
getint - Pour une mesure précise (réel ou distance) :
getdist(souvent plus intuitif quegetreal) - Pour une position :
getpoint - Pour du texte (avec espaces) :
getstringavec le drapeauT - Pour un choix contrôlé :
initgetsuivi degetkword