Pourquoi et comment ?
Des boîtes de dialogue programmables peuvent être utilisées pour personnaliser complètement l'interface des programmes AutoLISP.
Ces boîtes de dialogue permettent aux programmes LISP de fonctionner comme bon nombre des fonctions intégrées d’AutoCAD.
L'utilisation de boîtes de dialogue améliore l'efficacité et réduit les erreurs de saisie.
Les boîtes de dialogue minimisent la quantité de frappe requise par l'utilisateur.
Plutôt que de répondre à une série d’invites textuelles sur la ligne de commande, l’utilisateur sélectionne des options dans la boîte de dialogue.
Les champs de la boîte de dialogue peuvent être renseignés par l'utilisateur dans n'importe quel ordre.
Tant que la boîte de dialogue est toujours active, l'utilisateur peut modifier les valeurs si nécessaire.
Le langage DCL (Dialog Control Langage) qui sert à définir les "cases de dialogue" associées aux programmes "*.lsp" a la mauvaise réputation d'effrayer les débutants (et certains moins débutants), je vais tenter d'y remédier par ces diverses explications et exemples.
Les boîtes de dialogue utilisent un langage à part de l'AutoLISP®, la première chose qui saute aux yeux est l'absence de parenthèses, vous allez dire chouette les parenthèses j'en ai marre!... ne vous réjouissez pas si vite : les parenthèses sont remplacées par des accolades et c'est le même principe que pour les parenthèses, chaque accolade ouvrante est appairée à une accolade fermante.
Les lignes d'instructions DCL doivent toujours se terminer par le caractère ; (point virgule), c'est l'indicateur de fin de ligne.
Le caractère : (deux points superposés) marque le début de définition d'un type et peut être suivi d'un nom de tile de base, l'utilisateur peut créer ses propres types à partir des éléments de base, les nommer et les réutiliser ensuite.
Le caractère d'égalité ou = permet de définir la valeur associée à un attribut :
attribut = valeur
La définition des boîtes de dialogue se fait dans un fichier différent* du fichier lisp, cela se fait dans un fichier avec l'extension .dcl.
*Lorsqu'on vous serez plus habitués à ce langage vous verrez qu'il existe une possibilité de ne pas séparer les fichiers LSP et DCL, mais pour l'instant on travaille dans deux fichiers.
Comme pour le lisp le fichier est en ascii, lisible en clair, et éditable via l'IDE en faisant attention lors de la création ou de l'ouverture à préciser le format dcl dans la case du type des fichiers lors du premier enregistrement.
Ce langage, le DCL, est dans le même genre que le lisp, il a ses complications et ses pièges, mais il permet de faire de belles cases quand on commence à le maîtriser.
En complément d'un programme lisp une belle case de dialogue rend le programme plus simple en proposant des choix pré-établis ce qui prévient les fautes de frappe en réponse par l'utilisateur.
Attention toutefois à ne pas en faire trop, trop de bouton, trop de cases à cocher, trop de trop... le mieux est toujours l'ennemi du bien...
AutoCAD utilise le DCL pour ses propres boîtes de dialogue, par exemple celle-ci que vous utilisez souvent est du DCL :
Il est vrai que certains programmes "modernes", VBA (un peu ancien tout de même), C# et autres Visual Studio proposent des façons de créer les boîtes de dialogue bien plus didactiques par simple glisser-déposer des outils, boutons et zones de texte mais le DCL est ancien (de mémoire il était sorti avec la version 12 d'AutoCAD® qui fonctionnait encore sous DOS) et n'a jamais été remis à jour par AutoDesk®, que voulez-vous que je vous dise ? à part tant pis ! il faut faire avec et je vais tenter comme pour l'AutoLISP d'être le plus exhaustif possible.
Allez, c'est parti à la découverte d'un nouveau monde et d'une nouvelle langue...
05 janvier2018