VBA pour AutoCad partie 1

25

description

programmation

Transcript of VBA pour AutoCad partie 1

  • Roger ROSEC

    Copyrigth Fasoft 2001-2003

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    5

    VBA et son environnement Dans ce chapitre 1.1 - Programmer AutoCAD

    1.1.1 Le VBA

    1.1.2 - Comparaison VBA et Visual Basic

    1.1.3 - Comparaison VBA et AutoLISP

    1.2 Installation de VBA

    1.2.1 Installer une barre d'icnes VBA

    1.3 - Ouvrir l'environnement VBA

    1.3.1 - Le gestionnaire VBA

    1.3.2 - L'diteur Visual Basic

    1.3.2.1 - La fentre de Projet

    1.3.2.2 La fentre Proprits

    1.3.2.3 Les Modules de code

    1.3.2.4 Les Feuilles (ou UserForms) 1.3.2.5 La bote outils des Contrles

    1.4 Obtenir de laide

    1.4.1 L'aide VBA gnrale de Microsoft

    1.4.2 L'aide spcifique VBA pour AutoCAD

  • VBA POUR AUTOCAD 6

    1.1 - Programmer AutoCAD AutoCAD possde deux langages principaux de programmation Une fois que vous avez dcid de programmer AutoCAD, la premire tape consiste slectionner le langage de programmation utiliser.

    1.1.1 - Le VBA Visual Basic pour Applications (VBA) est un langage de programmation et un environnement inclus avec beaucoup d'applications Microsoft telles que Word, Excel et Access, mais aussi dans d'autres programmes indpendants de Microsoft. C'est ainsi que depuis la version 14, il est galement disponible avec AutoCAD. VBA est idal lorsque vous devez travailler avec des applications diffrentes ensemble, pour transmettre des donnes de l'une l'autre. ActiveX permet d'accder aux objets qui sont disponibles dans d'autres applications. Cependant, vous pouvez aussi utiliser VBA pour programmer AutoCAD tout seul.

    VBA fournit une faon simple de personnaliser AutoCAD, automatiser des tches et programmer des applications.

    1.1.2 - VBA et VB VBA est comparable, en grande partie au Visual Basic dont il est une manation. Au premier abord, VBA ressemble beaucoup Visual Basic, commencer par l'environnement de dveloppement intgr (EDI). Il y a nanmoins des diffrences notables

    La principale consiste dans le fait que Visual Basic n'est reli aucune application spcifique. Il est conu pour crer des applications autonomes. Le code de Visual Basic est compil dans un fichier excutable qui fonctionne seul, sans aucun lien avec une autre application.

    VBA, lui, doit tre connect son application hte et un document dans lequel le code a t cr.

    Par exemple, un projet VBA cr pour fonctionner avec AutoCAD, son application hte, ne pourra fonctionner directement dans Word ou Excel mais des connexions entre applications qui le supportent pourront y tre facilement tablies.

    Dans ce livre vous trouverez aussi des exemples d'applications cres avec Visual Basic qui interfrent sur AutoCAD;

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    7

    1.1.3 - VBA et AutoLISP VBA possde les avantages suivants :

    * Il est plus rapide qu'AutoLISP, mme quand AutoLISP est compil.

    * VBA est commun beaucoup d'autres applications. Si vous avez utilis VBA auparavant, vous pourrez facilement transfrer vos connaissances pour utiliser VBA dans AutoCAD. Il aussi plus facile de trouver d'autres programmeurs qui connaissent VBA plutt qu'AutoLISP.

    * VBA est gnralement plus facile apprendre qu'AutoLISP cause de sa syntaxe nettement plus simple et de son langage objet plus facilement comprhensible.

    * VBA est plus graphique. L'ergonomie des applications est beaucoup plus aise programmer.

    De l'autre ct, AutoLISP a l'avantage d'une compatibilit descendante avec les versions prcdentes d'AutoCAD.

    Il n'est pas possible de traduire un programme AutoLISP en VBA et inversement, les concepts tant beaucoup trop diffrents.

    Nanmoins, chaque fois que cela sera possible, nous indiquerons les correspondances entre ces deux modes de programmation.

    Note : Les commandes dAutoCAD correspondent la version franaise. Nanmoins nous essaierons dindiquer la correspondance anglaise la premire fois quil en ait fait mention, entre parenthses en style courrier.

  • VBA POUR AUTOCAD 8

    1.2 Installation de VBA

    Vous devez possder au moins la version 14 dAutoCAD. Mais pour VBA, la mise jour 14.01 est indispensable. Si vous avez la version 14, votre revendeur vous fournira cette mise jour gratuitement.

    Depuis AutoCAD 2000, l'installation est maintenant automatique, le menu droulant est en franais.

    Vrifiez quand mme si le VBA a t install sur votre machine. Pour cela, droulez le menu Outils et voyez si vous avez une ligne d'option indiquant Macro VBA (ou Macro pour les versions anglaises).

    Figure 1-1 Le menu droulant de VBA qui apparat quand il a t install.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    9

    Sinon, vous devrez l'installer.

    Pour cela, reprenez votre cdrom AutoCAD. Lancez le programme d'installation en double-cliquant sur Setup.exe. Vous verrez apparatre l'cran de la figure 1.2 qui vous demandera de choisir une option.

    Figure 1-2 L'cran des options d'installation d'AutoCAD.

    Choisissez loption Ajouter qui vous permettra d'installer de nouveaux composants votre configuration actuelle.

    Sur l'cran suivant slectionnez loption Support VBA.

    Vous devez disposer de 8 Mo d'espace libre (dans la version R2000). Comme indiqu, si vous travaillez en rseau ou sous Windows XP, vous devez possder tous les droits pour crire dans le rpertoire d'installation ainsi que dans la base de registres de Windows.

  • VBA POUR AUTOCAD 10

    Figure 1-3 Choix des nouveaux composants installer.

    1.2.1 Une barre d'icnes VBA Si vous dsirez une barre d'icnes VBA toute faite, vous en trouverez une prte l'emploi dans le rpertoire Fichiers/Chap01/Menu.

    Pour simplifier, placez le fichier vbaa.mns et les 5 fichiers d'icnes .bmp dans le rpertoire Support d'AutoCAD par un Copier/Coller. (Plus loin, nous apprendrons regrouper tous ces fichiers .bmp dans un seul fichier .dll.)

    La premire fois, chargez le menu VBAA par le menu Outils Personnalisation des menus, (ou Personnaliser puis Menus selon la version dAutoCAD).

    Cliquez sur Parcourir, choisissez VBAA.mns dans le rpertoire Support puis cliquez sur le bouton Charger quand vous tes de retour dans la fentre Personnalisation des menus. La barre de menus VBA doit apparatre. Fermez la fentre Personnalisation des menus.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    11

    Figure 1-4 La barre d'icnes VBAA. Les fois suivantes la barre sera charge automatiquement.

    Nota : Pour AutoCAD 2004 et +, il sagit du rpertoire Support qui se trouve dans votre espace rserv, c'est--dire : c:\Documents and Settings\Toto\Application Data\Autodesk\AutoCAD 2004\R16.0\Enu\Support\. Remplacez Toto par votre nom dutilisateur.

    1.3 - Ouvrir l'environnement VBA AutoCAD offre un environnement facilitant la programmation et l'utilisation du VBA. Pour commencer travailler avec VBA, vous devez ouvrir l'environnement VBA. VBA possde sa propre interface.

    1.3.1 - Le gestionnaire VBA Les programmes VBA sont sauvegards dans les projets. Un projet contient tous les lments dont on a besoin pour excuter le programme. Vous pouvez utiliser le Gestionnaire VBA pour visualiser vos projets VBA. Le Gestionnaire VBA vous permet aussi de charger, dcharger, enregistrer, crer, incorporer et extraire des projets VBA. Pour ouvrir le Gestionnaire VBA, utilisez une des manires suivantes :

    Choisissez Outils Macro VBA Gestionnaire VBA

    Cliquez sur l'icne de la barre d'outils VBA.

    Tapez gestvba (ou vbaman en version US) sur la ligne de commande.

  • VBA POUR AUTOCAD 12

    Figure 1-5 Le gestionnaire VBA.

    Le Gestionnaire VBA nous sera trs utile pour grer les programmes VBA voire mme indispensable pour les renommer ou les dcharger de la mmoire.

    1.3.2 - L'diteur Visual Basic Pour ouvrir VBA dans AutoCAD, vous avez le choix entre :

    Taper vbaide _ sur la ligne de commande d'AutoCAD (toutes versions). Choisir Outils Macro VBA Editeur Visual Basic. Cliquer sur l'icne de la barre d'outils VBA

    Cliquer sur le bouton Editeur Visual Basic dans la fentre du Gestionnaire VBA

    AutoCAD affiche alors la fentre d'environnement VBA appel IDE (ou EDI), pour Environnement de Dveloppement Intgr.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    13

    Figure 1-6 L'Environnement de Dveloppement Intgr de VBA, version 2000 fr

    Figure 1-6b L'Environnement de VBA, version 2004 US sous XP

  • VBA POUR AUTOCAD 14

    Une des caractristiques de Visual Basic est de possder de multiples fentres. VBA n'y droge pas. Pour le moment, deux fentres apparaissent sur la gauche de l'cran. Il se peut que les fentres apparaissent sur la droite de l'cran. VBA permet l'utilisateur de choisir l'endroit appropri pour les fentres qui peuvent se dplacer loisir.

    Vous avez galement des menus droulants et la barre d'outils Standard qui vous seront utiles pour crire, dboguer et lancer vos programmes. D'autres barres d'outils sont disponibles. Nous les tudierons au fur et mesure de nos besoins.

    Selon votre version dAutoCAD et votre systme dexploitation, votre diteur saffichera soit en franais, soit en anglais.

    1.3.2.1 - La fentre Explorateur de Projet (project explorer) La fentre Explorateur de projet montre tous les projets qui sont ouverts. Chaque projet

    peut contenir plusieurs classeurs et cette fentre y affiche tous les composants. Au lancement de l'diteur, vous n'avez qu'un seul projet que VBA nomme d'office Global1 dans lequel vous trouvez dj un classeur nomm AutoCAD Objets.

    Figure 1-7 Exemples (versions 2000 et 2004) de fentre de l'Explorateur de projet qui comporte plusieurs classeurs, ici tous ouverts. Vous utiliserez cette fentre pour vous dplacer facilement d'un lment l'autre.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    15

    1.3.2.2 La fentre Proprits (properties) La fentre Proprits permet de dfinir et d'diter les proprits des modules, feuilles et

    contrles insrs dans votre projet. Cette fentre va lister toutes les proprits de l'objet ou de la feuille slectionne ainsi que leurs valeurs correspondantes.

    Figure 1-8 Exemple de fentre Proprits, avec ici les proprits tries par catgorie. Grce aux deux formes d'affichage des proprits (Alphabtique et Par catgorie) il est facile de dfinir les caractristiques des objets insrs dans la feuille. Vous pouvez slectionner directement les objets dans la liste droulante affiche dans la partie haute de la bote.

  • VBA POUR AUTOCAD 16

    Figure 1-9 Les diffrents lments de la fentre Proprits ; liste trie par ordre alphabtique.

    1.3.2.3 Les Modules de code

    Certains lments du projet VBA sont contenus dans des modules. Un module est un morceau indpendant de code de programmation. Le projet VBA peut contenir un ou plusieurs modules. Il peut galement n'en contenir aucun.

    Pour ouvrir un module, choisissez Insertion Module

    Figure 1-10 Une premire manire pour ouvrir un nouveau module. ou cliquez sur la flche droulante droite du second bouton sur la barre d'outils Standard de VBA, puis choisissez Module.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    17

    Figure 1-11 Une autre manire pour ouvrir un nouveau module. VBA ouvre alors une fentre de l'diteur de texte de code ; vous pouvez ainsi commencer entrer le code. Vous pouvez constater que dans la fentre du Projet, VBA ajoute un nouveau module la liste des modules. Par dfaut, le premier module est appel Module1. La figure 1-12 affiche l'interface VBA qui apparat alors, y compris l'diteur de texte servant crire ou modifier le code.

    Figure 1-12 Un premier module est maintenant insr dans le projet.

  • VBA POUR AUTOCAD 18

    Astuce Vous pouvez redimensionner l'diteur de texte du module comme toute autre fentre. Il est plus facile de travailler avec une grande fentre lorsque vous crivez du code dans l'diteur de texte. Cliquez sur le bouton de maximalisation de la fentre (en haut, droite, bouton central) pour agrandir l'diteur de texte sa dimension maximale.

    1.3.2.4 Les Feuilles (ou UserForms)

    Sous VBA on appelle Feuille les fentres ou botes de dialogue dans le projet. Pour VBA, le mot cl qui dsigne une feuille est UserForm. Les feuilles servent recevoir les contrles qui y sont dessins et affichs.

    Pour ouvrir une nouvelle feuille, choisissez Insertion UserForm

    Figure 1-13 Insertion d'une feuille en passant par le menu droulant Insertion. ou cliquez sur la flche droulante droite du second bouton sur la barre d'outils Standard de VBA, puis choisissez UserForm. Deux nouvelles fentres surgissent alors et la fentre Proprits se remplit.

    Quand vous insrez une nouvelle feuille :

    Chaque fentre de feuille comporte des boutons Agrandissement, Rduction et Fermeture.

    La feuille affiche une grille destine faciliter l'insertion des contrles. Vous pouvez dsactiver la grille de feuille ou dfinir l'espacement de ses lignes dans l'onglet Gnral de la bote de dialogue Options du menu Outils, (Show Grid dans longlet General de la bote Options du menu Tools).

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    19

    Figure 1-14 A linsertion d'une feuille, une nouvelle feuille apparat ainsi que la bote outils Contrles.

    1.3.2.5 La bote outils des Contrles

    On appelle contrles (controls) les lments que l'on peut slectionner dans la bote outils et disposer sur une feuille. Les contrles peuvent tre dimensionns et rangs comme on veut. Vous pouvez aligner automatiquement les contrles sur la grille en slectionnant l'option correspondante dans l'onglet Gnral de la bote de dialogue Options.

    Il y a 15 contrles standard qui sont fournis par Autodesk. On peut en ajouter autant que vous en voulez. Nous verrons plus loin comment en crer.

  • VBA POUR AUTOCAD 20

    Figure 1-15 La bote outils Contrles peut prendre diffrentes formes. Il suffit de tirer sur le cadre extrieur.

    A ce stade, vous pouvez constater que la fentre de l'Explorateur de projet s'est enrichie :

    Figure 1-16 La fentre Projet a volu. Deux nouveaux classeurs ont ts ajouts votre projet :

    Un classeur Feuilles qui contient la feuille UserForm1. Un classeur Modules qui contient le module de code Module1

    Si vous avez ajout d'autres feuilles ou modules, vous devez les y retrouver.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    21

    AutoCAD tourne toujours en arrire-plan. Vous pouvez y revenir en cliquant n'importe quel moment sur son bouton sur la barre des Tches de Windows ou en cliquant sur Affichage AutoCAD sur la barre d'outils Standard de VBA.

    1.4 Obtenir de laide VBA offre plusieurs formes daide dont certaines en anglais mme dans une version franaise dAutoCAD. On peut distinguer deux catgories :

    L'aide VBA gnrale de Microsoft. Selon la version, cette partie est compltement en franais ( l'exception des exemples qui n'ont pas t entirement franciss).

    L'aide VBA et ActiveX spcifique pour AutoCAD. La plus grande partie est malheureusement en anglais.

    1.4.1 L'aide VBA gnrale de Microsoft Laide de Microsoft Visual Basic pour Applications fournit des informations sur l'environnement VBA en gnral, applicable tous les programmes sachant utiliser VBA : Word, Excel ... Cliquez sur le bouton Aide de Microsoft Visual Basic sur la barre d'outils VBA, ou sur la barre de menu choisissez Aide Microsoft Visual Basic.

    Figure 1-17 Pour obtenir l'aide VBA gnrale de Microsoft Vous obtiendrez une documentation concernant les bases, les fonctions et instructions du Visual Basic qui sont appliques dans le VBA pour AutoCAD. Cette partie vous sera utile au dbut, si vous ne connaissez pas Visual Basic.

    Vous trouverez galement dans cette partie laide pour les autres applications VBA que vous pouvez avoir. Vous en aurez besoin quand vous devrez crire du code VBA qui intgre plus d'une application.

  • VBA POUR AUTOCAD 22

    Figure 1-18 L'aide Visual Basic fournie ici est adapte VBA. 1.4.2 L'aide spcifique VBA pour AutoCAD LExplorateur d'objets vous fournit une liste d'objets ainsi que leurs proprits et mthodes. Ouvrez cet explorateur en cliquant Explorateur d'objets sur la barre d'outils ou en choisissant Affichage Explorateur d'objets, (View Project Explorer). Les objets sont organiss en bibliothques. Tous les objets avec lesquels vous travaillez dans AutoCAD sont lists dans la bibliothque AutoCAD.

    Pour voir la liste d'objets AutoCAD, cliquez le liste droulante et choisissez AutoCAD. Vous pouvez voir le rsultat dans la figure 1-19.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    23

    Figure 1-19 L'Explorateur d'objets fournit la liste des objets ainsi que leurs proprits et mthodes. Pour obtenir de laide, en anglais, sur un objet, slectionnez-le dans lExplorateur d'objets et cliquez sur le bouton Aide de l'explorateur. Procdez de la mme manire pour une mthode ou une proprit, comme montr dans la figure 1-20.

  • VBA POUR AUTOCAD 24

    Figure 1-20 La page d'Aide pour la proprit Freeze. Vous pouvez aussi ouvrir cette fentre AutoCAD ActiveX and VBA Reference en cliquant avec le bouton de droite dans les volets Classes ou Membres et en choisissant Aide. VBA ouvre alors la page d'aide pour l'objet, la mthode ou la proprit slectionne. De l, un index vous permettra dobtenir un complment d'informations.

    Quand vous ouvrez une page d'aide, la plupart du temps vous pouvez cliquer sur Example pour afficher un exemple. Ces exemples sont une bonne manire d'apprendre le VBA. Vous pouvez copier un petit morceau de code VBA, le coller dans votre propre routine et ensuite le modifier souhaits.

    Pour une aide plus gnrale, AutoCAD offre deux mthodes :

    * ActiveX and VBA Reference, une liste alphabtique, en anglais, d'objets, mthodes, proprits et vnements.

  • CHAPITRE 1 - VBA ET SON ENVIRONNEMENT

    25

    * Le Guide de programmation ActiveX et VBA qui explique, en franais selon les versions, les concepts et les techniques dActiveX Automation.

    Pour accder ces guides de rfrence, cliquez avec le bouton de droite dans l'un ou l'autre volet et choisissez Aide. VBA ouvre laide sur l'objet, la proprit ou la mthode slectionne. Ensuite choisissez Sommaire de l'aide pour accder aux nombreux sujets d'aide.

    Une fois que vous avez commenc programmer, vous pouvez obtenir de laide sur toute expression, que ce soit en Visual Basic ou en VBA spcifique AutoCAD, en y plaant le curseur et en appuyant sur F1. Par exemple, si vous tapez AddLine et appuyez sur F1, vous obtiendrez laide AutoCAD sur la manire de crer une ligne en VBA et si vous tapez Dim puis F1, c'est l'aide Microsoft concernant cette instruction qui sera affiche.

    1.5 Rsum Dans ce chapitre, nous avons compar VBA Visual Basic et AutoLISP. Nous avons vu comment installer VBA, si ce n'tait dj fait.

    Plus loin, nous avons eu un premier aperu de l'Environnement de Dveloppement Intgr de VBA et nous avons insr un premier module et une nouvelle feuille. Nous avons vu comment obtenir de l'aide gnrale concernant le Visual Basic ou de l'aide plus spcifique VBA pour AutoCAD.

    Dans le chapitre suivant, nous passerons l'action en crivant notre premier programme.

    .