Le guide de référence Visual LISP AutoCAD® 2000i en anglais

Le guide de référence Visual LISP AutoCAD® 2000i en anglais d’Autodesk® détaille une vaste gamme de fonctions AutoLISP disponibles en version 2000i. Ils couvrent des opérations fondamentales comme les mathématiques, les manipulations de chaînes, la gestion des listes, et l’interaction avec l’utilisateur via des invites et des boîtes de dialogue. De plus, ils expliquent comment interagir avec les entités AutoCAD®, les dictionnaires, les ensembles de sélection, et comment gérer les fichiers. Une section importante est consacrée à l’intégration d’ActiveX et aux réacteurs, permettant une automatisation et une personnalisation avancées d’AutoCAD®. Enfin, des commandes externes liées au rendu 3D et à l’alignement d’objets sont également documentées.

AlispRef.pdf (4,2 Mo)

Revue des fonctions AutoLISP et VLISP

Ce document présente une synthèse des principales fonctions AutoLISP et VLISP, leur syntaxe, arguments, valeurs de retour et exemples d’utilisation extraits du fichier « AlispRef.pdf ».

1. Fonctions de Base et Opérateurs Mathématiques

Opérateurs arithmétiques

  • +, -, *, /
  • Exemple: (* 2 3.0) renvoie 6.0
  • La fonction / divise le premier argument par le produit des suivants

Comparaisons

  • =, /=, <, <=, >, >=
  • Retournent T (vrai) ou nil (faux)

Opérations bit à bit

  • ~, logand, logior, lsh

Incréments/décréments

  • 1+, 1–

2. Manipulation de Listes

Création de listes

  • list, cons

