Bonsoir,
Je suis prêt pour mon premier article. Comme je l’ai mentionné lors de mon introduction, cet article survolera les différents outils de personnalisation qu’offre le logiciel AutoCAD. J’essaierai de présenter les avantages et les inconvénients de chacun.
Personnalisation de l’interface
Le premier niveau de personnalisation est le CUI (Custom User Interface). Il permet de personnaliser l’interface utilisateur (ajout de bouton de barres d’outils, d’onglet du ruban, barre de menu, etc.). On peut ajouter des commandes personnalisées (macro) et même avoir un certain niveau de programmation avec le langage DIESEL (Direct Interpretively Evaluated String Expression). Je n’ai pas utilisé beaucoup ce langage, car connaissant Autolisp, je préférais utiliser ce dernier. Par contre certaines fonctionnalités ne sont disponibles que par DIESEL, comme l’ajout d’un crochet ou de griser un élément dans les barres de menu.
N’étant pas un langage de programmation comme tel mais plutôt un outil incontournable, je n’ai pas à définir ces avantages ou ces inconvénients. Éventuellement, je reviendrai sur certain aspects de la personnalisation de l’interface. Si vous voulez en connaître plus, je vous suggère de consulter l’aide en ligne ou encore le livre Programmer AutoCAD avec DIESEL, AutoLISP, DCL et VBA de Jean-Piere Couwenbergh des Éditions Eyrolles. Je ne connais pas ce manuel mais j’ai quelques livres du même auteur qui sont satisfaisants.
Autolisp
Voici le premier langage avec lequel j’ai personnalisé AutoCAD. C’est un incontournable et même aujourd’hui il est encore très utile. Son premier avantage est sa relative simplicité et son efficacité à programmer des routines de dessin, ce qui le rend parfait pour les utilisateurs aguerris mais n’ayant aucune notion de programmation. Ses principaux défauts sont son absence d’outil pour le développement d’interface riche et de possibilité de communiquer avec l’extérieur d’AutoCAD (Windows, base de données, feuilles de calcul, etc.).
Pour:
- Éditeur fourni avec AutoCAD;
- Relativement simple à apprendre (plusieurs manuels et aide en ligne disponible);
- Parfait pour écrire des macros intelligentes.
Contre:
- Boîte de dialogue difficile à écrire (DCL), bien qu’il existe des outils sur Internet permettant de pallier en partie à cette lacune;
- Difficile et même impossible de communiquer avec l’extérieur d’AutoCAD (fichiers, bases de données, feuilles Excel, etc.). On peut faire appel aux extensions VLA-* qui permettent la création d’objets mais il y a certaines restrictions.
VBA
Visual Basic pour Applications existe depuis la version 14 bien que c’est surtout à partir des versions 2000 qu’il a vraiment pris son envol. Son principal avantage est sa facilité pour créer des interfaces conviviaux. Le fait aussi que ce soit un langage de programmation bien connu des programmeurs ceux-ci pouvaient plus facilement prendre la relève des «power users» pour personnaliser AutoCAD, bien que la connaissance approfondis du logiciel AutoCAD demeure un atout majeur. Par contre, VBA est un peu moins efficace pour la création de macros intelligentes et il est difficile d’intégrer des fonctions Autolisp dans les macros VBA et vice versa.
Malheureusement, VBA est appelé à disparaître. En effet, depuis la version 2010, une installation séparée est requise et éventuellement, cette extension ne sera plus disponible. La raison est que ce module est la propriété de Microsoft et ce dernier a décidé ne plus le faire évoluer et de ne pas le porter sur les plate-formes 64 bits. Bien que plusieurs macros fonctionnent très bien, certaines ont besoin d’être modifiés. De plus, des problèmes de performances importants peuvent être rencontrés (VBA est un module 32 bits).
Pour:
- Éditeur inclus avec AutoCAD (extension à installer séparément depuis la version 2010);
- Facilité de création d’interface riche;
- Facilité de communication avec le système de fichiers, des bases de données et de feuilles de calcul Excel;
- Langage familier à beaucoup de programmeurs.
Contre:
- Un peu moins efficace qu’Autolisp pour l’interaction avec les commandes AutoCAD;
- API (Application Programming Interface) incomplet à certains égards;
- Fonctionnement erratique sur les plate-formes 64 bits;
- Appelé à disparaître.
ObjectARX
Cette technologie est probablement la plus avancée. Elle est à l’origine de plusieurs produits verticaux (Mechanical Desktop, Architecural Desktop, Raster Design, etc.). Elle existe depuis les débuts. D’ailleurs à ce moment, des compilateurs restreints devaient être utilisés mais depuis les versions Windows, l’outil de développement est maintenant Visual Studio de Microsoft. C’est aussi la seule technologie disponible pour la version MAC (en utilisant XCODE au lieu de Visual Studio). Autolisp est supporté partiellement sur MAC.
Pour:
- Très puissant;
- Technologie éprouvée disponible sur Windows et MAC;
Contre:
- Complexe (langage C++) et peu de ressources d’aide disponible;
- Difficile de créer des codes pour les versions 32 bits et 64 bits;
- Requiert un outil de développement externe (Visual Studio).
.Net
.Net est la technologie poussée par Microsoft. On peut utiliser 2 langages soit Visual Basic (VB .Net) ou C#. Ce dernier ressemble au C++ mais aussi à VB .Net. Beaucoup de ressources sont disponibles pour ce langage mais pas pour le développement dans AutoCAD. C’est quand même la technologie que je vais privilégier avec le langage VB .Net. C’est la continuité naturelle pour les programmeurs en VBA.
Pour:
- Technologie à la fine pointe;
- Continuité avec VBA avec VB .Net;
- Même code pour 32 bits et 64 bits (c’est le «Framework» installé qui prend en charge les particularités;
Contre:
- Peu de ressources disponibles pour l’utilisation avec AutoCAD;
- N’est pas supporté sur MAC;
- Requiert un outil de développement externe (Visual Studio).
Conclusion
J’espère avoir bien décrit les différents outils de développement disponible. Un bon choix s’offre à nous. Ce blogue sera axé sur l’utilisation de VB .Net qui, je crois, est un excellent choix à ce moment mais je ne m’empêcherai pas de retourner à mes premiers amours Autolisp et de piger dans la technologie ARX. Par contre, VBA…c’est fini!
Dans le prochain article, je ferai le tour des prérequis pour développer des routines avec VB .Net et nous créerons notre première routine: «Allo le monde!!!».
D’ici là, bonne programmation!
André
Y a t il un endroit ou on peut s approprier d’une initiation a l utlisation de VBA sur Autocad?
Merci
Bonjour,
C’est un peu difficile de vous répondre, cela dépend de ce que vous cherchez. Si vous cherchez une formation en classe ça dépend de votre région mais je crois que c’est plutôt rare. Moi j’ai surtout donné des formations privées. Sinon, sur le WEB vous pouvez trouver quelques bons tutoriaux. Si la demande est intéressante je pourrais peut-être offrir des WebMinar.
Bonne chance dans vos recherches.
Je suis Israel Marcelin, je veux m’initier apeine a ce logiciel. Je viens d’avoir une Idee grace a vous et j’aimerais atteindre le niveau superieur et devenir un professionnel. ..Mont # est (509) 38554606/32840801
Cordialement Marcelin