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)
renvoie6.0
- La fonction
/
divise le premier argument par le produit des suivants
Comparaisons
=
,/=
,<
,<=
,>
,>=
- Retournent
T
(vrai) ounil
(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))
renvoieA
- Exemple:
cdr
(reste de la liste)- Exemple:
(cdr '(a b c))
renvoie(B C)
- Note: comportement spécifique avec les paires pointées
- Exemple:
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)
renvoieT
(si c est défini comme nil)
- Exemple:
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"
- Exemple:
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))
renvoie2
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
etset
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
etvl-vlx-loaded-p
. - Conversions d’Unités: Fonction
cvunit
pour convertir entre unités. - Macros Visual Basic: Fonctions
vl-vbaload
etvl-vbarun
. - Tables de Symboles:
atoms-family
liste les symboles définis.- Exemple:
(atoms-family 1 '("CAR" "CDR" "XYZ"))
renvoie("CAR" "CDR" nil)
- Exemple:
- Validation des Noms:
snvalid
vérifie la validité des noms de symboles. - Registre Windows:
vl-registry-descendents
liste les sous-clés du registre.