Pour commencer la programmation on va faire comme on a tous fait dans l'interface graphique d'AutoCAD quand on commence à dessiner, on va dessiner une ligne.
De quoi a t-on besoin pour faire une ligne ?
- un point de départ
- un point d'arrivée
et c'est tout, c'est le minimum vital.
Je lance l'IDE : vlide et je définis deux variables avec la fonction setq,
pt-dep et pt-arr
ensuite j'utilise la fonction command pour lancer la commande ligne d'AutoCAD :
( setq pt-dep ( getpoint "\nCliquez un point pour le départ de la ligne \n" ) )
( setq pt-arr ( getpoint "\nCliquez un point qui sera la fin de la ligne\n" ) )
( command "ligne" pt-dep pt-arr "" )
Je clique sur l'icône de lancement ou sur la combinaison de touches Ctrl+Alt+E et je me retrouve dans l'interface graphique d'AutoCAD et dans la ligne de commande on trouve :
Puisque j'ai pris le soin d'insérer les caractères spéciaux \n (antislash n) en début et fin de message des sauts de ligne sont en début et fin de message, essayez la même chose en supprimant les \n en début et fin de message d'invite en ligne de commande et vous en comprendrez l'utilité en voyant ce que la ligne de commande affichera.
Il faut cliquer un point à l'écran à la suite de l'invite, faîtes-le.
Une fois le point cliqué sa valeur(coordonnées) va être stockée dans la variable pt-dep.
Dès qu'un point est cliqué (bouton gauche de la souris) le programme continue en demandant de cliquer un autre point avec un autre message et une fois cliqué sa valeur (coordonnées) va être stockée à son tour dans la variable pt-arr, ensuite le programme va lancer la commande ligne en ressortant les valeurs des deux variables précédemment enregistrées, il ne reste qu'à faire deux guillemets consécutifs ("") ce qui signifie ENTRÉE (retour chariot, carriage return, c'est comme si on appuyait sur la touche entrée pour valider) pour terminer la commande ligne et une entité ligne se dessine entre les deux points cliqués.
C'est bien le cas ? ouah !! Bravo! vous avez fait un programme sur AutoCAD.
Voici une autre version qui donnera le même résultat avec ces menues différences dans la saisie :
j'utilise un seul (setq) pour définir deux variables et j'utilise le pt-dep qui vient d'être défini ce qui va permettre de créer une ligne élastique lors de la demande du deuxième point mais SURTOUT j'utilise la syntaxe anglaise pour "_LINE".
Il n'est pas très conseillé d'utiliser command dans les programmes lisp, je ne le montre que pour mémoire, mais dès le début il est important d'utiliser les commandes en anglais - langue internationale d'AutoCAD - pour une meilleure compatibilité des routines, ça donne ceci :
( setq pt-dep ( getpoint "\nCliquez un point pour le départ de la ligne \n" )
pt-arr ( getpoint pt-dep "\nCliquez un point qui sera la fin de la ligne\n" )
)
( command "_line" pt-dep pt-arr "" )
Pour interroger le contenu d'une variable :
Si vous êtes en ligne de commande faire précéder le nom de la variable par un point d'exclamation et AutoCAD vous livrera le contenu de la variable,
taper ! pt-arr
Si vous êtes dans l'IDE il suffit de taper le nom de la variable dans la Console Visual Lisp et vous allez voir une liste de trois valeurs, ce sont les x y et z du point cliqué, tout point graphique est stocké dans un telle liste, un triplet de valeurs, il est vrai que certains points sont enregistrés en 2D (sans Z) mais ce n'est pas la généralité, un point cliqué à l'écran est un triplet (x y z).
C'est bon ? je continue...je vous parlerai plus tard des calques, de dupliquer la ligne, des accrochages objets, de lui trouver son milieu, enfin plein de trucs..
9 novembre 2017