Accès aux éléments

  • car (premier élément)
    • Exemple: (car '(a b c)) renvoie A
  • cdr (reste de la liste)
    • Exemple: (cdr '(a b c)) renvoie (B C)
    • Note: comportement spécifique avec les paires pointées
  • cadr (deuxième élément)
  • caddr (troisième élément)
  • nth (élément à un index spécifique)

Modification de listes

  • append, reverse, subst

Interrogation de listes

  • length, member, assoc, listp, null
  • null vérifie si un élément est lié à nil
    • Exemple: (null c) renvoie T (si c est défini comme nil)

3. Interaction Utilisateur et Interface

Affichage de messages

  • alert, prompt, prin1, princ, print, terpri

Récupération d’entrées utilisateur

  • getangle, getcorner, getdist, getfiled
  • getint, getkword, getorient, getpoint
  • getreal, getstring

Gestion des boîtes de dialogue

  • Initialisation: initdia, new_dialog, load_dialog, unload_dialog, term_dialog
  • Manipulation: action_tile, get_tile, set_tile, client_data_tile, mode_tile
  • Dimensions: dimx_tile, dimy_tile
  • Finalisation: done_dialog

4. Gestion des Entités et de la Base de Données AutoCAD®

Sélection d’entités

  • entsel, nentsel, ssget, ssadd, ssdel
  • ssmemb, ssname, sslength, sssetfirst, ssgetfirst, ssnamex, nentselp

Création et modification d’entités

  • entmake, entmakex, entmod, entupd, entdel

Accès aux données

  • entget (données des entités)
  • entlast (dernière entité créée)
  • tblobjname (recherche d’entités par nom d’objet)

5. Fonctions Diverses Utiles

Conversion de types de données

  • itoa (entier vers chaîne)
    • Exemple: (itoa 33) renvoie "33"
  • atoi (chaîne vers entier)
  • atof (chaîne vers réel)
  • rtos (réel vers chaîne)
  • distof (chaîne de distance vers réel)
  • angtof (chaîne d’angle vers réel)
  • angtos (angle vers chaîne)

Gestion de fichiers

  • open, close, read-char, read-line
  • write-char, write-line, findfile

Exécution de commandes AutoCAD®

  • command

Contrôle de flux

  • if, cond, while, repeat, foreach
  • lambda, progn
  • Exemple: (if (= 1 3) "YES!!" "no.") renvoie "no."

Manipulation de chaînes

  • strcase, strcat, strlen, substr

Opérations mathématiques

  • abs, angle, atan, cos, exp, expt, log, sin, sqrt

Gestion des configurations

  • getvar, setvar, getcfg, setcfg, getenv, setenv

Gestion des menus

  • menucmd, menugroup

Tables de symboles

  • tblnext, tblsearch

Utilitaires graphiques

  • graphscr, textscr, grclear, grdraw, grread
  • grtext, grvecs, redraw
  • slide_image, fill_image, start_image, end_image, vector_image

Systèmes de coordonnées

  • trans, polar
  • Exemple: (polar '(1 1) 0.785398 1.414214) renvoie (2.0 2.0)

Gestion de la mémoire

  • alloc, gc, expand, xdroom, xdsize

Aide

  • help, acad_helpdlg, setfunhelp

Gestion des applications

  • arx, arxload, arxunload, autoarxload, autoload
  • vlisp-compile, vl-load-all, vl-list-loaded-vlx
  • vl-vlx-loaded-p, vl-unload-vlx, startapp

Éditeur Visual LISP

  • LISPED

Gestion des erreurs

  • *error*, vl-exit-with-error
  • vl-catch-all-apply, vl-catch-all-error-message, vl-catch-all-error-p

Presse-papiers

  • acad_strlsort

Dictionnaires nommés

  • namedobjdict, dictadd, dictnext
  • dictremove, dictrename, dictsearch

Gestion des présentations

  • layoutlist

Gestion des vues

  • setview, vports

Validation des noms

  • snvalid

Tablette

  • tablet

Traçage

  • trace, untrace

Évaluation d’expressions

  • eval, apply, mapcar

Définition de fonctions

  • defun, defun-q, vl-acad-defun, vl-acad-undefun

6. Fonctions VLISP (Visual LISP)

Interaction avec les objets ActiveX et COM

  • vlax-create-object, vlax-get-acad-object, vlax-get-object
  • vlax-release-object, vlax-invoke-method
  • vlax-get-property, vlax-put-property, vlax-dump-object
  • vlax-ename->vla-object, vlax-vla-object->ename
  • vlax-map-collection, vlax-method-applicable-p
  • vlax-property-available-p
  • vlax-safearray-make, vlax-safearray-get-element

Manipulation avancée de listes

  • vl-list*, vl-list->string, vl-string->list
  • vl-member-if, vl-remove, vl-sort
  • Exemple: (vl-list-length '(1 2)) renvoie 2

Gestion des fichiers et répertoires

  • vl-directory-files, vl-file-copy, vl-file-delete, vl-file-rename

Accès au registre Windows

  • vl-registry-read, vl-registry-write
  • vl-registry-delete, vl-registry-descendents

Gestion des ressources

  • vl-get-resource

Travail avec les variantes

  • vlax-make-variant, vlax-variant-change-type
  • vlax-variant-type, vlax-variant-value

Création et gestion de réacteurs (événements)

  • vlr-acdb-reactor, vlr-command-reactor, vlr-object-reactor

7. Commandes Définies Externelement

L’Annexe A liste des commandes définies en dehors du noyau d’AutoLISP:

  • 3dsin, 3dsout, align, cal
  • Commandes liées au rendu: render, light, rmat, scene

8. Concepts et Faits Importants

  • Types de Données: AutoLISP gère différents types (entiers, réels, chaînes, listes, atomes). La fonction type détermine le type d’une expression.
  • Évaluation: LISP est un langage d’évaluation. La fonction eval permet d’évaluer une expression.
  • Portée des Variables: Les fonctions setq et set assignent des valeurs à des symboles. Variables locales ou globales. boundp vérifie les liaisons.
  • Paires Pointées: Comportement spécifique de cdr avec les paires pointées.
  • Tolérance dans equal: Peut prendre un argument de tolérance pour comparer des réels.
  • Lambda Expressions: Définition de fonctions anonymes avec lambda.
  • Espaces de Noms VLX: Vérification avec vl-list-loaded-vlx et vl-vlx-loaded-p.
  • Conversions d’Unités: Fonction cvunit pour convertir entre unités.
  • Macros Visual Basic: Fonctions vl-vbaload et vl-vbarun.
  • Tables de Symboles: atoms-family liste les symboles définis.
    • Exemple: (atoms-family 1 '("CAR" "CDR" "XYZ")) renvoie ("CAR" "CDR" nil)
  • Validation des Noms: snvalid vérifie la validité des noms de symboles.
  • Registre Windows: vl-registry-descendents liste les sous-clés du registre.