Université Joseph FOURIER M2 GCI UFR de Mécanique Génie Civil et Infrastructure

Université Joseph FOURIER M2 GCI UFR de Mécanique Génie Civil et Infrastructures AutoCAD 2008 programmation AutoLISP D. RICOTIER Septembre 2008 AutoCAD 2008 Programmation AutoLISP M2 GCI 1 SOMMAIRE 1. GÉNÉRALITÉS ........................................................................................................................................................... 3 1.1. QU’EST CE QU’AUTOLISP ? ..................................................................................................................................... 3 1.2. MODES D’UTILISATION D’AUTOLISP ....................................................................................................................... 3 1.3. MAJUSCULES OU MINUSCULES ? ............................................................................................................................... 3 1.4. COMMENT ECRIRE UN PROGRAMME LISP ? .............................................................................................................. 3 1.5. COMMENT LANCER UN PROGRAMME AUTOLISP ? ................................................................................................... 3 1.6. EXEMPLE DE PROGRAMME AUTOLISP ..................................................................................................................... 4 1.6.1. Objectif ............................................................................................................................................................. 4 1.6.2. Contenu du programme : ................................................................................................................................. 4 1.6.3. Remarques et commentaires ............................................................................................................................ 4 1.7. TRANSFORMER UN PROGRAMME EN UNE FONCTION ................................................................................................. 5 1.7.1. Comment utiliser une fonction AutoLISP ? ...................................................................................................... 6 1.7.2. Différence entre une fonction et un programme .............................................................................................. 6 1.7.3. Transformer une fonction en une commande ................................................................................................... 7 1.7.4. Comment exploiter une commande AutoCAD personnelle .............................................................................. 7 1.7.5. Un catalogue des principales fonctions AutoLISP ........................................................................................... 7 1.7.6. Les différentes types de données dans AutoLISP ............................................................................................. 7 1.7.7. L’affectation d’une valeur a une variable ........................................................................................................ 7 1.7.8. Le calcul numérique ......................................................................................................................................... 8 2. LES ENTREES ............................................................................................................................................................. 9 2.1. ENTREES DE DONNEES .............................................................................................................................................. 9 2.2. LA PROTECTION DES ENTREES ................................................................................................................................ 10 3. TRAITEMENT DES VARIABLES ET COMMANDES AUTOCAD ................................................................... 11 3.1. AFFECTATION D’UNE VARIABLE ............................................................................................................................. 11 3.2. APPEL DES COMMANDES AUTOCAD ...................................................................................................................... 11 3.3. DEFINIR UNE FONCTION .......................................................................................................................................... 11 3.4. DEFINIR UNE NOUVELLE COMMANDE AUTOCAD................................................................................................... 11 3.5. CHARGER COMMANDES ET FONCTIONS .................................................................................................................. 11 4. TRAITEMENT DES CHAINES DE CARACTERES ............................................................................................ 11 4.1. CONCATENATION ................................................................................................................................................... 11 4.2. TRANSFORMATION EN MAJUSCULES OU MINUSCULES ............................................................................................ 11 4.3. TRANSFORMATION D'UNE CHAINE EN UN REEL ....................................................................................................... 12 4.4. TRANSFORMATION DUNE CHAINE EN UN ENTIER ..................................................................................................... 12 4.5. LONGUEUR D'UNE CHAINE ...................................................................................................................................... 12 4.6. SOUS-CHAINE ......................................................................................................................................................... 12 5. LE TRAITEMENT DES LISTES ............................................................................................................................. 12 5.1. COMPOSER UNE LISTE............................................................................................................................................. 12 5.2. AJOUTER UN ATOME A UNE LISTE ........................................................................................................................... 12 5.3. LONGUEUR D'UNE LISTE ......................................................................................................................................... 13 5.4. SOMMER DEUX LISTES ............................................................................................................................................ 13 5.5. RENVERSER UNE LISTE ........................................................................................................................................... 13 5.6. EXTRAIRE DES ATOMES D’UNE LISTE ...................................................................................................................... 13 5.6.1. Fonction car ................................................................................................................................................... 13 5.6.2. Fonction cdr ................................................................................................................................................... 13 5.6.3. Concaténation car et cdr ................................................................................................................................ 13 5.7. LE DERNIER ATOME D’UNE LISTE ............................................................................................................................ 13 6. CONDITION, BOUCLE, TEST ................................................................................................................................ 14 6.1. LA CONDITION SI ................................................................................................................................................... 14 6.2. LES DIFFERENTS TESTS POSSIBLES .......................................................................................................................... 14 6.3. LA CONDITION GENERALE ...................................................................................................................................... 15 6.4. LA BOUCLE ............................................................................................................................................................. 15 7. QUELQUES FONCTIONS SPECIFIQUES DU DESSIN: ..................................................................................... 16 M2 GCI AutoCAD 2008 Programmation AutoLISP 2 7.1. BASCULER D'UN ECRAN SUR L'AUTRE ..................................................................................................................... 16 7.2. LE MODE POLAIRE .................................................................................................................................................. 16 7.3. POINT D'INTERSECTION DE DEUX DROITES .............................................................................................................. 16 7.4. DISTANCE ENTRE DEUX POINTS: ............................................................................................................................. 16 7.5. ANGLE DEFINI PAR DEUX POINTS : .......................................................................................................................... 16 7.6. ACCROCHAGE A LA GEOMETRIE DES OBJETS EXISTANTS: ....................................................................................... 16 8. EDITEUR VISUAL LISP .......................................................................................................................................... 16 8.1. PRESENTATION ....................................................................................................................................................... 16 8.2. BOUTONS UTILES .................................................................................................................................................... 17 9. EXEMPLES ................................................................................................................................................................ 18 9.1. TROU OBLONG ........................................................................................................................................................ 18 9.1.1. Objectif ........................................................................................................................................................... 18 9.1.2. Programme .................................................................................................................................................... 18 9.1.3. Résultat .......................................................................................................................................................... 18 9.2. SURFACE ................................................................................................................................................................ 18 9.2.1. Objectif ........................................................................................................................................................... 18 9.2.2. Programme .................................................................................................................................................... 18 9.2.3. Résultat .......................................................................................................................................................... 18 9.3. TREMIE ................................................................................................................................................................... 19 9.3.1. Objectif ........................................................................................................................................................... 19 9.3.2. Programme .................................................................................................................................................... 19 9.3.3. Résultat .......................................................................................................................................................... 19 9.4. TIRANT D’ANCRAGE ............................................................................................................................................... 20 9.4.1. Objectif ........................................................................................................................................................... 20 9.4.2. Programme .................................................................................................................................................... 20 9.4.3. Résultat .......................................................................................................................................................... 21 9.5. TRANSFERT DE POINTS DEPUIS AUTOCAD VERS UN FICHIER TXT .......................................................................... 22 9.5.1. Objectif ........................................................................................................................................................... 22 9.5.2. Programme .................................................................................................................................................... 22 9.5.3. Résultat .......................................................................................................................................................... 22 9.6. TRANSFERT DE POINTS DEPUIS UN FICHIER TXT VERS AUTOCAD .......................................................................... 23 9.6.1. Objectif ........................................................................................................................................................... 23 9.6.2. Programme .................................................................................................................................................... 23 9.6.3. Résultat .......................................................................................................................................................... 23 9.7. TRCE D’UNE SECTION IPE SOUS AUTOCAD ........................................................................................................... 24 9.7.1. Objectif ........................................................................................................................................................... 24 9.7.2. Programme .................................................................................................................................................... 24 9.7.3. Structure de ipe.txt ......................................................................................................................................... 25 9.8. EXTRAIRE LES SOMMETS D’UNE POLYLIGNE DANS UN FICHIER TEXTE .................................................................... 26 9.8.1. Objectif ........................................................................................................................................................... 26 9.8.2. Programme .................................................................................................................................................... 26 9.8.3. Résultat .......................................................................................................................................................... 26 9.9. PROFIL TELESIEGE .................................................................................................................................................. 27 9.9.1. Objectif ........................................................................................................................................................... 27 9.9.2. Informations relatives au programme ............................................................................................................ 27 9.9.3. Calage des origines ........................................................................................................................................ 28 9.9.4. Remplissage manuel du tableau ..................................................................................................................... 28 9.9.5. Remplissage automatique............................................................................................................................... 29 9.9.6. Exportation vers un fichier texte .................................................................................................................... 29 AutoCAD 2008 Programmation AutoLISP M2 GCI 3 1. GÉNÉRALITÉS 1.1. Qu’est ce qu’AutoLISP ? AutoLISP est un langage de programmation associé à AutoCAD. Il permet la réalisation de fonctions personnelles et macro-commandes. 1.2. Modes d’utilisation d’AutoLISP AutoLISP s’utilise : • en mode programme, • en mode direct, conversationnel, ligne par ligne depuis la ligne de commande AutoCAD pour réaliser des calculs numériques, ou stocker des valeurs dans des variables. Exemple : Commande: (setq A(+ 12)) 12 Permet de stocker 12 dans la variable de nom A. Pour exploiter la valeur de A : Commande: dc DECALER Paramètres courants: Effacer source=Non Calque=Source OFFSETGAPTYPE=0 Spécifiez la distance de décalage ou [Par/Effacer/Calque] <1.0000>: !A 12 Sélectionnez l'objet à décaler ou [Quitter/annUler] <Quitter>: Spécifiez un point sur le côté à décaler ou [Quitter/Multiple/annUler] <Quitter>: Sélectionnez l'objet à décaler ou [Quitter/annUler] <Quitter>: Commande : La réponse !A donne un décalage de 12. 1.3. Majuscules ou minuscules ? Avec le système d’exploitation Windows, pas de précaution particulière à prendre entre majuscules et minuscules. Les noms a et A sentent la même variable 1.4. Comment écrire un programme LISP ? Un programme AutoLISP est un fichier d’extension .lsp qui s’écrit avec un éditeur de texte (notepad par exemple). Exemples : Toto.lsp Ferraillage.lsp Acad.lsp 1.5. Comment lancer un programme AutoLISP ? Un programme AutoLISP se lance dans la ligne de commande : Commande: (load "mvsetup") Le programme s’exécute ligne par ligne. M2 GCI AutoCAD 2008 Programmation AutoLISP 4 1.6. Exemple de programme AutoLISP 1.6.1. Objectif Tracer un cercle de centre donné et d’aire donnée. AutoCAD ne possède pas de commande pour tracer un tel cercle. Le nom du fichier texte qui contient le programme : ca.lsp 1.6.2. Contenu du programme : ; Ce programme trace un cercle d'aire donnée et de centre donné ;--------------------entrée des données----------------------- (setq A (getreal "\nAire du cercle:")) (setq P (getpoint "\nCentre du cercle:")) ;---------------------Calcul du rayon------------------------- (setq R (sqrt (/ A pi))) ;---------------------Tracé du cercle------------------------- (command "cercle" P R) 1.6.3. Remarques et commentaires Une ligne qui commence par un point-virgule est une ligne de commentaires. Cette ligne n’est pas exécutée par l’interpréteur AutoLISP. Elle est utile pour le programmeur. Exemple : ;--------------------entrée des données----------------------- • La première ligne exécutable est : (setq A (getreal "\nAire du cercle:")) Une zone exécutable de programme AutoLISP contient autant de parenthèses ouvrantes que de parenthèses fermantes. Cette syntaxe est incontournable. Globalement, dans un programme AutoLISP on compte autant de parenthèses droites que de parenthèses gauches. setq est un mot réservé qui veut dire affectation. A est le nom de la variable qui contiendra l'aire du cercle. getreal est un mot réservé qui donne la main à l'utilisateur pour que ce dernier entre au clavier un nombre réel représentant l'aire du cercle. Aire du cercle: est le message qui sera lu par l'utilisateur dans la zone texte lorsque le système attendra la valeur de A, aire du cercle. Ce message est entre guillemets (syntaxe oblige) et complètement associé à la fonction "getreal". \n : le message commence par \n, le signe "\" est un code qui annonce que le caractère suivant est un caractère de contrôle, en l'occurrence le caractère de contrôle "n" affiche le message "Aire du cercle:" au début d'une nouvelle ligne de la zone texte. La zone du message: "Aire du cercle:" est destinée à l’utilisateur du programme, le message doit être le moins ambiguë possible. • La seconde ligne exécutable est : (setq P (getpoint "\nCentre du cercle:")) Mêmes remarques pour les parenthèses. "P" est un nom de variable, "p" était très bien aussi. "getpoint" donne la main pour une entrée de point au clavier. AutoCAD 2008 Programmation AutoLISP M2 GCI 5 "\nCentre du cercle:" est le message sans ambiguïté, destiné à l'utilisateur du programme et inscrit au début d'une nouvelle ligne de la zone texte. Une entrée de donnée se fait avec une fonction à laquelle est associée un message pour l'utilisateur et qui à la forme (get…."\nMessage pour l’utilisateur ……"). • La troisième ligne exécutable est : (setq R (sqrt (/ A pi))) Exemple A=12.312 Le système connaît pi. sqrt est le nom réservé pour la fonction racine carrée. Attention à la position de tous les espaces: (/A pi) n'est pas reconnu. (/ Api) non plus. L'interpréteur AutoLISP exécute le niveau de parenthèses le plus profond : ici (/ A pi). Résultat 7.636…. Notez la syntaxe du calcul numérique : (Opération opérant operateur) La valeur est transmise au niveau de parenthèses suivant (sqrt 7.636) résultat 2.763... qui est transmis au niveau supérieur (setq R 2.763). La valeur 2.763 est versée dans la variable R. Une zone exécutable AutoLISP s'image avec un oignon ou avec des poupées russes. • La quatrième ligne exécutable est : (Command "cercle" P R) Command est la fonction d'appel des commandes AutoCAD. La commande AutoCAD appelée est entre guillemets. Ici "cercle" suivent les valeurs des paramètres de la commande : P le centre d'abord, R le rayon ensuite. Ecrire un programme AutoLISP suppose une connaissance approfondie des commandes AutoCAD et uploads/Industriel/ programmation-autolisp.pdf

  • 36
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager