Assurer la persistance des variables USERS dans AutoCAD et LT

Je ne comprends pas pourquoi les variables système USERS1 à USERS5 ne s’enregistrent pas dans le dessin AutoCAD ou AutoCAD LT, alors que les variables numériques USERR et USERI fonctionnent correctement. J’utilise ces variables pour mes macros DIESEL et j’ai besoin de leur persistance, surtout pour mes clients qui travaillent sur des versions LT.

Historiquement, les variables USERS n’étaient pas conçues pour une persistance directe dans le dessin, surtout sur AutoCAD LT avant la version 2024. Pour contourner ce problème et stocker des chaînes de caractères de manière persistante, des variables système alternatives peuvent être utilisées.

  1. Comprendre la limitation historique: Les variables USERS1 à USERS5 étaient initialement limitées et ne persistaient pas dans le dessin, contrairement aux variables numériques USERR et USERI. Cette limitation était particulièrement présente sur AutoCAD LT jusqu’à la version 2023 incluse.
  2. Utiliser des variables système alternatives pour les chaînes (AutoCAD LT < 2024): Pour stocker des chaînes de caractères de manière persistante et compatible avec les versions antérieures d’AutoCAD LT, utilisez des variables système comme MTJIGSTRING ou MODEMACRO. Ces variables, bien que non dédiées à cet usage, conservent leur valeur dans le dessin et sont accessibles via DIESEL ou LISP. Par exemple, pour lire ou écrire une valeur en LISP : (setvar "MODEMACRO" "Ma valeur texte") ou (getvar "MODEMACRO").
  3. Vérifier la version d’AutoCAD LT: À partir d’AutoCAD LT 2024, les variables USERS1 à USERS5 sont désormais accessibles et devraient persister correctement dans le dessin. Cette amélioration est probablement liée à l’intégration du support LISP dans cette version.
  4. Considérer les alternatives avancées (AutoCAD Full): Pour des besoins de stockage de données plus complexes et structurées, les versions complètes d’AutoCAD offrent des mécanismes plus robustes comme les dictionnaires NOD, les XRecords ou les XData. Ces méthodes sont plus fiables pour des données critiques et évitent les conflits potentiels avec d’autres applications utilisant les variables USER (comme Covadis l’a fait historiquement avec USERI1).
  5. Prévention et bonnes pratiques: Si vous utilisez les variables USER (numériques ou chaînes), il est recommandé de les réinitialiser systématiquement au début de chaque script ou macro qui les utilise. Cela garantit que vos calculs ou logiques ne sont pas affectés par des valeurs résiduelles ou modifiées par d’autres processus ou utilisateurs.