La commande LSP des Express Tools vous permet d’obtenir, avec son option Variables, la liste des variables définies par l’AutoLISP. Voici cette liste:
VariablesAutoLISP.txt (14,5 Ko)
Cette liste contient majoritairement des constantes globales Visual LISP. Ce ne sont pas des variables système d’AutoCAD® (comme OSMODE ou CLAYER que l’on modifie couramment), mais des symboles utilisés par les développeurs pour écrire du code plus lisible lorsqu’ils interagissent avec l’interface ActiveX (COM) d’AutoCAD®.
Voici une analyse détaillée de leur fonction, initialisation et accessibilité, basée sur ce fichier.
1. À quoi servent ces variables (Constantes) ?
Leur but principal est de remplacer des nombres entiers (Integer) obscurs par des noms compréhensibles en anglais lors de la programmation en LISP.
On peut diviser cette liste en trois catégories principales :
A. Les constantes AutoCAD® (Préfixe AC)
Elles définissent des propriétés d’objets ou des paramètres spécifiques à l’environnement AutoCAD®. Au lieu de devoir retenir que la couleur rouge est le chiffre 1, le développeur peut écrire acRed.
-
Couleurs et Apparence :
ACRED,ACYELLOW,ACWHITE. -
Types d’objets :
ACLINE(Ligne) ,ACPOINT(Point) ,ACREGION(Région). -
Échelles de fenêtres (Viewport) : Toute la série
ACVP...définit les échelles standard. Par exemple,ACVP1_50correspond au 1/50ème ,ACVP1_4IN_1FTcorrespond à 1/4" = 1’. -
Justification de texte :
ACTOPLEFT,ACRIGHTALIGNMENT. -
Épaisseurs de plume :
ACPENWIDTH035correspond à 0.35mm.
B. Les constantes Visual Basic / ActiveX (Préfixe VLAX-VB)
Ces variables sont utilisées pour communiquer avec Windows ou d’autres applications via ActiveX. Elles définissent souvent des types de données ou des boutons de boîtes de dialogue.
-
Types de variables :
VLAX-VBINTEGER(Entier) ,VLAX-VBDOUBLE(Nombre réel) ,VLAX-VBSTRING(Chaîne de texte). -
Boîtes de dialogue (Message Box) :
VLAX-VBCRITICAL(Icône d’erreur critique) ,VLAX-VBYESNO(Boutons Oui/Non).
C. Les constantes LISP Standard
Quelques variables dans votre liste sont des standards du langage AutoLISP de base :
-
PI: La valeur mathématique de Pi (3.14159…). -
T: Représente la valeur « Vrai » (True) en logique Lisp. -
PAUSE: Utilisé dans les commandes pour attendre une entrée utilisateur.
2. À quel moment sont-elles initialisées ?
C’est ici que la distinction est importante :
- Au lancement d’AutoCAD® : Les constantes de base comme
PI,TetPAUSEsont chargées immédiatement au démarrage du noyau LISP. - Au chargement des fonctions étendues (Le plus probable pour votre liste) : La grande majorité des variables commençant par
ACetVLAXne sont pas présentes par défaut au lancement pur d’AutoCAD®. Elles sont initialisées lorsque l’environnement Visual LISP est chargé.
- Cela se produit généralement lorsqu’un script exécute la fonction :
(vl-load-com). - La plupart des routines LISP modernes (et les Express Tools que vous avez utilisés) lancent cette fonction au début pour activer les fonctionnalités avancées.
3. Sont-elles accessibles à l’utilisateur ?
Oui, mais…
- Accessibilité technique : Elles sont totalement accessibles. Si vous tapez
!acRedsur la ligne de commande AutoCAD®, il vous répondra1. Si vous tapez!acVP1_50, il vous donnera la valeur entière correspondante (probablement un ID interne pour cette échelle). - Utilité pour l’utilisateur lambda : Elles ont très peu d’intérêt pour un dessinateur classique. Elles ne contrôlent pas le comportement d’AutoCAD® comme le ferait une variable système (
MIRRTEXTouFILEDIA). Changer la valeur deACREDne changera pas la couleur rouge dans AutoCAD®, cela brisera simplement les scripts Lisp qui s’attendent à ce queACREDvaille1. - Modification : Bien qu’elles soient techniquement modifiables (AutoLISP permet de redéfinir presque tout), il est fortement déconseillé de les toucher. Ce sont des constantes de référence pour les programmes.
Résumé Technique
Cette liste est le « dictionnaire » que Visual LISP charge en mémoire pour traduire des concepts humains (ex: « Rouge », « 1/50ème », « Texte Centré ») en valeurs numériques que le processeur d’AutoCAD® comprend.