Supposons que vous avez défini deux fonctions : f1 et f2. Vous voulez appeler l'une ou l'autre en vous basant sur le contenu d'une variable a qui contient 1 ou 2.
Il faut d'abord construire le nom de la fonction avec strcat :
(setq function-name (strcat "f" (itoa a)))
Puis il faut convertir la chaîne obtenue en symbole. On peut faire ça avec la fonction atoms-family :
(setq function-symbol (atoms-family 0 (list function-name))
Une fois qu'on a le symbole, on peut exécuter la fonction avec eval :
(eval function-symbol)
Besoin d'un développement spécifique pour AutoCAD ?
Développement de compléments à AutoCAD et aux autres logiciels Autodesk (AutoCAD Electrical, AutoCAD Mechanical, Inventor, Revit, Vault, Navisworks...). C#/VB/.NET, C++/ObjectARX, AutoLISP, VBA.
Migration de vos projets VBA en .NET, intégration RealDWG dans vos applications, développement sur plateforme AutoCAD OEM et Inventor OEM.
Assistance technique AutoCAD, Inventor, Revit, Vault.
Maxence DELANNOY - Tél. : 06.46.40.75.66 - maxence.delannoy@wiip.fr
|
Ajouter un commentaire