J’essaie de comprendre comment regrouper plusieurs informations (comme des coordonnées X, Y, Z) en un seul objet pour qu’AutoCAD puisse les interpréter correctement, notamment pour la création de points. Comment fonctionne la fonction (list) en AutoLISP ?
La fonction (list) est le cœur du traitement de listes en AutoLISP, permettant de regrouper des éléments disparates en une seule entité structurée, essentielle pour la manipulation d’objets AutoCAD.
Voici comment l’utiliser et la comprendre :
- Comprendre le concept de liste : Imaginez
(list)comme un conteneur qui rassemble plusieurs données (nombres, textes, ou même d’autres listes) en un seul « paquet ». Au lieu de gérer chaque donnée séparément, vous manipulez l’ensemble comme un seul objet. C’est le principe même du « LISt Processing » (Traitement de Listes) qui donne son nom au langage LISP. - Syntaxe de base : La fonction s’utilise simplement en plaçant les éléments à regrouper entre parenthèses, précédés de
list:(list élément1 élément2 élément3 ...). Vous pouvez y inclure des variables, des constantes, ou des expressions. - Application aux points 3D dans AutoCAD : Pour AutoCAD, un point est toujours une liste de trois nombres représentant ses coordonnées X, Y et Z. Par exemple,
(list 10 20 0)crée un point aux coordonnées (10, 20, 0). AutoCAD ne comprend pas les coordonnées X et Y séparément pour définir un point, il a besoin de cette structure de liste. - Exemple pratique (code AutoLISP) : Pour illustrer, copiez-collez ce code dans l’éditeur AutoLISP (VLIDE) et lancez la commande
TEST-LISTEdans AutoCAD.
Ce programme définit des coordonnées individuelles, puis utilise(defun C:TEST-LISTE () (setq x_coord 10.0) (setq y_coord 20.0) (setq z_coord 0.0) (setq mon_point (list x_coord y_coord z_coord)) ; Crée la liste (10.0 20.0 0.0) (princ (strcat "\nLe point créé est : " (vl-princ-to-string mon_point))) (princ) )(list)pour les assembler en une seule variablemon_point, qui est une liste(10.0 20.0 0.0). C’est cette liste qui peut ensuite être utilisée par d’autres fonctions AutoCAD pour dessiner des entités. - Importance : Cette capacité à structurer les données est fondamentale pour interagir avec AutoCAD, que ce soit pour définir des points, des vecteurs, ou d’autres propriétés d’entités. Le résultat d’une fonction
(list)est toujours une entité entre parenthèses, par exemple(10 20 0), prête à être traitée par AutoCAD.