Programmation VBA Autocad PDF
Programmation VBA Autocad PDF
Programmation VBA Autocad PDF
VBA est une collection de modules de code, de modules de classe et de feuilles qui, ensemble, excutent une fonction donne. Des projets
peuvent tre enregistrs dans un dessin AutoCAD ou en tant que fichier distinct.
Les projets intgrs sont enregistrs dans un dessin AutoCAD. Ils sont chargs automatiquement lorsque le dessin dans lequel ils se trouvent est ouvert dans
AutoCAD, ce qui facilite la distribution des projets. Ces projets sont limits et ne permettent pas d'ouvrir ni de fermer des dessins AutoCAD, car ils ne
fonctionnent que dans le document dans lequel ils rsident. Les utilisateurs de projets intgrs n'ont ainsi pas rechercher et charger des fichiers de projet
avant d'excuter un programme. Un rapport horaire activ lorsque le dessin est ouvert constitue un exemple de projet intgr un dessin. Cette macro permet
l'utilisateur d'ouvrir une session et d'enregistrer la dure passe la ralisation du dessin. Il n'a ainsi pas besoin de charger le projet avant d'ouvrir le dessin,
car cette opration est effectue automatiquement.
Les projets globaux sont enregistrs dans des fichiers distincts et sont d'utilisation plus souple, car ils permettent d'ouvrir, de fermer et d'utiliser des dessins
AutoCAD ; ils ne sont toutefois pas chargs automatiquement lorsqu'un dessin est ouvert. L'utilisateur doit savoir quel fichier de projet contient la macro requise,
puis charger ce fichier avant d'excuter la macro. Les projets globaux n'en restent pas moins plus faciles partager avec d'autres utilisateurs et constituent de
parfaites bibliothques de macros communes. Une macro qui recueille la nomenclature de nombreux dessins est un exemple de projet que vous pouvez
enregistrer dans un fichier de projet. Cette macro peut tre excute par un administrateur la fin du cycle de travail et recueillir des informations de nombreux
dessins.
A un moment donn, l'utilisateur peut avoir la fois des projets intgrs et globaux dans sa session AutoCAD.
Les projets AutoCAD VBA ne sont pas "binairement" compatibles avec des projets Visual Basic 6 autonomes. Toutefois, vous pouvez changer des feuilles,
des modules et des classes entre des projets l'aide des commandes IMPORTER et EXPORTER dans l'environnement VBA IDE. Pour de plus amples
informations sur l'environnement VBA IDE, reportez-vous la section Modification de projets avec VBA IDE.
L'utilisation de Visual Studio .NET pour conduire et personnaliser AutoCAD via l'automatisation COM est prise en charge.
Dmarrage avec VBA
Dfinition des projets VBA intgrs et globaux
Envoyez-nous vos commentaires sur cette page.
Vous pouvez afficher tous les projets VBA chargs dans la session AutoCAD active en utilisant le Gestionnaire VBA. Il s'agit d'un outil AutoCAD qui vous
permet de charger, dcharger, enregistrer, crer, incorporer et extraire des projets VBA.
Pour ouvrir le Gestionnaire VBA
Vous pouvez ouvrir le Gestionnaire VBA partir du menu Outils ou, dans AutoCAD, en appelant la commande GESTVBA
Rubriques de cette section :
Chargement d'un projet existant
Dchargement d'un projet
Incorporation d'un projet dans un dessin
Extraction d'un projet d'un dessin
Cration d'un projet
Enregistrement de projet
Dmarrage avec VBA
Organisation de projets avec le Gestionnaire VBA
Envoyez-nous vos commentaires sur cette page.
Lorsque vous chargez un projet dans AutoCAD, tous les sous-programmes publics, galement appels macros, deviennent disponibles. Les projets intgrs
un dessin sont chargs lors de l'ouverture du dessin. Les projets enregistrs dans des fichiers DVB doivent tre chargs explicitement.
Ds que vous chargez un projet, tous les autres projets rfrencs par le premier sont chargs automatiquement. AutoCAD charge automatiquement au
dmarrage tout fichier de projet portant le nom acad.dvb.
Pour charger un fichier de projet VBA existant
1. Dans le Gestionnaire VBA, cliquez sur Charger pour afficher la bote de dialogue Ouvrir un projet VBA.
Dmarrage avec VBA
Chargement d'un projet existant
Page 6 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
2. Dans cette bote de dialogue, slectionnez le fichier de projet ouvrir. Vous ne pouvez ouvrir que des fichiers DVB corrects. Si vous essayez d'ouvrir un
autre type de fichier, un message d'erreur s'affiche.
3. Cliquez sur Ouvrir.
Vous pouvez charger un fichier projet en utilisant l'une des mthodes suivantes :
Entrez la commande CHARGVBA pour ouvrir la bote de dialogue Ouvrir un projet VBA.
Faites glisser un fichier DVB depuis l'Explorateur Windows et dposez-le sur un dessin ouvert dans la fentre AutoCAD.
Rubriques de cette section :
Signalisation de virus
Envoyez-nous vos commentaires sur cette page.
Chaque fois que vous chargez un projet, vous pouvez activer ou dsactiver le code de protection antivirus contenu dans ce projet. Si vous l'activez, l'excution
des virus dans le code peut commencer. Si vous le dsactivez, le projet est toujours charg, mais le code qu'il contient n'est pas excut. La signalisation de
virus n'est pas active lorsque vous faites glisser un fichier DVB depuis l'Explorateur Windows et le dposez dans un dessin ouvert de la fentre AutoCAD.
Pour plus d'informations sur la signalisation de virus, reportez-vous la section Dfinition des options de projet.
Dmarrage avec VBA
Signalisation de virus
Envoyez-nous vos commentaires sur cette page.
Le dchargement d'un projet libre de la mmoire et conserve la liste des projets chargs une taille raisonnable, ce qui facilite nettement la gestion.
Vous ne pouvez pas dcharger des projets intgrs ou rfrencs par d'autres projets chargs.
Pour dcharger un projet VBA
Vous pouvez dcharger le projet VBA de votre choix en le slectionnant et en cliquant sur Dcharger, ou l'aide de la commande DECHARGVBA, qui vous
demande de spcifier le projet dcharger.
Dmarrage avec VBA
Dchargement d'un projet
Envoyez-nous vos commentaires sur cette page.
Lorsque vous incorporez un projet, vous placez une copie de ce projet dans la base de donnes du dessin. Ce projet est ensuite charg et dcharg lorsque le
dessin qui le contient est ouvert ou ferm.
Un dessin ne peut contenir qu'un seul projet intgr la fois. Si un dessin contient dj un projet intgr, vous devez d'abord l'extraire avant d'incorporer un
autre projet au dessin.
Pour incorporer un projet un dessin AutoCAD
1. Ouvrez le Gestionnaire VBA et slectionnez le projet incorporer.
2. Cliquez sur Incorporer.
Dmarrage avec VBA
Incorporation d'un projet dans un dessin
Envoyez-nous vos commentaires sur cette page.
Lorsque vous extrayez un projet, vous le supprimez de la base de donnes du dessin et vous pouvez l'enregistrer dans un fichier de projet externe. Si vous
n'enregistrez pas le fichier dans un fichier de projet externe, les donnes de ce projet sont supprimes.
Dmarrage avec VBA
Extraction d'un projet d'un dessin
Page 7 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour extraire un projet d'un dessin AutoCAD
1. Ouvrez le Gestionnaire VBA et slectionnez le dessin duquel le projet doit tre extrait.
2. Cliquez sur Extraire.
3. Si vous voulez enregistrer les informations de projet dans un fichier de projet externe, choisissez Oui l'invite Voulez-vous exporter le projet VBA avant
de le supprimer?. La bote de dialogue Enregistrer sous s'affiche, elle vous permet d'enregistrer le fichier.
Si vous ne voulez pas enregistrer les informations de projet dans un fichier externe, choisissez Non l'invite Voulez-vous exporter le projet VBA avant de
le supprimer?. Les informations de projet sont supprimes du dessin et ne sont pas enregistres.
Envoyez-nous vos commentaires sur cette page.
Les nouveaux projets sont crs sous forme de projets globaux non enregistrs. Une fois un projet cr, vous pouvez l'incorporer un dessin ou l'enregistrer
dans un fichier de projet.
Pour crer un nouveau projet VBA
1. Ouvrez le Gestionnaire VBA.
2. Cliquez sur le bouton Nouveau.
Un projet est cr avec le nom par dfaut ACADProject. Vous pouvez changer le nom du projet dans l'environnement VBA IDE. Pour de plus amples
informations sur l'attribution d'un nom un projet dans l'environnement VBA IDE, reportez-vous la section Attribution d'un nom un projet.
Dmarrage avec VBA
Cration d'un projet
Envoyez-nous vos commentaires sur cette page.
Les projets intgrs sont enregistrs avec le dessin. Les projets globaux doivent tre enregistrs dans le Gestionnaire VBA ou l'environnement VBA IDE.
Pour enregistrer un projet dans le Gestionnaire VBA
1. Ouvrez le gestionnaire et slectionnez le projet enregistrer.
2. Cliquez sur Enreg. sous. La bote de dialogue Enregistrer sous apparat.
3. Choisissez le nom sous lequel le projet sera enregistr.
4. Cliquez sur Enregistrer.
Dmarrage avec VBA
Enregistrement de projet
Envoyez-nous vos commentaires sur cette page.
Une macro est un sous-programme public (excutable). Chaque projet contient gnralement au moins une macro.
Rubriques de cette section :
Utilisation de la bote de dialogue Macros
Excution d'une macro
Modification d'une macro
Entre dans une macro
Dfinition des options de projet
Dmarrage avec VBA
Gestion de macros
Envoyez-nous vos commentaires sur cette page.
Dmarrage avec VBA
Utilisation de la bote de dialogue Macros
Page 8 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cette bote de dialogue permet d'excuter, de modifier, de supprimer, de crer des macros et de dfinir les options du projet VBA. Pour ouvrir la bote de
dialogue Macros depuis le menu Outils d'AutoCAD, choisissez Macro Macros ou excutez EXECVBA l'invite de commande AutoCAD.
Les noms de toutes les macros situes dans l'intervalle correspondant apparaissent dans la bote de dialogue. Vous pouvez changer d'intervalle dans la zone
de liste droulante Emplacement. Cette zone donne la liste des projets ou des dessins dont les macros sont affiches. Vous pouvez afficher les macros dans :
Tous les dessins et projets actifs
Tous les dessins actifs
Tous les projets actifs
Tout dessin actuellement ouvert dans AutoCAD
Tout projet actuellement charg dans AutoCAD
En limitant l'intervalle de slection, vous pouvez contrler le nombre de noms de macros affichs dans la liste. Ceci est utile lorsque de nombreuses macros
sont disponibles dans les dessins et les projets chargs.
Pour crer une nouvelle macro
1. Ouvrez la bote de dialogue Macros et saisissez le nom de la nouvelle macro.
2. Dans la zone de liste droulante Emplacement, slectionnez le projet dans lequel vous voulez crer la macro.
3. Cliquez sur Crer.
Si une macro existante porte dj ce nom, AutoCAD vous demande si vous souhaitez la remplacer.
Si vous choisissez Oui, le code de la macro existante est supprim et une nouvelle macro vide est cre sous le nom spcifi.
Si vous rpondez Non, vous retournez alors la bote de dialogue Macros pour saisir un nouveau nom.
Si vous cliquez sur Annuler, la bote de dialogue Macros disparat et aucune macro n'est cre.
Pour supprimer une macro
1. Ouvrez la bote de dialogue Macros et slectionnez la macro supprimer.
2. Cliquez sur Supprimer. Le systme vous demande de confirmer la suppression.
3. Cliquez sur Oui pour supprimer la macro ou sur Non pour annuler sa suppression.
Envoyez-nous vos commentaires sur cette page.
Lors de l'excution d'une macro, son code est excut dans le contexte de la session AutoCAD active. Le dessin actif est le dessin ouvert qui est slectionn au
moment de l'excution de la macro. Pour des macros contenues dans des projets globaux, toutes les rfrences VBA l'objet ThisDrawing sont diriges vers
le dessin actif. Pour des macros contenues dans des projets intgrs, l'objet ThisDrawing se rapporte toujours au dessin dans lequel la macro est incorpore.
1. Ouvrez la bote de dialogue Macros et slectionnez la macro excuter.
2. Cliquez sur Excuter.
Pour excuter une macro partir de l'environnement VBA IDE
Dans le menu Excution, choisissez l'option Excuter la Macro.
Si aucune macro ou feuille n'est active, vous devez choisir la macro excuter dans la bote de dialogue qui s'affiche.
Si une macro est active (le curseur se trouve dans une procdure), elle est excute.
Dmarrage avec VBA
Excution d'une macro
Envoyez-nous vos commentaires sur cette page.
Lorsque vous modifiez une macro, l'environnement VBA IDE s'ouvre et la macro choisie apparat dans la fentre Code. Pour de plus amples informations sur la
modification de macros dans l'environnement VBA IDE, reportez-vous la section Modification de projets avec VBA IDE.
Pour modifier une macro
1. Ouvrez la bote de dialogue Macros et slectionnez la macro modifier.
2. Cliquez sur Modifier.
Dmarrage avec VBA
Modification d'une macro
Envoyez-nous vos commentaires sur cette page.
Dmarrage avec VBA
Page 9 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
L'entre dans une macro lance son excution puis l'interrompt sur la premire ligne du code. L'environnement VBA IDE s'ouvre avec la macro choisie affiche
dans la fentre Code la ligne d'excution.
Pour entrer dans une macro
1. Dans la bote de dialogue Macros, slectionnez la macro dans laquelle vous voulez entrer.
2. Cliquez sur Pas pas.
Entre dans une macro
Envoyez-nous vos commentaires sur cette page.
Trois options peuvent tre dfinies pour des projets AutoCAD VBA :
Activation de l'incorporation automatique
Autoriser arrts sur les erreurs
Activation de la protection antivirus des macros
Activation de l'incorporation automatique
La fonction d'incorporation automatique cre automatiquement un projet VBA intgr pour tous les dessins lorsque le dessin est ouvert.
Autoriser arrts sur les erreurs
Permet VBA de passer en mode Arrt lorsqu'une erreur est rencontre. Ce mode interrompt provisoirement l'excution du programme dans l'environnement
de dveloppement interactif. Dans ce mode, vous pouvez examiner le programme, le dboguer, le rinitialiser, l'excuter pas pas ou poursuivre son
excution.
Lorsque cette option est active, les erreurs non gres rencontres pendant l'excution d'une macro VBA interrompent l'excution de cette macro et affichent
l'environnement VBA IDE l'endroit o l'erreur s'est produite dans la macro.
Lorsque cette option est dsactive, le systme affiche une bote de message pour vous signaler des erreurs non captures rencontres pendant l'excution
d'une macro VBA, puis termine l'excution de cette macro.
Activation de la protection antivirus des macros
Le mcanisme de protection antivirus affiche un message d'avertissement intgr lorsque vous ouvrez un dessin qui risque de contenir des virus de macro.
1. Dans le menu Outils, slectionnez Macro Macros pour ouvrir la bote de dialogue Macro VBA.
2. Dans cette bote de dialogue, cliquez sur Options pour ouvrir la bote de dialogue Options.
3. Slectionnez alors les options activer.
4. Cliquez sur OK.
Dmarrage avec VBA
Dfinition des options de projet
Envoyez-nous vos commentaires sur cette page.
Une fois le projet charg dans AutoCAD, vous pouvez modifier le code, les feuilles et les rfrences le concernant l'aide de l'environnement de
dveloppement interactif VBA. Vous pouvez galement dboguer et excuter des projets depuis cet environnement. Une fois ouvert, l'environnement VBA IDE
permet d'accder tous les projets chargs.
Pour ouvrir l'environnement VBA IDE sur demande
Vous pouvez ouvrir l'environnement VBA IDE depuis la ligne de commande ou la barre de menus.
Depuis la ligne de commande, tapez VBAIDE ou, dans le menu Outils, choisissez Macro Editeur Visual Basic.
Rubriques de cette section :
Affichage des donnes de projet
Dfinition des composants d'un projet
Importation de composants existants
Modification de composants
Attribution d'un nom un projet
Enregistrement de projet
Dmarrage avec VBA
Modification de projets avec VBA IDE
Page 10 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Rfrence d'autres projets VBA
Dfinition des options VBA IDE
Envoyez-nous vos commentaires sur cette page.
L'environnement VBA IDE contient un Explorateur de projet qui affiche la liste de tous les projets VBA chargs. Il affiche galement les modules de code, de
classe et de feuille contenus dans un projet, le document associ au projet, tous les autres projets VBA auxquels il est fait rfrence dans le projet et
l'emplacement physique (chemin) du projet.
L'Explorateur de projet possde sa propre barre d'outils que vous pouvez utiliser pour ouvrir divers composants de projet et les modifier. Cliquez sur le bouton
Afficher le code pour ouvrir le code du module slectionn. Cliquez sur le bouton Afficher l'objet pour afficher les objets slectionns, par exemple les feuilles.
L'Explorateur de projet apparat par dfaut. S'il n'est pas visible, choisissez Explorateur de projet dans le menu Affichage, ou appuyez sur les touches CTRL+R.
Dmarrage avec VBA
Affichage des donnes de projet
Envoyez-nous vos commentaires sur cette page.
Chaque projet peut contenir diffrents composants. Il peut s'agir d'objets, de feuilles, de modules standard, de modules de classe et de rfrences.
Rubriques de cette section :
Objets
Feuilles
Modules standard
Modules de classe
Rfrences
Ajout de nouveaux composants
Dmarrage avec VBA
Dfinition des composants d'un projet
Envoyez-nous vos commentaires sur cette page.
Ce composant correspond au type d'objet ou au document auquel le code VBA va accder. Pour des projets AutoCAD VBA, cet objet reprsente le dessin
AutoCAD actif.
Dmarrage avec VBA
Objets
Envoyez-nous vos commentaires sur cette page.
Page 11 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Ce composant contient les botes de dialogue personnalises construites pour tre utilises avec votre projet.
Dmarrage avec VBA
Feuilles
Envoyez-nous vos commentaires sur cette page.
Le module de code contient des procdures et fonctions gnriques. Un module standard est galement appel module de code, ou tout simplement module.
Dmarrage avec VBA
Modules standard
Envoyez-nous vos commentaires sur cette page.
Ce composant contient tous vos objets dfinis comme classes.
Dmarrage avec VBA
Modules de classe
Envoyez-nous vos commentaires sur cette page.
Ce composant contient toutes vos rfrences d'autres projets ou bibliothques.
Dmarrage avec VBA
Rfrences
Envoyez-nous vos commentaires sur cette page.
Lorsque vous ajoutez un nouveau composant, un composant vierge est cr dans votre projet. Vous pouvez ajouter de nouveaux modules, feuilles et modules
de classe un projet. Vous devez mettre jour toutes les proprits du composant (notamment son nom) et spcifier le code appropri. Lorsque vous nommez
de nouveaux composants, n'oubliez pas que d'autres dveloppeurs voudront sans doute les utiliser dans de futures applications. C'est pourquoi, vous devez
suivre les conventions de dsignation utilises par votre quipe de dveloppement.
Pour ajouter un nouveau composant un projet
1. Dans l'Explorateur de projet de l'environnement VBA IDE, slectionnez le projet auquel vous allez ajouter le composant.
2. Dans le menu Insertion, choisissez UserForm, Module ou Module de classe pour ajouter le nouveau composant au projet.
Le nouveau composant est ajout au projet et apparat dans l'Explorateur de projet.
Dmarrage avec VBA
Ajout de nouveaux composants
Envoyez-nous vos commentaires sur cette page.
L'importation vous permet d'ajouter un composant existant un projet. Vous pouvez importer des feuilles, des modules ou des modules de classe. Les feuilles
sont importes en tant que fichiers FRM, les modules en tant que fichiers BAS et les modules de classe en tant que fichiers CLS.
Lorsque vous importez un fichier composant, une copie de ce fichier est ajoute au projet. Le fichier d'origine est laiss intact. Ainsi, les modifications apportes
au composant import ne modifient pas le fichier composant d'origine.
Dmarrage avec VBA
Importation de composants existants
Page 12 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Si vous importez un composant portant le mme nom qu'un composant existant, le fichier est ajout au projet avec un numro supplmentaire.
Le composant import est ajout au projet et apparat dans l'Explorateur de projet. Pour modifier les proprits du composant, slectionnez-le dans
l'Explorateur de projet. Les proprits du composant slectionn apparaissent et peuvent tre modifies dans la fentre Proprits.
Pour importer un composant existant dans un projet
1. Dans l'Explorateur de projet de l'environnement VBA IDE, slectionnez le projet auquel vous allez ajouter le composant.
2. Dans le menu Fichier, slectionnez Importer un fichier pour ouvrir la bote de dialogue Importer le fichier.
3. Dans cette bote de dialogue, slectionnez le fichier importer et cliquez sur Ouvrir.
Envoyez-nous vos commentaires sur cette page.
Vous pouvez modifier des modules standard, des modules de classe et des feuilles dans l'environnement VBA IDE. Les modules standard et de classe sont
modifis dans la fentre Code. Les feuilles sont modifies dans la fentre UserForm l'aide d'une bote outils spciale.
Vous pouvez ouvrir autant de fentres Code que vous avez de modules afin de visualiser facilement le code dans les diffrentes feuilles ou modules, et
d'effectuer des copier-coller entre eux.
1. Dans l'Explorateur de projet de l'environnement VBA IDE, slectionnez le composant modifier.
2. Cliquez sur le bouton Afficher le code pour ouvrir une fentre Code.
3. Cliquez sur le bouton Afficher l'objet pour ouvrir une fentre UserForm et la bote outils correspondante.
Pour accder au code associ une feuille
Pour accder la fentre Code d'un contrle, cliquez deux fois sur ce contrle dans la fentre Form. Le code associ ce contrle s'ouvre dans une fentre
Code.
Rubriques de cette section :
Utilisation de la fentre Code
Utilisation de la fentre UserForm
Dmarrage avec VBA
Modification de composants
Envoyez-nous vos commentaires sur cette page.
La fentre Code contient deux listes droulantes, une barre de fractionnement, un indicateur de marge et les icnes Affichage complet et Affichage de
procdure.
Les deux zones de listes droulantes en haut de la fentre affichent l'objet et la procdure actifs. Vous pouvez changer le projet en modifiant l'objet ou la
procdure figurant dans ces zones de liste.
La barre de fractionnement, droite de la fentre, vous permet de fractionner la fentre horizontalement. Il vous suffit de la faire glisser vers le bas pour crer
un nouveau panneau. Vous pouvez ainsi afficher simultanment deux parties du code d'un mme module. Pour refermer le panneau, remettez la barre de
fractionnement sa place initiale.
L'indicateur de marge est situ en bas gauche de la fentre Code. Il sert afficher les marges utilises pendant la modification et le dbogage du code.
Les icnes Affichage complet et Affichage de procdure sont situes en bas gauche de la fentre Code ; elles permettent d'afficher une seule procdure la
fois ou le module entier.
Dmarrage avec VBA
Utilisation de la fentre Code
Envoyez-nous vos commentaires sur cette page.
Page 13 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La fentre UserForm vous permet de crer des botes de dialogue personnalises dans un projet.
Pour ajouter un contrle, faites-le glisser de la bote outils et placez-le sur la feuille. Dans l'onglet Gnral de la bote de dialogue Options, vous pouvez dfinir
vos contrles de faon ce qu'ils soient aligns sur la grille de la feuille. Vous pouvez afficher la grille afin de dterminer la taille de ses lignes. (Reportez-vous
la section Dfinition des options VBA IDE pour de plus amples informations sur la bote de dialogue Options.)
Chaque feuille conue affiche automatiquement les boutons Agrandissement, Rduction et Fermeture. Le systme les configure pour vous.
Pour ajouter du code au contrle, cliquez deux fois sur ce contrle aprs l'avoir plac sur la feuille. Une fentre Code correspondant au contrle s'ouvre alors.
Dmarrage avec VBA
Utilisation de la fentre UserForm
Envoyez-nous vos commentaires sur cette page.
Le nom du projet et le nom du fichier .dvb dans lequel le projet est enregistr constituent deux valeurs diffrentes. Vous dfinissez le nom du fichier .dvb au
moment de l'enregistrement du projet. Le nom du projet, quant lui, est attribu dans la fentre Proprits de l'environnement VBA IDE.
Si vous ne dfinissez pas de noms de projet et de fichier, AutoCAD assigne automatiquement les noms par dfaut suivants :
Nom du projet : ACADProject
Nom du fichier : Project.dvb
1. Dans l'Explorateur de projet de l'environnement VBA IDE, slectionnez le projet dont vous souhaitez changer le nom.
2. Dans la fentre Proprits, modifiez la proprit Name du projet.
1. Dans l'environnement VBA IDE, choisissez l'option Enregistrer du menu Fichier.
2. Dans la bote de dialogue Enregistrer sous, entrez le nouveau nom et l'emplacement du fichier de projet.
Dmarrage avec VBA
Attribution d'un nom un projet
Envoyez-nous vos commentaires sur cette page.
Dmarrage avec VBA
Enregistrement de projet
Page 14 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Aucune commande SAUVEGRD explicite n'est disponible dans AutoCAD pour des projets VBA. Toutefois, une commande SAUVEGRD est disponible dans le
menu Fichier de l'environnement VBA IDE et dans le Gestionnaire VBA. Toute modification apporte un projet VBA ouvre la bote de dialogue standard
Enregistrer sous ds que l'un des vnements suivants se produit :
Vous slectionnez la commande SAUVEGRD dans l'environnement VBA IDE.
Vous slectionnez l'option Enregistrer sous du Gestionnaire VBA.
La session AutoCAD va se terminer ou vous allez la quitter et le projet VBA n'est pas enregistr.
Remarque Avant d'enregistrer un projet, le nom par dfaut project.dvb lui est assign. Toutefois, vous devez lui attribuer un nouveau nom lorsque vous
l'enregistrez. En effet, si vous enregistrez un projet avec le nom de fichier par dfaut project.dvb, vous ne pourrez plus crer de projets vides. Chaque fois que
vous crez un projet, vous chargez le projet enregistr appel project.dvb.
Envoyez-nous vos commentaires sur cette page.
Lorsqu'un projet VBA est rfrenc par un autre projet VBA, les dveloppeurs peuvent partager du code plus facilement. Ils peuvent crer des bibliothques de
macros utilises frquemment et faire rfrence cette bibliothque selon leurs besoins. Ainsi, le code partag reste centralis et un grand nombre de
dveloppeurs peuvent l'utiliser.
Lorsqu'un projet est correctement rfrenc, un nouveau dossier apparat dans l'Explorateur de projet de l'environnement VBA IDE. Ce dossier est intitul
References et contient le nom du projet auquel il est fait rfrence.
Une fois le projet rfrenc, vous pouvez utiliser un code public ou un composant de feuille dans ce projet.
Lorsque vous chargez dans AutoCAD un projet faisant rfrence un autre projet, ce dernier est galement charg automatiquement. Il ne peut tre referm
que si les projets y faisant rfrence sont aussi ferms.
Vous ne pouvez pas effectuer de rfrences circulaires. En d'autres termes, vous ne pouvez pas faire rfrence un projet contenant une rfrence au premier
projet. Si vous crez par mgarde une rfrence circulaire, VBA vous le signale.
La fonction de rfrence des projets est une fonction standard de Microsoft VBA. Elle n'a pas t tendue dans AutoCAD. Vous trouverez de plus amples
informations sur les rfrences des projets dans l'aide de Microsoft VBA. Vous pouvez ouvrir l'aide de Microsoft VBA partir du menu Aide de
l'environnement VBA IDE.
Remarque Vous ne pouvez pas faire rfrence des projets intgrs ou des projets VBA partir d'autres applications.
Pour faire rfrence un autre projet VBA
1. Dans l'Explorateur de projet de l'environnement VBA IDE, slectionnez le projet auquel vous allez ajouter la rfrence.
2. Dans le menu Outils, choisissez Rfrences pour ouvrir la bote de dialogue Rfrences.
3. Dans cette bote de dialogue, cliquez sur le bouton Parcourir pour ouvrir la bote de dialogue Ajouter une rfrence.
4. Dans cette bote de dialogue, slectionnez le fichier de projet auquel vous voulez faire rfrence et cliquez sur le bouton Ouvrir.
5. Cliquez ensuite sur le bouton OK pour finir d'ajouter la rfrence.
Dmarrage avec VBA
Rfrence d'autres projets VBA
Envoyez-nous vos commentaires sur cette page.
Vous pouvez changer les caractristiques de l'environnement VBA IDE dans la bote de dialogue Options. Pour ouvrir cette bote de dialogue, dans le menu
Outils, choisissez Options.
La bote de dialogue Options comporte quatre onglets : Editeur, Format de l'diteur, Gnral et Ancrage.
Rubriques de cette section :
Editeur
Format de l'diteur
Gnral
Ancrage
Dmarrage avec VBA
Dfinition des options VBA IDE
Envoyez-nous vos commentaires sur cette page.
Dmarrage avec VBA
Page 15 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cet onglet spcifie les paramtres de la fentre Code et de l'Explorateur de projet.
Les paramtres de code sont les suivants :
Vrification automatique de la syntaxe
Dclaration des variables obligatoires
Complment automatique des instructions
Info express automatique
Info-bulles automatiques
Retrait automatique
Largeur de la tabulation
Les paramtres de fentre sont les suivants :
Edition de texte par glisser-dplacer
Affichage du module complet par dfaut
Sparation des procdures
Editeur
Envoyez-nous vos commentaires sur cette page.
L'onglet Format de l'diteur spcifie l'aspect de votre code.
Vous pouvez
Changer les couleurs du code
Changer les lments de liste de texte
Changer le premier plan
Changer l'arrire-plan
Changer les indicateurs de marge
Changer la taille et la police du texte
Afficher ou masquer l'indicateur de marge
Afficher ou masquer le texte exemple pour les paramtres que vous dfinissez
Dmarrage avec VBA
Format de l'diteur
Envoyez-nous vos commentaires sur cette page.
Cet onglet spcifie les paramtres, la gestion des erreurs et les paramtres de compilation du projet VBA actif .
Vous pouvez
Changer les paramtres de la grille de la feuille
Afficher ou masquer les info-bulles
Dfinir la rduction automatique des fentres
Demander la rception de notifications de perte d'tat
Dterminer de quelle faon les erreurs sont traites
Dfinir le projet compiler sur demande ou effectuer des compilations en arrire-plan
Dmarrage avec VBA
Gnral
Envoyez-nous vos commentaires sur cette page.
Cet onglet vous permet de choisir quelles fentres vous souhaitez pouvoir ancrer.
Dmarrage avec VBA
Ancrage
Envoyez-nous vos commentaires sur cette page.
Page 16 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Maintenant que vous connaissez les bases de la programmation dans VBA AutoCAD, essayez de crer un exercice simple intitul Hello World. Dans cet
exercice, nous allons crer un dessin AutoCAD, y ajouter une ligne de texte et l'enregistrer depuis l'environnement VBA.
Pour crer l'objet texte Hello World
1. Ouvrez l'environnement VBA IDE en tapant la commande suivante sur la ligne de commande AutoCAD.
Commande : VBAIDE
2. Ouvrez la fentre Code en choisissant l'option Code du menu Affichage dans l'environnement VBA IDE.
3. Crez une procdure dans le projet en choisissant l'option Procdure du menu Insertion dans l'environnement VBA IDE.
4. Lorsque le systme vous demande d'entrer des informations de procdure, entrez par exemple le nom Hello. Vrifiez que le type choisi est Sub et la
Porte Public.
5. Cliquez sur OK.
6. Entrez le code suivant (qui ouvre un nouveau dessin) entre les lignes Public Sub Hello() et End Sub.
ThisDrawing.Application.Documents.Add
7. Entrez le code suivant (qui cre la chane de texte et dfinit quel endroit elle doit tre insre) immdiatement aprs le code saisi l'tape 6.
Dim insPoint(0 To 2) As Double 'Declare insertion point
Dim textHeight As Double 'Declare text height
Dim textStr As String 'Declare text string
Dim textObj As AcadText 'Declare text object
insPoint(0) = 2 'Set insertion point x coordinate
insPoint(1) = 4 'Set insertion point y coordinate
insPoint(2) = 0 'Set insertion point z coordinate
textHeight = 1 'Set text height to 1.0
textStr = "Hello World!" 'Set the text string
'Create the Text object
Set textObj = ThisDrawing.ModelSpace.AddText _
(textStr, insPoint, textHeight)
8. Entrez le code (qui enregistre le dessin) immdiatement aprs le code saisi l'tape 7.
ThisDrawing.SaveAs("Hello.dwg")
9. Excutez le programme en choisissant l'option Excuter Sub/UserForm du menu Excution dans l'environnement VBA IDE.
Une fois le programme excut, faites passer l'application AutoCAD au premier plan. Le texte Hello World! doit apparatre sur le dessin. Par ailleurs,
votre dessin doit s'appeler Hello.dwg.
Dmarrage avec VBA
Exercice prparatoire
Envoyez-nous vos commentaires sur cette page.
Vous trouverez de plus amples informations sur le langage de programmation VBA et VBA IDE dans les fichiers d'aide fournis par Microsoft. Pour accder ces
fichiers, slectionnez Aide de Microsoft Visual Basic dans le menu d'aide de l'environnement VBA IDE.
Dmarrage avec VBA
Informations complmentaires
Envoyez-nous vos commentaires sur cette page.
Projet global
Projet VBA enregistr dans un fichier .dvb.
Projet intgr
Projet VBA enregistr dans un dessin AutoCAD.
Document normal
Dessin AutoCAD ne contenant pas de projets VBA intgrs.
Document intelligent
Dessin AutoCAD contenant un ou plusieurs projets VBA intgrs.
Projet actif
Projet actuellement slectionn dans l'environnement VBA IDE.
ThisDrawing
Terme de programmation VBA utilis pour dsigner le dessin actif. Pour les projets globaux, ThisDrawing dsigne toujours le document actif dans AutoCAD.
Pour les projets intgrs, ThisDrawing dsigne toujours le document contenant le projet.
VBA IDE
VBA IDE (Interactive Development Environment - Environnement de dveloppement interactif VBA). Cette application vous permet de modifier le code et les
feuilles d'un projet, ou de copier le code et les feuilles d'autres projets. Elle vous permet galement de dfinir des rfrences d'autres modles d'objet
d'application.
Dmarrage avec VBA
Termes du projet AutoCAD VBA
Page 17 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Gestionnaire VBA
Le Gestionnaire VBA vous permet de grer des projets. Vous pouvez notamment crer, supprimer, incorporer ou extraire des projets. Vous pouvez
galement afficher les projets intgrs, le cas chant, un dessin ouvert.
Bote de dialogue Macros
Cette bote de dialogue permet d'excuter, de supprimer et de crer des macros. Elle permet galement d'accder aux options de projet VBA.
Envoyez-nous vos commentaires sur cette page.
VBAIDE
Ouvre l'environnement VBA IDE
Il vous permet de modifier, d'excuter et de dboguer des programmes en interactif. Cet environnement ne peut tre appel que si AutoCAD est excut.
Vous pouvez toutefois le rduire, l'ouvrir et le fermer indpendamment de la fentre de l'application AutoCAD.
CHARGVBA
Charge un projet VBA dans la session AutoCAD active.
EXECVBA
Excute une macro VBA depuis la bote de dialogue Macros ou la ligne de commande AutoCAD.
DECHARGVBA
Dcharge un projet VBA de la session AutoCAD active.
Si le projet VBA est modifi mais pas enregistr, le systme vous demande de l'enregistrer dans la bote de dialogue Enregistrer le projet (ou sur la ligne de
commande quivalente).
GESTVBA
Affiche le Gestionnaire VBA qui vous permet d'afficher, de crer, de charger, de fermer, d'incorporer et d'extraire des projets.
VBAINSTR
Excute une instruction VBA depuis la ligne de commande AutoCAD.
Dmarrage avec VBA
Commandes AutoCAD VBA
Envoyez-nous vos commentaires sur cette page.
Pour utiliser efficacement l'Automatisation ActiveX d'AutoCAD, vous devez connatre les entits, les objets et les fonctions AutoCAD relatifs au type
d'application dveloppe. En effet, mieux vous connaissez les proprits graphiques et non graphiques d'un objet, plus vous pouvez les manipuler facilement
via l'Automatisation ActiveX d'AutoCAD.
N'oubliez pas que pour accder au fichier d'aide de l'Automatisation ActiveX d'AutoCAD, il vous suffit d'appuyer sur la touche F1. Si un objet, une mthode ou
une proprit vous pose problme, slectionnez-la (le) dans l'environnement VBA IDE et appuyez sur la touche F1.
Rubriques de cette section :
Modle d'objet AutoCAD
Accs la hirarchie de l'objet
Objets Collection
Proprits et mthodes
Objets parent
Localisation de la bibliothque de type
Utilisation de variants dans les mthodes et les proprits
Utilisation d'autres langages de programmation
Fondements de l'Automatisation ActiveX
Envoyez-nous vos commentaires sur cette page.
Un objet constitue le noyau de l'interface ActiveX
d'AutoCAD
. Chaque objet expos reprsente une partie spcifique d'AutoCAD. L'interface ActiveX
d'AutoCAD est constitue de diffrents types d'objets. Par exemple :
Les objets graphiques comme des lignes, des arcs, du texte et des cotes sont des objets.
Les paramtres de style comme des types de ligne et des styles de cotes sont des objets.
Les lments de structure comme des calques, des groupes et des blocs sont des objets.
Fondements de l'Automatisation ActiveX
Modle d'objet AutoCAD
Page 18 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les lments d'affichage graphique comme les vues et les fentres sont des objets.
Mme le dessin et l'application AutoCAD sont considrs comme des objets.
Les objets sont structurs de faon hirarchique, l'objet Application se trouvant la racine. La vue de cette structure hirarchique est appele modle d'objet. Le
modle d'objet indique quel objet permet d'accder au niveau d'objets suivant.
Rubriques de cette section :
Page 19 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Objet Application
Objet Document
Objets Collection
Objets graphiques et non graphiques
Objets Preferences, Plot et Utility
Utilisation des nouvelles fonctionnalits d'AutoCAD
Envoyez-nous vos commentaires sur cette page.
L'objet Application est l'objet Root du modle d'objet de l'Automatisation ActiveX d'AutoCAD. Il permet d'accder aux autres objets ou aux proprits et
mthodes assignes un objet.
Ainsi, l'objet Application a une proprit Preferences qui renvoie l'objet Preferences Cet objet permet d'accder aux paramtres de la bote de dialogue Options
enregistrs dans la base de registre. (Les paramtres enregistrs dans le dessin sont placs dans l'objet DatabasePreferences qui est dcrit plus loin.) D'autres
proprits de l'objet Application vous permettent d'accder des donnes propres l'application comme son nom et sa version, la taille, l'emplacement et la
visibilit d'AutoCAD. Les mthodes de l'objet Application excutent des actions propres l'application comme l'tablissement de la liste des applications ADS et
ARX, leur chargement et leur dchargement ainsi que la sortie d'AutoCAD.
L'objet Application tablit galement des liens vers les dessins AutoCAD via la collection Documents, vers les menus et barres d'outils AutoCAD via les
collections MenuBar et MenuGroups et vers l'environnement VBA IDE via une proprit appele VBE.
L'objet Application est galement l'objet Global de l'interface ActiveX. Cela signifie que toutes les mthodes et proprits de cet objet sont disponibles dans
l'espace global.
Fondements de l'Automatisation ActiveX
Objet Application
Envoyez-nous vos commentaires sur cette page.
L'objet Document, qui est en fait un dessin AutoCAD, se trouve dans la collection Documents et permet d'accder tous les objets graphiques et la plupart
des objets non graphiques d'AutoCAD. Les collections ModelSpace et PaperSpace permettent d'accder des objets graphiques (lignes, arcs, cercles, etc.) et
des collections de noms similaires comme Layers, Linetypes et TextStyles permettent d'accder des objets non graphiques. L'objet Document permet
galement d'accder aux objets Plot et Utility
Pour accder aux proprits des dessins, utilisez la proprit SummaryInfo de l'objet Document.
Fondements de l'Automatisation ActiveX
Objet Document
Page 20 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
AutoCAD regroupe la plupart des objets dans des collections. Bien qu'elles contiennent des types de donnes diffrents, ces collections peuvent tre traites
partir de techniques semblables. Chaque collection possde sa propre mthode d'ajout d'objets. La plupart d'entre elles utilisant la mthode Add Toutefois, les
objets entit sont gnralement ajouts via une mthode d'ajout intitule Add<Entityname>. Par exemple, pour ajouter une ligne, vous devez utiliser la mthode
AddLine
Les collections ont d'autres mthodes et proprits en commun. Ainsi, la proprit Count sert effectuer un calcul d'origine zro du nombre d'objets figurant
dans une collection. La mthode Item sert extraire un objet d'une collection.
Fondements de l'Automatisation ActiveX
Objets Collection
Envoyez-nous vos commentaires sur cette page.
Les objets graphiques, galement appels entits, sont des objets visibles (lignes, cercles, images trames, etc.) qui constituent le dessin. Pour les crer, vous
devez utiliser la mthode Add<Entityname> approprie. Pour modifier ou rechercher ces objets, utilisez les mthodes ou proprits de l'objet lui-mme. Chaque
objet graphique possde des mthodes qui permettent une application d'excuter la plupart des commandes d'dition AutoCAD comme la copie, la
suppression, le dplacement, la mise en miroir, etc. Les objets disposent par ailleurs de mthodes pour dfinir et extraire des donnes tendues (xdata), pour
mettre en surbrillance, mettre jour et extraire la zone de dlimitation de l'objet. Les objets graphiques ont des proprits types comme Layer, Linetype, Color
et Handle. En fonction de leur type, ils possdent en outre des proprits spcifiques, comme Center, Radius et Area.
Les objets non graphiques sont des objets invisibles (pour information) qui font partie d'un dessin comme Layers, Linetypes, DimStyles, SelectionSets, etc. Pour
crer ces objets, utilisez la mthode Add de l'objet Collection parent. Pour modifier ou rechercher ces objets, utilisez les mthodes ou proprits de l'objet lui-
mme. Chaque objet non graphique possde des mthodes et des proprits qui lui sont propres, notamment pour dfinir et extraire des donnes tendues
(xdata) et pour se supprimer.
Fondements de l'Automatisation ActiveX
Objets graphiques et non graphiques
Envoyez-nous vos commentaires sur cette page.
Page 21 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Sous l'objet Preferences se trouve un ensemble d'objets, chacun correspondant un onglet de la bote de dialogue Options. Ces objets permettent d'accder
tous les paramtres de la bote de dialogue Options enregistrs dans la base de registre. Les paramtres enregistrs dans le dessin se trouvent dans l'objet
DatabasePreferences Vous pouvez galement dfinir et modifier des options (et des variables systme qui ne font pas partie de la bote de dialogue Options)
l'aide des mthodes SetVariable et GetVariable Pour de plus amples informations sur la dfinition d'options, voir Dfinir les prfrences AutoCAD.
L'objet Plot permet d'accder aux paramtres de la bote de dialogue Tracer et offre aux applications la possibilit de tracer le dessin en appliquant des
mthodes diffrentes. Pour de plus amples informations sur le traage, voir Traage du dessin.
L'objet Utility fournit des fonctions d'entre utilisateur et de conversion. Les fonctions d'entre utilisateur sont des mthodes qui invitent l'utilisateur entrer
diffrents types de donnes comme des chanes, des entiers, des rels, des points, etc., sur la ligne de commande AutoCAD. Les fonctions de conversion,
quant elles, sont des mthodes qui oprent sur des types de donnes propres AutoCAD comme des points et des angles, et qui traitent des chanes et des
nombres. Pour de plus amples informations sur les fonctions d'entre utilisateur, voir Demande d'entre utilisateur.
Fondements de l'Automatisation ActiveX
Objets Preferences, Plot et Utility
Envoyez-nous vos commentaires sur cette page.
Si votre projet d'automatisation utilise une fonctionnalit qui n'existait pas dans une version prcdente d'AutoCAD, vous devez dclarer explicitement l'interface
AutoCAD utilise dans le projet.
Si un projet d'automatisation contient des dclarations explicites des nouvelles interfaces dans une version spcifique d'AutoCAD, n'utilisez pas ce projet avec
des versions antrieures d'AutoCAD.
Fondements de l'Automatisation ActiveX
Utilisation des nouvelles fonctionnalits d'AutoCAD
Envoyez-nous vos commentaires sur cette page.
Vous pouvez accder facilement la hirarchie de l'objet depuis VBA. VBA est excut paralllement la session AutoCAD courante et il n'y a, par
consquent, pas besoin de le connecter l'application.
VBA tablit un lien vers le dessin actif dans la session AutoCAD courante via l'objet ThisDrawing. Lorsque vous utilisez l'objet ThisDrawing, vous accdez
immdiatement l'objet Document courant ainsi qu' toutes ses mthodes et proprits et tous les autres objets de la hirarchie.
Pour les projets globaux, ThisDrawing dsigne toujours le document actif dans AutoCAD. Pour les projets intgrs, ThisDrawing dsigne toujours le
document contenant le projet. Par exemple, la ligne de code suivante d'un projet global enregistre le dessin actuellement actif dans AutoCAD :
ThisDrawing.Save
Rubriques de cette section :
Rfrence des objets dans la hirarchie de l'objet
Accs l'objet Application
Fondements de l'Automatisation ActiveX
Accs la hirarchie de l'objet
Envoyez-nous vos commentaires sur cette page.
Fondements de l'Automatisation ActiveX
Rfrence des objets dans la hirarchie de l'objet
Page 22 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous pouvez faire rfrence des objets directement ou via une variable dfinie par l'utilisateur. Pour rfrencer les objets directement, incluez l'objet dans la
hirarchie appelante. Par exemple, l'instruction suivante ajoute une ligne dans modelspace. Notez que la hirarchie commence l'objet ThisDrawing, passe
par l'objet ModelSpace, puis appelle la mthode AddLine
Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As Double
Dim LineObj as AcadLine
startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
endPoint(0) = 30: endPoint(1) = 20: endPoint(2) = 0
Set LineObj = ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)
Pour faire rfrence aux objets via une variable dfinie par l'utilisateur, dfinissez le type souhait pour cette variable, puis attribuez-la l'objet appropri. Par
exemple, le code suivant dfinit une variable (moSpace) de type AcadModelSpace, puis la rend gale l'espace objet courant :
Dim moSpace As AcadModelSpace
Set moSpace = ThisDrawing.ModelSpace
L'instruction suivante ajoute ensuite une ligne l'espace objet en utilisant la variable dfinie par l'utilisateur :
Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As Double
Dim LineObj as AcadLine
startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0
endPoint(0) = 30: endPoint(1) = 20: endPoint(2) = 0
Set LineObj = moSpace.AddLine(startPoint,endPoint)
Extraction de la premire entit de l'espace objet
L'exemple suivant renvoie le premier objet entit de l'espace objet. Un code similaire peut effectuer la mme opration pour des entits de l'espace papier.
Notez que tous les objets d'un dessin peuvent tre dfinis comme des objets AcadEntity :
Sub Ch2_FindFirstEntity()
' This example returns the first entity in model space
On Error Resume Next
Dim entity As AcadEntity
If ThisDrawing.ModelSpace.count <> 0 Then
Set entity = ThisDrawing.ModelSpace.Item(0)
MsgBox entity.ObjectName + _
" is the first entity in model space."
Else
MsgBox "There are no objects in model space."
End If
End Sub
Envoyez-nous vos commentaires sur cette page.
La proprit Application de l'objet Document permet d'accder l'objet Application. L'objet Application est au-dessus de l'objet Document dans la hirarchie
d'objets.
L'objet ThisDrawing permet d'accder l'objet Document. Par exemple, la ligne de code suivante met jour l'application :
ThisDrawing.Application.Update
Fondements de l'Automatisation ActiveX
Accs l'objet Application
Envoyez-nous vos commentaires sur cette page.
Un objet Collection est un objet prdfini qui contient (est un objet parent pour) toutes les instances d'un objet similaire. Voici une liste d'objets Collection :
Collection
Contient tous les documents ouverts dans la session AutoCAD active.
Collection ModelSpace
Contient tous les objets graphiques (entits) de l'espace objet.
Collection PaperSpace
Contient tous les objets graphiques (entits) de l'espace papier actif.
Objet Block
Contient toutes les entits d'une dfinition de bloc donne
Collection Blocks
Contient tous les blocs du dessin.
Fondements de l'Automatisation ActiveX
Objets Collection
Page 23 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Collection Dictionaries
Contient tous les dictionnaires du dessin.
Collection DimStyles
Contient tous les styles de cotes du dessin.
Collection FileDependencies
Contient tous les lments de la liste des dpendances de fichier.
Collection Groups
Contient tous les groupes du dessin.
Collection Hyperlinks
Contient tous les hyperliens d'une entit donne.
Collection Layers
Contient tous les calques du dessin.
Collection Layouts
Contient toutes les prsentations du dessin.
Collection Linetypes
Contient tous les types de ligne du dessin.
Collection MenuBar
Contient tous les menus actuellement affichs dans AutoCAD.
Collection MenuGroups
Contient tous les menus et barres d'outils actuellement chargs dans AutoCAD.
Collection PlotConfigurations
Contient les configurations de trac nommes du dessin.
Collection RegisteredApplications
Contient toutes les applications enregistres dans le dessin.
Collection SelectionSets
Contient tous les jeux de slection du dessin.
Collection TextStyles
Contient tous les styles de texte du dessin.
Collection UCSs
Contient tous les systmes de coordonnes utilisateur (SCU) du dessin.
Collection Views
Contient toutes les vues du dessin.
Collection Viewports
Contient toutes les fentres du dessin.
Rubriques de cette section :
Accs une collection
Ajout d'un nouveau membre un objet Collection.
Itration via un objet Collection
Suppression d'un membre d'un objet Collection
Envoyez-nous vos commentaires sur cette page.
Vous accdez la plupart des objets Collection partir de l'objet Document Cet objet contient une proprit pour chaque objet Collection. Par exemple, le code
suivant dfinit une variable et l'attribue la collection Layers du dessin courant :
Dim layerCollection as AcadLayers
Set layerCollection = ThisDrawing.Layers
Vous accdez aux collections Documents, MenuBar et MenuGroups via l'objet Application. Cet objet contient une proprit pour chaque objet Collection. Par
exemple, le code suivant dfinit une variable et l'attribue la collection MenuGroups de l'application :
Dim MenuGroupsCollection as AcadMenuGroups
Set MenuGroupsCollection = ThisDrawing.Application.MenuGroups
Fondements de l'Automatisation ActiveX
Accs une collection
Envoyez-nous vos commentaires sur cette page.
Pour ajouter un membre la collection, utilisez la mthode Add. Par exemple, le code suivant cre un calque et l'ajoute la collection Layers :
Dim newLayer as AcadLayer
Set newLayer = ThisDrawing.Layers.Add("MyNewLayer")
Fondements de l'Automatisation ActiveX
Ajout d'un nouveau membre un objet Collection.
Page 24 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
Pour slectionner un membre donn d'un objet Collection, utilisez la mthode Item Cette mthode requiert un identificateur sous la forme d'un numro d'index
dsignant l'emplacement de l'lment au sein de la collection ou d'une chane reprsentant le nom de l'lment.
Il s'agit de la mthode par dfaut pour une collection. Si vous ne spcifiez pas le nom de la mthode lorsque vous faites rfrence une collection, c'est la
mthode Item qui est active par dfaut. Les instructions suivantes sont quivalentes :
ThisDrawing.Layers.Item("ABC")
ThisDrawing.Layers("ABC")
Remarque N'utilisez pas les mthodes de modification d'entits (copie, tableau, miroir, etc.) sur un objet pendant que vous procdez une itration via une
collection l'aide de la variable de contrle For Each. Terminez l'itration avant d'essayer de modifier un objet de la collection ou de crer un tableau provisoire
et de le rendre gal la collection. Vous pouvez alors itrer via le tableau copi et effectuer les modifications souhaites.
Itration dans une collection Layers
L'exemple suivant procde une itration partir d'une collection et affiche les noms de tous les calques de cette collection :
Sub Ch2_IterateLayer()
' Iterate through the collection
On Error Resume Next
Dim I As Integer
Dim msg As String
msg = ""
For I = 0 To ThisDrawing.Layers.count - 1
msg = msg + ThisDrawing.Layers.Item(I).Name + vbCrLf
Suivant
MsgBox msg
End Sub
Recherche du calque MyLayer
L'exemple suivant fait rfrence un calque appel MyLayer, et affiche un message d'erreur si ce calque n'existe pas :
Sub Ch2_FindLayer()
' Use the Item method to find a layer named MyLayer
On Error Resume Next
Dim ABCLayer As AcadLayer
Set ABCLayer = ThisDrawing.Layers("MyLayer")
If Err <> 0 Then
MsgBox "The layer 'MyLayer' does not exist."
End If
End Sub
Fondements de l'Automatisation ActiveX
Itration via un objet Collection
Envoyez-nous vos commentaires sur cette page.
Pour supprimer un style de cote donn, utilisez la mthode Delete de l'objet membre. Par exemple, le code suivant supprime le calque ABC :
Dim ABCLayer as AcadLayer
Set ABCLayer = ThisDrawing.Layers.Item("ABC")
ABCLayer.Delete
Une fois un objet supprim, vous ne devez pas essayer d'y accder nouveau dans le programme.
Fondements de l'Automatisation ActiveX
Suppression d'un membre d'un objet Collection
Envoyez-nous vos commentaires sur cette page.
Des proprits et des mthodes sont associes chaque objet. Les proprits dcrivent des aspects d'un objet individuel, alors que les mthodes sont des
actions qui peuvent tre excutes sur cet objet. Une fois un objet cr, vous pouvez le rechercher et le modifier via ses proprits et ses mthodes.
Fondements de l'Automatisation ActiveX
Proprits et mthodes
Page 25 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Par exemple, un objet Circle a la proprit Center Cette proprit reprsente la coordonne du systme de coordonnes gnral 3D au centre de ce cercle.
Pour changer le centre du cercle, attribuez la nouvelle coordonne cette proprit. Par exemple, l'objet Circle a une mthode Offset. Cette mthode cre un
nouvel objet la distance de dcalage spcifie du cercle existant. Pour afficher la liste de toutes les proprits et mthodes de l'objet Circle, reportez-vous la
section sur l'objet Circle du manuel ActiveX and VBA Reference d'AutoCAD.
Envoyez-nous vos commentaires sur cette page.
Chaque objet a un objet parent auquel il est li de faon permanente. Tous les objets proviennent d'un objet parent unique appel objet Root. Vous pouvez
accder tous les objets de l'interface en suivant les liens de l'objet racine l'objet enfant. Par ailleurs, les objets ont une proprit Application qui renvoie
directement l'objet Root.
L'objet Root de l'interface AutoCAD est l'application AutoCAD.
Fondements de l'Automatisation ActiveX
Objets parent
Envoyez-nous vos commentaires sur cette page.
Les objets, proprits et mthodes exposs par des objets Automation sont enregistrs dans une bibliothque de type. Il s'agit d'un fichier ou d'une partie d'un
fichier qui dcrit le type d'un ou de plusieurs objets.
Les bibliothques de type n'enregistrent pas des objets, mais des informations. En y accdant, les applications et les navigateurs peuvent dterminer les
caractristiques d'un objet comme les interfaces prises en charge par l'objet, et les noms et adresses des membres de chaque interface.
Avant d'utiliser l'objet Automation expos par une application, vous devez faire rfrence sa bibliothque de type. La rfrence est dfinie automatiquement
dans VBA IDE. Si vous utilisez un autre environnement de dveloppement interactif, vous devez crer une rfrence au fichier de bibliothque de type
AutoCAD, acax17enu.tlb, plac sous c:\program files\common files\autodesk shared. Pour accder aux objets de Gestionnaire de jeu de feuilles dans
l'environnement VBA IDE ou dans d'autres environnements, vous devez crer une rfrence au fichier de bibliothque de type AcSmComponents17 1.0,
AcSmComponents17.tlb, plac sous c:\program files\common files\autodesk shared.
Vous pouvez utiliser les objets d'une application sans faire rfrence la bibliothque de type de cette application. Toutefois, il est prfrable d'ajouter la
rfrence de la bibliothque de type pour les raisons suivantes :
Vous pouvez accder directement des fonctions accessibles globalement sans qualification.
L'adquation des appels de fonctions, de proprits et de mthodes peut tre contrle au moment de la compilation et ces appels peuvent tre, par
consquent, excuts plus rapidement.
Vous pouvez dclarer des variables avec les types dfinis dans la bibliothque, ce qui permet d'obtenir une fiabilit et une lisibilit accrues au moment de
l'excution.
Fondements de l'Automatisation ActiveX
Localisation de la bibliothque de type
Envoyez-nous vos commentaires sur cette page.
L'Automatisation ActiveX utilise des variants pour transmettre des tableaux de donnes. Bien que cela paraisse droutant pour un utilisateur inexpriment,
cette pratique est simple une fois les bases assimiles. Par ailleurs, l'Automatisation ActiveX d'AutoCAD fournit des utilitaires qui vous aident convertir vos
types de donnes.
Rubriques de cette section :
Dfinition d'un variant
Utilisation de variants comme donnes d'un tableau
Conversion de tableaux en variants
Interprtation des tableaux de type Variant
Fondements de l'Automatisation ActiveX
Utilisation de variants dans les mthodes et les proprits
Envoyez-nous vos commentaires sur cette page.
Fondements de l'Automatisation ActiveX
Dfinition d'un variant
Page 26 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Un variant est un type de donnes spcial qui peut contenir toute sorte de donnes sauf des donnes de type chane de longueur fixe et des donnes dfinies
par l'utilisateur. Il peut galement contenir les valeurs spciales Empty, Error, Nothing et NULL. Vous pouvez dterminer de quelle faon les donnes d'un
variant sont traites en utilisant la fonction VBA VarType ou TypeName.
Pour plus de souplesse dans le traitement des donnes, le type de donnes Variant peut tre utilis la place de la plupart des types de donnes.
Envoyez-nous vos commentaires sur cette page.
Des variants sont utiliss pour changer des donnes de tableau avec l'Automatisation ActiveX d'AutoCAD. Pour tre accepts par les mthodes et proprits
d'Automatisation ActiveX d'AutoCAD, le tableau doit tre un variant. Les donnes de tableau doivent tre traites par l'Automatisation ActiveX d'AutoCAD sous
forme de variant.
Remarque Dans AutoCAD, les tableaux d'entre VBA sont convertis automatiquement en variants. Ainsi, vous n'avez pas fournir un tableau de type Variant
en tant qu'entre des mthodes et proprits de l'Automatisation ActiveX lorsque vous les utilisez partir de VBA. Toutefois, tous les tableaux de sortie seront
sous forme de Variants et vous devez les traiter en consquence.
Fondements de l'Automatisation ActiveX
Utilisation de variants comme donnes d'un tableau
Envoyez-nous vos commentaires sur cette page.
L'Automatisation ActiveX d'AutoCAD fournit un utilitaire qui permet de convertir un tableau de donnes en variant. Il s'agit de la mthode CreateTypedArray, qui
cre un variant contenant un tableau de nombres entiers, de nombres virgule flottante, de doubles, etc. Vous pouvez transmettre le variant ainsi obtenu dans
une mthode ou proprit AutoCAD qui accepte un tableau de nombres en tant que variant.
La mthode CreateTypedArray prend comme entre le type de valeurs figurant dans le tableau et le tableau de donnes convertir. Elle renvoie le tableau de
valeurs en tant que variant.
Cration d'une courbe spline avec la mthode CreateTypedArray
Le code suivant convertit trois tableaux l'aide de CreateTypedArray : les coordonnes des points de lissage d'une spline, ainsi que la tangente de dbut et de
fin de la spline. Il transmet ensuite le variant la mthode AddSpline pour crer la courbe.
Sub Ch2_CreateSplineUsingTypedArray()
' This example creates a spline object in model space
' using the CreateTypedArray method.
Dim splineObj As AcadSpline
Dim startTan As Variant
Dim endTan As Variant
Dim fitPoints As Variant
Dim utilObj As Object ' late bind the Utility object
Set utilObj = ThisDrawing.Utility
' Define the Spline Object
utilObj.CreateTypedArray _
startTan, vbDouble, 0.5, 0.5, 0
utilObj.CreateTypedArray _
endTan, vbDouble, 0.5, 0.5, 0
utilObj.CreateTypedArray _
fitPoints, vbDouble, 0, 0, 0, 5, 5, 0, 10, 0, 0
Set splineObj = ThisDrawing.ModelSpace.AddSpline _
(fitPoints, startTan, endTan)
' Zoom in on the newly created spline
ZoomAll
End Sub
Fondements de l'Automatisation ActiveX
Conversion de tableaux en variants
Envoyez-nous vos commentaires sur cette page.
Les donnes de tableau sont renvoyes par l'Automatisation ActiveX d'AutoCAD sous forme de variant. Si vous connaissez le type de donnes du tableau, il
vous suffit d'accder au variant en tant que tableau. Mais si vous ne connaissez pas le type de donnes contenu dans le variant, utilisez les fonctions VBA
VarType ou Typename. Elles renvoient le type de donnes dans le variant Pour itrer via le tableau, vous pouvez utiliser l'instruction VBA For Each
Fondements de l'Automatisation ActiveX
Interprtation des tableaux de type Variant
Page 27 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Calcul de la distance entre deux points
Le code suivant montre comment calculer la distance entre deux points dfinis par l'utilisateur. Dans cet exemple, le type de donnes est connu parce que
toutes les coordonnes sont des doubles. Les coordonnes 3D reprsentent un tableau de doubles trois lments et les coordonnes 2D un tableau de
doubles deux lments.
Sub Ch2_CalculateDistance()
Dim point1 As Variant
Dim point2 As Variant
' Get the points from the user
point1 = ThisDrawing.Utility.GetPoint _
(, vbCrLf & "First point: ")
point2 = ThisDrawing.Utility.GetPoint _
(point1, vbCrLf & "Second point: ")
' Calculate the distance between point1 and point2
Dim x As Double, y As Double, z As Double
Dim dist As Double
x = point1(0) - point2(0)
y = point1(1) - point2(1)
z = point1(2) - point2(2)
dist = Sqr((Sqr((x ^ 2) + (y ^ 2)) ^ 2) + (z ^ 2))
'Display the resulting distance
MsgBox "The distance between the points is: " _
& dist, , "Calculate Distance"
End Sub
Envoyez-nous vos commentaires sur cette page.
Ce manuel a t rdig pour le langage de programmation VBA. Ainsi, les exemples de programmation et d'application sont crits en langage VBA. Pour
appliquer le mme code dans d'autres environnements de programmation, vous devez le mettre jour en fonction de cet environnement.
Reportez-vous la documentation de votre environnement de dveloppement pour vous aider convertir les exemples de code.
Remarque La cl de registre pour l'accs l'application COM pour AutoCAD 2007 est AutoCAD.Application.17.
Rubriques de cette section :
Conversion du code VBA en code VB
Fondements de l'Automatisation ActiveX
Utilisation d'autres langages de programmation
Envoyez-nous vos commentaires sur cette page.
Pour mettre jour un exemple de code afin de l'utiliser dans VB, vous devez faire rfrence la bibliothque de type d'AutoCAD. Pour effectuer cette opration
dans VB, choisissez l'option Rfrences du menu Outils pour ouvrir la bote de dialogue Rfrences. Dans cette bote de dialogue, slectionnez la bibliothque
de type pour AutoCAD, puis cliquez sur OK.
Dans l'exemple de code, remplacez toutes les rfrences ThisDrawing par une variable dfinie par l'utilisateur faisant rfrence au document actif. Pour
cela, dfinissez une variable pour l'application AutoCAD (acadApp) et pour le document actif (acadDoc). Dfinissez ensuite la variable d'application sur
l'application AutoCAD courante.
Si AutoCAD est excut, la fonction GetObject extrait l'objet Application AutoCAD lorsque vous indiquez le numro de version d'AutoCAD. Sinon, une erreur se
produit (dans cet exemple) ; elle est rcupre et supprime. La fonction CreateObject essaie ensuite de crer un objet Application AutoCAD. Si elle y parvient,
AutoCAD est dmarr ; sinon, une bote de message s'affiche avec une description de l'erreur.
Lorsque vous excutez plusieurs sessions d'AutoCAD, la fonction GetObject renvoie la premire instance d'AutoCAD dans la Table des objets en cours
d'excution de Windows. Reportez-vous au paragraphe sur la Table des objets en cours d'excution et la fonction GetObject dans la documentation de
Microsoft VBA pour savoir comment vrifier la session renvoye par GetObject.
Vous devez paramtrer la proprit Visible d'AutoCAD sur TRUE afin d'afficher la fentre de dessin d'&PRODNAME.
Si GetObject cre une nouvelle occurrence d'AutoCAD (autrement dit, AutoCAD n'tait pas encore lanc lorsque vous avez excut la fonction GetObject), il
n'est pas possible de dfinir Visible sur TRUE. Par consquent, l'application AutoCAD est invisible et n'apparat mme pas dans la barre des tches de
Windows.
Remarque Utilisez des identificateurs ProgID dpendants d'une version. Si une fonction CreateObject ou GetObject utilise un identificateur ProgID indpendant
d'une version, changez de fonction pour en utiliser un qui soit dpendant d'une version. Par exemple, si vous utilisez CreateObject, remplacez CreateObject
("AutoCAD.Application") par CreateObject ("AutoCAD.Application.17"). De plus, si une mthode GetInterfaceObject utilise un identificateur ProgID indpendant
d'une version, vous devez changer de mthode afin d'en utiliser un qui soit dpendant d'une version.
Connexion AutoCAD partir de Visual Basic 6
Fondements de l'Automatisation ActiveX
Conversion du code VBA en code VB
Page 28 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
L'exemple de code suivant utilise les proprits Clear et Description de Err. Si votre environnement de dveloppement ne prend pas en charge ces proprits,
vous devez modifier l'exemple en consquence.
Sub Ch2_ConnectToAcad()
Dim acadApp As AcadApplication
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application.17")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application.17")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
MsgBox "Now running " + acadApp.Name + _
" version " + acadApp.Version
End Sub
Dfinissez ensuite la variable de document sur l'objet Document dans l'application AutoCAD. Cet objet est renvoy par la proprit ActiveDocument de l'objet
Application.
Dim acadDoc as AcadDocument
Set acadDoc = acadApp.ActiveDocument
A ce stade, vous devez utiliser la variable acadDoc pour faire rfrence au dessin AutoCAD courant.
Exemple de code comparatif VBA / VB
L'exemple de code suivant montre comment crer une ligne dans VBA et VB :
Cration d'une ligne avec VBA :
Sub Ch2_AddLineVBA()
' This example adds a line
' in model space
Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
' Define the start and end
' points for the line
startPoint(0) = 1
startPoint(1) = 1
startPoint(2) = 0
endPoint(0) = 5
endPoint(1) = 5
endPoint(2) = 0
' Create the line in model space
Set lineObj = ThisDrawing. _
ModelSpace.AddLine _
(startPoint, endPoint)
' Zoom in on the newly created line
ZoomAll
End Sub
Cration d'une ligne avec VB :
Sub Ch2_AddLineVB()
On Error Resume Next
' Connect to the AutoCAD application
Dim acadApp As AcadApplication
Set acadApp = GetObject _
(, "AutoCAD.Application.17")
If Err Then
Err.Clear
Set acadApp = CreateObject _
("AutoCAD.Application0.17")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
' Connect to the AutoCAD drawing
Dim acadDoc As AcadDocument
Set acadDoc = acadApp.ActiveDocument
' Establish the endpoints of the line
Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = 1
startPoint(1) = 1
startPoint(2) = 0
endPoint(0) = 5
endPoint(1) = 5
endPoint(2) = 0
' Create a Line object in model space
Set lineObj = acadDoc.ModelSpace.AddLine _
(startPoint, endPoint)
Page 29 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
ZoomAll
acadApp.visible = True
End Sub
Envoyez-nous vos commentaires sur cette page.
Ce chapitre prsente les fondements du dveloppement d'une application dans AutoCAD. Il explique comment contrler et utiliser efficacement l'environnement
AutoCAD.
Rubriques de cette section :
Ouverture, enregistrement et fermeture de dessins
Dfinir les prfrences AutoCAD
Contrle de la fentre d'application
Contrle des fentres de dessin
Redfinition des objets actifs
Dfinition et renvoi de variables systme
Dessin avec prcision
Demande d'entre utilisateur
Accs la ligne de commande d'AutoCAD
Etat sans document ouvert
Importation d'autres formats de fichier
Exportation vers d'autres formats de fichier
Contrle de l'environnement AutoCAD
Envoyez-nous vos commentaires sur cette page.
La collection Documents et l'objet Document permettent d'accder aux fonctions du fichier AutoCAD
.
Pour crer un dessin ou ouvrir un dessin existant, utilisez les mthodes de la collection Documents La mthode Add cre un dessin et l'ajoute la collection
Documents. La mthode Open ouvre un dessin existant. Il existe galement une mthode Close dans la collection Documents qui ferme tous les dessins
ouverts dans la session AutoCAD.
Utilisez la mthode Save ou SaveAs pour enregistrer un dessin. Vous souhaiterez parfois vrifier que le dessin active ne comporte pas de modifications non
enregistres. Cette vrification est conseille avant de quitter la session AutoCAD ou de commencer un nouveau dessin. Utilisez la proprit Saved pour vrifier
que le dessin actif ne contient pas de modifications non enregistres.
Pour importer ou exporter un dessin, appliquez les mthodes Import et Export l'objet Document.
Ouverture d'un dessin existant
Cet exemple utilise la mthode Open pour ouvrir un dessin existant. La fonction VBA Dir sert vrifier que le fichier existe avant d'essayer de l'ouvrir. Vous
devez renommer le fichier de dessin ou modifier son chemin pour dsigner un fichier AutoCAD existant sur votre systme.
Sub Ch3_OpenDrawing()
Dim dwgName As String
dwgName = "c:\campus.dwg"
If Dir(dwgName) <> "" Then
ThisDrawing.Application.Documents.Open dwgName
Else
MsgBox "File " & dwgName & " does not exist."
End If
End Sub
Cration d'un nouveau dessin
L'exemple suivant utilise la mthode Add pour crer un dessin partir du gabarit par dfaut.
Sub Ch3_NewDrawing()
Dim docObj As AcadDocument
Set docObj = ThisDrawing.Application.Documents.Add
End Sub
Contrle de l'environnement AutoCAD
Ouverture, enregistrement et fermeture de dessins
Page 30 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Enregistrement du dessin actif
Cet exemple enregistre le dessin actif sous son nom actuel, puis sous un nouveau nom.
Sub Ch3_SaveActiveDrawing()
' Save the active drawing under the current name
ThisDrawing.Save
' Save the active drawing under a new name
ThisDrawing.SaveAs "MyDrawing.dwg"
End Sub
Recherche de modifications non enregistres dans un dessin
L'exemple ci-aprs vrifie si des modifications n'ont pas t enregistres, puis demande l'utilisateur si le dessin peut tre enregistr. S'il ne peut pas l'tre,
passez directement la fin; s'il peut l'tre, utilisez la mthode Save pour l'enregistrer comme indiqu ci-aprs:
Sub Ch3_TestIfSaved()
If Not (ThisDrawing.Saved) Then
If MsgBox("Do you wish to save this drawing?", _
vbYesNo) = vbYes Then
ThisDrawing.Save
End If
End If
End Sub
Envoyez-nous vos commentaires sur cette page.
Neuf objets se rapportent des options, chacun d'eux reprsentant un onglet de la bote de dialogue Options. Ces objets permettent d'accder toutes les
options de la bote de dialogue Options enregistres dans la base de registre. Vous pouvez personnaliser de nombreux paramtres d'AutoCAD l'aide des
proprits trouves sous ces objets. Il s'agit des objets suivants :
PreferencesDisplay
PreferencesDrafting
PreferencesFiles
PreferencesOpenSave
PreferencesOutput
PreferencesProfiles
PreferencesSelection
PreferencesSystem
PreferencesUser
Ces objets sont accessibles par l'objet Preferences Pour accder l'objet Preferences, utilisez la proprit Preferences de l'objet Application :
Dim acadPref as AcadPreferences
Set acadPref = ThisDrawing.Application.Preferences
Vous pouvez ensuite accder l'un des objets Preferences en faisant appel aux proprits Display, Drafting, Files, OpenSave, Output, Profile, Selection,
System et User.
Affichage des rticules en plein cran
Sub Ch2_PrefsSetCursor()
' This example sets the crosshairs of the AutoCAD drawing cursor
' to full screen.
' Access the Preferences object
Dim acadPref As AcadPreferences
Set acadPref = ThisDrawing.Application.Preferences
' Use the CursorSize property to set the size of the crosshairs
acadPref.Display.CursorSize = 100
End Sub
Affichage du menu cran et des barres de dfilement
Sub Ch2_PrefsSetDisplay()
' This example enables the screen menu and disables the scroll
' bars with the DisplayScreenMenu and DisplayScrollBars
' properties.
' Access the Preferences object
Dim acadPref As AcadPreferences
Set acadPref = ThisDrawing.Application.Preferences
' Display the screen menu and disable scroll bars
acadPref.Display.DisplayScreenMenu = True
acadPref.Display.DisplayScrollBars = False
End Sub
Rubriques de cette section :
Prfrences de base de donnes
Contrle de l'environnement AutoCAD
Dfinir les prfrences AutoCAD
Page 31 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
Outre les neuf objets Preferences, il existe un objet DatabasePreferences qui contient toutes les options enregistres dans le dessin. Cet objet distinct a pour
rle de rendre les options enregistres dans le dessin disponibles pour les applications qui accdent aux dessins AutoCAD, sans lancer au pralable
l'application AutoCAD (applications ObjectDBX).
L'objet DatabasePreferences se trouve sous l'objet Document.
Contrle de l'environnement AutoCAD
Prfrences de base de donnes
Envoyez-nous vos commentaires sur cette page.
La possibilit de contrler la fentre d'application permet aux dveloppeurs de crer des applications intelligentes et performantes. Il faudra parfois, pour votre
application, rduire la fentre AutoCAD, notamment lorsque le code excute des tches dans une autre application comme Excel. Vous devrez, en outre,
vrifier frquemment l'tat de la fentre AutoCAD avant d'excuter des tches comme l'appel de saisie par l'utilisateur.
A l'aide des mthodes et des proprits trouves sous l'objet Application, vous pouvez modifier la position, la taille et la visibilit de la fentre d'application.
Vous pouvez galement utiliser la proprit WindowState pour rduire ou agrandir la fentre d'application ou encore, vrifier son tat courant.
Positionnement et dimension de la fentre d'application
Cet exemple utilise les proprits WindowTop, WindowLeft, Width et Height pour placer la fentre d'application AutoCAD dans l'angle suprieur gauche de
l'cran et lui donner une largeur et une hauteur de 400 pixels.
Sub Ch3_PositionApplicationWindow()
ThisDrawing.Application.WindowTop = 0
ThisDrawing.Application.WindowLeft = 0
ThisDrawing.Application.width = 400
ThisDrawing.Application.height = 400
End Sub
Agrandissement de la fentre d'application
Sub Ch3_MaximizeApplicationWindow()
ThisDrawing.Application.WindowState = acMax
End Sub
Rduction de la fentre d'application
Sub Ch3_MinimizeApplicationWindow()
ThisDrawing.Application.WindowState = acMin
End Sub
Lecture de l'tat de la fentre d'application
Le code suivant vrifie l'tat de la fentre d'application et l'indique l'utilisateur dans une bote de message.
Sub Ch3_CurrentWindowState()
Dim CurrWindowState As Integer
Dim msg As String
CurrWindowState = ThisDrawing.Application.WindowState
msg = Choose(CurrWindowState, "normal", _
"minimized", "maximized")
MsgBox "The application window is " + msg
End Sub
Masquage de la fentre d'application
Le code suivant utilise la proprit Visible pour rendre l'application AutoCAD invisible pour l'utilisateur final.
Sub Ch3_HideWindowState()
ThisDrawing.Application.Visible = False
End Sub
Contrle de l'environnement AutoCAD
Contrle de la fentre d'application
Envoyez-nous vos commentaires sur cette page.
Contrle de l'environnement AutoCAD
Contrle des fentres de dessin
Page 32 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
A l'instar de la fentre d'application d'AutoCAD, vous pouvez rduire, agrandir, repositionner, redimensionner et contrler l'tat d'une fentre de document. Vous
pouvez aussi changer l'affichage du dessin dans une fentre en utilisant des vues, des fentres et des mthodes de zoom.
ActiveX d'AutoCAD propose de nombreuses mthodes permettant d'afficher des vues du dessin. Vous pouvez ainsi contrler l'affichage du dessin pour passer
rapidement d'une zone l'autre et visualiser le rsultat des modifications sur la totalit du dessin. Vous pouvez effectuer un zoom pour modifier
l'agrandissement ou un panoramique pour rorganiser l'affichage dans la zone graphique ; de mme, vous pouvez enregistrer une vue puis la restaurer pour
effectuer le trac ou afficher des dtails spcifiques. Enfin, vous pouvez afficher plusieurs vues simultanment dans des fentres en mosaque.
Rubriques de cette section :
Positionnement et dimension de la fentre de document
Utilisation du zoom
Utilisation de vues nommes
Disposition des fentres en mosaque
Mise jour de la gomtrie de la fentre de document
Envoyez-nous vos commentaires sur cette page.
Utilisez l'objet Document pour changer la position et la taille d'une fentre de document. La fentre de document peut tre rduite ou agrandie l'aide de la
proprit WindowState; son tat courant peut tre lu l'aide de cette mme proprit.
Positionnement de la fentre de document
Par exemple, l'aide des proprits Width et Height, le code suivant attribue la fentre Document active une largeur et une hauteur de 400 pixels.
Sub Ch3_SizeDocumentWindow()
ThisDrawing.Width = 400
ThisDrawing.Height = 400
End Sub
Agrandissement de la fentre de document active
Sub Ch3_MaximizeDocumentWindow()
ThisDrawing.WindowState = acMax
End Sub
Rduction de la fentre de document active
Sub Ch3_MinimizeDocumentWindow()
ThisDrawing.WindowState = acMin
End Sub
Lecture de l'tat de la fentre Document active
Sub Ch3_CurrentWindowState()
Dim CurrWindowState As Integer
Dim msg As String
CurrWindowState = ThisDrawing.WindowState
msg = Choose(CurrWindowState, "normal", _
"minimized", "maximized")
MsgBox "The document window is " + msg
End Sub
Contrle de l'environnement AutoCAD
Positionnement et dimension de la fentre de document
Envoyez-nous vos commentaires sur cette page.
Une vue correspond un agrandissement, une position et une orientation spcifiques d'un dessin. La mthode la plus simple pour changer de vue consiste
agrandir ou rduire la taille de l'image affiche dans la zone graphique l'aide de l'une des nombreuses options de zoom proposes par AutoCAD. Pour de
plus amples informations sur les options de zoom dans AutoCAD, reportez-vous la section Agrandissement d'une vue (zoom) du Manuel d'utilisation.
Rubriques de cette section :
Dfinition d'une fentre de zoom
Mise l'chelle d'une vue
Centrage des objets
Contrle de l'environnement AutoCAD
Utilisation du zoom
Page 33 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Affichage des limites et de l'tendue du dessin
Envoyez-nous vos commentaires sur cette page.
Pour effectuer rapidement un zoom avant sur une zone, il suffit d'indiquer les coins qui dfinissent cette zone. Pour effectuer un zoom avant sur une zone en
spcifiant ses contours, utilisez la mthode ZoomWindow ou ZoomPickWindow La mthode ZoomWindow vous permet de dfinir, par programmation, deux
points reprsentant la fentre de zoom. La mthode ZoomPickWindow a besoin de deux points, choisis par l'utilisateur. Ces deux points deviennent la fentre
de zoom.
Zoom du dessin actif dans une fentre dfinie par deux points
Sub Ch3_ZoomWindow()
' ZoomWindow
MsgBox "Perform a ZoomWindow with:" & vbCrLf & _
"1.3, 7.8, 0" & vbCrLf & _
"13.7, -2.6, 0", , "ZoomWindow"
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
point1(0) = 1.3: point1(1) = 7.8: point1(2) = 0
point2(0) = 13.7: point2(1) = -2.6: point2(2) = 0
ThisDrawing.Application.ZoomWindow point1, point2
' ZoomPickWindow
MsgBox "Perform a ZoomPickWindow", , "ZoomPickWindow"
ThisDrawing.Application.ZoomPickWindow
End Sub
Contrle de l'environnement AutoCAD
Dfinition d'une fentre de zoom
Envoyez-nous vos commentaires sur cette page.
AutoCAD permet d'agrandir ou de rduire la taille de l'image en fonction d'une chelle dtermine. Il suffit d'indiquer un facteur de zoom, que vous pouvez
dfinir de trois faons:
Par rapport aux limites du dessin
Par rapport la vue courante
Par rapport aux units de l'espace papier
Pour mettre une vue l'chelle, utilisez la mthode ZoomScaled Cette mthode requiert la saisie de deux paramtres : l'chelle et le type d'chelle. L'chelle
est reprsente par un simple nombre. Il est interprt par AutoCAD selon le type d'chelle choisi.
Le type d'chelle indique si la valeur d'chelle est dtermine en fonction des limites du dessin, de la vue courante ou des units de l'espace papier. Pour
effectuer une mise l'chelle en fonction des limites du dessin, utilisez la constante acZoomScaledAbsolute. Pour effectuer une mise l'chelle en fonction
de la vue courante, utilisez la constante acZoomScaledRelative. Pour effectuer une mise l'chelle en fonction des units de l'espace papier, utilisez la
constante acZoomScaledRelativePSpace.
Zoom avant sur le dessin actif l'aide d'une chelle spcifique
Sub Ch3_ZoomScaled()
MsgBox "Perform a ZoomScaled using:" & vbCrLf & _
"Scale Type: acZoomScaledRelative" & vbCrLf & _
"Scale Factor: 2", , "ZoomScaled"
Dim scalefactor As Double
Dim scaletype As Integer
scalefactor = 2
scaletype = acZoomScaledRelative
ThisDrawing.Application.ZoomScaled scalefactor, scaletype
End Sub
Contrle de l'environnement AutoCAD
Mise l'chelle d'une vue
Envoyez-nous vos commentaires sur cette page.
Zoom avant sur le dessin actif vers le centre spcifi Vous pouvez dplacer un point spcifique de votre dessin au centre de la zone graphique. La mthode
ZoomCenter s'avre trs utile pour redimensionner un objet et le placer au centre de la fentre. Elle vous permet de spcifier une taille d'chelle en entrant un
facteur d'agrandissement relatif la vue courante.
Contrle de l'environnement AutoCAD
Centrage des objets
Page 34 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Zoom avant du dessin actif sur un point central spcifique
L'exemple suivant montre le rsultat obtenu aprs utilisation de la mthode ZoomCenter pour afficher une vue de la mme taille, puis deux fois plus grande :
Sub Ch3_ZoomCenter()
MsgBox "Perform a ZoomCenter using:" & vbCrLf & _
"Center 3, 3, 0" & vbCrLf & _
"Magnification: 10", , "ZoomCenter"
Dim Center(0 To 2) As Double
Dim magnification As Double
Center(0) = 3: Center(1) = 3: Center(2) = 0
magnification = 10
ThisDrawing.Application.ZoomCenter Center, magnification
End Sub
Envoyez-nous vos commentaires sur cette page.
Utilisez la mthode ZoomAll, ZoomExtents ou ZoomPrevious pour afficher une vue en fonction des limites du dessin ou de l'tendue des objets.
La mthode ZoomAll affiche le dessin entier. Si les objets s'tendent au-del des limites de ce dessin, elle affiche l'tendue des objets. En revanche, elle affiche
les limites du dessin si vous avez cr les objets l'intrieur de ces limites.
La mthode ZoomExtents calcule les facteurs de zoom en fonction de l'tendue de la fentre active et non de la vue courante. La fentre active tant en
gnral entirement visible, vous pouvez percevoir les rsultats aisment et intuitivement. Nanmoins, si vous utilisez les mthodes Zoom dans l'espace objet
tout en travaillant dans une fentre de l'espace papier et que vous effectuez un zoom avant au-del des contours de cette fentre, une partie de la zone sur
laquelle vous avez effectu le zoom peut ne pas tre visible.
La mthode ZoomExtents modifie la vue afin d'englober l'tendue du dessin courant. Dans certains cas (pour les mthodes ZoomAll et ZoomExtents), cela peut
entraner une rgnration. Or, la commande de rgnration ne s'effectue pas sur les calques gels ou dsactivs. Si le dessin ne contient pas d'objet,
ZoomExtents en affiche les limites.
Dans les vues en 3D, les mthodes ZoomAll et ZoomExtents aboutissent au mme rsultat. Les lignes de construction infinies (droites) et les demi-droites n'ont
aucune incidence sur le mode de fonctionnement de ces options.
ZoomPrevious redonne son tendue prcdente la fentre courante.
Reportez-vous la section Agrandissement d'une vue (zoom) du Manuel d'utilisation pour voir des illustrations montrant le fonctionnement des options de
zoom.
Zoom avant sur le dessin actif pour affichage de l'intgralit du contenu et de l'tendue du dessin
Sub Ch3_ZoomAll()
' ZoomAll
MsgBox "Perform a ZoomAll", , "ZoomAll"
ThisDrawing.Application.ZoomAll
' ZoomExtents
MsgBox "Perform a ZoomExtents", , "ZoomExtents"
ThisDrawing.Application.ZoomExtents
End Sub
Contrle de l'environnement AutoCAD
Affichage des limites et de l'tendue du dessin
Envoyez-nous vos commentaires sur cette page.
AutoCAD permet de nommer et d'enregistrer les vues que vous souhaitez rutiliser. Vous pouvez supprimer toute vue dont vous n'avez plus besoin.
Pour crer une vue, utilisez la mthode Add, qui ajoute une nouvelle vue la collection Views Lorsque vous enregistrez le dessin, la position de visualisation et
l'chelle de la vue sont enregistres.
Une vue est nomme lors de sa cration. Les noms de vues peuvent contenir jusqu' 255 caractres, notamment des lettres, des chiffres, le signe dollar ($), le
trait d'union () et le caractre de soulignement (_).
Pour supprimer une vue nomme, utilisez la mthode Delete. Pour l'objet View, cette mthode repose sur l'objet et non sur son parent.
Ajout d'un objet View
Le code suivant ajoute un objet View (viewObj).
Sub Ch3_AddView()
' Add a named view to the views collection
Dim viewObj As AcadView
Contrle de l'environnement AutoCAD
Utilisation de vues nommes
Page 35 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Set viewObj = ThisDrawing.Views.Add("View1")
End Sub
Suppression d'un objet View
Le code suivant supprime un objet View (viewObj).
Sub Ch3_DeleteView()
Dim viewObj As AcadView
Set viewObj = ThisDrawing.Views("View1")
' Delete the view
viewObj.Delete
End Sub
Suppression d'une vue nomme de la collection Views
Cet exemple de code supprime une vue nomme de la collection Views.
Sub Ch3_DeleteViewFromCollection()
ThisDrawing.Views("View1").Delete
End Sub
Envoyez-nous vos commentaires sur cette page.
Lorsque vous commencez un nouveau dessin, AutoCAD utilise en principe une seule fentre, qui occupe toute la zone graphique. Vous pouvez diviser la zone
de dessin pour afficher simultanment plusieurs fentres. Par exemple, si la vue gnrale et la vue dtaille sont toutes deux visibles l'cran, vous pouvez
vrifier l'aspect gnral du dessin au fur et mesure que vous modifiez certains de ses dtails. Dans chaque fentre de la mosaque, vous avez la possibilit
d'effectuer les oprations suivantes :
Zoom ou panoramique, activation des modes d'affichage de la grille, d'accrochage la grille et d'icne SCU et restauration des vues nommes dans chaque
fentre
Bascule d'une fentre l'autre au cours de l'excution d'une commande
Dsignation d'une configuration de fentres afin de pouvoir la rutiliser
AutoCAD permet de disposer les fentres en mosaque selon diverses configurations. La disposition des fentres est fonction du nombre et de la taille des vues
que vous souhaitez afficher.
Pour de plus amples informations et des illustrations sur les fentres, reportez-vous la section Dfinition des fentres de l'espace objet du Manuel
d'utilisation.
Rubriques de cette section :
Fractionnement de la fentre active
Slection d'une autre fentre en mosaque comme fentre courante
Contrle de l'environnement AutoCAD
Disposition des fentres en mosaque
Envoyez-nous vos commentaires sur cette page.
Pour fractionner la fentre active, utilisez la mthode Split Cette mthode requiert un paramtre, savoir le type de configuration choisi pour le fractionnement.
Pour spcifier la configuration de la fentre, utilisez l'une des constantes suivantes qui correspondent aux configurations par dfaut illustres prcdemment :
acViewport2Horizontal, acViewport2Vertical, acViewport3Left, acViewport3Right, acViewport3Horizontal, acViewport3Vertical,
acViewport3Above, acViewport3Below ou acViewport4.
Pour de plus amples informations sur la modification de la configuration des fentres, reportez-vous la section Dfinition des fentres de l'espace objet du
Manuel d'utilisation.
Fractionnement d'une fentre en deux panneaux horizontaux
L'exemple suivant cre une fentre et la fractionne en deux fentres horizontales.
Sub Ch3_SplitAViewport()
' Create a new viewport
Dim vportObj As AcadViewport
Set vportObj = ThisDrawing.Viewports.Add("TEST_VIEWPORT")
' Split vportObj into 2 horizontal windows
vportObj.Split acViewport2Horizontal
' Now set vportObj to be the active viewport
ThisDrawing.ActiveViewport = vportObj
End Sub
Contrle de l'environnement AutoCAD
Fractionnement de la fentre active
Page 36 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
La fentre courante est celle dans laquelle vous spcifiez des points et slectionnez des objets. Pour rendre une fentre active, utilisez la proprit
ActiveViewport
Vous pouvez effectuer une itration via des fentres existantes afin de retrouver une fentre spcifique. Pour cela, spcifiez le nom de la configuration de
fentre dans laquelle se trouve la fentre voulue l'aide de la proprit Name. S'il s'agit d'une configuration fractionne, chaque fentre de cette configuration
peut tre identifie via les proprits LowerLeftCorner et UpperRightCorner
Les proprits LowerLeftCorner et UpperRightCorner reprsentent la position graphique de la fentre l'cran. Ces proprits sont dfinies de la faon
suivante (en prenant un fractionnement en quatre fentres comme exemple) :
Dans cet exemple :
Viewport 1-LowerLeftCorner = (0, .5), UpperRightCorner = (.5, 1)
Viewport 2-LowerLeftCorner = (.5, .5), UpperRightCorner = (1, 1)
Viewport 3-LowerLeftCorner = (0, 0), UpperRightCorner = (.5, .5)
Viewport 4-LowerLeftCorner = (.5, 0), UpperRightCorner = (1, .5)
Fractionnement d'une fentre, puis lancement d'une itration sur les fentres
Dans cet exemple, une fentre est fractionne en quatre panneaux. Une itration est ensuite effectue sur toutes les fentres du dessin, puis le nom et les
coins infrieur gauche et suprieur droit de chaque fentre sont affichs.
Sub Ch3_IteratingViewportWindows()
' Create a new viewport and make it active
Dim vportObj As AcadViewport
Set vportObj = ThisDrawing.Viewports.Add("TEST_VIEWPORT")
ThisDrawing.ActiveViewport = vportObj
' Split vport into 4 windows
vportObj.Split acViewport4
' Iterate through the viewports,
' highlighting each viewport and displaying
' the upper right and lower left corners
' for each.
Dim vport As AcadViewport
Dim LLCorner As Variant
Dim URCorner As Variant
For Each vport In ThisDrawing.Viewports
ThisDrawing.ActiveViewport = vport
LLCorner = vport.LowerLeftCorner
URCorner = vport.UpperRightCorner
MsgBox "Viewport: " & vport.Name & " is now active." & _
vbCrLf & "Lower left corner: " & _
LLCorner(0) & ", " & LLCorner(1) & vbCrLf & _
"Upper right corner: " & _
URCorner(0) & ", " & URCorner(1)
Next vport
End Sub
Contrle de l'environnement AutoCAD
Slection d'une autre fentre en mosaque comme fentre courante
Envoyez-nous vos commentaires sur cette page.
La plupart des actions ralises par l'intermdiaire de l'Automatisation ActiveX d'AutoCAD modifient les lments affichs dans le dessin AutoCAD. Or, toutes
ces actions ne mettent pas immdiatement jour l'affichage du dessin. Vous pouvez en effet apporter plusieurs modifications au dessin sans devoir attendre
qu'il soit mis jour aprs chacune d'elles. Vous pouvez aussi regrouper vos actions et effectuer un seul appel pour mettre jour l'affichage lorsque vous avez
termin.
Dans ce contexte, les mthodes Update et Regen mettent jour l'affichage.
La mthode Update permet de mettre jour l'affichage d'un seul objet la fois. La mthode Regen rgnre tout le dessin et recalcule les coordonnes de
l'cran et la rsolution d'affichage de tous les objets. De plus, cette commande rindexe la base de donnes de dessins pour optimiser l'affichage et la slection
Contrle de l'environnement AutoCAD
Mise jour de la gomtrie de la fentre de document
Page 37 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
des objets.
Mise jour de l'affichage d'un objet
Dans cet exemple, l'utilisateur cre un cercle. Il est ensuite mis jour l'aide de la mthode Update de faon tre visible dans AutoCAD.
Sub Ch3_UpdateDisplay()
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 1: center(1) = 1: center(2) = 0
radius = 1
' Create the circle
Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius)
' Update the circle
circleObj.Update
End Sub
Envoyez-nous vos commentaires sur cette page.
Les modifications apportes aux objets actifs comme le calque et le type de ligne actifs apparaissent immdiatement. Toutefois, certains objets actifs doivent
tre rinitialiss pour que les modifications soient visibles. Il s'agit notamment de la fentre, du style de texte, du systme de coordonnes utilisateur (SCU)
actifs. Si des modifications sont apportes l'un de ces objets, il doit tre rinitialis et la mthode Regen applique pour que les modifications prennent effet.
Pour rinitialiser ce type d'objet, dfinissez la proprit ActiveTextStyle, ActiveUCS ou ActiveViewport, en utilisant l'objet mis jour.
Redfinition de la fentre active
Dans l'exemple suivant, l'affichage de la grille est modifi dans la fentre active et la fentre est redfinie en tant que fentre active pour faire apparatre le
changement.
Sub Ch3_ResetActiveViewport()
' Toggle the setting of the grid display
' for the active viewport
ThisDrawing.ActiveViewport.GridOn = _
Not (ThisDrawing.ActiveViewport.GridOn)
' Reset the active viewport
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
End Sub
Contrle de l'environnement AutoCAD
Redfinition des objets actifs
Envoyez-nous vos commentaires sur cette page.
L'objet Document fournit les mthodes SetVariable et GetVariable pour dfinir et extraire des variables systme AutoCAD. Par exemple, pour assigner un entier
la variable systme MAXSORT, utilisez le code suivant :
ThisDrawing.SetVariable "MAXSORT", 100
Contrle de l'environnement AutoCAD
Dfinition et renvoi de variables systme
Envoyez-nous vos commentaires sur cette page.
Dans AutoCAD, vous pouvez crer des dessins comportant des figures gomtriques exactes sans effectuer de calculs complexes. D'autre part, dans de
nombreux cas, vous pouvez spcifier des points prcis sans mme connatre leurs coordonnes. Sans quitter l'cran graphique, vous pouvez effectuer des
calculs sur votre dessin et afficher divers types d'informations d'tat.
Actuellement, l'Automatisation ActiveX d'AutoCAD ne fournit pas de mthode pour les fonctions AutoCAD suivantes :
Dfinition de l'accrochage aux objets
Spcification d'intervalles mesurs sur des objets et fractionnement des objets en segments
Contrle de l'environnement AutoCAD
Dessin avec prcision
Page 38 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Rubriques de cette section :
Orientation de la grille d'accrochage et de la grille normale
Utilisation du mode orthogonal
Traage de droites
Calcul de valeurs et de positions de points
Calcul d'aires
Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser la grille comme repre visuel et activer le mode rsolution pour limiter les mouvements du curseur. Outre le rglage de l'espacement, vous
pouvez orienter la grille d'accrochage et la grille normale. Vous pouvez faire pivoter l'alignement ou le dfinir afin de pouvoir l'utiliser avec des dessins
isomtriques.
Lorsque vous devez tracer des lments en respectant un alignement ou un angle spcifique, vous pouvez changer l'orientation de la grille d'accrochage.
Lorsque vous rorientez la grille d'accrochage, le centre de l'axe de rotation devient le point de base. Si vous devez aligner un motif de hachures, vous pouvez
changer ce point de base (gnralement le point de coordonnes 0,0).
Pour faire pivoter l'angle d'accrochage, utilisez la proprit SnapRotationAngle Pour changer le point de base de l'axe de rotation, utilisez la proprit
SnapBasePoint
Remarque Ces deux proprits requirent l'utilisation de la mthode Update pour mettre jour la fentre AutoCAD.
Pour de plus amples informations sur l'utilisation et la configuration des grilles, et de la rsolution, reportez-vous la section Rglage de la grille et de la
rsolution du Manuel d'utilisation.
Modification du point de base d'accrochage et de l'angle de rotation
Dans cet exemple, le point de base d'accrochage est dfini sur (1,1) et l'angle de rotation de la grille d'accrochage sur 30 degrs. La grille est active de faon
faire apparatre les changements.
Sub Ch3_ChangeSnapBasePoint()
' Turn on the grid for the active viewport
ThisDrawing.ActiveViewport.GridOn = True
' Change the snap base point to 1, 1
Dim newBasePoint(0 To 1) As Double
newBasePoint(0) = 1: newBasePoint(1) = 1
ThisDrawing.ActiveViewport.SnapBasePoint = newBasePoint
' Change the snap rotation angle to 30 degrees (0.575 radians)
Dim rotationAngle As Double
rotationAngle = 0,575
ThisDrawing.ActiveViewport.SnapRotationAngle = rotationAngle
' reset the viewport
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
End Sub
Contrle de l'environnement AutoCAD
Orientation de la grille d'accrochage et de la grille normale
Envoyez-nous vos commentaires sur cette page.
Lorsque vous tracez des lignes ou dplacez des objets, le mode orthogonal permet de limiter les mouvements du curseur aux axes horizontal et vertical.
(L'alignement orthogonal dpend de l'angle appliqu la grille d'accrochage ou du SCU courant.) Le mode orthogonal est utile pour effectuer des oprations
exigeant la slection d'un deuxime point. Il sert non seulement dfinir un alignement vertical ou horizontal, mais aussi crer des lments parallles ou
placs intervalles rguliers.
Le mode orthogonal d'AutoCAD permet de gagner du temps. Si, par exemple, vous souhaitez tracer un ensemble de lignes perpendiculaires, il suffit d'activer ce
mode avant de commencer dessiner. Vous pourrez ensuite dessiner les lignes trs rapidement : elles seront ncessairement perpendiculaires, les seules
directions possibles tant celles des axes.
Pendant que vous dplacez le curseur, la ligne lastique qui matrialise les dplacements s'oriente selon la direction de l'axe le plus proche du curseur.
Contrle de l'environnement AutoCAD
Utilisation du mode orthogonal
Page 39 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
AutoCAD ignore le mode orthogonal dans les vues en perspective ou lorsque vous tapez des coordonnes sur la ligne de commande ou activez un mode
d'accrochage aux objets.
Pour activer ou dsactiver le mode orthogonal, utilisez la proprit OrthoOn Cette proprit requiert une valeur boolenne en entre. Entrez TRUE pour activer
le mode orthogonal et FALSE pour le dsactiver. Par exemple, l'instruction suivante active le mode orthogonal pour la fentre active :
ThisDrawing.ActiveViewport.OrthoOn = True
Envoyez-nous vos commentaires sur cette page.
AutoCAD permet de crer des lignes de construction s'tendant l'infini dans une ou deux directions. Les lignes de construction qui s'tendent dans une
direction sont appeles des demi-droites. Les lignes de construction qui s'tendent dans les deux directions sont appeles des demi-droites. Ces droites
peuvent servir de rfrence pour crer d'autres objets. Elles sont, par exemple, utiles pour dterminer le centre d'un triangle, crer plusieurs vues d'un mme
lment ou dfinir des intersections temporaires destines aux oprations d'accrochage.
Rubriques de cette section :
Construction de droites
Requte de droites
Cration de demi-droites
Requte de demi-droites
Contrle de l'environnement AutoCAD
Traage de droites
Envoyez-nous vos commentaires sur cette page.
Une droite peut se situer n'importe o dans un espace 3D et s'tendre l'infini dans les deux directions. Pour construire une droite, utilisez la mthode
AddXLine Cette mthode dfinit une ligne suivant une mthode deux points ; vous entrez ou spcifiez deux points pour dfinir l'orientation de la ligne. Le
premier de ces points, l'origine, est considr comme le milieu de la droite.
Ajout d'une ligne de construction
L'exemple de code suivant cre un objet XLine partir des deux points (5, 0, 0) et (1,1,0).
Sub Ch3_AddXLine()
Dim xlineObj As AcadXline
Dim basePoint(0 To 2) As Double
Dim directionVec(0 To 2) As Double
' Define the xline
basePoint(0) = 2#: basePoint(1) = 2#: basePoint(2) = 0#
directionVec(0) = 1#: directionVec(1) = 1#: directionVec(2) = 0#
' Create the xline in model space
Set xlineObj = ThisDrawing.ModelSpace.AddXLine _
(basePoint, directionVec)
ThisDrawing.Application.ZoomAll
End Sub
Contrle de l'environnement AutoCAD
Construction de droites
Envoyez-nous vos commentaires sur cette page.
Une fois la droite construite, vous pouvez rechercher son premier point l'aide de la proprit BasePoint Le second point utilis pour construire la droite n'est
pas enregistr avec l'objet. C'est pourquoi vous devez utiliser la proprit DirectionVector pour obtenir le vecteur de direction de la ligne.
Requte dans une ligne de construction
Dans cet exemple, le point de base et le vecteur de direction de la ligne cre prcdemment sont recherchs dans Ajout d'une ligne de construction
Dim BPoint As Variant
Dim Vector As Variant
BPoint = xlineObj.basePoint
Contrle de l'environnement AutoCAD
Requte de droites
Page 40 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vector = xlineObj.DirectionVector
Envoyez-nous vos commentaires sur cette page.
Une demi-droite est une ligne de l'espace 3D commenant au niveau d'un point donn et s'tendant l'infini. Contrairement aux droites qui partent dans deux
directions, les demi-droites s'tendent dans une seule direction. De ce fait, la cration de demi-droites vite d'encombrer inutilement le dessin.
Les commandes qui affichent l'tendue du dessin ne tiennent pas compte des demi-droites, tout comme elles ne tiennent pas compte des droites.
Contrle de l'environnement AutoCAD
Cration de demi-droites
Envoyez-nous vos commentaires sur cette page.
Une fois la demi-droite construite, vous pouvez rechercher son premier point l'aide de la proprit BasePoint Le second point utilis pour construire la demi-
droite n'est pas enregistr avec l'objet. C'est pourquoi vous devez utiliser la proprit DirectionVector pour obtenir le vecteur de direction de la demi-droite.
Ajout, recherche et dition d'un objet Ray
L'exemple de code suivant cre un objet Ray partir des deux points (5, 0, 0) et (1, 1, 0). Il recherche ensuite le point de base et le vecteur de direction
courants et affiche les rsultats dans une bote de message. Le vecteur de direction est modifi, et le point de base et le nouveau vecteur de direction sont
recherchs et affichs.
Sub Ch3_EditRay()
Dim rayObj As AcadRay
Dim basePoint(0 To 2) As Double
Dim secondPoint(0 To 2) As Double
' Define the ray
basePoint(0) = 3#: basePoint(1) = 3#: basePoint(2) = 0#
secondPoint(0) = 4#: secondPoint(1) = 4#: secondPoint(2) = 0#
' Creates a Ray object in model space
Set rayObj = ThisDrawing.ModelSpace.AddRay _
(basePoint, secondPoint)
ThisDrawing.Application.ZoomAll
' Find the current status of the Ray
MsgBox "The base point of the ray is: " & _
rayObj.basePoint(0) & ", " & _
rayObj.basePoint(1) & ", " & _
rayObj.basePoint(2) & vbCrLf & _
"The directional vector for the ray is: " & _
rayObj.DirectionVector(0) & ", " & _
rayObj.DirectionVector(1) & ", " & _
rayObj.DirectionVector(2), , "Edit Ray"
' Change the directional vector for the ray
Dim newVector(0 To 2) As Double
newVector(0) = -1
newVector(1) = 1
newVector(2) = 0
rayObj.DirectionVector = newVector
ThisDrawing.Regen False
MsgBox "The base point of the ray is: " & _
rayObj.basePoint(0) & ", " & _
rayObj.basePoint(1) & ", " & _
rayObj.basePoint(2) & vbCrLf & _
"The directional vector for the ray is: " & _
rayObj.DirectionVector(0) & ", " & _
rayObj.DirectionVector(1) & ", " & _
rayObj.DirectionVector(2), , "Edit Ray"
End Sub
Contrle de l'environnement AutoCAD
Requte de demi-droites
Envoyez-nous vos commentaires sur cette page.
L'utilisation des mthodes fournies par l'objet Utility permet de rsoudre rapidement un problme mathmatique ou de localiser des points sur le dessin. Elles
Contrle de l'environnement AutoCAD
Calcul de valeurs et de positions de points
Page 41 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
permettent d'excuter les oprations suivantes :
Retrouver l'angle d'une ligne partir de l'axe X l'aide de la mthode AngleFromXAxis
Convertir un angle d'une chane en valeur relle (double) l'aide de la mthode AngleToReal
Convertir un angle d'une valeur relle (double) en chane l'aide de la mthode AngleToString
Convertir une distance d'une chane en valeur relle (double) l'aide de la mthode DistanceToReal
Crer un variant contenant un tableau de nombres entiers, de nombres virgule flottante, de doubles, etc., l'aide de la mthode CreateTypedArray
Retrouver le point un angle et une distance spcifiques d'un point donn l'aide de la mthode PolarPoint
Convertir un point d'un systme de coordonnes dans un autre systme de coordonnes l'aide de la mthode TranslateCoordinates
Retrouver la distance entre deux points saisis par l'utilisateur l'aide de la mthode GetDistance
Calcul de la distance entre deux points par la mthode GetDistance
Cet exemple utilise la mthode GetDistance pour obtenir les coordonnes, et la fonction MsgBox pour afficher la distance calcule.
Sub Ch3_GetDistanceBetweenTwoPoints()
Dim returnDist As Double
' Return the value entered by user. A prompt is provided.
returnDist = ThisDrawing.Utility.GetDistance _
(, "Pick two points.")
MsgBox "The distance between the two points is: " & returnDist
End Sub
Envoyez-nous vos commentaires sur cette page.
Calcul de l'aire dfinie par des points entrs par l'utilisateur Vous pouvez dterminer l'aire d'un arc, cercle, ellipse, polyligne optimise, polyligne, rgion ou
spline planaire ferme l'aie de la proprit Area.
Pour calculer l'aire combine de plusieurs objets, vous pouvez conserver un total cumul au fur et mesure que vous ajoutez ou utilisez la mthode Boolean
sur une srie de rgions pour obtenir une seule rgion reprsentant l'aire voulue. A partir de cette rgion unique, vous pouvez utiliser la proprit Area pour
obtenir cette aire.
L'aire calcule dpend du type d'objet recherch. Pour savoir comment est calcule l'aire de chaque type d'objet, reportez-vous la section Lecture
d'informations d'aire du Manuel d'utilisation.
Rubriques de cette section :
Calcul d'une aire dlimite par des points
Contrle de l'environnement AutoCAD
Calcul d'aires
Envoyez-nous vos commentaires sur cette page.
Calcul de l'aire dfinie par des points entrs par l'utilisateur Pour obtenir l'aire spcifie par des points entrs par l'utilisateur Vous pouvez mesurer une rgion
ferme arbitraire dfinie par les points 2D ou 3D spcifis par l'utilisateur. Il doit s'agir de points coplanaires.
Pour obtenir l'aire spcifie par des points entrs par l'utilisateur
1. Utilisez la mthode GetPoint dans une boucle pour obtenir les points de l'utilisateur.
2. Crez une polyligne fine partir des points entrs par l'utilisateur. Utilisez la mthode AddLightweightPolyline pour crer cette polyligne.
3. Utilisez la proprit Area pour obtenir l'aire de la nouvelle polyligne cre.
4. Effacez la polyligne l'aide de la mthode Erase.
Calcul de l'aire dfinie par les points entrs par l'utilisateur
L'exemple suivant invite l'utilisateur saisir cinq points. Une polyligne est ensuite cre partir des points saisis. La polyligne est ferme et son aire est affiche
dans une bote de message.
Sub Ch3_CalculateDefinedArea()
Dim p1 As Variant
Dim p2 As Variant
Dim p3 As Variant
Dim p4 As Variant
Dim p5 As Variant
' Get the points from the user
p1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "First point: ")
p2 = ThisDrawing.Utility.GetPoint(p1, vbCrLf & "Second point: ")
p3 = ThisDrawing.Utility.GetPoint(p2, vbCrLf & "Third point: ")
p4 = ThisDrawing.Utility.GetPoint(p3, vbCrLf & "Fourth point: ")
Contrle de l'environnement AutoCAD
Calcul d'une aire dlimite par des points
Page 42 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
p5 = ThisDrawing.Utility.GetPoint(p4, vbCrLf & "Fifth point: ")
' Create the 2D polyline from the points
Dim polyObj As AcadLWPolyline
Dim vertices(0 To 9) As Double
vertices(0) = p1(0): vertices(1) = p1(1)
vertices(2) = p2(0): vertices(3) = p2(1)
vertices(4) = p3(0): vertices(5) = p3(1)
vertices(6) = p4(0): vertices(7) = p4(1)
vertices(8) = p5(0): vertices(9) = p5(1)
Set polyObj = ThisDrawing.ModelSpace.AddLightWeightPolyline _
(vertices)
polyObj.Closed = True
ThisDrawing.Application.ZoomAll
' Display the area for the polyline
MsgBox "The area defined by the points is " & _
polyObj.Area, , "Calculate Defined Area"
End Sub
Envoyez-nous vos commentaires sur cette page.
L'objet Utility, qui est l'enfant de l'objet Document, dfinit les mthodes d'entre utilisateur. Ces mthodes affichent un message sur la ligne de commande
d'AutoCAD pour demander diffrents types d'entres. Ce type d'entre utilisateur est particulirement utile pour la saisie interactive de coordonnes d'affichage,
de slection d'entits et de valeurs numriques et de type chane courte. Si votre application requiert l'entre de nombreuses options et valeurs, une bote de
dialogue sera sans doute plus approprie que des messages individuels.
Chaque mthode d'entre utilisateur affiche un message sur la ligne de commande d'AutoCAD et renvoie une valeur en fonction du type d'entre requis. Par
exemple, GetString renvoie une chane, GetPoint renvoie un variant (contenant un tableau de doubles trois lments) et GetInteger renvoie un nombre entier.
Vous pouvez contrler encore davantage les entres de l'utilisateur grce la mthode InitializeUserInput Elle vous permet de contrler des lments comme
l'entre de la valeur NULL (en appuyant sur ENTREE), de zro ou de nombres ngatifs et de valeurs de texte arbitraires.
Pour que le message soit affich seul sur une ligne, entrez la constante retour chariot/interligne (vbCrLf) au dbut des chanes de message.
Rubriques de cette section :
Mthode GetString
Mthode GetPoint
Mthode GetKeyword
Contrle de l'entre utilisateur
Contrle de l'environnement AutoCAD
Demande d'entre utilisateur
Envoyez-nous vos commentaires sur cette page.
La mthode GestString demande l'utilisateur d'entrer une chane sur la ligne de commande d'AutoCAD. Elle accepte deux paramtres. Le premier contrle
l'entre d'espaces dans la chane d'entre. S'il a la valeur 0, aucun espace n'est autoris (ESPACE termine l'entre) et s'il a la valeur 1, la chane peut contenir
des espaces (ENTREE doit tre utilis pour terminer l'entre). Le second paramtre est la chane du message.
Saisie d'une valeur de chane par l'utilisateur dans la ligne de commande AutoCAD
L'exemple suivant montre l'invite saisir un nom ; l'entre doit tre valide par la touche ENTREE (les espaces sont autoriss dans la chane d'entre). La
valeur de chane est enregistre dans la variable retVal et affiche dans une bote de message.
Sub Ch3_GetStringFromUser()
Dim retVal As String
retVal = ThisDrawing.Utility.GetString _
(1, vbCrLf & "Enter your name: ")
MsgBox "The name entered was: " & retVal
End Sub
La mthode GetString n'implique pas l'appel pralable de la mthode InitializeUserInput
Contrle de l'environnement AutoCAD
Mthode GetString
Envoyez-nous vos commentaires sur cette page.
Contrle de l'environnement AutoCAD
Page 43 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La mthode GetPoint demande l'utilisateur de spcifier un point sur la ligne de commande d'AutoCAD. Elle accepte deux paramtres: un point de dpart
facultatif et la chane du message. Si le point de dpart est spcifi, AutoCAD trace une ligne lastique depuis ce point. Pour contrler l'entre utilisateur, cette
mthode peut tre prcde d'un appel de la mthode InitializeUserInput
Slection d'un point par l'utilisateur
L'exemple suivant invite l'utilisateur spcifier deux points, puis trace une ligne en utilisant ces points pour la dlimiter.
Sub Ch3_GetPointsFromUser()
Dim startPnt As Variant
Dim endPnt As Variant
Dim prompt1 As String
Dim prompt2 As String
prompt1 = vbCrLf & "Enter the start point of the line: "
prompt2 = vbCrLf & "Enter the end point of the line: "
' Get the first point without entering a base point
startPnt = ThisDrawing.Utility.GetPoint(, prompt1)
' Use the point entered above as the base point
endPnt = ThisDrawing.Utility.GetPoint(startPnt, prompt2)
' Create a line using the two points entered
ThisDrawing.ModelSpace.AddLine startPnt, endPnt
ThisDrawing.Application.ZoomAll
End Sub
Mthode GetPoint
Envoyez-nous vos commentaires sur cette page.
La mthode GetKeyword demande l'utilisateur de taper un mot cl sur la ligne de commande d'AutoCAD. Elle accepte un seul paramtre, savoir la chane
du message. Les mots cls et paramtres d'entre sont dfinis par un appel de la mthode InitializeUserInput
Entre d'un mot cl par l'utilisateur sur la ligne de commande d'AutoCAD
L'exemple suivant demande l'utilisateur de taper un mot cl en attribuant la valeur 1 au premier paramtre de InitializeUserInput, ce qui interdit l'entre de
valeurs NULL (en appuyant sur la touche ENTREE). Le second paramtre dresse la liste des mots cls autoriss.
Sub Ch3_KeyWord()
Dim keyWord As String
ThisDrawing.Utility.InitializeUserInput 1, "Line Circle Arc"
keyWord = ThisDrawing.Utility.GetKeyword _
(vbCrLf & "Enter an option (Line/Circle/Arc): ")
MsgBox keyWord, , "GetKeyword Example"
End Sub
Une invite de saisie de mot cl plus conviviale fournit une valeur par dfaut lorsque l'utilisateur appuie sur la touche ENTREE (entre NULL). Notez les
modifications mineures apportes l'exemple suivant :
Sub Ch3_KeyWord2()
Dim keyWord As String
ThisDrawing.Utility.InitializeUserInput 0, "Line Circle Arc"
keyWord = ThisDrawing.Utility.GetKeyword _
(vbCrLf & "Enter an option (Line/Circle/<Arc>): ")
If keyWord = "" Then keyWord = "Arc"
MsgBox keyWord, , "GetKeyword Example"
End Sub
Contrle de l'environnement AutoCAD
Mthode GetKeyword
Envoyez-nous vos commentaires sur cette page.
Vous pouvez faire appel la mthode InitializeUserInput pour dfinir des mots cls ou limiter le type d'entre la mthode d'entre utilisateur choisie.
L'utilisation de cette mthode et les valeurs de paramtres appliques sont semblables celles de la fonction AutoLISP initget. InitializeUserInput peut tre
utilis avec les mthodes suivantes : GetAngle, GetCorner, GetDistance, GetInteger, GetKeyword, GetOrientation, GetPoint et GetReal. La mthode
InitializeUserInput ne peut pas tre utilise avec la mthode GetString. Utilisez la mthode GetInput pour extraire la valeur de chane (mot cl ou entre
arbitraire) lorsque la mthode d'entre utilisateur ne renvoie pas une valeur de chane.
La mthode InitializeUserInput accepte deux paramtres. Le premier est un entier binaire qui dtermine les options d'entre de la mthode d'entre utilisateur.
Le second paramtre est une chane qui dfinit les mots cls autoriss.
Contrle de l'environnement AutoCAD
Contrle de l'entre utilisateur
Page 44 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Entre d'un entier ou d'un mot cl par l'utilisateur sur la ligne de commande d'AutoCAD
L'exemple suivant demande l'utilisateur d'entrer un entier positif, un entier non ngatif ou un mot cl.
Sub Ch3_UserInput()
' The first parameter of InitializeUserInput (6)
' restricts input to positive and non-negative
' values. The second parameter is the list of
' valid keywords.
ThisDrawing.Utility.InitializeUserInput 6, "Big Small Regular"
' Set the prompt string variable
Dim promptStr As String
promptStr = vbCrLf & "Enter the size or (Big/Small/<Regular>):"
' At the GetInteger prompt, entering a keyword or pressing
' ENTREE without entering a value results in an error. To allow
' your application to continue and check for the error
' description, you must set the error handler to resume on error.
On Error Resume Next
' Get the value entered by the user
Dim returnInteger As Integer
returnInteger = ThisDrawing.Utility.GetInteger(promptStr)
' Check for an error. If the error number matches the
' one shown below, then use GetInput to get the returned
' string; otherwise, use the value of returnInteger.
If Err.Number = -2145320928 Then
Dim returnString As String
Debug.Print Err.Description
returnString = ThisDrawing.Utility.GetInput()
If returnString = "" Then 'ENTREE returns null string
returnString = "Regular" 'Set to default
End If
Err.Clear
Else 'Otherwise,
returnString = returnInteger 'Use the value entered
End If
' Display the result
MsgBox returnString, , "InitializeUserInput Example"
End Sub
Envoyez-nous vos commentaires sur cette page.
Vous pouvez mettre des commandes directement sur la ligne de commande d'AutoCAD en utilisant la mthode SendCommand. Cette mthode envoie une
chane spcifique directement sur la ligne de commande d'AutoCAD. Cette chane doit contenir les arguments de la commande mentionne dans l'ordre prvu
par la squence de la commande excute. Un espace ou l'quivalent ASCII d'un retour chariot dans la chane quivaut appuyer sur la touche ENTREE du
clavier. Contrairement l'environnement AutoLISP, la mthode SendCommand prend obligatoirement un argument.
Envoi d'une commande sur la ligne de commande d'AutoCAD
Dans l'exemple suivant, un cercle est cr avec un centre de (2,2,0) et un rayon de 4. Un zoom est ensuite effectu sur tous les objets gomtriques du dessin.
Notez l'espace la fin de la chane : il correspond l'activation finale de la touche ENTREE, qui lance l'excution de la commande.
Sub Ch3_SendACommandToAutoCAD()
ThisDrawing.SendCommand "_Circle 2,2,0 4 "
ThisDrawing.SendCommand "_zoom a "
End Sub
Contrle de l'environnement AutoCAD
Accs la ligne de commande d'AutoCAD
Envoyez-nous vos commentaires sur cette page.
Lorsque vous lancez AutoCAD, un document nouveau ou existant est systmatiquement ouvert. Toutefois, vous pouvez refermer tous les documents au cours
de la session active.
Lorsque vous refermez tous les documents dans l'interface utilisateur d'AutoCAD, la fentre d'application apparat un peu diffremment. Seuls les menus
Fichier, Affichage, Fentre et Aide sont prsents. Ces menus comportent un nombre d'options moins important. Par ailleurs, aucune ligne de commande
n'apparat.
De mme, vous ne pouvez excuter que les oprations suivantes dans l'interface ActiveX lorsque aucun document n'est ouvert :
Ouvrir un document.
Crer un document.
Contrle de l'environnement AutoCAD
Etat sans document ouvert
Page 45 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Importer un document.
Quitter AutoCAD.
Ces oprations peuvent tre excutes depuis la collection Documents. Outre un jeu limit de mthodes et de proprits de l'objet Application, les mthodes et
proprits de la collection Documents sont les seules options d'interface disponibles lorsque aucun document n'est ouvert. Si vous excutez une autre opration
et que vous essayez, par exemple, d'accder des options utilisateur, vous obtiendrez une erreur.
Utilisez la proprit Count de la collection Documents pour dterminer si AutoCAD est l'tat sans document ouvert. Si Documents.Count = 0, AutoCAD est
l'tat sans document. Si Documents.Count > 0, alors au moins un document est ouvert.
Notez que dans VBA, l'objet ThisDrawing n'est pas dfini lorsque AutoCAD est l'tat sans document ouvert. Ce qui est logique car ThisDrawing fait
normalement rfrence au dessin actif et qu'aucun dessin ne peut tre ouvert l'tat sans document ouvert. C'est pourquoi, si vous essayez d'excuter une
macro utilisant l'objet ThisDrawing, vous obtiendrez une erreur d'excution. Pour viter ce problme, utilisez la fonction VBA GetObject et indiquez la
version d'AutoCAD afin d'obtenir une connexion AutoCAD lorsque aucun document n'est ouvert.
Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser des dessins ou des images provenant d'autres applications, en les ouvrant sous un format appropri. AutoCAD traite certaines formes de
conversion pour les fichiers DXF
TM
(Drawing Interchange Format), SAT et WMF. Dans toutes les versions d'AutoCAD, vous pouvez importer un fichier l'aide
de la mthode Import. Cette mthode requiert la saisie de trois valeurs : le nom du fichier importer, le point d'insertion du fichier dans le dessin et le facteur
d'chelle utiliser pour placer le dessin import.
Contrle de l'environnement AutoCAD
Importation d'autres formats de fichier
Envoyez-nous vos commentaires sur cette page.
Vous pouvez convertir les dessins AutoCAD dans divers formats, afin de les utiliser dans d'autres applications, en faisant appel la mthode Export. Celle-ci
permet d'exporter un dessin AutoCAD au format WMF, SAT, EPS, DXF ou BMP. La mthode Export requiert la saisie de trois valeurs : le nom du nouveau
fichier crer, l'extension du nouveau fichier et le jeu de slection des objets exporter.
Lors de l'exportation au format WMF, SAT ou BMP, vous devez indiquer un jeu de slection non vide. Ce jeu spcifie les objets du dessin exporter. Si vous
n'indiquez pas de jeu de slection, aucun objet n'est export : il en rsulte une erreur d'argument pigeable incorrect.
Lors de l'exportation aux formats EPS ou DXF, le jeu de slection, bien qu'ignor par la commande, doit tre prcis. L'ensemble du dessin est
automatiquement export lorsque vous choisissez ces formats.
Exportation d'un dessin en tant que fichier DXF et rimportation
Dans cet exemple, un cercle est cr dans le dessin actif. Le dessin est ensuite export vers un fichier DXFExprt.DXF, un nouveau dessin est ouvert et le fichier
est import. Notez qu'un jeu de slection vide est transmis comme argument lors de l'exportation. Bien que la mthode Export ignore les informations relatives
au jeu de slection lors de la cration d'un fichier DXF, une erreur de syntaxe est signale si cet argument est omis.
Sub Ch3_ImportingAndExporting()
' Create the circle for visual representation
Dim circleObj As AcadCircle
Dim centerPt(0 To 2) As Double
Dim radius As Double
centerPt(0) = 2: centerPt(1) = 2: centerPt(2) = 0
radius = 1
Set circleObj = ThisDrawing.ModelSpace.AddCircle _
(centerPt, radius)
ThisDrawing.Application.ZoomAll
' Create an empty selection set
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("NEWSSET")
'Export the current drawing to a DXF file in the
' AutoCAD temporary file directory
Dim tempPath As String
Dim exportFile As String
Const dxfname As String = "DXFExprt"
tempPath = _
ThisDrawing.Application.preferences.Files.TempFilePath
exportFile = tempPath & dxfname
ThisDrawing.Export exportFile, "DXF", sset
' Delete the empty selection set
ThisDrawing.SelectionSets.Item("NEWSSET").Delete
' Open a new drawing
ThisDrawing.Application.Documents.Add "acad.dwt"
' Define the import
Dim importFile As String
Dim insertPoint(0 To 2) As Double
Contrle de l'environnement AutoCAD
Exportation vers d'autres formats de fichier
Page 46 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim scalefactor As Double
importFile = tempPath & dxfname & ".dxf"
insertPoint(0) = 0: insertPoint(1) = 0: insertPoint(2) = 0
scalefactor = 2#
' Import the file
ThisDrawing.Import importFile, insertPoint, scalefactor
ThisDrawing.Application.ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
Vous pouvez crer une gamme d'objets, allant de simples lignes et cercles des courbes splines, des ellipses et des aires hachures associatives.
Gnralement, vous ajoutez les objets l'espace objet l'aide de l'une des mthodes Add. Vous pouvez galement crer des objets dans l'espace papier ou
dans un bloc.
Une fois un objet cr, vous pouvez modifier son calque, sa couleur et son type de ligne. Vous pouvez galement ajouter du texte afin d'annoter le dessin.
Rubriques de cette section :
Cration d'objets
Utilisation des jeux de slection
Modification d'objets
Utilisation de calques, couleurs et types de ligne
Enregistrement et restauration des paramtres des calques
Ajout de texte aux dessins
Cration et modification d'entits AutoCAD
Envoyez-nous vos commentaires sur cette page.
Bien qu'il existe souvent plusieurs mthodes pour crer le mme objet graphique dans AutoCAD
propose trois types de cotes de base : linaires, radiales et angulaires. Parmi les cotes linaires se trouvent les cotes
alignes, rotatoires et superposes.
Vous pouvez crer des cotes pour des lignes, des multilignes, des arcs, des cercles et des segments de polylignes ou des cotes autonomes.
AutoCAD insre les cotes sur le calque courant. A chaque cote correspond un style de cote (il peut s'agir de celui appliqu par dfaut ou d'un style que vous
avez cr vous-mme). Le style de cote dfinit les diffrentes caractristiques (couleur, style de texte et chelle du type de ligne) de la cote. Les informations de
hauteur ne sont pas prises en charge. Les familles de styles permettent de dfinir plusieurs variantes partir d'un style de cote de rfrence, en fonction du
type de cote auquel les styles s'appliquent. Les styles de cote modifis permettent de modifier le style d'une cote spcifique.
Pour de plus amples informations sur les cotes, reportez-vous la section Modification des objets du Manuel d'utilisation.
Cotes et tolrances
Concepts de cotation
Page 96 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Rubriques de cette section :
Elments d'une cote
Dfinition des variables systme de cotation
Dfinition de styles de texte de cotes
Lignes de repre
Cotes associatives
Envoyez-nous vos commentaires sur cette page.
Voici une brve description des lments d'une cote.
Une ligne de cote indique dans quelle direction l'objet est cot et la dimension prise en compte. Dans le cas d'une cote angulaire, la ligne de cote est un arc. Les
lignes d'attache, galement appeles lignes de projection, relient l'lment mesur la ligne de cote. Les symboles d'extrmits matrialisent le dbut et la fin
de la ligne de cote. Le texte de cote (chane de caractres facultative) indique gnralement la dimension relle de l'objet mesur. Vous pouvez y accoler des
prfixes, des suffixes et des tolrances. Une ligne de repre dsigne le dtail du dessin auquel s'applique une annotation. Une marque centrale est une petite
croix qui sert reprsenter le centre d'un cercle ou d'un arc. Les axes (lignes discontinues) servent reprsenter le centre d'un cercle ou d'un arc.
Pour de plus amples informations sur les lments de cotation, reportez-vous la section Elments d'une cote du Manuel d'utilisation.
Cotes et tolrances
Elments d'une cote
Envoyez-nous vos commentaires sur cette page.
Les variables systme de cotation dterminent l'aspect des cotes dans le dessin. Les variables systme de cotation incluent DIMAUNIT, DIMUPT, DIMTOFL,
DIMFIT, DIMTIH, DIMTOH, DIMJUST et DIMTAD. Elles sont dfinies l'aide de la mthode SetVariable Par exemple, la ligne de code suivante dfinit la
variable systme DIMAUNIT (format d'units pour des cotes angulaires) sur (3) radians :
ThisDrawing.SetVariable "DIMAUNIT", 3
Pour de plus amples informations sur les variables systme de cotation, reportez-vous la section Utilisation des styles de cote du Manuel d'utilisation.
Cotes et tolrances
Dfinition des variables systme de cotation
Envoyez-nous vos commentaires sur cette page.
Le texte de cote se rapporte tout type de texte associ des cotes, y compris les dimensions, les tolrances (latrales et gomtriques), les prfixes, les
suffixes et les notes textuelles prsentes sur une simple ligne ou sous forme de paragraphe. Vous pouvez utiliser les dimensions calcules par dfaut par
AutoCAD comme texte, insrer votre propre texte ou supprimer la totalit du texte. De plus, il est possible d'utiliser un texte de cote pour ajouter des
informations relatives un processus de fabrication spcial ou des instructions de montage, par exemple.
Cotes et tolrances
Dfinition de styles de texte de cotes
Page 97 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Le texte de cote sur une ligne utilise le style de texte courant spcifi par la proprit ActiveTextStyle Les paragraphes de texte utilisent le style courant avec
toutes les modifications que vous avez effectues dans la chane de texte.
Pour de plus amples informations sur le texte de cotation, reportez-vous la section Contrle du texte de la cote du Manuel d'utilisation.
Envoyez-nous vos commentaires sur cette page.
Par dfaut, une ligne de repre est une ligne droite avec une pointe de flche qui fait rfrence une fonction d'un dessin. En rgle gnrale, une ligne de
repre a pour fonction de connecter une annotation la fonction. Dans ce cas, l'annotation correspond un paragraphe de texte, des blocs ou des cadres
de tolrance. De telles lignes diffrent des lignes de repre simples cres automatiquement pour des cotes radiales, de diamtre et linaires dont le texte est
trop long pour tre entirement insr sur les lignes d'attache.
Les objets de la ligne de repre sont associs l'annotation si bien que lorsque cette dernire est modifie, la ligne de repre est mise jour en consquence.
Vous pouvez copier une annotation utilise n'importe o dans un dessin et l'ajouter une ligne de repre ou crer une nouvelle annotation. Vous pouvez
galement crer une ligne de repre sans annotation.
Pour de plus amples informations sur les lignes de repre, reportez-vous la section Prsentation de la cration de texte et de repres du Manuel d'utilisation.
Cotes et tolrances
Lignes de repre
Envoyez-nous vos commentaires sur cette page.
Les cotes associatives ajustent automatiquement leur emplacement, leur orientation et leurs valeurs de mesure lorsque les objets gomtriques qui leur sont
associs sont modifis. La variable systme DIMASSOC contrle la cote associative. Attribuez DIMASSOC la valeur 2 pour activer la cote associative.
Pour de plus amples informations sur les cotes associatives, reportez-vous la section Cotes associatives du Manuel d'utilisation.
Cotes et tolrances
Cotes associatives
Envoyez-nous vos commentaires sur cette page.
Vous pouvez crer des cotes linaires, radiales, angulaires et superposes.
Lorsque vous crez des cotes, le style actif est appliqu. Une fois la cote cre, vous pouvez modifier les points de dpart des lignes d'attache, l'emplacement
du texte de cote, son contenu et son angle par rapport la ligne de cote. Vous pouvez galement modifier le style de la cote.
Pour de plus amples informations sur la cration de cotations, reportez-vous la section Modification des objets du Manuel d'utilisation.
Rubriques de cette section :
Cration de cotes linaires
Cration de cotes radiales
Cration de cotes angulaires
Cration de cotes superposes
Cotes et tolrances
Cration de cotes
Envoyez-nous vos commentaires sur cette page.
Page 98 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les cotes linaires peuvent tre alignes ou pivotes. Dans le premier cas, la ligne de cote est parallle la ligne au niveau de laquelle commencent les lignes
d'attache. Dans les cotes en rotation, la ligne de cote subit une rotation d'un angle donn par rapport l'origine des lignes d'attache.
Pour crer une cote linaire, utilisez la mthode AddDimAligned ou AddDimRotated Aprs avoir cr des cotes linaires, vous pouvez non seulement modifier
le texte et son inclinaison, mais aussi l'angle d'orientation de la ligne de cote. Dans les illustrations suivantes, les points de dpart des lignes d'attache sont
dsigns de faon explicite. L'emplacement de la ligne de cote en rsultant est galement affich.
Pour crer une cote aligne, utilisez la mthode AddDimAligned. Cette mthode requiert la saisie de trois coordonnes : l'origine des deux lignes d'attache et la
position du texte.
Pour crer une cote rotatoire, utilisez la mthode AddDimRotated. Cette mthode requiert l'entre de trois coordonnes et de l'angle de la ligne de cote. Les
trois coordonnes sont les points de dpart des deux lignes d'attache et dfinissent l'emplacement du texte. L'angle doit tre dfini en radians ; il s'agit de
l'angle de rotation de la ligne de cote.
Pour de plus amples informations sur la cration de cotes linaires, reportez-vous la section Cration de cotes linaires du Manuel d'utilisation.
Cotes et tolrances
Cration de cotes linaires
Envoyez-nous vos commentaires sur cette page.
Les cotes radiales permettent de mesurer les rayons et les diamtres des arcs et des cercles. Pour crer une cote radiale, utilisez la mthode AddDimRadial
Diffrents types de cotes radiales sont crs en fonction de la taille du cercle ou de l'arc, de la proprit TextPosition et des valeurs des variables systme de
cotation DIMUPT, DIMTOFL, DIMFIT, DIMTIH, DIMTOH, DIMJUST et DIMTAD. (Ces variables peuvent tre interroges ou dfinies l'aide des mthodes
GetVariable et SetVariable.)
Pour le texte de cote horizontal, si l'angle de la ligne de cote est suprieur 15 degrs par rapport l'horizontale et qu'il est en dehors du cercle ou de l'arc,
AutoCAD trace une attache de repre. Cette attache a la taille d'une pointe de flche et est situe ct du texte de cote, comme indiqu sur la premire des
figures qui suivent:
Pour crer des cotes radiales, utilisez la mthode AddDimRadial ou AddDimDiametric Ces mthodes requirent la saisie de trois valeurs : la coordonne du
cercle ou le centre de l'arc, la coordonne pour l'association la ligne de repre et la longueur de la ligne de repre.
Ces mthodes utilisent le paramtre LeaderLength comme distance entre ChordPoint et le point o la cote forme une attache de repre horizontale par
rapport au texte d'annotation (ou s'arrte si aucune attache de repre n'est requise).
Pour de plus amples informations sur la cration de cotes radiales, reportez-vous la section Cration de cotes radiales du Manuel d'utilisation.
Cration d'une cote radiale
Dans cet exemple, une cote radiale est cre dans l'espace objet.
Sub Ch5_CreateRadialDimension()
Dim dimObj As AcadDimRadial
Dim center(0 To 2) As Double
Dim chordPoint(0 To 2) As Double
Cotes et tolrances
Cration de cotes radiales
Page 99 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim leaderLen As Integer
' Define the dimension
center(0) = 0
center(1) = 0
center(2) = 0
chordPoint(0) = 5
chordPoint(1) = 5
chordPoint(2) = 0
leaderLen = 5
' Create the radial dimension in model space
Set dimObj = ThisDrawing.ModelSpace. _
AddDimRadial(center, chordPoint, leaderLen)
ZoomAll
End Sub
Remarque Le paramtre LeaderLength n'est utilis que lors de la cration de la cote (et mme dans ce cas, uniquement si la cote est paramtre pour utiliser
la valeur d'emplacement de texte par dfaut). Une fois la cote referme pour la premire fois, le changement de la valeur de ce paramtre ne modifie pas
l'affichage de la cote ; toutefois, le nouveau paramtre est enregistr et apparat dans les applications DXF, LISP et ADSRX.
Envoyez-nous vos commentaires sur cette page.
Les cotes angulaires mesurent l'angle entre deux lignes ou trois points. Ce type de cote sert mesurer l'angle form par deux lignes (deux rayons d'un cercle,
par exemple). Dans ce cas, la ligne de cote prend la forme d'un arc.
Pour crer une cote angulaire, utilisez la mthode AddDimAngular Cette mthode requiert la saisie de trois valeurs : le sommet de l'angle, les points de dpart
des lignes d'attache et la position du texte. Le paramtre AngleVertex correspond au centre du cercle ou de l'arc, ou du sommet commun entre deux lignes
cotes. Les points de dpart des lignes d'attache sont les points par lesquels ces deux lignes passent.
Le sommet de l'angle peut concider avec un des points de dpart. Si vous avez besoin de lignes d'attache, elles sont ajoutes automatiquement.
Pour de plus amples informations sur la cration de cotes angulaires, reportez-vous la section Cration de cotes angulaires du Manuel d'utilisation.
Cration d'une cote angulaire
Dans cet exemple, une cote angulaire est cre dans l'espace objet.
Sub Ch5_CreateAngularDimension()
Dim dimObj As AcadDimAngular
Dim angVert(0 To 2) As Double
Dim FirstPoint(0 To 2) As Double
Dim SecondPoint(0 To 2) As Double
Dim TextPoint(0 To 2) As Double
' Define the dimension
angVert(0) = 0
angVert(1) = 5
angVert(2) = 0
FirstPoint(0) = 1
FirstPoint(1) = 7
FirstPoint(2) = 0
SecondPoint(0) = 1
SecondPoint(1) = 3
SecondPoint(2) = 0
TextPoint(0) = 3
TextPoint(1) = 5
TextPoint(2) = 0
' Create the angular dimension in model space
Set dimObj = ThisDrawing.ModelSpace. _
AddDimAngular(angVert, FirstPoint, SecondPoint, TextPoint)
ZoomAll
End Sub
Cotes et tolrances
Cration de cotes angulaires
Envoyez-nous vos commentaires sur cette page.
Les cotes superposes (ou cotes d'ordonnes) permettent d'indiquer la distance entre un point de rfrence et un lment du dessin (centre d'un trou sur une
pice, par exemple). En effectuant toutes les mesures partir du mme point de rfrence, vous vitez les risques d'erreur et d'imprcision rsultant du total
cumul des distances.
Cotes et tolrances
Cration de cotes superposes
Page 100 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Elles sont constitues d'une ordonne (X ou Y) et d'une ligne de repre. Les cotes superposes Xmesurent la distance d'un point partir de la rfrence sur
l'axe des X. L'ordonne Ydfinit la mme distance sur l'axe Y. Les coordonnes sont calcules en fonction de l'origine du systme de coordonnes utilisateur
(SCU) actuel. La valeur absolue de la coordonne est utilise.
Le texte est align par rapport la ligne de repre, quelle que soit l'orientation du texte dfinie par le style de cote courant. Vous pouvez accepter la valeur
propose par dfaut ou entrer votre propre texte.
Pour crer une cote superpose, utilisez la mthode AddDimOrdinate Cette mthode requiert la saisie de trois valeurs : une coordonne spcifiant le point
coter (A), une autre spcifiant l'extrmit de la ligne de repre (B) et un drapeau boolen indiquant si la cote est en coordonne X ou en coordonne Y. Si vous
entrez TRUE comme valeur du drapeau boolen, la mthode cre une cote en coordonne X. Si vous entrez FALSE, une cote en coordonne Y est cre.
Pour de plus amples informations sur la cration de cotes superposes, reportez-vous la section Cration de cotes superposes du Manuel d'utilisation.
Cration d'une cote superpose
Dans cet exemple, une cote superpose est cre dans l'espace objet.
Sub Ch5_CreatingOrdinateDimension()
Dim dimObj As AcadDimOrdinate
Dim definingPoint(0 To 2) As Double
Dim leaderEndPoint(0 To 2) As Double
Dim useXAxis As Long
' Define the dimension
definingPoint(0) = 5
definingPoint(1) = 5
definingPoint(2) = 0
leaderEndPoint(0) = 10
leaderEndPoint(1) = 5
leaderEndPoint(2) = 0
useXAxis = 5
' Create an ordinate dimension in model space
Set dimObj = ThisDrawing.ModelSpace. _
AddDimOrdinate(definingPoint, _
leaderEndPoint, useXAxis)
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
Comme tout autre objet graphique dans AutoCAD, les cotes peuvent tre modifies l'aide des mthodes et proprits standard fournies pour l'objet.
Les proprits suivantes sont disponibles pour la plupart des objets de cote :
Rotation
Spcifie, en radians, l'angle de rotation de la ligne de cote.
StyleName
Spcifie le nom du style de cote.
TextOverride
Spcifie la chane de texte de la cote.
TextPosition
Spcifie la position du texte de cote.
TextRotation
Spcifie l'angle de rotation du texte de cote.
Measurement
Spcifie la mesure effective de la cote.
En outre, certains objets de cote fournissent des proprits d'dition des points de dpart des lignes d'attache et de la longueur de la ligne de repre.
Les mthodes suivantes sont utilises pour la modification des objets de cote :
ArrayPolar
Cre un rseau polaire.
ArrayRectangular
Cre un rseau rectangulaire.
Copy
Copie l'objet de cote.
Erase
Supprime l'objet de cote.
Cotes et tolrances
Modification des cotes
Page 101 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Mirror
Fait une copie miroir de l'objet de cote.
Move
Dplace l'objet de cote.
Rotate
Fait pivoter l'objet de cote.
ScaleEntity
Met l'chelle l'objet de cote.
Pour de plus amples informations sur la modification de cotes, reportez-vous la section Modification des cotes existantes du Manuel d'utilisation.
Rubriques de cette section :
Remplacement du texte de cote
Envoyez-nous vos commentaires sur cette page.
La valeur de cote affiche peut tre remplace via la proprit TextOverride Cette proprit permet de remplacer la valeur de cote affiche ou d'y ajouter du
texte.
Modification du texte de cote
Dans cet exemple, du texte est ajout la valeur afin qu'il apparaisse avec la valeur de cote.
Sub Ch5_OverrideDimensionText()
Dim dimObj As AcadDimAligned
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
Dim location(0 To 2) As Double
' Define the dimension
point1(0) = 5#: point1(1) = 3#: point1(2) = 0#
point2(0) = 10#: point2(1) = 3#: point2(2) = 0#
location(0) = 7.5: location(1) = 5#: location(2) = 0#
' Create an aligned dimension object in model space
Set dimObj = ThisDrawing.ModelSpace. _
AddDimAligned(point1, point2, location)
' Change the text string for the dimension
dimObj.TextOverride = "The value is <>"
dimObj.Update
End Sub
Cotes et tolrances
Remplacement du texte de cote
Envoyez-nous vos commentaires sur cette page.
Un style de cote nomm est un groupe de paramtres de cote qui dtermine l'aspect de la cote. Les styles de cote permettent de respecter certaines normes en
matire de dessin.
Lorsque vous crez une cote, elle adopte automatiquement le style actif. Si aucun style n'est dfini ou appliqu, AutoCAD applique le style par dfaut
(STANDARD). Pour dfinir le style de cote actif, utilisez la proprit ActiveDimStyle
Pour dfinir un style de cote parent, vous devez commencer par l'enregistrer sous un nouveau nom. Le nouveau style est dfini partir du style de cote courant
et contient toutes les modifications apportes la prsentation des lments de cote, l'emplacement du texte et l'aspect de l'annotation. Les annotations
concernent ici les units principales et alternatives, les tolrances et le texte.
Pour de plus amples informations sur les styles de cote, reportez-vous la section Utilisation des styles de cote du Manuel d'utilisation.
Rubriques de cette section :
Cration, modification et copie de styles de cotes
Remplacement du style de cote
Cotes et tolrances
Utilisation des styles de cotes
Envoyez-nous vos commentaires sur cette page.
Cotes et tolrances
Page 102 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour crer un style de cote, utilisez la mthode Add Cette mthode requiert l'entre du nom du nouveau style de cote.
L'Automatisation ActiveX d'AutoCAD vous permet d'ajouter de nouveaux styles de cotes et de modifier le style actif. Vous pouvez galement changer le style de
cote associ une cote donne via la proprit StyleName
Vous pouvez galement copier un style de cote existant ou un ensemble de styles de cotes modifis. Utilisez la mthode CopyFrom pour copier un style de cote
d'un objet source vers un nouveau style de cote. L'objet source peut tre un autre objet DimStyle, Dimension, Tolerance ou Leader, voire un objet Document Si
vous copiez les paramtres de style d'un autre style de cote, une copie exacte de ce style est faite. Si vous copiez les paramtres de style d'un objet Dimension,
Tolerance ou Leader, les paramtres actifs y compris les modifications d'objets sont copis dans le nouveau style. Si vous copiez le style d'un objet Document,
le style de cote actif et toute modification apporte au dessin sont copis dans le nouveau style.
Copie de styles de cotes existants et modifis
L'exemple suivant cre trois styles de cotes et copie les paramtres actifs du document, un style de cote donn et une cote dans chacun de ces nouveaux
styles. En suivant la configuration approprie avant d'excuter cet exemple de code, vous vous rendrez compte que plusieurs styles de cotes ont t crs.
1. Crez un dessin et rendez-le actif.
2. Crez une cote linaire dans ce dessin. Cette cote doit tre le seul objet du dessin.
3. Attribuez la couleur jaune la ligne de cote.
4. Attribuez la valeur 5 (bleu) la variable systme DIMCLRD
5. Excutez le code suivant :
Sub Ch5_CopyDimStyles()
Dim newStyle1 As AcadDimStyle
Dim newStyle2 As AcadDimStyle
Dim newStyle3 As AcadDimStyle
Set newStyle1 = ThisDrawing.DimStyles.Add _
("Style 1 copied from a dim")
Call newStyle1.CopyFrom(ThisDrawing.ModelSpace(0))
Set newStyle2 = ThisDrawing.DimStyles.Add _
("Style 2 copied from Style 1")
Call newStyle2.CopyFrom(ThisDrawing.DimStyles.Item _
("Style 1 copied from a dim"))
Set newStyle2 = ThisDrawing.DimStyles.Add _
("Style 3 copied from the running drawing values")
Call newStyle2.CopyFrom(ThisDrawing)
End Sub
Ouvrez la bote de dialogue DIMSTYLE Elle doit contenir trois styles de cote. Le Style 1 doit avoir une ligne de cote jaune. Le style 2 doit tre identique au Style
1 et le Style 3 doit avoir une ligne de cote bleue.
Cration, modification et copie de styles de cotes
Envoyez-nous vos commentaires sur cette page.
Chaque cote peut remplacer ses propres paramtres de style de cote. Les proprits suivantes sont disponibles pour la plupart des objets de cote :
AltRoundDistance
Dfinit l'arrondi des units alternatives.
AngleFormat
Dfinit le format d'units des cotes angulaires.
Arrowhead1Block, Arrowhead2Block
Indiquent quel bloc utiliser comme pointe de flche personnalise pour la ligne de cote.
Arrowhead1Type, Arrowhead2Type
Dfinissent un type de pointe de flche pour la ligne de cote.
ArrowheadSize
Indique la taille des pointes de flche de la ligne de cote, de la ligne de repre et des attaches de repre.
CenterMarkSize
Indique la taille de la marque centrale des cotes des diamtres et des rayons.
CenterType
Indique le type de marque centrale pour les cotes des diamtres et des rayons.
DecimalSeparator
Indique quel caractre utiliser comme sparateur dcimal dans les valeurs de tolrance et de cote dcimale.
DimensionLineColor
Indique la couleur de la ligne de cote pour un objet de tolrance, de ligne de repre ou de cote.
DimensionLineWeight
Indique l'paisseur des lignes de cote.
DimLine1Suppress, DimLine2Suppress
Spcifient la suppression des lignes de cote.
DimLineInside
Spcifie l'affichage des lignes de cote uniquement au sein des lignes d'attache.
Cotes et tolrances
Remplacement du style de cote
Page 103 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
ExtensionLineColor
Spcifie la couleur des lignes d'attache des cotes.
ExtensionLineExtend
Indique la distance de la ligne d'attache au-del de la ligne de cote.
ExtensionLineOffset
Indique le dcalage des lignes d'attache par rapport aux points d'origine.
ExtensionLineWeight
Indique l'paisseur des lignes d'attache.
ExtLine1EndPoint, ExtLine2EndPoint
Spcifient l'extrmit des lignes d'attache.
ExtLine1StartPoint, ExtLine2StartPoint
Spcifient le point de dpart des lignes d'attache.
ExtLine1Suppress, ExtLine2Suppress
Spcifient la suppression des lignes d'attache.
Fit
Indique l'emplacement du texte et des pointes de flches au sein ou en dehors des lignes d'attache.
ForceLineInside
Indique si une ligne de cote est trace entre les lignes d'attache mme si le texte est l'extrieur de ces lignes d'attache.
FractionFormat
Indique le format des valeurs de cotes et de tolrances fractionnaires.
HorizontalTextPosition
Dfinit la justification horizontale du texte de cote.
LinearScaleFactor
Dfinit un facteur d'chelle global pour les cotes linaires.
PrimaryUnitsPrecision
Fixe le nombre de dcimales affiches pour les units de cotation et de tolrance principales.
SuppressLeadingZeros, SuppressTrailingZeros
Spcifient la suppression des zros de dbut et de fin dans les valeurs de cote.
SuppressZeroFeet, SuppressZeroInches
Spcifient la suppression des valeurs de cote en pieds et en pouces gales zro.
TextColor
Indique la couleur du texte pour les objets de tolrance et de cote.
TextGap
Spcifie la distance entre le texte et la ligne de cote lorsque vous fragmentez cette ligne pour afficher le texte de cote.
TextHeight
Indique la hauteur du texte de tolrance ou de cote.
TextInside
Indique si le texte de cote doit tre trac dans les lignes d'attache.
TextInsideAlign
Contrle la position du texte de cote l'intrieur des lignes d'attache pour tous les types de cotes l'exception de celles en coordonnes.
TextMovement
Indique de quelle faon le texte de cote est trac lorsqu'il est dplac.
TextOutsideAlign
Spcifie la position du texte de cote l'extrieur des lignes d'attache pour tous les types de cotes l'exception de celles en coordonnes.
TextPosition
Spcifie la position du texte de cote.
TextPrecision
Spcifie la prcision du texte de cote angulaire.
TextPrefix
Indique le prfixe de la valeur de cote.
TextRotation
Spcifie l'angle de rotation du texte de cote.
TextSuffix
Indique le suffixe de la valeur de cote.
ToleranceDisplay
Indique si des tolrances sont affiches avec le texte de cote.
ToleranceHeightScale
Dfinit un facteur d'chelle pour la hauteur de texte des valeurs de tolrance en fonction de la hauteur du texte de cote.
ToleranceJustification
Dfinit la justification verticale des valeurs de tolrance en fonction du texte de cote nominal.
ToleranceLowerLimit
Dfinit la limite de tolrance minimale pour le texte de cote.
TolerancePrecision
Spcifie la prcision des valeurs de tolrance dans des cotes principales.
ToleranceSuppressLeadingZeros
Spcifie la suppression des zros au dbut des valeurs de tolrance.
ToleranceSuppressTrailingZeros
Spcifie la suppression des zros la fin des valeurs de tolrance.
ToleranceUpperLimit
Dfinit la limite de tolrance maximale pour le texte de cote.
UnitsFormat
Dfinit le format d'units de toutes les cotes l'exception des cotes angulaires.
VerticalTextPosition
Dfinit la position verticale du texte par rapport la ligne de cote.
Entre d'un suffixe pour une cote aligne
Page 104 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dans cet exemple, une cote aligne est cre dans l'espace objet et la proprit TextSuffix est utilise pour permettre l'utilisateur de changer le suffixe du
texte de la cote.
Sub Ch5_AddTextSuffix()
Dim dimObj As AcadDimAligned
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
Dim location(0 To 2) As Double
Dim suffix As String
' Define the dimension
point1(0) = 0: point1(1) = 5: point1(2) = 0
point2(0) = 5: point2(1) = 5: point2(2) = 0
location(0) = 5: location(1) = 7: location(2) = 0
' Create an aligned dimension object in model space
Set dimObj = ThisDrawing.ModelSpace. _
AddDimAligned(point1, point2, location)
ThisDrawing.Application.ZoomAll
' Allow the user to change the text suffix for the dimension
suffix = InputBox("Enter a new text suffix for the dimension" _
, "Set Dimension Suffix", ":SUFFIX")
' Apply the change to the dimension
dimObj.TextSuffix = suffix
ThisDrawing.Regen acAllViewports
End Sub
Envoyez-nous vos commentaires sur cette page.
Vous pouvez dfinir des cotes aussi bien dans l'espace papier que dans l'espace objet. Toutefois, si la gomtrie que vous cotez se trouve dans l'espace objet,
il est prfrable de dfinir les cotes dans cet espace galement. En effet, AutoCAD insre les points de dfinition des cotes dans l'espace o figure la
gomtrie.
Si vous dfinissez une cote dans l'espace papier pour mesurer une gomtrie dans votre modle, la cote ne subit aucune modification lorsque vous utilisez des
commandes d'dition ou que vous changez l'agrandissement de la vue dans la fentre de l'espace objet. La position des cotes de l'espace papier reste la mme
lorsque vous passez de l'espace papier l'espace objet.
Si vous cotez des objets dans l'espace papier et que le facteur d'chelle global pour la cotation linaire (la variable systme DIMLFAC) est infrieur zro, la
distance mesure est multiplie par la valeur absolue de DIMLFAC. Si vous cotez des objets dans l'espace objet, la valeur 1.0 est applique, mme si la valeur
de la variable DIMLFAC est infrieure 0. AutoCAD calcule la valeur de cette variable DIMLFAC si vous la modifiez l'invite Cot, puis slectionnez l'option
Fentre. Il calcule le facteur d'chelle de l'espace objet en fonction de l'espace papier et affecte la valeur ngative correspondant la variable DIMLFAC.
Cotes et tolrances
Cotation dans l'espace objet et dans l'espace papier
Envoyez-nous vos commentaires sur cette page.
Une ligne de repre permet de relier des annotations un lment du dessin. Ces lignes et leurs annotations sont associatives: si vous modifiez l'un de ces
deux lments, l'autre est mis jour en consquence. Ne confondez pas l'objet Leader avec la ligne de repre qu'AutoCAD gnre automatiquement en tant
qu'lment de la ligne de cote.
Pour de plus amples informations sur les lignes de repre, reportez-vous la section Cration de texte avec repres du Manuel d'utilisation.
Rubriques de cette section :
Cration de lignes de repre
Ajout d'une annotation une ligne de repre
Lignes de repre associatives
Modification de lignes de repre associatives
Modification des lignes de repre
Cotes et tolrances
Cration de lignes de repre et d'annotations
Envoyez-nous vos commentaires sur cette page.
Cotes et tolrances
Cration de lignes de repre
Page 105 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous pouvez crer une ligne de repre partir d'un point ou d'un lment quelconque du dessin et dfinir l'aspect de la ligne au moment o vous la gnrez.
Les lignes de repre ont la forme de segments de droite ou de courbes splines rgulires. Leur couleur est fonction de la couleur de la ligne de cote en cours.
En revanche, leur valeur d'chelle dpend du facteur d'chelle gnral dfini pour le style de cote actif. Le type et la taille des extrmits en forme de flche (le
cas chant) correspondent la premire extrmit dfinie pour le style actif.
Il arrive parfois qu'une petite ligne, appele ligne de repre, connecte l'annotation la ligne de repre. Cela se produit lorsque vous insrez des paragraphes ou
des cadres de tolrance, ou lorsque le dernier segment de la ligne de repre forme un angle suprieur 15 degrs par rapport l'horizontale. La longueur de
l'attache de repre est gale celle d'une pointe de flche. Si la ligne de repre n'a pas d'annotation, aucune attache de repre ne lui est associe.
Pour crer une ligne de repre, utilisez la mthode AddLeader Cette mthode requiert la saisie de trois valeurs : le tableau de coordonnes spcifiant o crer
la ligne de repre, l'objet annotation (ou NULL si la ligne de repre ne comporte pas d'annotation) et le type de ligne de repre crer. Le type de ligne de
repre indique s'il s'agit d'une ligne droite ou d'une courbe spline lisse Elle dtermine aussi si la ligne de repres des flches. Utilisez l'une des constantes
suivantes pour spcifier le type de ligne de repre : acLineNoArrow, acLineWithArrow, acSplineNoArrow ou acSplineWithArrow. Ces constantes
sont mutuellement exclusives.
Cration d'une ligne de repre
Dans cet exemple, une ligne de repre est cre dans l'espace objet. Aucune annotation n'est associe la ligne de repre.
Sub Ch5_CreateLeader()
Dim leaderObj As AcadLeader
Dim points(0 To 8) As Double
Dim leaderType As Integer
Dim annotationObject As AcadObject
points(0) = 0: points(1) = 0: points(2) = 0
points(3) = 4: points(4) = 4: points(5) = 0
points(6) = 4: points(7) = 5: points(8) = 0
leaderType = acLineWithArrow
Set annotationObject = Nothing
' Create the leader object in model space
Set leaderObj = ThisDrawing.ModelSpace. _
AddLeader(points, annotationObject, leaderType)
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
Une annotation de ligne de repre peut tre un objet Tolerance, MText ou BlockRef. Vous pouvez crer une annotation ou ajouter une copie d'une annotation
existante. Les annotations sont ajoutes aux lignes de repre uniquement lorsque celles-ci sont cres.
Pour ajouter une annotation lorsqu'une ligne de repre est cre, saisissez-la dans la mthode AddLeader
Cotes et tolrances
Ajout d'une annotation une ligne de repre
Envoyez-nous vos commentaires sur cette page.
Les lignes de repre tant associes leur annotation, lorsqu'elles sont dplaces, l'extrmit de la ligne de repre est galement dplace. Lorsque vous
dplacez l'annotation d'un texte ou d'un cadre de tolrance, le dernier segment de la ligne de repre passe gauche au droite de l'annotation en fonction de
l'avant-dernier point (du deuxime au dernier) de la ligne de repre. Si le milieu de l'annotation se trouve droite de l'avant-dernier point de la ligne de repre,
cette dernire est attache droite ; sinon, elle est attache gauche.
La suppression d'un des deux objets du dessin l'aide de la mthode Erase, Add (pour l'ajout d'un bloc) ou WBlock rompt l'associativit. Si la ligne de repre et
son annotation sont copies en mme temps, la nouvelle copie est associative. Si ces deux lments sont copis sparment, ils ne seront pas associatifs. Si
l'associativit est rompue pour une raison quelconque, par exemple lors de la copie d'un seul objet Leader ou de l'effacement de l'annotation, l'attache de
repre est supprime de la ligne de repre.
Association d'une ligne de repre une annotation
Dans cet exemple, un objet MText est cr. Une ligne de repre est cre son tour en utilisant l'objet MText comme annotation.
Sub Ch5_AddAnnotation()
Dim leaderObj As AcadLeader
Dim mtextObj As AcadMText
Dim points(0 To 8) As Double
Dim insertionPoint(0 To 2) As Double
Dim width As Double
Dim leaderType As Integer
Cotes et tolrances
Lignes de repre associatives
Page 106 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim annotationObject As Object
Dim textString As String, msg As String
' Create the MText object in model space
textString = "Hello, World."
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
width = 2
Set mtextObj = ThisDrawing.ModelSpace. _
AddMText(insertionPoint, width, textString)
' Data for Leader
points(0) = 0: points(1) = 0: points(2) = 0
points(3) = 4: points(4) = 4: points(5) = 0
points(6) = 4: points(7) = 5: points(8) = 0
leaderType = acLineWithArrow
' Create the Leader object in model space and associate
' the MText object with the leader
Set annotationObject = mtextObj
Set leaderObj = ThisDrawing.ModelSpace. _
AddLeader(points, annotationObject, leaderType)
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
Mise part la relation d'associativit qui les unit, la ligne de repre et son annotation sont des objets entirement distincts dans votre dessin. Les modifications
apportes la ligne de repre ne concernent pas l'annotation et celles qui sont effectues dans les annotations ne s'appliquent pas la ligne de repre.
Vous pouvez crer une annotation de texte l'aide des variables systme DIMCLRT, DIMTXT et DIMTXSTY pour dfinir sa couleur, sa hauteur et son style,
mais vous ne pouvez pas recourir ces dernires pour la modifier, car il ne s'agit pas d'un objet de dimension relle. L'annotation d'un texte doit tre modifie
comme tout autre objet Mtext.
Utilisez la mthode Evaluate pour valuer la relation entre la ligne de repre et l'annotation qui lui est associe. Cette mthode met jour la gomtrie de la
ligne de repre si besoin.
Cotes et tolrances
Modification de lignes de repre associatives
Envoyez-nous vos commentaires sur cette page.
Toute modification apporte l'annotation d'une ligne de repre que vous dplacez affecte l'emplacement du milieu de la ligne de repre associe. De plus, la
rotation de l'annotation entrane la rotation de la ligne de repre (le cas chant).
Pour redimensionner une ligne de repre, il suffit de la mettre l'chelle. La mise l'chelle s'applique uniquement l'lment slectionn. Si, par exemple,
vous changez l'chelle de la ligne de repre, l'annotation reprend la mme position par rapport l'extrmit de la ligne de repre mais ne change pas de
dimension.
Outre leur mise l'chelle, vous pouvez dplacer les lignes de repre, en faire une copie miroir ou les faire pivoter. Utilisez les mthodes ScaleEntity, Move,
Mirror et Rotate pour modifier une ligne de repre. Vous pouvez galement changer le style de texte associ l'annotation via la proprit StyleName
Cotes et tolrances
Modification des lignes de repre
Envoyez-nous vos commentaires sur cette page.
Les tolrances gomtriques reprsentent les carts admissibles de forme, de profil, d'orientation, de position et de battement. Elles sont inscrites dans des
cadres de tolrance. Ceux-ci contiennent toutes les indications de tolrance d'une cote.
Pour de plus amples informations sur les cadres de tolrance et les tolrances gomtriques, reportez-vous la section Ajout de tolrances gomtriques du
Manuel d'utilisation.
Rubriques de cette section :
Cration de tolrances gomtriques
Modification de tolrances
Cotes et tolrances
Utilisation des tolrances gomtriques
Page 107 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
Pour crer une tolrance gomtrique, utilisez la mthode AddTolerance Cette mthode requiert la saisie de trois valeurs : la chane de texte contenant le
symbole de tolrance, l'emplacement de la tolrance dans le dessin et un vecteur de direction indiquant la direction de cette tolrance. Vous pouvez galement
copier, dplacer, effacer, mettre l'chelle et faire pivoter des tolrances.
Cration d'une tolrance gomtrique
Dans cet exemple, une tolrance gomtrique simple est cre dans l'espace objet.
Sub Ch5_CreateTolerance()
Dim toleranceObj As AcadTolerance
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim direction(0 To 2) As Double
' Define the tolerance object
textString = "Here is the Feature Control Frame"
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
direction(0) = 1
direction(1) = 1
direction(2) = 0
' Create the tolerance object in model space
Set toleranceObj = ThisDrawing.ModelSpace. _
AddTolerance(textString, insertionPoint, direction)
ZoomAll
End Sub
Cotes et tolrances
Cration de tolrances gomtriques
Envoyez-nous vos commentaires sur cette page.
Les tolrances sont rgies par plusieurs variables systme : DIMCLRD contrle la couleur du cadre de tolrance ; DIMCLRT contrle la couleur du texte de
tolrance ; DIMGAP contrle la distance entre le cadre de tolrance et le texte ; DIMTXT contrle la taille du texte de tolrance et DIMTXTSTY contrle son
style. Utilisez la mthode SetVariable pour dfinir les valeurs des variables systme.
Cotes et tolrances
Modification de tolrances
Envoyez-nous vos commentaires sur cette page.
Automatisation ActiveX d'AutoCAD vous offre un contrle tendu de la personnalisation des menus et barres d'outils dans la session AutoCAD courante.
Les fonctionnalits ActiveX/VBA d'AutoCAD vous permettent de modifier ou d'accrotre la structure de menu existante ou de remplacer la structure courante.
Vous pouvez galement manipuler les barres d'outils et les menus accessibles par un clic avec le bouton droit de la souris.
La personnalisation des menus peut amliorer la productivit en exposant des tches spcifiques l'application ou en groupant en une slection de menu
unique des tches comportant plusieurs tapes.
Pour de plus amples informations sur la personnalisation des menus et des barres d'outils, reportez-vous au Customization Guide.
Rubriques de cette section :
Description des collections MenuBar et MenuGroups
Chargement de groupes de menus
Modification de la barre de menus
Cration et modification des menus droulants et contextuels
Cration et modification des barres d'outils
Cration de macros
Personnalisation des menus et barres d'outils
Page 108 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cration d'une aide de ligne d'tat pour des options de menu et de barre d'outils
Ajout d'entres dans le menu contextuel
Envoyez-nous vos commentaires sur cette page.
Les fonctionnalits ActiveX
d'AutoCAD
proposent plusieurs objets associs des menus. Les deux plus importants sont les collections MenuBar et
MenuGroups La collection MenuBar contient tous les menus affichs dans la barre de menus d'AutoCAD.
La collection MenuGroups contient les groupes de menus chargs dans la session AutoCAD courante. Ces groupes contiennent, leur tour, tous les menus
disponibles pour la session AutoCAD, certains ou l'ensemble pouvant tre affichs dans la barre de menus d'AutoCAD. En plus des menus, les groupes de
menus contiennent toutes les barres d'outils disponibles pour la session AutoCAD courante. Les groupes de menus reprsentent galement les menus
d'images, les menus cran ou les menus tablette.
Chaque groupe de menus contient une collection PopupMenus et une collection Toolbars La collection PopupMenus contient tous les menus affichs dans la
barre de menus. La collection Toolbars contient toutes les barres d'outils affiches dans le groupe de menus.
Chaque collection PopupMenu contient un objet individuel pour chaque option affiche dans ce menu. De mme, chaque collection Toolbar contient un objet
individuel pour chaque option affiche dans cette barre d'outils.
Personnalisation des menus et barres d'outils
Description des collections MenuBar et MenuGroups
Envoyez-nous vos commentaires sur cette page.
Les groupes de menus sont chargs dans AutoCAD via la mthode Load. Par exemple, l'exemple suivant charge le fichier de personnalisation acad.cui :
ThisDrawing.Application.MenuGroups.Load "acad.cui"
Lorsque vous faites appel cette mthode, dfinissez le paramtre BaseMenu sur TRUE pour charger un nouveau groupe de menus dans la barre de menus.
Le groupe de menus est alors charg comme menu de base (voir la commande MENU d'AutoCAD).
Pour charger un nouveau groupe de menus en tant que menu partiel, omettez le paramtre BaseMenu. Le groupe de menus est alors charg (voir la
commande CHARGMNU d'AutoCAD). Une fois chargs dans la collection MenuGroups, les menus partiels peuvent tre insrs dans la barre de menus via la
Personnalisation des menus et barres d'outils
Chargement de groupes de menus
Page 109 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
mthode InsertMenuInMenuBar ou InsertInMenuBar
Lorsqu'un groupe de menus a t charg, tous les menus et barres d'outils dfinis par ce groupe peuvent tre utiliss. Vous pouvez
Ajouter des menus dans la barre de menus
Supprimer des menus de la barre de menus
Rorganiser les menus dans la barre de menus
Ajouter de nouvelles options une barre d'outils ou un menu existant
Supprimer des options d'une barre d'outils ou d'un menu existant
Crer des menus et barres d'outils
Faire flotter ou ancrer des barres d'outils
Activer ou dsactiver des options de menu et de barre d'outils
Activer ou dsactiver la coche d'une option de menu
Modifier l'tiquette, le libell ou la chane d'aide d'une option de menu ou de barre d'outils
Rassigner les macros associes une option de menu ou de barre d'outils
Remarque Les menus contextuels et les barres d'outils ne peuvent tre modifis qu' l'aide d'Automatisation ActiveX. Toutefois, vous pouvez utiliser
Automatisation ActiveX pour charger et dcharger d'autres types de menus, tels que les options de menu de mosaque d'image, les menus d'cran ou les
menus de tablette.
Envoyez-nous vos commentaires sur cette page.
Comme nous l'avons vu prcdemment, la barre de menus peut tre entirement remplace par un nouveau groupe de menus si ce groupe est charg en tant
que menu de base. De plus, vous pouvez ajouter, supprimer ou rorganiser des menus individuels dans la barre de menus.
Rubriques de cette section :
Insertion de menus dans la barre de menus
Suppression de menus de la barre de menus
Rorganisation des menus de la barre de menus
Personnalisation des menus et barres d'outils
Modification de la barre de menus
Envoyez-nous vos commentaires sur cette page.
Pour insrer un menu existant dans la barre de menus, utilisez la mthode InsertMenuInMenuBar ou InsertInMenuBar Ces deux mthodes aboutissent au
mme rsultat : elles insrent un menu existant dans la barre de menus.
La seule diffrence est qu'elles sont appeles partir d'un objet diffrent. Notez que la mthode InsertMenuInMenuBar est appele depuis la collection
PopupMenus Avec cette mthode, vous pouvez insrer un menu de la collection un emplacement spcifi dans la barre de menus. Elle requiert comme
entre le nom du menu insrer et l'emplacement de son insertion dans la barre de menus.
La mthode InsertInMenuBar est appele directement partir de l'objet PopupMenu insrer. La seule entre requise par cette mthode est l'emplacement
dans la barre de menus. Le nom du menu n'est pas requis dans la mesure o vous appelez directement la mthode partir de l'objet insrer.
Utilisez la mthode la plus approprie pour votre application.
Insertion de menus dans la barre de menus
Dans cet exemple, un nouveau menu intitul MenuTest dans lequel une option est insre est cr. La commande OUVRIR est affecte cette option de
menu. Le menu est ensuite affich dans la barre de menus.
Sub Ch6_InsertMenu()
' Define a variable for the current menu group
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application. _
MenuGroups.Item(0)
' Create a new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("MenuTest")
' Declare the variables for the menu item
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro string the VB equivalent of
' "ESC ESC _open " and create the menu item
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = newMenu.AddMenuItem(newMenu.Count + 1, _
"Open", openMacro)
Personnalisation des menus et barres d'outils
Insertion de menus dans la barre de menus
Page 110 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
' Display the menu on the menu bar
currMenuGroup.Menus.InsertMenuInMenuBar "MenuTest", ""
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour supprimer un menu de la barre de menus, utilisez la mthode RemoveMenuFromMenuBar ou RemoveFromMenuBar Ces deux mthodes aboutissent au
mme rsultat : elles suppriment un menu de la barre de menus.
La seule diffrence est qu'elles sont appeles partir d'un objet diffrent. Notez que la mthode RemoveMenuFromMenuBar est appele depuis la collection
PopupMenus Elle requiert comme entre le nom du menu supprimer et l'emplacement supprimer dans la barre de menus. Par exemple, l'instruction
suivante supprime le menu ajout la section Insertion de menus dans la barre de menus:
currMenuGroup.Menus.RemoveMenuFromMenuBar ("MenuTest")
La mthode RemoveFromMenuBar est appele directement partir de l'objet PopupMenu supprimer. Cette mthode ne requiert pas de donnes d'entre. Le
nom du menu n'est pas requis dans la mesure o vous appelez la mthode directement partir de l'objet supprimer.
Utilisez la mthode la plus approprie pour votre application.
Remarque Les menus supprims de la barre de menus sont toujours disponibles dans leur groupe de menus spcifique. Ils ne sont plus visibles pour
l'utilisateur.
Personnalisation des menus et barres d'outils
Suppression de menus de la barre de menus
Envoyez-nous vos commentaires sur cette page.
Vous pouvez rorganiser des menus en insrant et en supprimant des menus afin d'atteindre la configuration souhaite.
Dplacement du premier menu en dernire position
Dans cet exemple, le premier menu de la barre de menus est supprim, puis insr en dernire position.
Sub Ch6_MoveMenu()
' Define a variable to hold the menu to be moved
Dim moveMenu As AcadPopupMenu
Dim MyMenuBar As AcadMenuBar
Set MyMenuBar = ThisDrawing.Application.menuBar
' Set moveMenu equal to the first menu displayed
' on the menu bar
Set moveMenu = MyMenuBar.Item(0)
' Remove the first menu from the menu bar
MyMenuBar.Item(0).RemoveFromMenuBar
' Add the menu back into the menu bar
' in the last position on the bar
moveMenu.InsertInMenuBar (MyMenuBar.count)
End Sub
Personnalisation des menus et barres d'outils
Rorganisation des menus de la barre de menus
Envoyez-nous vos commentaires sur cette page.
ActiveX/VBA d'AutoCAD est capable de personnaliser deux types de menus AutoCAD : les menus droulants et les menus contextuels (parfois galement
appels menus du curseur). Ces deux types de menus sont affichs sous forme de menus en cascade. Le menu contextuel permet d'accder rapidement aux
options frquemment utilises, comme les modes d'accrochage aux objets.
Un menu droulant peut contenir jusqu' 999 options de menu. Un menu droulant peut contenir jusqu' 499 options de menu. Les deux limites incluent tous les
menus de la hirarchie. Si le nombre d'options d'un menu dpasse ces limites, AutoCAD ignore les options excdentaires. En outre, un menu droulant ou
contextuel est tronqu s'il ne tient pas dans l'cran graphique.
Alors que les menus droulants se droulent toujours partir de la barre de menus, un menu contextuel apparat au niveau ou proximit du rticule dans la
zone graphique. Les deux types de menus sont grs de la mme manire, except que le titre du menu contextuel n'est pas inclus dans la barre de menus. En
fait, son titre n'apparat pas du tout. Pour accder au menu contextuel, il suffit d'activer un menu dans le groupe de menus de base. Le menu contextuel peut
tre identifi l'aide de la proprit ShortcutMenu Si elle renvoie la valeur TRUE, le menu recherch est le menu contextuel du groupe.
Personnalisation des menus et barres d'outils
Cration et modification des menus droulants et contextuels
Page 111 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Rubriques de cette section :
Cration de menus
Ajout de nouvelles options un menu
Ajout de sparateurs un menu
Assignation d'une touche d'accs rapide une option de menu
Cration de sous-menus en cascade
Suppression des options d'un menu
Proprits des options d'un menu
Envoyez-nous vos commentaires sur cette page.
Pour crer un menu, utilisez la mthode Add afin d'ajouter un nouvel objet PopupMenu la collection PopupMenus
Pour crer un menu contextuel, vous devez commencer par en supprimer un. Un seul menu contextuel par groupe de menus est autoris. Si aucun autre menu
contextuel n'est inclus dans un groupe de menus, vous pouvez ajouter un menu intitul POP0 (le dernier caractre tant le chiffre zro). AutoCAD comprendra
immdiatement que vous souhaitez crer un menu contextuel.
La mthode Add requiert comme entre le nom (libell) du menu ajouter. Ce nom devient le titre du menu lorsqu'il est charg dans la barre de menus. Grce
au nom, il est possible d'identifier facilement le menu dans une collection.
Ce nom peut tre une simple chane ou peut contenir des codes spciaux. Vous pouvez galement modifier le nom d'un menu aprs sa cration. Pour
renommer un menu existant, utilisez sa proprit Name
Cration d'un menu droulant
Dans cet exemple, un menu droulant intitul MenuTest est cr dans le premier groupe de menus de la collection MenuGroups.
Sub Ch6_CreateMenu()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("MenuTest")
End Sub
Personnalisation des menus et barres d'outils
Cration de menus
Envoyez-nous vos commentaires sur cette page.
Pour ajouter une nouvelle option un menu, utilisez la mthode AddMenuItem Cette mthode cre un objet PopupMenuItem et l'ajoute au menu spcifi.
La mthode AddMenuItem accepte quatre paramtres en entre : Index, Label, Tag et Macro.
Rubriques de cette section :
Spcification du paramtre Index
Spcification du paramtre Libell
Spcification du paramtre Etiquette
Spcification du paramtre Macro
Personnalisation des menus et barres d'outils
Ajout de nouvelles options un menu
Envoyez-nous vos commentaires sur cette page.
Le paramtre Index est un nombre entier qui spcifie la position de la nouvelle option dans le menu. L'index commence la position zro (0) qui correspond
Personnalisation des menus et barres d'outils
Spcification du paramtre Index
Page 112 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
la premire position dans le menu aprs le titre. Pour ajouter une nouvelle option la fin d'un menu, attribuez au paramtre Index la valeur de la proprit
Count du menu. (Cette proprit reprsente le nombre total d'options dans ce menu.)
La premire position d'index est zro (0) et les sparateurs sont rpertoris en tant qu'options individuelles avec leur propre position d'index. La proprit Count
du menu illustr aurait pour valeur six (6). Pour ajouter une option de menu entre Mosaque horizontale et Mosaque verticale, dfinissez le paramtre Index
sur deux (2), ce qui correspond l'index de l'option du menu Mosaque verticale. Une nouvelle option de menu est alors insre dans l'index deux (2) et les
autres options sont dcales d'une position d'index vers le bas.
Une fois une option cre, vous ne pouvez pas modifier son index via la proprit Index Pour modifier l'index d'une option existante, vous devez supprimer puis
ajouter de nouveau l'option un emplacement diffrent, ou ajouter ou supprimer les options l'entourant afin d'atteindre l'emplacement souhait.
Envoyez-nous vos commentaires sur cette page.
Un libell est une chane qui dfinit le contenu et le formatage des options de menu. Les libells d'options de menu peuvent contenir des expressions de chane
DIESEL qui modifient de manire conditionnelle les libells chaque fois qu'ils sont affichs.
En plus des expressions de chane DIESEL, un libell peut contenir des codes spciaux. Par exemple, un "et" commercial (&) plac directement avant un
caractre dsigne celui-ci comme touche d'accs rapide.
Le texte de l'option de menu affich pour l'utilisateur est appel le titre ; il est driv du libell par interprtation de tous les codes spciaux et expressions de
chane DIESEL contenus dans le libell. Par exemple, l'intitul &Edition produit le titre Edition.
Une fois une option de menu cre, vous pouvez modifier son libell l'aide de la proprit Label
Personnalisation des menus et barres d'outils
Spcification du paramtre Libell
Envoyez-nous vos commentaires sur cette page.
Une tiquette, ou tiquette de nom, est une chane constitue de caractres alphanumriques et de soulignement (_). Cette chane identifie l'option de manire
unique au sein d'un menu donn.
Une fois une option de menu cre, vous pouvez modifier son tiquette l'aide de la proprit TagString
Personnalisation des menus et barres d'outils
Spcification du paramtre Etiquette
Envoyez-nous vos commentaires sur cette page.
Une macro est une srie de commandes qui excutent des actions spcifiques lorsqu'une option de menu est slectionne. Les macros de menu peuvent tre
de simples enregistrements de combinaisons de touches accomplissant une tche, ou bien une combinaison complexe de commandes ou codes de
programmation AutoLISP, DIESEL ou ActiveX.
Une fois une option de menu cre, vous pouvez en modifier la macro l'aide de la proprit Macro
Ajout d'options de menu dans un menu droulant
Dans cet exemple, un nouveau menu intitul MenuTest, dans lequel une option est insre, est cr. L'option de menu porte le nom Ouvrir, et la macro qui
lui est affecte est la commande OUVRIR.
Sub Ch6_AddAMenuItem()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Personnalisation des menus et barres d'outils
Spcification du paramtre Macro
Page 113 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("MenuTest")
' Add a menu item to the new menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VBA equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = newMenu.AddMenuItem _
(newMenu.count + 1, "Open", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar _
(ThisDrawing.Application.menuBar.count + 1)
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour ajouter un sparateur un menu, utilisez la mthode AddSeparator Cette mthode cre un objet PopupMenuItem et l'ajoute au menu spcifi. Ce type
d'objet PopupMenuItem se voit assigner le type acSeparator. Le type d'une option de menu peut tre dtermin via la proprit Type
La mthode AddSeparator utilise le paramtre Index comme seule entre. Le paramtre Index est un nombre entier qui spcifie la position du sparateur
dans le menu. L'index commence la position zro (0) qui correspond la premire position dans le menu aprs le titre.
Reportez-vous la section Activation et dsactivation d'options de menu pour obtenir un exemple sur l'ajout de sparateurs un menu.
Personnalisation des menus et barres d'outils
Ajout de sparateurs un menu
Envoyez-nous vos commentaires sur cette page.
Pour assigner la touche d'accs rapide une option de menu via ActiveX/VBA d'AutoCAD, utilisez la proprit Label de l'option de menu donne. Insrez
l'quivalent ASCII du signe commercial (&) directement dans le libell, devant le caractre qui va servir de touche d'accs rapide. Par exemple, le libell Chr
(Asc("&")) + "Edition" sera affich sous la forme Edition", la lettre E" servant de touche d'accs rapide.
Ajout de touches d'accs rapide aux menus
Cet exemple est identique celui de la section Ajout d'options de menu dans un menu droulant, mais il permet d'ajouter une touche d'accs rapide aux menus
MenuTest et Ouvrir. La lettre s est utilise comme touche d'accs de MenuTest et la lettre O comme touche d'accs au menu Ouvrir.
Sub Ch6_AddAMenuItem()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add _
("Te" + Chr(Asc("&")) + "stMenu")
' Add a menu item to the new menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VBA equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = newMenu.AddMenuItem _
(newMenu.count + 1, Chr(Asc("&")) _
+ "Open", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar _
(ThisDrawing.Application.menuBar.count + 1)
End Sub
Personnalisation des menus et barres d'outils
Assignation d'une touche d'accs rapide une option de menu
Envoyez-nous vos commentaires sur cette page.
Pour ajouter un sous-menu en cascade, crez-le via la mthode AddSubmenu Cette mthode cre un objet PopupMenuItem et l'ajoute au menu spcifi. Ce
type d'objet PopupMenuItem se voit assigner le type acSubmenu.
Personnalisation des menus et barres d'outils
Cration de sous-menus en cascade
Page 114 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La mthode AddSubmenu accepte trois paramtres en entre : Index, Label et Tag.
Le paramtre Index est un nombre entier qui spcifie la position de la nouvelle option dans le menu. L'index commence la position zro (0) qui correspond
la premire position dans le menu aprs le titre. Pour ajouter une nouvelle option la fin d'un menu, attribuez au paramtre Index la valeur de la proprit
Count du menu. (Cette proprit reprsente le nombre total d'options dans ce menu.)
Le paramtre Label est une chane qui dfinit le contenu et le formatage des options de menu. Le texte de l'option de menu affich pour l'utilisateur est appel
le titre ; il est driv du libell par interprtation de tous les codes spciaux et expressions de chane DIESEL contenus dans ce libell. Par exemple, l'intitul
&Edition produit le titre Edition
Le paramtre Tag, ou tiquette de nom, est une chane constitue de caractres alphanumriques et de soulignement (_). Cette chane identifie l'option de
manire unique au sein d'un menu donn.
La mthode AddSubmenu ne renvoie pas l'objet PopupMenuItem qu'elle cre. Elle renvoie la place le nouveau menu dsign par le sous-menu. Le nouveau
menu, renvoy en tant qu'objet PopupMenu, peut tre rempli comme tout menu normal. Pour de plus amples informations sur le remplissage d'un menu, voir
Ajout de nouvelles options un menu.
Cration et remplissage d'un sous-menu
Cet exemple cre un menu appel MenuTest et l'ajoute un sous-menu intitul OuvrirFichier.Le sous-menu est ensuite rempli avec une option de menu
appele Ouvrir qui ouvre un dessin lors de son excution. Le menu est ensuite affich dans la barre de menus.
Sub Ch6_AddASubMenu()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("MenuTest")
' Add the submenu
Dim FileSubMenu As AcadPopupMenu
Set FileSubMenu = newMenu.AddSubMenu("", "OpenFile")
' Add a menu item to the sub menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = FileSubMenu.AddMenuItem _
(newMenu.count + 1, "Open", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar _
(ThisDrawing.Application.menuBar.count + 1)
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour supprimer des options d'un menu, utilisez la mthode Delete trouve sous cette option.
Avertissement Si vous supprimez une option de menu, n'utilisez pas une autre mthode ou une autre proprit qui chargerait nouveau directement ou
indirectement le mme fichier IUP dans la mme macro. Par exemple, aprs avoir supprim une option de menu, n'utilisez pas la mthode MenuGroup.Load ou
la proprit Preferences.Profiles.ActiveProfile ou encore n'mettez pas de commande "Menuload" avec la mthode Document.SendCommand. Ces options
provoquent directement ou indirectement le chargement des fichiers IUP. Vous ne devez utiliser ces mthodes ou proprits que dans une autre macro.
Suppression d'une option d'un menu
Dans cet exemple, une option de menu est ajoute la fin du dernier menu affich dans la barre de menus. L'option de menu est ensuite supprime.
Sub Ch6_DeleteMenuItem()
Dim LastMenu As AcadPopupMenu
Set LastMenu = ThisDrawing.Application.menuBar. _
Item(ThisDrawing.Application.menuBar.count - 1)
' Add a menu item
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = LastMenu.AddMenuItem _
(LastMenu.count + 1, "Open", openMacro)
' Remove the menu item from the menu
newMenuItem.Delete
End Sub
Personnalisation des menus et barres d'outils
Suppression des options d'un menu
Envoyez-nous vos commentaires sur cette page.
Personnalisation des menus et barres d'outils
Page 115 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Toutes les options de menu partagent les proprits suivantes :
TagString
Une tiquette, ou tiquette de nom, est une chane constitue de caractres alphanumriques et de soulignement (_). Cette chane identifie l'option de
manire unique au sein d'un menu donn. Les tiquettes identifient les touches d'accs rapide (squences de touches du clavier) qui correspondent l'option
de menu.
Vous pouvez lire ou crire la valeur d'une tiquette l'aide de la proprit TagString.
Label
Un libell est une chane qui dfinit le contenu et le formatage des options de menu.
Les libells d'options de menu peuvent contenir des expressions de chane DIESEL qui modifient de manire conditionnelle les libells chaque fois qu'ils
sont affichs.
Vous pouvez lire ou crire la valeur d'un libell l'aide de la proprit Label.
Caption
Un titre est du texte affich dans le menu pour l'utilisateur. Cette proprit est en lecture seule et est drive de la proprit Label par la suppression de
toutes les expressions de chane DIESEL.
Vous pouvez lire la valeur d'un titre l'aide de la proprit Caption.
Macro
Une macro est une srie de commandes qui excutent des actions spcifiques lorsqu'une option de menu est slectionne. Les macros de menu peuvent
tre de simples enregistrements de combinaisons de touches accomplissant une tche, ou bien une combinaison complexe de commandes ou codes de
programmation AutoLISP, DIESEL ou ActiveX.
Vous pouvez lire ou crire la valeur d'une macro de menu l'aide de la proprit Macro.
HelpString
Une chane d'aide est la chane de texte qui s'affiche sur la ligne d'tat d'AutoCAD lorsque l'utilisateur met en surbrillance une option de menu.
Vous pouvez lire ou crire la valeur d'une chane d'aide l'aide de la proprit HelpString.
Enable
La proprit Enable vous permet d'activer ou de dsactiver une option de menu. Vous pouvez galement lire la proprit Enable afin de dterminer si une
option de menu est actuellement active ou dsactive. L'utilisation de cette proprit pour activer ou dsactiver une option de menu remplace tout paramtre
d'activation figurant dans l'expression DIESEL de l'option.
Reportez-vous la section Proprits des options d'un menu pour un exemple de dsactivation des options de menu.
Check
La proprit Check vous permet de cocher ou de retirer la coche d'une option de menu. Vous pouvez galement lire la proprit Check pour dterminer si
une option de menu est coche ou non. L'utilisation de cette proprit pour cocher ou supprimer la coche d'une option de menu remplace tout paramtre de
slection (coche) figurant dans l'expression DIESEL de l'option.
Index
L'index d'une option de menu spcifie la position de cette option dans le menu auquel elle appartient. La position d'index d'un menu commence toujours la
position 0. Par exemple, si l'option est la premire d'un menu, elle renvoie la position d'index 0, si elle est la deuxime option du menu, elle renvoie la position
d'index 1, etc.
Type
Vous pouvez dterminer le type d'une option de menu l'aide de la proprit Type. Voici les types d'option de menu : un menu normal, un sparateur ou
l'intitul d'un sous-menu. S'il s'agit d'un menu normal, la proprit renvoie acMenuItem. S'il s'agit d'un sparateur, la proprit renvoie acMenuSeparator.
S'il s'agit d'un intitul de sous-menu, la proprit renvoie acSubMenu.
SubMenu
Vous pouvez rechercher le sous-menu l'aide de la proprit SubMenu. Si l'option de menu est du type acSubMenu, cette proprit renvoie le menu qui est
attach comme sous-menu ou menu imbriqu. Le menu imbriqu est renvoy comme un objet PopupMenu.
Si l'option de menu n'est pas de type acSubMenu, cette proprit renvoie une erreur.
Parent
Vous pouvez dterminer le menu auquel appartient une option l'aide de la proprit Parent. Cette proprit renvoie le menu dans lequel rside l'option. Le
menu parent est renvoy sous la forme d'un objet PopupMenu.
Activation et dsactivation d'options de menu
Dans cet exemple, le menu MenuTest est cr, puis deux options sont insres. La deuxime option de menu est ensuite dsactive l'aide de la proprit
Enable et le menu est affich dans la barre de menus.
Sub Ch6_DisableMenuItem()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("MenuTest")
' Add two menu items and a menu separator to the new menu
Dim MenuEnable As AcadPopupMenuItem
Dim MenuDisable As AcadPopupMenuItem
Dim MenuSeparator As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set MenuEnable = newMenu.AddMenuItem _
(newMenu.count + 1, "OpenEnabled", openMacro)
Set MenuSeparator = newMenu.AddSeparator("")
Set MenuDisable = newMenu.AddMenuItem _
(newMenu.count + 1, "OpenDisabled", openMacro)
' Disable the second menu item
MenuDisable.Enable = False
' Display the menu on the menu bar
newMenu.InsertInMenuBar _
(ThisDrawing.Application.menuBar.count + 1)
End Sub
Proprits des options d'un menu
Page 116 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
Les fonctionnalits ActiveX/VBA d'AutoCAD vous permettent de crer et de modifier des barres d'outils au sein d'un groupe de menus existant.
Rubriques de cette section :
Cration de barres d'outils
Ajout de nouveaux boutons une barre d'outils
Ajout de sparateurs une barre d'outils
Dfinition de l'image d'un bouton de barre d'outils
Cration de barres d'outils droulantes
Barres d'outils ancres et flottantes
Suppression des boutons d'une barre d'outils
Proprits des options d'une barre d'outils
Personnalisation des menus et barres d'outils
Cration et modification des barres d'outils
Envoyez-nous vos commentaires sur cette page.
Pour crer une barre d'outils, utilisez la mthode Add afin d'ajouter un nouvel objet Toolbar la collection Toolbars
La mthode Add requiert comme entre le nom de la barre d'outils ajouter. Le nom est une chane de caractres alphanumriques sans ponctuation autre
qu'un tiret (-) ou un caractre de soulignement (_). Grce au nom, il est possible d'identifier facilement la barre d'outils dans une collection.
Vous pouvez modifier le nom d'une barre d'outils aprs sa cration. Pour renommer une barre d'outils existante, utilisez sa proprit Name
Cration d'une nouvelle barre d'outils
Dans cet exemple, une nouvelle barre d'outils intitule BarreOutilsTest est cre dans le premier groupe de menus de la collection MenuGroups.
Sub Ch6_CreateToolbar()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new toolbar
Dim newToolbar As AcadToolbar
Set newToolbar = currMenuGroup.Toolbars.Add("TestToolbar")
End Sub
Personnalisation des menus et barres d'outils
Cration de barres d'outils
Envoyez-nous vos commentaires sur cette page.
Pour ajouter un nouveau bouton une barre d'outils, utilisez la mthode AddToolbarButton Cette mthode cre un objet ToolbarItem et l'ajoute la barre
d'outils spcifie. N'ajoutez un bouton la barre d'outils que lorsqu'elle est affiche.
La mthode AddToolbarButton requiert la saisie de cinq paramtres : Index, Name, HelpString, Macro et FlyoutButton.
Index
Le paramtre Index est un nombre entier qui spcifie la position de la nouvelle option Toolbar dans la barre d'outils. L'index commence la position zro (0),
qui correspond la premire position dans la barre d'outils aprs le titre. Pour ajouter un nouveau bouton la fin d'une barre d'outils, attribuez au paramtre
Index la valeur de la proprit Count de la barre d'outils. La proprit Count de la barre d'outils reprsente le nombre total de boutons prsents dans cette
barre d'outils.
Une fois un bouton de barre d'outils cr, vous ne pouvez pas modifier son index via la proprit Index. Pour modifier l'index d'un bouton de barre d'outils
existant, supprimez le bouton de la barre d'outils avant de le placer un autre endroit, ou ajoutez ou supprimez les boutons adjacents jusqu' ce que vous
trouviez l'emplacement appropri.
Name
Un nom est une chane qui identifie le bouton de la barre d'outils. Elle doit contenir des caractres alphanumriques, sans autre signe de ponctuation que le
Personnalisation des menus et barres d'outils
Ajout de nouveaux boutons une barre d'outils
Page 117 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
tiret () et le trait de soulignement (_). Cette chane est affiche sous forme d'info-bulle lorsque le curseur se trouve sur le bouton.
Une fois un bouton de barre d'outils cr, vous pouvez modifier son nom l'aide du paramtre Name.
HelpString
Une chane d'aide est la chane de texte qui s'affiche sur la ligne d'tat d'AutoCAD lorsque l'utilisateur met en surbrillance une option de menu.
Une fois un bouton de barre d'outils cr, vous pouvez modifier sa chane d'aide l'aide du paramtre HelpString.
Macro
Une macro est une srie de commandes qui excutent des actions spcifiques lorsqu'un bouton de barre d'outils est slectionn. Les macros de barre d'outils
peuvent tre de simples enregistrements de combinaisons de touches lanant une tche, ou bien une combinaison complexe de commandes ou de codes de
programmation AutoLISP, DIESEL ou ActiveX.
Une fois un bouton de barre d'outils cr, vous pouvez modifier sa macro l'aide du paramtre Macro.
FlyoutButton
Le paramtre FlyoutButton est un drapeau optionnel qui indique si le nouveau bouton doit tre droulant ou non. S'il s'agit d'un bouton droulant, ce
paramtre doit avoir la valeur TRUE. Dans le cas contraire, il peut soit avoir la valeur FALSE, soit tre omis.
Ajout de boutons une nouvelle barre d'outils
Dans cet exemple, une nouvelle barre d'outils est cre et un bouton lui est ajout. Le bouton est affect une macro qui excute la commande OUVRIR
lorsqu'il est slectionn.
Sub Ch6_AddButton()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new toolbar
Dim newToolbar As AcadToolbar
Set newToolbar = currMenuGroup.Toolbars.Add("TestToolbar")
' Add a button to the new toolbar
Dim newButton As AcadToolbarItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newButton = newToolbar.AddToolbarButton _
("", "NewButton", "Open a file.", openMacro)
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour ajouter un sparateur une barre d'outils, utilisez la mthode AddSeparator Cette mthode cre un objet ToolbarItem et l'ajoute la barre d'outils
spcifie. Ce type d'objet ToolbarItem se voit assigner le type acSeparator. Le type d'un bouton de barre d'outils peut tre dtermin via la proprit Type
La mthode AddSeparator requiert la saisie d'un paramtre : Index. Le paramtre Index est un nombre entier qui spcifie la position du sparateur dans le
menu. L'index commence la position zro (0), qui correspond la premire position dans la barre d'outils aprs le titre.
Personnalisation des menus et barres d'outils
Ajout de sparateurs une barre d'outils
Envoyez-nous vos commentaires sur cette page.
Pour dfinir les images utiliser sur un bouton de barre d'outils, utilisez les mthodes SetBitmaps et GetBitmaps
La mthode SetBitmaps requiert deux paramtres : SmallIconName et LargeIconName.
SmallIconName
Le nom de petite icne spcifie la chane d'identification de la ressource petite image (16 15 points). Elle doit contenir des caractres alphanumriques,
sans autre signe de ponctuation que le tiret () et le trait de soulignement (_), et doit inclure l'extension .bmp. La ressource peut tre soit un bitmap systme,
soit un bitmap dfini par l'utilisateur. Les bitmaps dfinis par l'utilisateur doivent tre de taille approprie et rsider dans le dossier Support.
LargeIconName
Le nom de grande icne spcifie la chane d'identification de la ressource grande image (24 22 points). Elle doit contenir des caractres alphanumriques,
sans autre signe de ponctuation que le tiret () et le trait de soulignement (_), et doit inclure l'extension .bmp. La ressource peut tre soit un bitmap systme,
soit un bitmap dfini par l'utilisateur. Les bitmaps dfinis par l'utilisateur doivent tre de taille approprie et rsider dans le dossier Support.
Recherche du nom des icnes de boutons dans une barre d'outils
Sub Ch6_GetButtonImages()
Dim Button As AcadToolbarItem
Dim Toolbar0 As AcadToolbar
Dim MenuGroup0 As AcadMenuGroup
Dim SmallButtonName As String
Dim LargeButtonName As String
Dim msg As String
Dim ButtonType As String
' Get the first toolbar in the first menu group
Personnalisation des menus et barres d'outils
Dfinition de l'image d'un bouton de barre d'outils
Page 118 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Set MenuGroup0 = ThisDrawing.Application. _
MenuGroups.Item(0)
Set Toolbar0 = MenuGroup0.Toolbars.Item(0)
' Clear the string variables
SmallButtonName = ""
LargeButtonName = ""
' Create a header for the message box and
' display the toolbar to be queried
msg = "Toolbar: " + Toolbar0.Name + vbCrLf
Toolbar0.Visible = True
' Iterate through the toolbar and collect data
' for each button in the toolbar. If the toolbar is
' a normal button or a flyout, collect the small
' and large button names for the button.
For Each Button In Toolbar0
ButtonType = Choose(Button.Type + 1, "Button", _
"Separator", "Control", "Flyout")
msg = msg & ButtonType & ": "
If Button.Type = acToolbarButton Or _
Button.Type = acToolbarFlyout Then
Button.GetBitmaps SmallButtonName, _
LargeButtonName
msg = msg + SmallButtonName + ", " _
+ LargeButtonName
End If
msg = msg + vbCrLf
Bouton Suivant
' Display the results
MsgBox msg
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour ajouter un bouton droulant une barre d'outils, utilisez la mthode AddToolbarButton Cette mthode cre un objet ToolbarItem et l'ajoute la barre
d'outils spcifie.
La mthode AddToolbarButton requiert la saisie de cinq paramtres : Index, Name, HelpString, Macro et FlyoutButton. En dfinissant le paramtre
FlyoutButton sur TRUE, le nouveau bouton cr sera un bouton droulant. La valeur renvoye par cette mthode est la nouvelle barre d'outils droulante. La
barre d'outils droulante peut tre remplie comme toute autre barre d'outils.
Pour de plus amples informations sur le remplissage d'une barre d'outils, voir Ajout de nouveaux boutons une barre d'outils.
Cration d'un bouton de barre d'outils droulant
Dans cet exemple, deux barres d'outils sont cres. La premire contient un bouton droulant. La seconde est attache au bouton droulant de la premire
barre d'outils.
Sub Ch6_AddFlyoutButton()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application. _
MenuGroups.Item(0)
' Create the first toolbar
Dim FirstToolbar As AcadToolbar
Set FirstToolbar = currMenuGroup.Toolbars. _
Add("FirstToolbar")
' Add a flyout button to the first menu on the menu bar
Dim FlyoutButton As AcadToolbarItem
Set FlyoutButton = FirstToolbar.AddToolbarButton _
("", "Flyout", "Demonstrates a flyout button", _
"OPEN", True)
' Create the second toolbar. This will be attached to
' the first toolbar via the flyout button.
Dim SecondToolbar As AcadToolbar
Set SecondToolbar = currMenuGroup.Toolbars. _
Add("SecondToolbar")
' Add a button to the next toolbar
Dim newButton As AcadToolbarItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newButton = SecondToolbar.AddToolbarButton _
("", "NewButton", "Open a file.", openMacro)
' Attach the second toolbar to the flyout
' button on the first toolbar
FlyoutButton.AttachToolbarToFlyout currMenuGroup.Name, _
SecondToolbar.Name
' Display the first toolbar, hide the second toolbar
FirstToolbar.Visible = True
SecondToolbar.Visible = False
Personnalisation des menus et barres d'outils
Cration de barres d'outils droulantes
Page 119 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
End Sub
Envoyez-nous vos commentaires sur cette page.
Vous pouvez crer des barres d'outils flottantes ou ancres par programmation.
Pour faire flotter une barre d'outils, utilisez la mthode Float La mthode Float requiert la saisie de trois paramtres : Top, Left et NumberFloatRows. Les
paramtres Top et Left spcifient l'emplacement (en pixels) de l'angle suprieur gauche de la barre d'outils. Le paramtre NumberFloatRows spcifie le
nombre de lignes de la barre d'outils horizontale crer. Ce nombre doit tre suprieur ou gal un. Les boutons de la barre d'outils sont rpartis
proportionnellement sur le nombre de lignes spcifi. Dans le cas de barres d'outils alignes verticalement, cette valeur spcifie le nombre de colonnes.
Pour ancrer une barre d'outils, utilisez la mthode Dock La mthode Dock requiert la saisie de trois paramtres : Side, Row et Column. Le paramtre Side
spcifie le bord de la barre d'outils positionner dans l'opration d'ancrage. Vous pouvez spcifier les bords suprieur, infrieur, gauche ou droit de la barre
d'outils. Les paramtres Row et Column indiquent sur quelles ligne et colonne des barres d'outils ancres la barre d'outils doit tre positionne.
Vous pouvez interroger une barre d'outils pour contrler son ancrage l'aide de la proprit DockStatus Cette proprit renvoie la valeur TRUE si la barre
d'outils est ancre et FALSE si elle est flottante.
Ancrage d'une barre d'outils
Dans cet exemple, une nouvelle barre d'outils est cre et trois boutons lui sont ajouts. La barre d'outils est ensuite affiche et ancre gauche de l'cran.
Sub Ch6_DockToolbar()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application. _
MenuGroups.Item(0)
' Create the new toolbar
Dim newToolbar As AcadToolbar
Set newToolbar = currMenuGroup.Toolbars. _
Add("TestToolbar")
' Add three buttons to the new toolbar.
' All three buttons will have the same macro attached.
Dim newButton1 As AcadToolbarItem
Dim newButton2 As AcadToolbarItem
Dim newButton3 As AcadToolbarItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newButton1 = newToolbar.AddToolbarButton _
("", "NewButton1", "Open a file.", openMacro)
Set newButton2 = newToolbar.AddToolbarButton _
("", "NewButton2", "Open a file.", openMacro)
Set newButton3 = newToolbar.AddToolbarButton _
("", "NewButton3", "Open a file.", openMacro)
' Display the toolbar
newToolbar.Visible = True
' Dock the toolbar to the left of the screen.
newToolbar.Dock acToolbarDockLeft
End Sub
Personnalisation des menus et barres d'outils
Barres d'outils ancres et flottantes
Envoyez-nous vos commentaires sur cette page.
Pour supprimer des boutons d'une barre d'outils, utilisez la mthode Delete trouve sur ces boutons. Ne supprimez un bouton de la barre d'outils que lorsqu'elle
est affiche.
Personnalisation des menus et barres d'outils
Suppression des boutons d'une barre d'outils
Envoyez-nous vos commentaires sur cette page.
Toutes les options de barre d'outils partagent les proprits suivantes :
Personnalisation des menus et barres d'outils
Proprits des options d'une barre d'outils
Page 120 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Tagstring
Une tiquette, ou tiquette de nom, est une chane constitue de caractres alphanumriques et de soulignement (_). Cette chane identifie l'option de
manire unique au sein d'une barre d'outils donne. Une nouvelle tiquette est automatiquement assigne lorsqu'une option de barre d'outils est cre.
Vous pouvez lire ou crire la valeur d'une tiquette l'aide de la proprit Tagstring.
Name
Un nom est une chane qui identifie l'option de la barre d'outils. Il s'agit galement de la chane utilise comme texte d'info-bulle. Ce texte s'affiche lorsqu'un
utilisateur place le pointeur de la souris ou toute autre priphrique de pointage sur une option de la barre d'outils.
Vous pouvez lire ou crire la valeur d'un nom l'aide de la proprit Name.
Macro
Une macro est une srie de commandes qui excutent des actions spcifiques lorsqu'une option de barre de menus est slectionne. Les macros peuvent
tre de simples enregistrements de combinaisons de touches accomplissant une tche, ou bien une combinaison complexe de commandes ou codes de
programmation AutoLISP, DIESEL ou ActiveX.
Vous pouvez lire ou crire la valeur d'une macro l'aide de la proprit Macro.
HelpString
Une chane d'aide est la chane de texte qui s'affiche sur la ligne d'tat d'AutoCAD pour un bouton de barre d'outils.
Vous pouvez lire ou crire la valeur d'une chane d'aide l'aide de la proprit HelpString.
Index
L'index d'une option de barre d'outils spcifie la position de cette option dans la barre d'outils laquelle elle appartient. La position d'index d'une barre d'outils
commence toujours la position 0. Par exemple, si l'option est la premire d'une barre d'outils, elle renvoie la position d'index 0, si elle est la deuxime, elle
renvoie la position d'index 1, et ainsi de suite.
Vous pouvez lire la position d'index d'une option de barre d'outils l'aide de la proprit Index.
Type
Voici les types d'option de barre d'outils : un bouton de barre d'outils normal, un sparateur, un bouton droulant ou un lment de contrle spcial. S'il s'agit
d'un bouton de menu normal, la proprit renvoie acButton. S'il s'agit d'un sparateur, la proprit renvoie acToolButtonSeparator. S'il s'agit d'un
bouton droulant, la proprit renvoie acFlyout. S'il s'agit d'un lment de contrle spcial, la proprit renvoie acControl.
Vous pouvez dterminer le type d'une option de barre d'outils l'aide de la proprit Type.
Flyout
Si l'option de barre d'outils est de type acFlyout, cette proprit renvoie la barre d'outils attache en tant que barre d'outils droulante. La barre d'outils
droulante est renvoye sous la forme d'un objet Toolbar.
Si l'option de menu n'est pas de type acFlyout, cette proprit renvoie la valeur NULL.
Vous pouvez dterminer la barre d'outils droulante d'une option de barre d'outils l'aide de la proprit Flyout.
Parent
Cette proprit renvoie la barre d'outils dans laquelle rside l'option. La barre d'outils Parent est renvoye sous la forme d'un objet Toolbar.
Vous pouvez dterminer la barre d'outils laquelle appartient une option l'aide de la proprit Parent.
Proprits d'une barre d'outils
D'autres proprits s'appliquent toutes les options d'une barre d'outils. Ces proprits dterminent notamment si la barre d'outils est flottante ou ancre, si
elle est visible ou masque et si elle utilise des petits boutons ou des grands boutons.
Envoyez-nous vos commentaires sur cette page.
Une macro est une srie de commandes qui excutent des actions spcifiques lorsqu'une option de barre de menus est slectionne. Les macros peuvent tre
de simples enregistrements de combinaisons de touches accomplissant une tche, ou bien une combinaison complexe de commandes ou codes de
programmation AutoLISP, DIESEL ou ActiveX.
Si vous envisagez d'inclure des paramtres de commande dans une macro de menu, vous devez connatre la squence dans laquelle cette commande attend
ses paramtres. Dans une macro de menu, chaque caractre est significatif, mme les espaces. Les messages des commandes (et parfois mme les noms
des commandes) peuvent changer au fil des rvisions et des amliorations d'AutoCAD. Par consquent, configurez vos menus personnaliss de telle sorte que
seules des modifications mineures soient requises lors d'une mise niveau d'AutoCAD.
Si l'entre de commande est effectue depuis une option de menu, les variables systme PICKADD et PICKAUTO sont supposes valoir respectivement 1 et 0.
Cela permet de prserver la compatibilit avec les versions antrieures d'AutoCAD et de faciliter la personnalisation en vous vitant d'avoir vrifier les
paramtres de ces variables.
Rubriques de cette section :
Mappage de caractres de macro des caractres ASCII quivalents
Fin de la macro
Pause pour entre utilisateur
Annulation d'une commande
Rptition de macro
Mode de slection d'un seul objet
Personnalisation des menus et barres d'outils
Cration de macros
Envoyez-nous vos commentaires sur cette page.
Personnalisation des menus et barres d'outils
Page 121 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Le tableau suivant rcapitule les caractres spciaux utiliss dans les macros de menu et leurs valeurs ASCII quivalentes telles qu'elles sont utilises dans VB
et VBA. Utilisez l'quivalent ASCII pour ces caractres spciaux lors de la cration de la chane pour la proprit Macro
Mappage de caractres de macro des caractres ASCII quivalents
Caractres spciaux utiliss dans les macros de menu et de barre d'outils
Caractre Equivalent ASCII Description
; chr(59) Gnre la touche ENTREE.
^M chr(13) Gnre la touche ENTREE.
^| chr(94) + chr(124) Gnre la touche TAB.
ESPACE chr(32) Entre un espace ; l'espace entre des sries de commandes d'une option de menu revient appuyer sur ESPACE.
\ chr(92) Marque une pause pour permettre l'entre utilisateur.
_ chr(95) Traduit les commandes et mots cls AutoCAD qui suivent
+ chr(43) Poursuit la macro de menu sur la ligne suivante
(si dernier caractre).
=* chr(61) + chr(42) Affiche l'image de niveau suprieur,
le menu droulant ou le menu contextuel courant.
*^C^C chr(42) + chr(3) + chr(3) Prfixe d'option rptitive
$ chr(36) Charge une section de menu ou introduit une expression de macro DIESEL conditionnelle.
^B chr(2) Active ou dsactive l'accrochage (CTRL+B).
^C chr(3) Annule la commande (CTRL+C).
ECHAP chr(3) Annule la commande (ECHAP).
^D chr(4) Active ou dsactive les coordonnes (CTRL+D).
^E chr(5) Dfinit le plan isomtrique suivant (CTRL + E).
^G chr(7) Active ou dsactive la grille (CTRL+G).
^H chr(8) Gnre un retour arrire.
^O chr(15) Active ou dsactive la fonction Ortho (CTRL+O).
^P chr(16) Active ou dsactive MENUECHO.
^Q chr(17) Renvoie un cho de tous les messages, listes d'tat et saisies vers l'imprimante (CTRL+Q).
^T chr(20) Active ou dsactive la tablette (CTRL+T).
^V chr(22) Change de fentre courante (CTRL+V).
^Z chr(26) Caractre Null qui supprime l'ajout automatique de ESPACE la
fin d'une option de menu.
Envoyez-nous vos commentaires sur cette page.
Lors de l'excution d'une macro, AutoCAD insre un espace la fin de la macro avant de traiter la squence de commandes. Il traite la macro de menu
suivante comme si vous aviez entr ligne ESPACE.
Ligne
Cet espace n'est pas toujours souhaitable ; par exemple, la commande TEXTE ou COT doit se terminer par ENTREE, et non par un espace. En outre, une
commande peut parfois ncessiter plusieurs espaces (ou ENTREE), mais certains diteurs de texte n'acceptent pas la cration de ligne avec des espaces
finaux. Deux conventions particulires permettent de rgler ces problmes.
Si un point-virgule (;) apparat dans une macro, AutoCAD le remplace par ENTREE.
Si une ligne se termine par un caractre de contrle, une barre oblique inverse (\), le signe plus (+) ou un point-virgule (;), AutoCAD n'ajoute pas d'espace
la suite.
Regardez la macro suivante :
effacer \;
Si cette option se terminait par une barre oblique inverse (qui signale une entre utilisateur), l'opration EFFACER ne pourrait pas aboutir, car AutoCAD
n'ajoute pas d'espace aprs cette barre oblique. C'est pourquoi cette macro de menu utilise le point-virgule pour imposer ENTREE aprs l'entre utilisateur.
Voici d'autres exemples :
scu
scu ;
texte \.4 0 Socit;;;Rue.;;;Ville, Dpartement;
La slection de la premire macro entre scu et ESPACE sur la ligne de commande, et le message suivant apparat :
Entrez une option [Nouveau/Dplacer/Orthogonal/Prc/Restaurer/Sauver/Effacer/Appliquer/?/Gnral] <Gnral>:
En revanche, la slection de la deuxime macro entre scu, ESPACE et le point-virgule (interprt comme ENTREE) sur la ligne de commande, ce qui accepte
la valeur par dfaut, Gnral. Aucune diffrence entre la premire et la deuxime option n'apparatrait l'cran ; naturellement, vous n'allez pas les placer dans
Personnalisation des menus et barres d'outils
Fin de la macro
Page 122 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
le mme menu.
Si vous slectionnez la troisime macro, un message demandant le point de dpart apparat, puis l'adresse est affiche sur trois lignes. Dans la squence de
trois points-virgules (;;;), le premier marque la fin de la chane de caractres, le deuxime rpte la commande TEXTE et le troisime demande le
positionnement par dfaut en dessous de la ligne prcdente.
Remarque Tous les caractres spciaux doivent tre saisis avec leurs quivalents ASCII. Pour consulter la liste des quivalents ASCII, reportez-vous la
section Mappage de caractres de macro des caractres ASCII quivalents.
Envoyez-nous vos commentaires sur cette page.
Dans certains cas, il est utile d'accepter l'entre utilisateur partir du clavier ou du priphrique de pointage au milieu d'une macro en plaant une barre oblique
inverse (\) l'emplacement souhait.
cercle \1
calque inactif \;
La premire macro marque une pause pour demander l'utilisateur d'entrer le centre, puis lit un rayon de valeur 1 partir de la macro. Remarquez qu'aucun
espace ne suit la barre oblique inverse \. La deuxime macro marque une pause pour demander l'utilisateur d'entrer un nom de calque, puis dsactive ce
calque et quitte la commande CALQUE. En principe, la commande CALQUE vous demande de procder une autre opration et ne s'arrte que si vous
appuyez sur ESPACE (blanc) ou ENTREE (;).
Normalement, la macro reprend aprs qu'une option ait t entre. Par consquent, il n'est pas possible de gnrer une macro acceptant un nombre variable
d'entres (comme dans le cas de la slection d'objets), avant de continuer la procdure. Cependant, la commande SELECT est une exception ; la barre oblique
inverse suspend le droulement de la macro jusqu' ce que la slection de l'objet soit entirement termine. Par exemple, prenons la macro suivante :
select \changer prcdent; proprits couleur rouge ;
Cette macro utilise la commande SELECT pour gnrer un jeu de slection compos d'un ou plusieurs objets. Elle met ensuite la commande CHANGER,
rfrence ce jeu de slection l'aide de l'lment Prcdent, puis met tous les objets slectionns en rouge.
Comme la barre oblique inverse entrane la pause de la macro pour l'entre utilisateur, vous ne pouvez pas utiliser ce signe d'autres fins. Lorsque vous
indiquez le chemin d'accs d'un rpertoire et d'un fichier, utilisez une barre oblique (/) comme sparateur : par exemple,/direct/fichier.
La reprise d'une macro est temporise dans les cas ci-aprs:
Si l'entre d'un point est attendue, les modes d'accrochage aux objets pourront prcder l'entre du point.
Si vous utilisez des filtres de point X/Y/Z, la macro est suspendue tant que vous n'avez pas entr les trois coordonnes.
Pour la commande SELECT uniquement, la macro ne reprend pas tant que la slection de l'objet n'est pas termine.
Si l'utilisateur rpond par une commande transparente, la macro suspendue le reste tant que cette commande n'est pas termine et que l'entre initialement
demande n'a pas t reue.
Si l'utilisateur rpond en choisissant une autre macro (pour fournir des options ou excuter une commande transparente), la macro d'origine est suspendue
et la nouvelle option est intgralement traite avant que la macro suspendue ne reprenne.
Personnalisation des menus et barres d'outils
Pause pour entre utilisateur
Envoyez-nous vos commentaires sur cette page.
Insrez ^C^C dans une macro pour vous assurer qu'aucune commande prcdente n'est incomplte. Cette chane quivaut appuyer deux fois sur la touche
ECHAP du clavier. Bien qu'un simple ^C annule la plupart des commandes, vous devez entrer ^C^C pour revenir l'invite de la ligne de commande partir
d'une commande COT. Vous avez ainsi la certitude qu'AutoCAD revient la ligne de commande dans la plupart des cas.
Personnalisation des menus et barres d'outils
Annulation d'une commande
Envoyez-nous vos commentaires sur cette page.
Une commande slectionne peut tre utilise plusieurs fois avant de passer une autre commande. C'est gnralement le cas avec les outils; vous prenez un
outil, l'utilisez pour diffrentes tches avant de choisir un autre outil, et ainsi de suite. Afin d'viter les slections rptes d'outils frquemment utiliss,
AutoCAD intgre un mcanisme de rptition de commande, dclench par une rponse nulle. Toutefois, vous ne pourrez pas spcifier des options de
commande l'aide de cette mthode.
En effet, elle sert simplement rpter des commandes frquentes jusqu' la slection d'une autre commande. Si une macro commence par *^C^C
immdiatement aprs le libell, elle est enregistre en mmoire. Tous les messages Commande ultrieurs obtiennent une rponse de cette macro jusqu' ce
que vous y mettiez fin en appuyant sur ECHAP ou en slectionnant une autre macro.
Personnalisation des menus et barres d'outils
Rptition de macro
Page 123 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
N'entrez pas ^C (Annuler) dans un macro commenant par la chane *^C^C, car cela annule la rptition de la macro.
Voici un exemple d'approche rptitive ou modale de gestion de commande :
*^C^CDEPLACER Unique
*^C^CCOPIER Unique
*^C^CEFFACER Unique
*^C^CETIRER Unique capture
*^C^CROTATION Unique
*^C^CECHELLE Unique
La rptition de macro ne fonctionne pas dans les menus d'images.
Envoyez-nous vos commentaires sur cette page.
Ce mode paramtre la slection d'un seul objet, dsactive le dialogue normal effectu par la slection d'objet et cause le renvoi du ou des premiers objets
slectionns par l'option suivante. Ceci peut tre trs pratique dans une macro. Par exemple, prenons la macro suivante :
*^C^CEFFACER unique
Cette macro met fin la commande courante et active la commande EFFACER avec l'option de slection unique. Ds que vous avez slectionn cette option,
vous pouvez soit dsigner l'objet effacer, soit pointer sur une zone vide et spcifier une fentre. Le ou les objets slectionns de cette manire sont effacs et
la macro est rpte (grce au signe astrisque) afin que vous puissiez effacer un autre objet. Ce mode permet une interaction plus dynamique avec AutoCAD.
Personnalisation des menus et barres d'outils
Mode de slection d'un seul objet
Envoyez-nous vos commentaires sur cette page.
Une partie importante du support d'aide natif est constitue des messages d'aide de la ligne d'tat. Il s'agit de messages descriptifs simples qui s'affichent sur la
ligne d'tat lorsqu'une option de menu ou de barre d'outils est mise en surbrillance. L'aide de ligne d'tat pour toutes les options de menu et de barre d'outils est
contenue dans la proprit HelpString de l'option.
La proprit HelpString est vide lorsque l'option de menu ou de barre d'outils est cre.
Ajout de l'aide de ligne d'tat une option de menu
Dans cet exemple, un nouveau menu intitul MenuTest est cr suivi d'une option de menu intitule Ouvrir.L'option de menu est ensuite assigne l'aide de
ligne d'tat via la proprit HelpString.
Sub Ch6_AddHelp()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add _
("Te" + Chr(Asc("&")) + "stMenu")
' Add a menu item to the new menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VBA equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
' Create the menu item
Set newMenuItem = newMenu.AddMenuItem _
(newMenu.count + 1, Chr(Asc("&")) _
+ "Open", openMacro)
' Add the status line help to the menu item
newMenuItem.HelpString = "Opens an AutoCAD drawing file."
' Display the menu on the menu bar
newMenu.InsertInMenuBar _
(ThisDrawing.Application.menuBar.count + 1)
End Sub
Personnalisation des menus et barres d'outils
Cration d'une aide de ligne d'tat pour des options de menu et de barre d'outils
Envoyez-nous vos commentaires sur cette page.
Personnalisation des menus et barres d'outils
Ajout d'entres dans le menu contextuel
Page 124 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Le menu contextuel. accessible l'aide du bouton droit de la souris, est un menu spcial inclus dans le groupe de menus de base d'AutoCAD. Il s'affiche
lorsque l'utilisateur maintient la touche MAJ enfonce et clique avec le bouton droit de la souris.
Pour trouver le menu contextuel, AutoCAD recherche dans le groupe de menus de base un menu dont la proprit ShortcutMenu est gale TRUE. Vous
pouvez ajouter de nouvelles options de menu au menu contextuel en suivant les tapes dcrites dans la section Ajout de nouvelles options un menu.
Il se peut que les nouveaux groupes de menus n'aient pas de menu contextuel disponible. Pour en crer un, suivez les instructions de la section Cration de
menus et utilisez POP0 comme libell de nouveau menu.
Ajout d'une option de menu la fin du menu contextuel
Dans cet exemple, l'option de menu OuvrirDWG est ajoute la fin du menu contextuel.
Sub Ch6_AddMenuItemToshortcutMenu()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Find the shortcut menu and assign it to the
' shortcutMenu variable
Dim scMenu As AcadPopupMenu
Dim entry As AcadPopupMenu
For Each entry In currMenuGroup.Menus
If entry.shortcutMenu = True Then
Set scMenu = entry
End If
Next entry
' Add a menu item to the shortcut menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VBA equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = scMenu.AddMenuItem _
("", Chr(Asc("&")) _
+ "OpenDWG", openMacro)
End Sub
Envoyez-nous vos commentaires sur cette page.
Les vnements sont des notifications ou des messages envoys par AutoCAD pour vous informer de l'tat actuel de la session ou pour vous avertir de
certains vnements sur le systme. Par exemple, lorsqu'un dessin est ouvert, l'vnement BeginOpen est dclench. Cet vnement contient le nom du
dessin AutoCAD ouvert. Un autre vnement est dclench lorsqu'un dessin est referm. A partir de ces informations, vous pouvez crire un sous-programme,
ou gestionnaire d'vnements, qui utilise ces vnements pour retracer la dure passe par un utilisateur sur un dessin spcifique.
Rubriques de cette section :
Utilisation d'vnements dans AutoCAD
Instructions pour l'criture de gestionnaires d'vnements
Gestion d'vnements au niveau de l'application
Gestion d'vnements au niveau du document
Gestion d'vnements au niveau de l'objet
Evnements
Envoyez-nous vos commentaires sur cette page.
Trois types d'vnements sont utiliss dans AutoCAD
:
Les vnements au niveau de l'application rpondent aux changements survenus dans l'application AutoCAD et son environnement. Ils rpondent
notamment l'ouverture, l'enregistrement, la fermeture, l'impression et la cration de dessins, l'excution de commandes AutoCAD, le chargement et le
dchargement d'applications ARX et LISP, le changement des variables systme et de la fentre d'application.
Les vnements au niveau du document rpondent aux modifications apportes un document ou son contenu. Ils rpondent notamment l'ajout, la
suppression ou la modification d'objets, l'activation d'un menu contextuel, toute modification du jeu de slection PICKFIRST et de la fentre de dessin, ainsi
qu' la rgnration du dessin. Il existe galement des vnements au niveau du document qui rpondent l'ouverture, la fermeture et l'impression d'un
dessin, ainsi qu'au chargement et au dchargement d'applications ARX et LISP du dessin.
Les vnements au niveau de l'objet rpondent aux modifications apportes un objet. Actuellement, il n'existe qu'un seul vnement de ce type. Il est
dclench lorsqu'un objet est modifi.
Evnements
Utilisation d'vnements dans AutoCAD
Page 125 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les sous-programmes qui rpondent des vnements sont appels des gestionnaires d'vnements et sont excuts automatiquement chaque fois que
l'vnement correspondant est dclench. Les informations contenues dans des vnements, telles que le nom du dessin dans l'vnementBeginOpen, sont
transmises des gestionnaires d'vnements via des paramtres.
Envoyez-nous vos commentaires sur cette page.
N'oubliez pas que les vnements fournissent simplement des informations sur l'tat ou les activits qui ont lieu dans AutoCAD. Bien que des gestionnaires
d'vnements puissent tre crits pour rpondre ces vnements, AutoCAD est souvent en train de traiter des commandes au moment du dclenchement du
gestionnaire. C'est pourquoi, la fonction de ces gestionnaires est limite afin de garantir leur utilisation sre dans AutoCAD et sa base de donnes.
Ne vous fiez pas la squence d'vnements.
Lorsque vous crivez des gestionnaires d'vnements, n'oubliez pas que les vnements ne se produiront pas ncessairement dans l'ordre prvu. Par
exemple, si vous excutez une commande OUVRIR, les vnements BeginCommand, BeginOpen, EndOpen et EndCommand sont dclenchs. Toutefois,
ils ne seront pas ncessairement excuts dans cet ordre. La seule squence d'vnements fiable est l'excution obligatoire d'un vnement Begin avant un
vnement End. Dans l'exemple prcdent, les vnements peuvent tre dclenchs dans l'ordre suivant : BeginCommand, BeginOpen, EndCommand et
EndOpen, ou mme BeginCommand, EndCommand, BeginOpen et EndOpen.
Ne vous fiez pas la squence d'oprations.
Si vous supprimez object1 puis object2, vous ne recevrez pas ncessairement l'vnement ObjectErased pour object1 avant celui pour object2. L'vnement
ObjectErased pour object2 risque en effet d'arriver en premier.
N'essayez pas d'excuter une fonction interactive depuis un gestionnaire d'vnements.
Cela risque en effet de provoquer des problmes graves car AutoCAD risque d'tre en train d'excuter une commande au moment du dclenchement de
l'vnement. C'est pourquoi, vous devez toujours viter d'utiliser des mthodes d'acquisition de saisie comme GetPoint, GetEntity, GetKeyword, etc., des
oprations sur des jeux de slection et la mthode SendCommand depuis des gestionnaires d'vnements.
Ne lancez pas non plus de bote de dialogue depuis un gestionnaire d'vnements.
Les botes de dialogue sont considres comme des fonctions interactives et peuvent interfrer sur le fonctionnement d'AutoCAD. Les botes de message et
les fentres d'alerte ne sont pas considres comme interactives ; elles peuvent donc tre utilises sans risque. Notez cependant que l'ouverture d'une bote
de message au sein d'un gestionnaire d'vnement BeginModal, EndModal, Activate, Deactivate ou BeginRightClick, a des rsultats imprvisibles.
Vous pouvez crire des donnes dans n'importe quel objet de la base de donnes, sauf celui qui a dclench l'vnement.
Tout objet provoquant le dclenchement d'un vnement peut tre ouvert pour tre utilis dans AutoCAD et la session en cours. C'est pourquoi, il faut viter
d'crire des informations dans un objet partir d'un gestionnaire d'vnements cr pour le mme objet. Mais, vous pouvez lire des informations depuis
l'objet qui a dclench un vnement en toute scurit. Supposons, par exemple, que vous ayez un sol recouvert de dalles et que vous criez un
gestionnaire d'vnements associ la bordure de ce sol. Si vous changez la taille du sol, le gestionnaire d'vnements ajoute ou soustrait automatiquement
des dalles pour remplir la surface supplmentaire. Le gestionnaire peut lire la nouvelle surface de bordure, mais ne peut pas essayer de la modifier.
N'excutez aucune action depuis un gestionnaire d'vnements qui dclenche le mme vnement.
Vous risquez de crer une boucle sans fin. Ainsi, n'essayez jamais d'ouvrir un dessin depuis l'vnement BeginOpen car AutoCAD continuera d'ouvrir des
dessins jusqu' ce que le nombre maximal de dessins ouverts soit atteint.
N'oubliez pas qu'aucun vnement n'est dclench tant qu'AutoCAD affiche une bote de dialogue modale.
Evnements
Instructions pour l'criture de gestionnaires d'vnements
Envoyez-nous vos commentaires sur cette page.
Ces vnements ne sont pas constants dans AutoCAD VBA. Ils ne sont en effet pas activs automatiquement au chargement d'un projet VBA. Les vnements
au niveau de l'application doivent tre activs pour VBA et tous les autres contrleurs d'Automatisation ActiveX
.
Une fois les vnements au niveau de l'application activs, un vaste choix d'vnements est mis votre disposition. Parmi ces vnements :
AppActivate
Dclench juste avant l'activation de la fentre d'application principale.
AppDeactivate
Dclench juste avant la dsactivation de la fentre d'application principale.
ARXLoaded
Dclench aprs chargement d'une application ObjectARX.
ARXUnloaded
Dclench aprs le dchargement d'une application ObjectARX.
BeginCommand
Dclench immdiatement aprs le lancement d'une commande, mais avant son arrt.
BeginFileDrop
Dclench lorsqu'un fichier est dpos dans la fentre d'application principale.
BeginLISP
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'valuation d'une expression LISP.
BeginModal
Dclench juste avant l'affichage d'une bote de dialogue modale.
BeginOpen
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'ouverture d'un dessin existant.
BeginPlot
Evnements
Gestion d'vnements au niveau de l'application
Page 126 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'impression d'un dessin.
BeginQuit
Dclench juste avant la fin d'une session AutoCAD.
BeginSave
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'enregistrement du dessin.
EndCommand
Dclench immdiatement aprs la fin d'une commande.
EndLISP
Dclench aprs valuation d'une expression LISP.
EndModal
Dclench juste aprs l'annulation d'une bote de dialogue modale.
EndOpen
Dclench immdiatement aprs qu'AutoCAD ait fini d'ouvrir un dessin existant.
EndPlot
Dclench aprs qu'un document ait t envoy l'imprimante.
EndSave
Dclench lorsque AutoCAD a termin d'enregistrer le dessin.
LISPCancelled
Dclench aprs annulation de l'valuation d'une expression LISP.
NewDrawing
Dclench juste avant la cration d'un dessin.
SysVarChanged
Dclench lorsque la valeur d'une variable systme est change.
WindowChanged
Dclench lorsque la fentre d'application est modifie.
WindowMovedOrResized
Dclench juste aprs que la fentre d'application ait t dplace ou redimensionne.
Rubriques de cette section :
Activation d'vnements au niveau de l'application
Envoyez-nous vos commentaires sur cette page.
Avant d'utiliser des vnements au niveau de l'application, vous devez crer un nouveau module de classe et dclarer un objet de type AcadApplication avec
des vnements. Supposons, par exemple, qu'un module de classe soit cr et appel EventClassModule. Ce nouveau module contient la dclaration de
l'application avec le mot cl VBA WithEvents.
Pour crer une classe et dclarer un objet Application avec des vnements
1. Dans VBA IDE, insrez un module de classe. Dans le menu Insertion, choisissez Module de classe.
2. Slectionnez le nouveau module de classe dans la fentre Projet.
3. Dans la fentre Proprits, changez le nom de la classe en Module-EventClass.
4. Ouvrez la fentre Code de la classe en appuyant sur la touche F7 ou en choisissant Affichage Code.
5. Dans la fentre Code de la classe, insrez la ligne suivante :
Public WithEvents App As AcadApplication
Une fois le nouvel objet dclar avec des vnements, il apparat dans la zone de liste droulante des objets du module de classe et vous pouvez crire des
procdures d'vnements pour cet objet dans le module. (Lorsque vous slectionnez le nouvel objet dans la zone des objets, les vnements pouvant tre
utiliss avec cet objet apparaissent dans la zone de liste droulante des procdures.)
Toutefois, avant l'excution des procdures, vous devez connecter l'objet dclar dans le module de classe l'objet Application Cette opration peut tre
excute en entrant le code suivant partir de n'importe quel module.
Pour connecter l'objet dclar l'objet Application
1. Dans la fentre Code du module principal, insrez la ligne suivante dans la section de dclaration:
Dim X As New EventClassModule
2. Toujours dans cette fentre, ajoutez le sous-programme suivant :
Sub InitializeEvents()
Set X.App = ThisDrawing.Application
End Sub
3. Dans le code du module principal, ajoutez un appel au sous-programme InitializeEvents:
Call InitializeEvents
Une fois la procdure InitializeEvents excute, l'objet App du module de classe dsigne l'objet Application spcifi et les procdures d'vnements de ce
module sont excutes lorsque les vnements se produisent.
Invite continuer quand un dessin est dpos dans AutoCAD
Dans cet exemple, le processus de chargement est intercept aprs que vous ayez fait glisser et dpos un fichier dans AutoCAD. Une bote de message
contenant le nom du fichier ayant t dpos et les boutons Oui/Non/Continuer qui permettent l'utilisateur de dcider si le chargement du fichier doit tre
Evnements
Activation d'vnements au niveau de l'application
Page 127 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
poursuivi s'affichent. Si l'utilisateur dcide d'annuler l'opration, sa dcision est renvoye via le paramtre Cancel de l'vnement BeginFileDrop et le fichier
n'est pas charg.
Public WithEvents ACADApp As AcadApplication
Sub Example_AcadApplication_Events()
' This example intializes the public variable (ACADApp)
' which will be used to intercept AcadApplication Events
'
' Run this procedure FIRST!
' We could get the application from the ThisDocument
' object, but that would require having a drawing open,
' so we grab it from the system.
Set ACADApp = GetObject(, "AutoCAD.Application.17")
End Sub
Private Sub ACADApp_BeginFileDrop _
(ByVal FileName As String, Cancel As Boolean)
' This example intercepts an Application BeginFileDrop event.
'
' This event is triggered when a drawing file is dragged
' into AutoCAD.
'
' To trigger this example event:
' 1) Make sure to run the example that initializes
' the public variable (named ACADApp) linked to this event.
'
' 2) Drag an AutoCAD drawing file into the AutoCAD
' application from either the Windows Desktop
' or Windows Explorer
' Use the "Cancel" variable to stop the loading of the
' dragged file, and the "FileName" variable to notify
' the user which file is about to be dragged in.
If MsgBox("AutoCAD is about to load " & FileName & vbCrLf _
& "Do you want to continue loading this file?", _
vbYesNoCancel + vbQuestion) <> vbYes Then
Cancel = True
End If
End Sub
Envoyez-nous vos commentaires sur cette page.
Les vnements au niveau Document sont constants dans AutoCAD VBA. Ils sont en effet activs automatiquement au chargement d'un projet VBA. Ils ne sont
cependant pas activs pour d'autres contrleurs, comme VB. Les vnements au niveau Document doivent tre activs pour tous les autres contrleurs
d'automatisation ActiveX.
Une fois les vnements au niveau du document activs, un vaste choix d'vnements est mis votre disposition. Parmi ces vnements :
Activate
Dclench lorsqu'une fentre de document est active.
BeginDocClose
Dclench immdiatement aprs rception de la requte de fermeture d'un dessin.
BeginCommand
Dclench immdiatement aprs le lancement d'une commande, mais avant son arrt.
BeginDoubleClick
Dclench aprs que l'utilisateur ait cliqu deux fois sur un objet du dessin.
BeginLISP
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'valuation d'une expression LISP.
BeginPlot
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'impression d'un dessin.
BeginRightClick
Dclench aprs que l'utilisateur ait cliqu avec le bouton droit de la souris dans la fentre du dessin.
BeginSave
Dclench immdiatement aprs qu'AutoCAD ait reu une demande d'enregistrement du dessin.
BeginShortcutMenuCommand
Dclench aprs que l'utilisateur ait cliqu avec le bouton droit de la souris dans la fentre du dessin et avant que le menu contextuel apparaisse en mode
Commande.
BeginShortcutMenuDefault
Dclench aprs que l'utilisateur ait cliqu avec le bouton droit de la souris dans la fentre du dessin et avant que le menu contextuel apparaisse en mode
Par dfaut.
BeginShortcutMenuEdit
Dclench aprs que l'utilisateur ait cliqu avec le bouton droit de la souris dans la fentre du dessin et avant que le menu contextuel apparaisse en mode
Edition.
BeginShortcutMenuGrip
Dclench aprs que l'utilisateur ait cliqu avec le bouton droit de la souris dans la fentre du dessin et avant que le menu contextuel apparaisse en mode
Poigne.
BeginShortcutMenuOsnap
Evnements
Gestion d'vnements au niveau du document
Page 128 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dclench aprs que l'utilisateur ait cliqu avec le bouton droit de la souris dans la fentre du dessin et avant que le menu contextuel apparaisse en mode
Accrobj.
Deactivate
Dclench lorsque la fentre du dessin est dsactive.
EndCommand
Dclench immdiatement aprs la fin d'une commande.
EndLISP
Dclench aprs valuation d'une expression LISP.
EndPlot
Dclench aprs qu'un document ait t envoy l'imprimante.
EndSave
Dclench lorsque AutoCAD a termin d'enregistrer le dessin.
EndShortcutMenu
Dclench aprs affichage du menu contextuel.
LayoutSwitched
Dclench aprs que l'utilisateur ait choisi une autre prsentation.
LISPCancelled
Dclench aprs annulation de l'valuation d'une expression LISP.
ObjectAdded
Dclench aprs qu'un objet ait t ajout au dessin.
ObjectErased
Dclench aprs qu'un objet ait t supprim du dessin.
ObjectModified
Dclench aprs modification d'un objet du dessin.
SelectionChanged
Dclench aprs modification du jeu de slection PICKFIRST courant.
WindowChanged
Dclench lorsque la fentre du document est modifie.
WindowMovedOrResized
Dclench juste aprs que la fentre du dessin ait t dplace ou redimensionne.
Rubriques de cette section :
Activation d'vnements au niveau du document dans des environnements autres que VBA
Codage d'vnements au niveau du document dans des environnements autres que VBA
Codage des vnements au niveau du document dans VBA
Envoyez-nous vos commentaires sur cette page.
Avant d'utiliser des vnements au niveau du document dans VB ou un environnement autre que VBA, vous devez crer un nouveau module de classe et
dclarer un objet de type AcadDocument avec des vnements. Supposons, par exemple, qu'un module de classe soit cr et appel EventClassModule. Ce
nouveau module contient la dclaration de l'application avec le mot cl VBA WithEvents.
Pour crer une classe et dclarer un objet Document avec des vnements
1. Dans VBA IDE, insrez un module de classe. Dans le menu Insertion, choisissez Module de classe.
2. Slectionnez le nouveau module de classe dans la fentre Projet.
3. Dans la fentre Proprits, changez le nom de la classe en Module-EventClass.
4. Ouvrez la fentre Code de la classe en appuyant sur la touche F7 ou en choisissant Affichage Code.
5. Dans la fentre Code de la classe, insrez la ligne suivante :
Public WithEvents Doc As AcadDocument
Une fois le nouvel objet dclar avec des vnements, il apparat dans la zone de liste droulante des objets du module de classe et vous pouvez crire des
procdures d'vnements pour cet objet dans le module. (Lorsque vous slectionnez le nouvel objet dans la zone des objets, les vnements pouvant tre
utiliss avec cet objet apparaissent dans la zone de liste droulante des procdures.)
Toutefois, avant l'excution des procdures, vous devez connecter l'objet dclar dans le module de classe l'objet Document. Cette opration peut tre
excute en entrant le code suivant partir de n'importe quel module.
Pour connecter l'objet dclar l'objet Document
1. Dans la fentre Code du module principal, insrez la ligne suivante dans la section de dclaration:
Dim X As New EventClassModule
2. Toujours dans cette fentre, ajoutez le sous-programme suivant :
ub InitializeEvents()
Set X.Doc = ThisDrawing
End Sub
3. Dans le code du module principal, ajoutez un appel au sous-programme InitializeApp:
Call InitializeEvents
Une fois la procdure InitializeEvents excute, l'objet Doc du module de classe dsigne l'objet Document cr et les procdures d'vnements de ce
Evnements
Activation d'vnements au niveau du document dans des environnements autres que VBA
Page 129 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
module sont excutes lorsque les vnements se produisent.
Envoyez-nous vos commentaires sur cette page.
Une fois des vnements au niveau du document activs, la variable de classe Doc est disponible dans la zone de liste droulante des objets de la fentre
Code du module de classe. Slectionnez la classe Doc ; la liste des vnements disponibles apparat dans la zone de liste droulante des procdures.
Slectionnez l'vnement pour lequel vous voulez crire un gestionnaire ; le "squelette" du gestionnaire est cr automatiquement.
Evnements
Codage d'vnements au niveau du document dans des environnements autres que VBA
Envoyez-nous vos commentaires sur cette page.
Les vnements au niveau du document sont activs automatiquement au chargement d'un projet VBA. Pour crire des gestionnaires d'vnements pour des
vnements au niveau du document dans VBA, il suffit de slectionner AcadDocument dans la zone de liste droulante des objets de la fentre Code. Les
vnements disponibles pour le document apparaissent dans la liste droulante des procdures. Slectionnez l'vnement pour lequel vous voulez crire un
gestionnaire ; le "squelette" du gestionnaire est cr automatiquement.
Notez que les gestionnaires d'vnements crs de cette faon s'appliquent au dessin courant. Pour crer des gestionnaires d'vnements pour un dessin
donn, suivez les tapes dcrites au paragraphe Activation d'vnements au niveau du document dans des environnements autres que VBA. Vous pourrez ainsi
activer un document spcifique pour des vnements.
Dans l'exemple suivant, le gestionnaire d'vnements est utilis pour l'vnement BeginShortcutMenuDefault afin d'ajouter l'option de menu OpenDWG au
dbut du menu contextuel. Ensuite, le gestionnaire de l'vnement EndShortcutMenu supprime l'option de menu supplmentaire pour qu'elle ne soit pas
enregistre de faon permanente dans la configuration du menu de l'utilisateur.
Private Sub AcadDocument_BeginShortcutMenuDefault _
(ShortcutMenu As AutoCAD.IAcadPopupMenu)
On Error Resume Next
' Add a menu item to the cursor menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
openMacro = Chr(vbKeyEscape) + Chr(vbKeyEscape) + "_open "
Set newMenuItem = ShortcutMenu.AddMenuItem _
(0, Chr(Asc("&")) _
+ "OpenDWG", openMacro)
End Sub
Private Sub AcadDocument_EndShortcutMenu _
(ShortcutMenu As AutoCAD.IAcadPopupMenu)
On Error Resume Next
ShortcutMenu.Item("OpenDWG").Delete
End Sub
Evnements
Codage des vnements au niveau du document dans VBA
Envoyez-nous vos commentaires sur cette page.
L'vnement au niveau de l'objet n'est pas constant dans AutoCAD VBA. Ils ne sont en effet pas activs automatiquement au chargement d'un projet VBA. Les
vnements au niveau de l'objet doivent tre activs pour VBA et tous les autres contrleurs d'automatisation ActiveX.
Une fois que les vnements au niveau de l'objet ont t activs, l'vnement Modified est mis votre disposition. Cet vnement est dclench aprs la
modification d'un objet du dessin.
Rubriques de cette section :
Activation d'un vnement au niveau de l'objet
Evnements
Gestion d'vnements au niveau de l'objet
Envoyez-nous vos commentaires sur cette page.
Evnements
Page 130 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Avant d'utiliser des vnements au niveau de l'objet, vous devez crer un nouveau module de classe et dclarer un objet de type AcadObject avec des
vnements. Supposons, par exemple, qu'un module de classe soit cr et appel EventClassModule. Ce nouveau module contient la dclaration de
l'application avec le mot cl VBA WithEvents.
Pour crer une classe et dclarer un objet Circle avec des vnements
1. Dans VBA IDE, insrez un module de classe. Dans le menu Insertion, choisissez Module de classe.
2. Slectionnez le nouveau module de classe dans la fentre Projet.
3. Dans la fentre Proprits, changez le nom de la classe en Module-EventClass.
4. Ouvrez la fentre Code de la classe en appuyant sur la touche F7 ou en choisissant Affichage Code.
5. Dans la fentre Code de la classe, insrez la ligne suivante :
Public WithEvents Object As AcadCircle
Une fois le nouvel objet dclar avec des vnements, il apparat dans la zone de liste droulante des objets du module de classe et vous pouvez crire des
procdures d'vnements pour cet objet dans le module. (Lorsque vous slectionnez le nouvel objet dans la zone des objets, les vnements pouvant tre
utiliss avec cet objet apparaissent dans la zone de liste droulante des procdures.)
Toutefois, avant l'excution des procdures, vous devez connecter l'objet dclar dans le module de classe l'objet Circle. Cette opration peut tre excute
en entrant le code suivant partir de n'importe quel module.
Pour connecter l'objet dclar l'objet Automation
1. Dans la fentre Code du module principal, insrez la ligne suivante dans la section de dclaration:
Dim X As New EventClassModule
2. Toujours dans cette fentre, crez un cercle appel MyCircle et initialisez-le comme contenant des vnements :
Sub InitializeEvents()
Dim MyCircle As AcadCircle
Dim centerPoint(0 To 2) As Double
Dim radius As Double
centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
radius = 5#
Set MyCircle = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius)
Set X.Object = MyCircle
End Sub
3. Dans le code du module principal, ajoutez un appel au sous-programme InitializeApp:
Call InitializeEvents
Une fois la procdure InitializeEvents excute, l'objet Circle du module de classe dsigne l'objet Circle cr et les procdures d'vnements de ce
module sont excutes lorsque les vnements se produisent.
Remarque Lors du codage dans VBA, vous devez fournir un gestionnaire d'vnements pour tous les objets activs pour l'vnement Modified. Sinon,
l'excution de VBA risque de prendre fin de faon inattendue.
Dans cet exemple, une polyligne fine est cre avec des vnements. Le gestionnaire d'vnements de la polyligne affiche ensuite la nouvelle aire
lorsque la polyligne est modifie. Pour dclencher l'vnement, modifiez l'paisseur de la polyligne dans AAutoCAD. Pensez excuter le sous-
programme CreatePLineWithEvents avant d'activer le gestionnaire d'vnements.
Public WithEvents PLine As AcadLWPolyline
Sub CreatePLineWithEvents()
' This example creates a light weight polyline
Dim points(0 To 9) As Double
points(0) = 1: points(1) = 1
points(2) = 1: points(3) = 2
points(4) = 2: points(5) = 2
points(6) = 3: points(7) = 3
points(8) = 3: points(9) = 2
Set PLine = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
PLine.Closed = True
ThisDrawing.Application.ZoomAll
End Sub
Private Sub PLine_Modified _
(ByVal pObject As AutoCAD.IAcadObject)
' This event is triggered when the polyline is resized.
' If the polyline is deleted the modified event is still
' triggered, so we use the error handler to avoid
' reading data from a deleted object.
On Error GoTo ERRORHANDLER
MsgBox "The area of " & pObject.ObjectName & " is: " _
& pObject.Area
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Activation d'un vnement au niveau de l'objet
Envoyez-nous vos commentaires sur cette page.
Travail en 3D
Page 131 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dans la plupart des cas, les dessins sont des vues en deux dimensions (2D) reprsentant des objets en trois dimensions (3D). Bien que cette mthode de
dessin soit trs utilise dans les secteurs de l'architecture et de l'ingnierie, elle prsente des limites : les dessins sont des reprsentations en 2D d'objets 3D et
doivent tre interprts visuellement. D'autre part, les diffrentes vues de l'objet sont des reprsentations indpendantes et une erreur ou une ambigut est
toujours possible. Par consquent, il est prfrable de crer de vritables modles en 3D au lieu de dessins en 2D. Vous pouvez crer des objets 3D prcis et
ralistes et les manipuler de diverses faons l'aide des outils de dessin proposs par AutoCAD.
Rubriques de cette section :
Dtermination de coordonnes en 3D
Dfinition d'un systme de coordonnes utilisateur
Conversion de coordonnes
Cration d'objets 3D
Oprations d'dition en 3D
Edition de solides en 3D
Envoyez-nous vos commentaires sur cette page.
L'entre de coordonnes du systme de coordonnes gnral (SCG) 3D est semblable celle de coordonnes SCG 2D. Si ce n'est qu'outre les valeurs X et Y,
vous devez spcifier une valeur Z. Comme dans le cas des coordonnes 2D, une variante est utilise pour transfrer les coordonnes aux proprits et
mthodes ActiveX
, toutes les coordonnes sont entres dans le systme de coordonnes gnral (SCG). Pour renvoyer la matrice de
transformation d'un SCU, utilisez la mthode GetUCSMatrix Pour rechercher les coordonnes SCG quivalentes, utilisez cette matrice de transformation.
Pour rendre une matrice SCU active, utilisez la proprit ActiveUCS de l'objet Document Si des modifications sont apportes au SCU actif, le nouvel objet SCU
doit tre rinitialis en tant que SCU actif pour reflter ces modifications. Pour rinitialiser le SCU actif, appelez nouveau la proprit ActiveUCS avec l'objet
mis jour.
Pour de plus amples informations sur la dfinition d'un SCU, reportez-vous la section Gestion du systme de coordonnes utilisateur en 3D du Manuel
d'utilisation.
Cration, activation d'un SCU et conversion des coordonnes d'un point en coordonnes SCU
Le sous-programme suivant cre un SCU et le dfinit comme SCU actif du dessin. Il invite ensuite l'utilisateur slectionner un point sur le dessin et renvoie les
coordonnes SCU et SCG de ce point.
Sub Ch8_NewUCS()
' Define the variables we will need
Dim ucsObj As AcadUCS
Dim origin(0 To 2) As Double
Dim xAxisPnt(0 To 2) As Double
Dim yAxisPnt(0 To 2) As Double
' Define the SCU points
origin(0) = 4: origin(1) = 5: origin(2) = 3
xAxisPnt(0) = 5: xAxisPnt(1) = 5: xAxisPnt(2) = 3
yAxisPnt(0) = 4: yAxisPnt(1) = 6: yAxisPnt(2) = 3
' Add the UCS to the
' UserCoordinatesSystems collection
Set ucsObj = ThisDrawing.UserCoordinateSystems. _
Add(origin, xAxisPnt, yAxisPnt, "New_SCU")
' Display the UCS icon
ThisDrawing.ActiveViewport.UCSIconAtOrigin = True
ThisDrawing.ActiveViewport.UCSIconOn = True
' Make the new UCS the active UCS
ThisDrawing.ActiveUCS = ucsObj
MsgBox "The current UCS is : " & ThisDrawing.ActiveUCS.Name _
& vbCrLf & " Pick a point in the drawing."
' Find the WCS and UCS coordinate of a point
Dim WCSPnt As Variant
Dim UCSPnt As Variant
WCSPnt = ThisDrawing.Utility.GetPoint(, "Enter a point: ")
UCSPnt = ThisDrawing.Utility.TranslateCoordinates _
(WCSPnt, acWorld, acUCS, False)
MsgBox "The WCS coordinates are: " & WCSPnt(0) & ", " _
& WCSPnt(1) & ", " & WCSPnt(2) & vbCrLf & _
"The UCS coordinates are: " & UCSPnt(0) & ", " _
& UCSPnt(1) & ", " & UCSPnt(2)
End Sub
Travail en 3D
Dfinition d'un systme de coordonnes utilisateur
Envoyez-nous vos commentaires sur cette page.
La mthode TranslateCoordinates traduit un point ou un dplacement d'un systme de coordonnes dans un autre. Un argument point appel OriginalPoint
peut tre interprt comme un point 3D ou un vecteur de dplacement 3D. Cet argument se distingue par l'argument boolenDisp. Si l'argument Disp est
dfini sur TRUE, l'argument OriginalPoint est considr comme un vecteur de dplacement ; sinon, il est trait comme un point. Deux autres arguments
dterminent de quel systme de coordonnes l'argument OriginalPoint provient et en quel systme de coordonnes il doit tre converti. Les systmes de
coordonnes AutoCAD suivants peuvent tre spcifis par les arguments de et :
SCG
Systme de coordonnes gnral : systme de coordonnes de rfrence. Tous les autres systmes de coordonnes sont dfinis en fonction du SCG, qui ne
change jamais. Les valeurs mesures en fonction du SCG restent stables lorsque des modifications sont apportes d'autres systmes de coordonnes.
Sauf spcification contraire, tous les points issus de mthodes et proprits ActiveX ou transfrs vers elles, sont exprims dans le SCG.
Travail en 3D
Conversion de coordonnes
Page 133 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
SCU
Systme de coordonnes utilisateur (SCU) : systme de coordonnes de travail. L'utilisateur spcifie un SCU pour faciliter les oprations de trac. Tous les
points transmis aux commandes AutoCAD, notamment ceux renvoys par les sous-programmes AutoLISP et les fonctions externes, sont des points exprims
dans le SCU courant ( moins que l'utilisateur ne les fasse prcder d'un astrisque * au niveau de la ligne de commande). Pour que votre application
transmette des coordonnes du SCG, SCO ou SCV vers des commandes AutoCAD, vous devez d'abord les convertir en SCU en faisant appel la mthode
TranslateCoordinates.
SCO
Systme de coordonnes de l'objet : les valeurs de point spcifies par certaines mthodes et proprits pour les objets Polyline et LightweightPolyline sont
exprimes dans ce systme de coordonnes relatif l'objet. Ces points sont gnralement convertis dans le SCG, le SCU courant ou le SCV courant, selon
l'utilisation prvue pour l'objet. A l'inverse, les points du SCG, SCU ou SCV doivent tre convertis dans un SCO avant d'tre enregistrs dans la base de
donnes via les mmes proprits. Reportez-vous au manuel ActiveX and VBA Reference d'AutoCAD pour connatre les mthodes et proprits qui utilisent
ce systme de coordonnes.
Lors de la conversion de coordonnes vers ou depuis le SCO, vous devez dfinir la norme pour ce systme dans l'argument final de la fonction
TranslateCoordinates.
SCV
Systme de coordonnes de visualisation : le systme de coordonnes dans lequel sont transforms les objets avant leur affichage. L'origine du SCV est le
point mmoris dans la variable systme TARGET d'AutoCAD, et son axe Z est la direction de visualisation. En d'autres termes, une fentre est toujours une
vue en plan de son SCV. Ces coordonnes permettent de dterminer l'endroit o un lment sera affich l'attention de l'utilisateur d'AutoCAD.
SCVEP
SCV de l'espace papier : ce systme de coordonnes ne peut tre transform que vers ou partir du SCV de la fentre active de l'espace objet. Il s'agit
essentiellement d'une transformation 2D, dans laquelle les coordonnes X et Y sont toujours mises l'chelle et dcales si l'argument Disp a la valeur
FALSE. La coordonne Z est mise l'chelle mais n'est jamais convertie. Elle peut donc servir dterminer le facteur d'chelle entre les deux systmes de
coordonnes. Le SCVEP ne peut tre converti que dans la fentre de l'espace objet active. Si l'argument de est gal SCVEP, l'argument doit tre gal
SCV et inversement.
Conversion de coordonnes du SCO en coordonnes du SCG
Dans cet exemple, une polyligne est cre dans l'espace objet. Le premier sommet de cette polyligne est ensuite affich dans les coordonnes du SCO et du
SCG. La conversion du SCO en SCG implique que la norme du SCO soit place dans le dernier argument de la mthode TranslateCoordinates.
Sub Ch8_TranslateCoordinates()
' Create a polyline in model space.
Dim plineObj As AcadPolyline
Dim points(0 To 14) As Double
' Define the 2D polyline points
points(0) = 1: points(1) = 1: points(2) = 0
points(3) = 1: points(4) = 2: points(5) = 0
points(6) = 2: points(7) = 2: points(8) = 0
points(9) = 3: points(10) = 2: points(11) = 0
points(12) = 4: points(13) = 4: points(14) = 0
' Create a light weight Polyline object in model space
Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points)
' Find the X and Y coordinates of the
' first vertex of the polyline
Dim firstVertex As Variant
firstVertex = plineObj.Coordinate(0)
' Find the Z coordinate for the polyline
' using the elevation property
firstVertex(2) = plineObj.Elevation
' Change the normal for the pline so that the
' difference between the coordinate systems
' is obvious.
Dim plineNormal(0 To 2) As Double
plineNormal(0) = 0#
plineNormal(1) = 1#
plineNormal(2) = 2#
plineObj.Normal = plineNormal
' Translate the OCS coordinate into WCS
Dim coordinateWCS As Variant
coordinateWCS = ThisDrawing.Utility.TranslateCoordinates _
(firstVertex, acOCS, acWorld, False, plineNormal)
' Display the coordinates of the point
MsgBox "The first vertex has the following coordinates:" _
& vbCrLf & "OCS: " & firstVertex(0) & ", " & _
firstVertex(1) & ", " & firstVertex(2) & vbCrLf & _
"WCS: " & coordinateWCS(0) & ", " & _
coordinateWCS(1) & ", " & coordinateWCS(2)
End Sub
Envoyez-nous vos commentaires sur cette page.
Cration d'un maillage plusieurs faces Cration d'un solide biseau AutoCAD prend en charge trois types de modlisation : filaire, surface et solide. Ces
diffrents types de modle ncessitent la mise en uvre de techniques de cration et de modification spcifiques.
Pour de plus amples informations sur la cration d'objets 3D, reportez-vous la section Cration d'objets 3D du Manuel d'utilisation.
Rubriques de cette section :
Travail en 3D
Cration d'objets 3D
Page 134 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cration de modles filaires
Cration de maillages
Cration de polyfaces mailles
Cration de solides
Envoyez-nous vos commentaires sur cette page.
AutoCAD vous permet de crer des modles filaires en dfinissant des objets 2D planaires n'importe o dans l'espace 3D. Pour ce faire, vous disposez de
plusieurs solutions:
Pour crer des objets, saisissez des points 3D. Vous devez pour cela entrer des coordonnes qui dfinissent la position des points sur les axes X, Y et Z.
Dfinissez le plan de conception (plan XY) par dfaut sur lequel vous allez dessiner les objets, en crant un SCU.
Dplacez les objets dans l'espace 3D, afin de leur donner l'orientation voulue aprs les avoir crs.
Vous pouvez galement crer certains objets filaires, tels que des polylignes, qui peuvent avoir une troisime dimension. Pour crer des polylignes 3D, utilisez
la mthode Add3DPoly
Pour de plus amples informations sur la cration de modles filaires, reportez-vous la section Cration de modles filaires du Manuel d'utilisation.
Travail en 3D
Cration de modles filaires
Envoyez-nous vos commentaires sur cette page.
Un maillage rectangulaire (objet PolygonMesh) permet de reprsenter la surface d'un objet l'aide de facettes planes. La densit du maillage (ou le nombre de
facettes) est dfinie par une matrice de sommets M et N comparable une grille compose de colonnes et de lignes. M et N indiquent respectivement la
colonne et la ligne sur lesquelles se trouve un sommet donn. Vous pouvez crer des maillages en 2D ou en 3D, bien qu'ils soient utiliss principalement en
3D.
Pour crer des maillages rectangulaires, utilisez la mthode Add3DMesh Cette mthode requiert la saisie de trois valeurs : le nombre de sommets dans la
direction M, le nombre de sommets dans la direction N et un tableau Variant contenant les coordonnes de tous les sommets dans le maillage.
Une fois l'objet PolygonMesh cr, utilisez les proprits MClose et NClose pour fermer le maillage.
Pour de plus amples informations sur la cration de maillages, reportez-vous la section Cration de surfaces du Manuel d'utilisation.
Cration d'un maillage polygonal
Dans l'exemple suivant, un maillage polygonal 4 par 4 est cr. La direction de la fentre active est ensuite ajuste de faon ce que le caractre
tridimensionnel du maillage puisse tre visualis plus facilement.
Sub Ch8_Create3DMesh()
Dim meshObj As AcadPolygonMesh
Dim mSize, nSize, Count As Integer
Dim points(0 To 47) As Double
' create the matrix of points
points(0) = 0: points(1) = 0: points(2) = 0
points(3) = 2: points(4) = 0: points(5) = 1
points(6) = 4: points(7) = 0: points(8) = 0
points(9) = 6: points(10) = 0: points(11) = 1
points(12) = 0: points(13) = 2: points(14) = 0
points(15) = 2: points(16) = 2: points(17) = 1
points(18) = 4: points(19) = 2: points(20) = 0
points(21) = 6: points(22) = 2: points(23) = 1
points(24) = 0: points(25) = 4: points(26) = 0
points(27) = 2: points(28) = 4: points(29) = 1
points(30) = 4: points(31) = 4: points(32) = 0
points(33) = 6: points(34) = 4: points(35) = 0
points(36) = 0: points(37) = 6: points(38) = 0
points(39) = 2: points(40) = 6: points(41) = 1
points(42) = 4: points(43) = 6: points(44) = 0
points(45) = 6: points(46) = 6: points(47) = 0
mSize = 4: nSize = 4
' creates a 3Dmesh in model space
Set meshObj = ThisDrawing.ModelSpace. _
Add3DMesh(mSize, nSize, points)
' Change the viewing direction of the viewport
' to better see the cylinder
Dim NewDirection(0 To 2) As Double
NewDirection(0) = -1
Travail en 3D
Cration de maillages
Page 135 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
NewDirection(1) = -1
NewDirection(2) = 1
ThisDrawing.ActiveViewport.direction = NewDirection
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour crer un maillage plusieurs faces, chaque face pouvant avoir plusieurs sommets, utilisez la mthode AddPolyfaceMesh
Les procdures de dfinition d'un maillage plusieurs faces et d'un maillage rectangulaire sont pratiquement identiques. Pour crer une polyface maille,
spcifiez les coordonnes de tous ses sommets, puis dfinissez chaque face en entrant le numro de chaque sommet de cette face. Au cours de la procdure
de cration du maillage, vous pouvez rendre certaines artes invisibles ou les associer diffrents calques ou couleurs.
Pour rendre une arte invisible, entrez le numro des sommets sous forme de valeurs ngatives. Pour de plus amples informations sur la cration de polyfaces
mailles, reportez-vous la mthode AddPolyfaceMesh du manuel ActiveX and VBA Reference.
Cration d'un maillage plusieurs faces
Dans cet exemple, un maillage plusieurs faces est cr dans l'espace objet. La direction de visualisation de la fentre active est mise jour de faon ce que
le caractre tridimensionnel du maillage soit plus facilement visible.
Sub Ch8_CreatePolyfaceMesh()
'Define the mesh vertices
Dim vertex(0 To 17) As Double
vertex(0) = 4: vertex(1) = 7: vertex(2) = 0
vertex(3) = 5: vertex(4) = 7: vertex(5) = 0
vertex(6) = 6: vertex(7) = 7: vertex(8) = 0
vertex(9) = 4: vertex(10) = 6: vertex(11) = 0
vertex(12) = 5: vertex(13) = 6: vertex(14) = 0
vertex(15) = 6: vertex(16) = 6: vertex(17) = 1
' Define the face list
Dim FaceList(0 To 7) As Integer
FaceList(0) = 1
FaceList(1) = 2
FaceList(2) = 5
FaceList(3) = 4
FaceList(4) = 2
FaceList(5) = 3
FaceList(6) = 6
FaceList(7) = 5
' Create the polyface mesh
Dim polyfaceMeshObj As AcadPolyfaceMesh
Set polyfaceMeshObj = ThisDrawing.ModelSpace.AddPolyfaceMesh _
(vertex, FaceList)
' Change the viewing direction of the viewport to
' better see the polyface mesh
Dim NewDirection(0 To 2) As Double
NewDirection(0) = -1
NewDirection(1) = -1
NewDirection(2) = 1
ThisDrawing.ActiveViewport.direction = NewDirection
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
ZoomAll
End Sub
Travail en 3D
Cration de polyfaces mailles
Envoyez-nous vos commentaires sur cette page.
Un solide (objet 3DSolid) reprsente le volume d'un objet. Le solide constitue le type de modle 3D le moins ambigu qui donne le plus d'informations sur l'objet.
D'autre part, les solides complexes sont plus faciles construire et manipuler que les modles filaires ou les maillages.
Vous pouvez crer des solides partir des figures lmentaires proposes par AutoCAD (paralllpipdes, cnes, cylindres, sphres, tores et biseaux), en
extrudant un objet 2D sur une trajectoire ou en faisant pivoter un objet 2D autour d'un axe. Utilisez l'une des mthodes de cration de solides suivantes :
AddBox, AddCone, AddCylinder, AddEllipticalCone, AddEllipticalCylinder, AddExtrudedSolid, AddExtrudedSolidAlongPath, AddRevolvedSolid, AddSolid,
AddSphere, AddTorus ou AddWedge.
De mme que les maillages, les solides sont affichs comme des reprsentations filaires, jusqu' ce que vous utilisiez les commandes CACHE, SHADE ou
Travail en 3D
Cration de solides
Page 136 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
RENDU. Vous pouvez analyser leurs proprits mcaniques (volume, moments d'inertie, centre de gravit, etc.) Utilisez les proprits suivantes pour analyser
des solides : MomentOfInertia, PrincipalDirections, PrincipalMoments, ProductOfInertia, RadiiOfGyration et Volume.
La proprit ContourlinesPerSurface dfinit le nombre de lignes de courbure utilises pour visualiser les portions courbes de l'objet filaire. La proprit
RenderSmoothness ajuste le lissage des objets ombrs ou lignes caches.
Pour de plus amples informations sur la cration de solides, reportez-vous la section Cration d'objets 3D du Manuel d'utilisation.
Cration d'un solide en forme de biseau
Dans cet exemple, un solide en forme de biseau est cr dans l'espace objet. La direction de visualisation de la fentre active est mise jour de faon ce que
le caractre tridimensionnel du solide soit plus facilement visible.
Sub Ch8_CreateWedge()
Dim wedgeObj As Acad3DSolid
Dim center(0 To 2) As Double
Dim length As Double
Dim width As Double
Dim height As Double
' Define the wedge
center(0) = 5#: center(1) = 5#: center(2) = 0
length = 10#: width = 15#: height = 20#
' Create the wedge in model space
Set wedgeObj = ThisDrawing.ModelSpace. _
AddWedge(center, length, width, height)
' Change the viewing direction of the viewport
Dim NewDirection(0 To 2) As Double
NewDirection(0) = -1
NewDirection(1) = -1
NewDirection(2) = 1
ThisDrawing.ActiveViewport.direction = NewDirection
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
Cette section dcrit diffrentes techniques d'dition d'objets 3D, notamment la rotation, la dfinition de rseaux et la cration de copies-miroirs.
Rubriques de cette section :
Rotation en 3D
Cration de rseaux 3D
Copies-miroirs d'objets le long d'un plan
Travail en 3D
Oprations d'dition en 3D
Envoyez-nous vos commentaires sur cette page.
La mthode Rotate permet de faire pivoter des objets en 2D par rapport un point donn. La direction de la rotation est dtermine par le SCU. La mthode
Rotate3D fait pivoter des objets 3D autour d'un axe. La mthode Rotate3D requiert la saisie de trois valeurs : les coordonnes SCG de deux points dfinissant
l'axe de rotation et l'angle de rotation en radians.
Pour faire pivoter des objets 3D, utilisez la mthode Rotate ou Rotate3D.
Pour de plus amples informations sur la rotation en 3D, reportez-vous la section Rotation des objets du Manuel d'utilisation.
Cration d'une bote 3D et rotation autour d'un axe
Travail en 3D
Rotation en 3D
Page 137 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dans cet exemple, une bote 3D est cre. L'axe de rotation est ensuite dfini et la bote est pivote de 30 degrs autour de cet axe.
Sub Ch8_Rotate_3DBox()
Dim boxObj As Acad3DSolid
Dim length As Double
Dim width As Double
Dim height As Double
Dim center(0 To 2) As Double
' Define the box
center(0) = 5: center(1) = 5: center(2) = 0
length = 5
width = 7
height = 10
' Create the box object in model space
Set boxObj = ThisDrawing.ModelSpace. _
AddBox(center, length, width, height)
' Define the rotation axis with two points
Dim rotatePt1(0 To 2) As Double
Dim rotatePt2(0 To 2) As Double
Dim rotateAngle As Double
rotatePt1(0) = -3: rotatePt1(1) = 4: rotatePt1(2) = 0
rotatePt2(0) = -3: rotatePt2(1) = -4: rotatePt2(2) = 0
rotateAngle = 30
rotateAngle = rotateAngle * 3.141592 / 180#
' Rotate the box
boxObj.Rotate3D rotatePt1, rotatePt2, rotateAngle
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
La mthode ArrayRectangular permet de crer un rseau rectangulaire en 3 dimensions. Pour ce faire, vous devez spcifier le nombre de colonnes (direction X)
et de ranges (direction Y), mais aussi le nombre de niveaux (direction Z).
Pour de plus amples informations sur l'utilisation de rseaux d'objets en 3D, reportez-vous la section Cration d'un rseau d'objets du Manuel d'utilisation.
Cration d'un rseau rectangulaire en 3D
Dans cet exemple, un cercle est cr et utilis pour crer un rseau rectangulaire de quatre lignes, quatre colonnes et trois niveaux de cercles.
Sub Ch8_CreateRectangularArray()
' Create the circle
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 2: center(1) = 2: center(2) = 0
radius = 0.5
Set circleObj = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Define the rectangular array
Dim numberOfRows As Long
Dim numberOfColumns As Long
Dim numberOfLevels As Long
Dim distanceBwtnRows As Double
Dim distanceBwtnColumns As Double
Dim distanceBwtnLevels As Double
numberOfRows = 4
numberOfColumns = 4
numberOfLevels = 3
distanceBwtnRows = 1
distanceBwtnColumns = 1
distanceBwtnLevels = 4
' Create the array of objects
Dim retObj As Variant
retObj = circleObj.ArrayRectangular _
(numberOfRows, numberOfColumns, _
numberOfLevels, distanceBwtnRows, _
distanceBwtnColumns, distanceBwtnLevels)
ZoomAll
End Sub
Travail en 3D
Cration de rseaux 3D
Envoyez-nous vos commentaires sur cette page.
Travail en 3D
Page 138 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La mthode Mirror3D permet de crer des copies-miroirs d'objets le long d'un plan de symtrie spcifi par trois points.
Pour de plus amples informations sur la cration de copies-miroirs d'objets en 3D, reportez-vous la section Copie miroir d'objets du Manuel d'utilisation.
Cration de copies miroirs 3D
Dans cet exemple, une bote est cre dans l'espace objet. Une copie-miroir de cette bote est ensuite faite le long d'un plan, et elle est colore en rouge.
Sub Ch8_MirrorABox3D()
' Create the box object
Dim boxObj As Acad3DSolid
Dim length As Double
Dim width As Double
Dim height As Double
Dim center(0 To 2) As Double
center(0) = 5#: center(1) = 5#: center(2) = 0
length = 5#: width = 7: height = 10#
' Create the box (3DSolid) object in model space
Set boxObj = ThisDrawing.ModelSpace. _
AddBox(center, length, width, height)
' Define the mirroring plane with three points
Dim mirrorPt1(0 To 2) As Double
Dim mirrorPt2(0 To 2) As Double
Dim mirrorPt3(0 To 2) As Double
mirrorPt1(0) = 1.25: mirrorPt1(1) = 0: mirrorPt1(2) = 0
mirrorPt2(0) = 1.25: mirrorPt2(1) = 2: mirrorPt2(2) = 0
mirrorPt3(0) = 1.25: mirrorPt3(1) = 2: mirrorPt3(2) = 2
' Mirror the box
Dim mirrorBoxObj As Acad3DSolid
Set mirrorBoxObj = boxObj.Mirror3D _
(mirrorPt1, mirrorPt2, mirrorPt3)
mirrorBoxObj.Color = acRed
ZoomAll
End Sub
Copies-miroirs d'objets le long d'un plan
Envoyez-nous vos commentaires sur cette page.
Une fois un solide cr, vous pouvez l'utiliser pour concevoir des objets plus complexes en combinant les figures de base. Vous avez, par exemple, la
possibilit de joindre des solides, de soustraire un solide d'un autre ou de conserver uniquement leur volume commun (zone d'intersection). Pour effectuer ces
combinaisons, utilisez la mthode Boolean ou CheckInterference
Les solides peuvent galement tre modifis en obtenant la section 2D d'un solide ou la cration de coupes d'un solide en deux portions. Utilisez la mthode
SectionSolid pour rechercher les sections de solides, et la mthode SliceSolid pour diviser un solide en deux portions.
Recherche de l'interfrence entre deux solides
Dans cet exemple, une bote et un cylindre sont crs dans l'espace objet. L'interfrence entre les deux solides est ensuite recherche, et un solide est cr sur
la base de cette interfrence. Pour des besoins de visualisation, la bote est en blanc, le cylindre en cyan, et le solide d'interfrence en rouge.
Sub Ch8_FindInterferenceBetweenSolids()
' Define the box
Dim boxObj As Acad3DSolid
Dim length As Double
Dim width As Double
Dim height As Double
Dim center(0 To 2) As Double
center(0) = 5: center(1) = 5: center(2) = 0
Travail en 3D
Edition de solides en 3D
Page 139 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
length = 5
width = 7
height = 10
' Create the box object in model space
' and color it white
Set boxObj = ThisDrawing.ModelSpace. _
AddBox(center, length, width, height)
boxObj.Color = acWhite
' Define the cylinder
Dim cylinderObj As Acad3DSolid
Dim cylinderRadius As Double
Dim cylinderHeight As Double
center(0) = 0: center(1) = 0: center(2) = 0
cylinderRadius = 5
cylinderHeight = 20
' Create the Cylinder and
' color it cyan
Set cylinderObj = ThisDrawing.ModelSpace.AddCylinder _
(center, cylinderRadius, cylinderHeight)
cylinderObj.Color = acCyan
' Find the interference between the two solids
' and create a new solid from it. Color the
' new solid red.
Dim solidObj As Acad3DSolid
Set solidObj = boxObj.CheckInterference(cylinderObj, True)
solidObj.Color = acRed
ZoomAll
End Sub
Dcoupage d'un solide en deux solides
Dans cet exemple, une bote est cre dans l'espace objet. Cette bote est ensuite coupe selon un plan dfini par trois points. La coupe est renvoye en tant
que solide 3D.
Sub Ch8_SliceABox()
' Create the box object
Dim boxObj As Acad3DSolid
Dim length As Double
Dim width As Double
Dim height As Double
Dim center(0 To 2) As Double
center(0) = 5#: center(1) = 5#: center(2) = 0
length = 5#: width = 7: height = 10#
' Create the box (3DSolid) object in model space
Set boxObj = ThisDrawing.ModelSpace. _
AddBox(center, length, width, height)
boxObj.Color = acWhite
' Define the section plane with three points
Dim slicePt1(0 To 2) As Double
Dim slicePt2(0 To 2) As Double
Dim slicePt3(0 To 2) As Double
slicePt1(0) = 1.5: slicePt1(1) = 7.5: slicePt1(2) = 0
slicePt2(0) = 1.5: slicePt2(1) = 7.5: slicePt2(2) = 10
slicePt3(0) = 8.5: slicePt3(1) = 2.5: slicePt3(2) = 10
' slice the box and color the new solid red
Dim sliceObj As Acad3DSolid
Set sliceObj = boxObj.SliceSolid _
(slicePt1, slicePt2, slicePt3, True)
sliceObj.Color = acRed
ZoomAll
End Sub
Envoyez-nous vos commentaires sur cette page.
L'opration de traage consiste reproduire sur papier un dessin cr dans AutoCAD. Ce trac peut reprsenter une simple vue du dessin ou un arrangement
plus complexe de fentres. Dans l'espace papier, vous pouvez crer des fentres dites fentres flottantes, lesquelles affichent diffrentes vues du dessin. Selon
vos besoins, vous pouvez tracer une ou plusieurs fentres ou l'aide d'options, inclure ou exclure certains lments du dessin et dfinir l'emplacement de
l'image sur le papier.
Rubriques de cette section :
Espace objet et espace papier
Prsentations
Fentres
Traage du dessin
Dfinition de prsentations et traage
Page 140 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
L'espace objet constitue l'environnement du dessin dans lequel vous crez la gomtrie de votre modle. En principe, lorsque vous commencez dessiner
dans l'espace objet, vous dfinissez les limites du dessin afin de dterminer l'tendue de l'environnement de dessin et vous utilisez des units relles.
L'espace papier correspond la reprsentation sur papier de votre modle tel qu'il va tre trac. Dans cet espace, vous pouvez dfinir des vues diffrentes du
dessin, les mettre l'chelle indpendamment les unes des autres et les agencer telles que vous souhaitez qu'elles soient traces. Vous pouvez ainsi obtenir
diffrentes reprsentations de votre dessin.
Dfinition de prsentations et traage
Espace objet et espace papier
Envoyez-nous vos commentaires sur cette page.
Les prsentations contiennent toute la gomtrie du dessin. La gomtrie de l'espace objet est contenue dans une seule prsentation appele modle. Vous ne
pouvez pas renommer la prsentation de l'espace objet, ni en crer une autre. Chaque dessin ne peut contenir qu'une seule prsentation d'espace objet.
La gomtrie de l'espace papier est galement contenue dans des prsentations. Un dessin peut contenir plusieurs prsentations d'espace papier, chacune
reprsentant une configuration diffrente imprimer. Vous pouvez galement modifier le nom des prsentations en espace papier.
Dans l'Automatisation ActiveX
, la collection ModelSpace contient toute la gomtrie de la prsentation d'espace objet. Un dessin pouvant contenir plusieurs
prsentations d'espace papier, la collection PaperSpace dsigne la dernire prsentation active.
Pour de plus amples informations sur les prsentations d'espace papier, reportez-vous la section Hachures, remplissages et nettoyages du Manuel
d'utilisation.
Rubriques de cette section :
Prsentations et blocs
Configurations de traceur
Dfinition de la mise en page
Dfinition de prsentations et traage
Prsentations
Envoyez-nous vos commentaires sur cette page.
Le contenu de toute prsentation est rparti entre deux objets ActiveX diffrents : l'objet Layout et l'objet Block. Le premier contient les paramtres du trac et
les proprits visuelles de la prsentation telle qu'elle apparat dans l'interface utilisateur d'AutoCAD. Le second contient la gomtrie de la prsentation.
Chaque objet Layout est associ un seul et unique objet Block. Pour accder l'objet Block associ une prsentation donne, utilisez la proprit Block
Inversement, chaque objet Block est associ un seul et unique objet Layout. Pour accder l'objet Layout associ un bloc donn, utilisez la proprit
Layout de ce bloc.
Dfinition de prsentations et traage
Prsentations et blocs
Envoyez-nous vos commentaires sur cette page.
Un objet PlotConfiguration est semblable un objet Layout, car ils contiennent tous deux des informations de trac identiques. La diffrence entre les deux est
que l'objet Layout est associ un objet Block contenant la gomtrie tracer. L'objet PlotConfiguration n'est pas associ un objet Block donn. Il s'agit tout
simplement d'une collection nomme de paramtres de trac, disponible pour tre utilise avec toutes les gomtries.
Dfinition de prsentations et traage
Configurations de traceur
Envoyez-nous vos commentaires sur cette page.
Page 141 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les paramtres de mise en page dfinissent la sortie finale du trac. Ils dterminent notamment le format du papier, l'chelle du trac, son origine et le nom du
priphrique de traage. Une bonne matrise de ces paramtres garantit que la prsentation sera trace comme prvu. Vous pouvez modifier les paramtres
d'une prsentation l'aide des proprits et mthodes de l'objet Layout
Rubriques de cette section :
Format de papier et units
Ajustement de l'origine du trac
Dfinition de l'aire du trac
Dfinition de l'chelle du trac
Dfinition de l'chelle de l'paisseur des lignes
Dfinition du priphrique de traage
Dfinition de prsentations et traage
Dfinition de la mise en page
Envoyez-nous vos commentaires sur cette page.
Le choix d'un format de papier est fonction du traceur configur pour votre systme. Chaque traceur dispose d'une liste standard de formats de papier
disponibles. Vous pouvez modifier le format de papier d'une prsentation en utilisant la proprit CanonicalMediaName
Vous pouvez galement spcifier les units de votre prsentation l'aide de la proprit PaperUnits Cette proprit requiert l'une de ces trois valeurs :
acInches, acMillimeters ou acPixels. Si le traceur est configur pour une impression raster, vous devez indiquer la taille en pixels.
Dfinition de prsentations et traage
Format de papier et units
Envoyez-nous vos commentaires sur cette page.
L'origine du trac correspond l'angle infrieur gauche de l'aire du trac spcifie et est dfini l'aide de la proprit PlotOrigin En principe, elle a les valeurs
(0, 0). Mais vous pouvez centrer le trac sur la feuille de papier en attribuant la valeur TRUE la proprit CenterPlot. Le centrage du trac modifie son origine.
Dfinition de prsentations et traage
Ajustement de l'origine du trac
Envoyez-nous vos commentaires sur cette page.
Lorsque vous prparez le traage d'une prsentation, vous pouvez spcifier l'aire du trac afin de dterminer quels lments il contiendra. Pour spcifier l'aire
du trac, faites appel la proprit PlotType Cette proprit requiert l'entre de l'une des valeurs suivantes :
acDisplay
Imprime tout le contenu de l'espace objet courant. Cette option n'est pas disponible lorsque le trac est effectu depuis une prsentation en espace papier.
acExtents
Imprime tout le contenu de l'espace actuellement slectionn.
acLimits
Imprime tout le contenu de l'espace courant.
acView
Imprime la vue dsigne par la proprit ViewToPlot.
acWindow
Imprime tout le contenu de la fentre dsigne par la mthode SetWindowToPlot.
acLayout
Imprime tous les lments compris dans les marges du format de papier spcifi. Cette option n'est pas disponible lorsque vous imprimez depuis l'espace
objet.
Lorsque vous crez une prsentation en espace papier, l'option par dfaut est acLayout.
Dfinition de prsentations et traage
Dfinition de l'aire du trac
Page 142 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
En gnral, vous dessinez des objets grandeur nature. puis, au moment du traage, de spcifier une chelle prcise ou d'ajuster l'image en fonction du papier.
Vous pouvez spcifier une chelle standard ou personnalise.
Pour dfinir une chelle standard, attribuez la valeur TRUE la proprit UseStandardScale. Vous pouvez ensuite entrer l'chelle voulue dans la proprit
StandardScale
Pour dfinir une chelle personnalise, attribuez la valeur FALSE la proprit UseStandardScale. Vous pouvez ensuite entrer l'chelle voulue l'aide de la
mthode SetCustomScale
La prcision de l'chelle importe peu dans certains cas, notamment s'il s'agit simplement de tracer une premire bauche du dessin. Vous pouvez utiliser la
valeur acScaleToFit de la proprit StandardScale pour tracer la prsentation au format maximal susceptible de tenir sur la feuille de papier.
Dfinition de prsentations et traage
Dfinition de l'chelle du trac
Envoyez-nous vos commentaires sur cette page.
Vous pouvez dfinir proportionnellement l'paisseur des lignes d'une prsentation dans la zone Echelle du trac. En principe, les paisseurs de ligne dfinissent
l'paisseur de trait des objets tracs, indpendamment de l'chelle du trac. La plupart du temps, l'chelle utilise par dfaut est 1:1 pour le traage d'une
prsentation. Cependant, pour tracer au format E une prsentation dont l'chelle est dfinie pour un format A, vous pouvez par exemple faire en sorte que
l'chelle des paisseurs de lignes soit ajuste la nouvelle chelle du trac.
Pour mettre l'paisseur des lignes l'chelle, attribuez la valeur TRUE la proprit ScaleLineweights. Sinon, attribuez-lui la valeur FALSE.
Dfinition de prsentations et traage
Dfinition de l'chelle de l'paisseur des lignes
Envoyez-nous vos commentaires sur cette page.
Le nom du priphrique de traage est spcifi dans la proprit ConfigName Vous pouvez saisir le nom d'un priphrique oprationnel sur votre systme. Si
vous ne spcifiez pas de nom, les tracs sont envoys au priphrique dfini par dfaut sur votre systme.
Dfinition de prsentations et traage
Dfinition du priphrique de traage
Envoyez-nous vos commentaires sur cette page.
Lorsque vous travaillez dans l'espace objet, vous tracez le dessin dans des fentres en mosaque (appeles objets Viewport dans l'Automatisation ActiveX).
Vous pouvez afficher une ou plusieurs fentres la fois. Lorsque vous modifiez le contenu de l'une des fentres, AutoCAD met automatiquement jour les
autres fentres affiches l'cran. En revanche, vous pouvez dfinir les paramtres d'agrandissement, de point de vue, de grille et d'accrochage
indpendamment pour chaque fentre.
Dans l'espace papier, vous travaillez dans des fentres flottantes (appeles objets PViewport dans l'Automatisation ActiveX) qui contiennent diffrentes vues du
modle. Ces fentres sont utilises comme des objets que vous dplacez, redimensionnez et faonnez afin d'obtenir la prsentation souhaite. La vue de
l'espace papier offre un avantage supplmentaire puisque vous pouvez y dessiner directement des objets, tels que des blocs ou des annotations, sans modifier
le modle du dessin.
Pour de plus amples informations sur les fentres, reportez-vous aux sections Dfinition des fentres de l'espace objet.
Dfinition de prsentations et traage
Fentres
Page 143 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Affichage de plusieurs vues dans l'espace objet du Manuel d'utilisation.
Rubriques de cette section :
Fentres flottantes
Activation de l'espace papier
Activation de l'espace objet
Cration de fentres dans l'espace papier
Modification de la vue et du contenu des fentres
Mise l'chelle des vues par rapport l'espace papier
Mise l'chelle des types de lignes dans l'espace papier
Utilisation de fentres ombres
Envoyez-nous vos commentaires sur cette page.
Vous ne pouvez pas modifier le modle dans l'espace papier. Pour accder au modle dans un objet PViewport, passez de l'espace papier l'espace objet
l'aide de la proprit ActiveSpace En procdant ainsi, vous pouvez remanier le modle du dessin tout en visualisant sa prsentation gnrale l'cran. Les
fonctions de modification et de changement de vue disponibles pour les objets PViewport sont sensiblement les mmes que celles des objets Viewport Elles
offrent cependant une plus grande marge de manuvre au niveau de chaque vue. Vous pouvez, par exemple, geler ou dsactiver les calques de certaines
fentres sans modifier la vue affiche dans les autres. Vous pouvez activer ou dsactiver une fentre tout entire. Vous pouvez galement aligner les vues de
plusieurs fentres et les mettre l'chelle par rapport la prsentation gnrale du dessin.
L'illustration suivante montre les diffrentes possibilits d'affichage des vues d'un modle dans l'espace papier. Chaque image reprsente une fentre flottante
(objet PViewport) contenant une vue donne. Nous avons ainsi gel le calque des cotes dans une vue. Notez que le cartouche, la bordure et l'annotation, crs
dans l'espace papier, n'apparaissent pas dans la vue de l'espace objet. Notez galement que le calque contenant les bordures de la fentre a t dsactiv.
Lorsque vous travaillez dans une fentre en mosaque (objet Viewport), la proprit ActiveSpace doit toujours avoir la valeur acModelSpace. Dans une fentre
flottante (objet PViewport), en revanche, cette proprit peut avoir la valeur acModelSpace ou acPaperSpace, ce qui vous permet de passer de l'espace
papier l'espace objet selon vos besoins.
Dans l'Automatisation ActiveX d'AutoCAD
, la proprit ActiveSpace permet de contrler la variable systme TILEMODE. Lorsque vous dfinissez
ThisDrawing.ActiveSpace = acModelSpace, cela revient activer TILEMODE (TILEMODE = on) et, lorsque vous dfinissez
ThisDrawing.ActiveSpace = acPaperSpace, cela revient dsactiver TILEMODE (TILEMODE = off).
De mme, la proprit MSpace est quivalente aux commandes MSPACE et PSPACE d'AutoCAD. Lorsque vous dfinissez ThisDrawing.MSpace = TRUE,
cela revient utiliser la commande ESPACEO : l'espace objet est activ. Lorsque vous dfinissez ThisDrawing.MSpace = FALSE, cela revient utiliser la
commande ESPACEP : l'espace papier est activ.
Vous devez en outre appliquer la mthode Display avant d'attribuer la valeur TRUE la proprit MSpace. Cette mthode initialise les paramtres graphiques
requis pour passer en espace objet. Dans AutoCAD, cette opration est effectue en arrire-plan.Mais, dans l'interface de l'Automatisation ActiveX, le
programmeur en est responsable.
Remarque Pensez activer l'affichage d'au moins un objet PViewport l'aide de la mthode Display avant d'attribuer la valeur TRUE la proprit MSpace.
Sinon, cette proprit produira une erreur.
Dfinition de prsentations et traage
Fentres flottantes
Objet PViewport, objet Viewport et paramtres de la proprit ActiveSpace
Type de
fentre
Statut Permet de
PViewport ActiveSpace =
acPaperspace
Dfinir la prsentation du dessin en crant des fentres flottantes et en ajoutant des cartouches, des bordures et des
annotations. Ces modifications n'ont aucun effet sur le modle du dessin.
PViewport ActiveSpace =
acModelspace
Travailler dans les fentres flottantes afin de modifier le modle du dessin ou de changer de vue. Vous pouvez dsactiver ou
geler les calques, dans les fentres de votre choix.
Fentre ActiveSpace =
acModelspace
Travailler dans les fentres en mosaque pour modifier les diffrentes vues du modle.
Envoyez-nous vos commentaires sur cette page.
Dfinition de prsentations et traage
Page 144 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Depuis l'espace objet, vous pouvez passer la dernire prsentation active de l'espace papier.
Pour passer la dernire prsentation active de l'espace papier
1. Attribuez la valeur acPaperSpace la proprit ActiveSpace :
ThisDrawing.ActiveSpace = acPaperSpace
2. Attribuez la valeur FALSE la proprit MSpace :
ThisDrawing.MSpace = FALSE
Lorsque vous activez l'espace papier, AutoCAD affiche l'icne de systme de coordonnes utilisateur (SCU) dans le coin infrieur gauche de la zone graphique.
Les rticules indiquent que la zone de prsentation du dessin dans l'espace papier (et non pas les vues des fentres) peut tre dite.
Activation de l'espace papier
Envoyez-nous vos commentaires sur cette page.
De l'espace papier, vous pouvez basculer vers des fentres flottantes ou des fentres en mosaque de l'espace objet.
Pour basculer vers des fentres flottantes
1. Utilisez la mthode Display pour initialiser des paramtres graphiques:
ThisDrawing.ActivePViewport.Display TRUE
2. Attribuez la valeur TRUE la proprit MSpace :
ThisDrawing.MSpace = TRUE
Vous vous retrouvez en espace objet dans des fentres flottantes.
Remarque Vous devez crer des fentres flottantes avant d'essayer de passer en espace objet.
Pour basculer vers des fentres en mosaque
Pour basculer vers des fentres en mosaque, procdez comme suit :
Attribuez la valeur acModelSpace la proprit ActiveSpace :
ThisDrawing.ActiveSpace = acModelSpace
Dfinition de prsentations et traage
Activation de l'espace objet
Envoyez-nous vos commentaires sur cette page.
La mthode AddPViewport permet de crer des fentres dans l'espace papier. Elle requiert la dfinition du centre, de la largeur et de la hauteur de la nouvelle
fentre. Avant de crer la fentre, utilisez la proprit ActiveSpace pour dfinir l'espace papier comme espace courant (ce qui est en principe effectu en
attribuant la valeur 0 la variable TILEMODE).
Une fois l'objet PViewport cr, vous pouvez dfinir les proprits de la vue, notamment la direction de vise (proprit Direction), la longueur de l'objectif pour
les vues en perspective (proprit LensLength) et l'affichage de la grille (proprit GridOn Vous pouvez galement dfinir les proprits de la fentre, comme le
calque (proprit Layer), le type de ligne (proprit Linetype) et la mise l'chelle du type de ligne (proprit LinetypeScale
Cration et activation d'une fentre flottante
Dans l'exemple suivant, AutoCAD passe en espace papier, cre une fentre flottante, dfinit la vue et active la fentre.
Sub Ch9_SwitchToPaperSpace()
' Set the active space to paper space
ThisDrawing.ActiveSpace = acPaperSpace
' Create the paperspace viewport
Dim newVport As AcadPViewport
Dim center(0 To 2) As Double
center(0) = 3.25
center(1) = 3
center(2) = 0
Set newVport = ThisDrawing.PaperSpace. _
AddPViewport(center, 6, 5)
' Change the view direction for the viewport
Dim viewDir(0 To 2) As Double
viewDir(0) = 1
viewDir(1) = 1
Dfinition de prsentations et traage
Cration de fentres dans l'espace papier
Page 145 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
viewDir(2) = 1
newVport.direction = viewDir
' Enable the viewport
newVport.Display True
' Switch to model space
ThisDrawing.MSpace = True
' Set newVport current
' (not always necessary but a good idea)
ThisDrawing.ActivePViewport = newVport
' Zoom Extents in model space
ZoomExtents
' Turn model space editing off
ThisDrawing.MSpace = False
' ZoomExtents in paperspace
ZoomExtents
End Sub
L'ordre des tapes dans le code prcdent est important. En principe, les oprations sont excutes dans le mme ordre que sur la ligne de commande
d'AutoCAD. Les seules oprations imprvues sont la dfinition de la vue et l'activation de la fentre.
Remarque Pour dfinir ou modifier l'aspect de la vue (direction de vise, longueur d'objectif, etc.), vous devez dsactiver la mthode Display (FALSE) de l'objet
Viewport et, avant de dfinir la fentre courante, activer la mthode Display (TRUE).
Cration de quatre fentres flottantes
L'exemple suivant prend le premier exemple de la section "Cration et activation d'une fentre flottante" et le complte pour crer quatre fentres flottantes et
dfinir dans chacune d'elles une vue de dessus, de face, de droite et isomtrique. Chaque vue est mise l'chelle la moiti de l'espace papier. Pour garantir
que ces fentres contiennent des objets, vous pouvez crer une sphre solide en 3D avant d'essayer cet exemple.
Sub Ch9_FourPViewports()
Dim topVport, frontVport As AcadPViewport
Dim rightVport, isoVport As AcadPViewport
Dim pt(0 To 2) As Double
Dim viewDir(0 To 2) As Double
ThisDrawing.ActiveSpace = acPaperSpace
ThisDrawing.MSpace = True
' Take the existing PViewport and make it the topVport
pt(0) = 2.5: pt(1) = 5.5: pt(2) = 0
Set topVport = ThisDrawing.ActivePViewport
'No need to set Direction for top view
topVport.center = pt
topVport.width = 2.5
topVport.height = 2.5
topVport.Display True
ThisDrawing.MSpace = True
ThisDrawing.ActivePViewport = topVport
ZoomExtents
ZoomScaled 0.5, acZoomScaledRelativePSpace
'Create and setup frontVport
pt(0) = 2.5: pt(1) = 2.5: pt(2) = 0
Set frontVport = ThisDrawing.PaperSpace. _
AddPViewport(pt, 2.5, 2.5)
viewDir(0) = 0: viewDir(1) = 1: viewDir(2) = 0
frontVport.direction = viewDir
frontVport.Display acOn
ThisDrawing.MSpace = True
ThisDrawing.ActivePViewport = frontVport
ZoomExtents
ZoomScaled 0.5, acZoomScaledRelativePSpace
'Create and setup rightVport
pt(0) = 5.5: pt(1) = 5.5: pt(2) = 0
Set rightVport = ThisDrawing.PaperSpace. _
AddPViewport(pt, 2.5, 2.5)
viewDir(0) = 1: viewDir(1) = 0: viewDir(2) = 0
rightVport.direction = viewDir
rightVport.Display acOn
ThisDrawing.MSpace = True
ThisDrawing.ActivePViewport = rightVport
ZoomExtents
ZoomScaled 0.5, acZoomScaledRelativePSpace
'Create and set up isoVport
pt(0) = 5.5: pt(1) = 2.5: pt(2) = 0
Set isoVport = ThisDrawing.PaperSpace. _
AddPViewport(pt, 2.5, 2.5)
viewDir(0) = 1: viewDir(1) = 1: viewDir(2) = 1
isoVport.direction = viewDir
isoVport.Display acOn
ThisDrawing.MSpace = True
ThisDrawing.ActivePViewport = isoVport
ZoomExtents
ZoomScaled 0.5, acZoomScaledRelativePSpace
'Finish: Perform a regen in all viewports
ThisDrawing.Regen True
End Sub
Envoyez-nous vos commentaires sur cette page.
Page 146 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour changer la vue d'un objet Viewport, vous devez tre en espace objet et la fentre doit tre active.
Pour modifier un dessin affich dans une fentre flottante
1. Dans l'espace objet, activez la fentre en dfinissant la proprit ActiveViewport :
Thisdrawing.ActiveViewport = MyViewportObject
2. Modifiez le dessin.
Dans l'espace papier, vous pouvez galement crer des objets, tels que des annotations, des cotes et des cartouches. Toutefois, vous devez attribuer la valeur
FALSE la proprit ActiveSpace et activer l'espace papier l'aide de la proprit MSpace. Les objets crs dans l'espace papier ne sont visibles que dans cet
espace.
Dfinition de prsentations et traage
Modification de la vue et du contenu des fentres
Envoyez-nous vos commentaires sur cette page.
Vous pouvez dfinir de manire prcise les facteurs d'chelle de chaque partie du dessin avant d'envoyer celui-ci vers un traceur. La mise l'chelle des vues
par rapport l'espace papier permet d'obtenir une chelle uniforme pour chacune des vues affiches. La vue de l'espace papier illustre ci-aprs contient
plusieurs fentres, chacune associe une vue et une chelle diffrentes. Pour obtenir une mise l'chelle prcise lors du traage du dessin, vous devez
dfinir l'chelle de chaque vue par rapport l'espace papier et non par rapport la vue prcdente ou au modle grandeur nature.
Lorsque vous travaillez dans l'espace papier, le facteur d'chelle reprsente le rapport entre les dimensions du trac et la taille relle du modle affich dans les
fentres. Pour calculer cette chelle, il suffit de diviser les units de l'espace papier par les units de l'espace objet. Par exemple, dans le cas d'un dessin
rapport l'chelle 1/4, indiquez une unit de l'espace papier pour quatre units de l'espace objet.
Utilisez la mthode ZoomScaled pour mettre l'chelle des fentres par rapport aux units de l'espace papier. Cette mthode requiert la saisie de trois valeurs :
la fentre mettre l'chelle, le facteur d'chelle et le mode d'application du facteur d'chelle. La troisime entre est facultative et dtermine de quelle faon
l'chelle est applique.
Par rapport aux limites du dessin
Par rapport la vue courante
Par rapport aux units de l'espace papier
Pour spcifier une chelle par rapport aux units de l'espace papier, entrez la constante acZoomScaledRelativePSpace pour cette valeur.
Comme le montrent les illustrations, si vous spcifiez une chelle de 2 par rapport aux units de l'espace papier, l'chelle de la fentre sera gale aux units de
l'espace papier multiplies par deux. Si vous spcifiez une chelle de .5 toujours par rapport aux units de l'espace papier, l'chelle de la fentre sera gale aux
units de l'espace papier divises par deux. Le dessin reproduit sur papier sera donc deux fois plus petit que le modle d'origine.
Dfinition de prsentations et traage
Mise l'chelle des vues par rapport l'espace papier
Envoyez-nous vos commentaires sur cette page.
Page 147 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
AutoCAD propose deux mthodes permettant de mettre l'chelle n'importe quel type de ligne. Vous pouvez dfinir l'chelle par rapport aux units de l'espace
(papier ou objet) dans lequel vous avez cr l'objet. La seconde mthode consiste dfinir une chelle uniforme par rapport aux units de l'espace papier. La
variable systme PSLTSCALE permet d'appliquer la mme chelle aux types de lignes des objets affichs dans diffrentes fentres, l'chelle de zoom variant
d'une fentre l'autre. Cette variable redfinit galement l'affichage des lignes dans des vues 3D.
Dans l'exemple suivant, nous avons utilis la variable systme PSLTSCALE pour effectuer une mise l'chelle uniforme du type de ligne dans l'espace papier.
Vous pouvez remarquer que ce type de ligne possde la mme chelle dans les deux fentres bien que l'chelle de zoom des objets soit diffrente.
Utilisez la mthode SetVariable pour dfinir la valeur de la variable systme PSLTSCALE
Dfinition de prsentations et traage
Mise l'chelle des types de lignes dans l'espace papier
Envoyez-nous vos commentaires sur cette page.
Si votre dessin contient des faces 3D, des mailles, des objets extruds, des surfaces ou des solides, vous pouvez excuter un trac depuis l'espace papier en
utilisant les options Comme affich, Filaire, Cach et Rendu. Les fentres ombres et rendues sont affiches en modes Aperu du trac, Trac et Trac dans
un fichier avec ombrage et rendu intgral.
Pour dfinir une option de traage de fentre ombre dans l'espace papier, utilisez la proprit ShadePlot de l'objet PViewport
Remarque Pour masquer des lignes sur les tracs des fentres de l'espace objet (objets Viewport), utilisez la proprit PlotHidden de l'objet Layout Cette
proprit requiert une valeur boolenne : TRUE pour supprimer les lignes caches, FALSE pour les dessiner.
Dfinition de prsentations et traage
Utilisation de fentres ombres
Envoyez-nous vos commentaires sur cette page.
Vous pouvez tracer le dessin dans l'espace objet ou tracer l'une de vos prsentations d'espace papier prpares. Il est souvent prfrable d'effectuer le trac
depuis l'espace objet lorsque vous voulez visualiser ou vrifier le dessin avant de crer une prsentation d'espace papier. Une fois le modle prt, vous pouvez
prparer et tracer une prsentation d'espace papier.
Remarque La variable systme BACKGROUNDPLOT doit tre dfinie sur 0 pour qu'un script puisse tracer plusieurs tches.
Le traage implique l'utilisation de deux objets Automatisation ActiveX : l'objet Layout et l'objet Plot. Le premier contient les paramtres de trac d'une
prsentation donne. Le second contient les mthodes et proprits qui initient et contrlent une squence de traage.
Rubriques de cette section :
Traage de base
Traage en espace objet
Traage dans l'espace papier
Dfinition de prsentations et traage
Traage du dessin
Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser les mthodes et proprits suivantes de l'objet Plot :
Dfinition de prsentations et traage
Traage de base
Page 148 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
PlotToFile
Trace dans un fichier.
PlotToDevice
Trace vers un traceur ou une imprimante.
DisplayPlotPreview
Affiche un aperu du trac spcifi.
QuietErrorMode
Active le mode d'erreur muet pour le rapport d'erreurs du trac.
Envoyez-nous vos commentaires sur cette page.
En principe, lorsque vous tracez un dessin volumineux comme un plan d'tage, vous pouvez spcifier l'chelle dans laquelle convertir les units de dessin
relles en pouces ou millimtres tracs. Toutefois, lorsque vous tracez dans l'espace objet, les paramtres utiliss par dfaut si aucun autre paramtre n'est
spcifi sont les suivants : trac sur l'imprimante systme, trac de la vue courante, ajustement au format du papier, rotation de 0 et dcalage de 0,0. Pour
modifier les paramtres du trac, changez les proprits de l'objet Layout associ l'espace objet.
Trac de l'tendu d'une prsentation d'un espace objet actif
Dans cet exemple, l'utilisateur vrifie d'abord que l'espace actif est l'espace objet. Puis il dfinit plusieurs paramtres de trac. Enfin, le trac est envoy via la
mthode PlotToDevice
Sub Ch9_PrintModelSpace()
' Verify that the active space is model space
If ThisDrawing.ActiveSpace = acPaperSpace Then
ThisDrawing.MSpace = True
ThisDrawing.ActiveSpace = acModelSpace
End If
' Set the extents and scale of the plot area
ThisDrawing.ModelSpace.Layout.PlotType = acExtents
ThisDrawing.ModelSpace.Layout. _
StandardScale = acScaleToFit
' Set the number of copies to one
ThisDrawing.Plot.NumberOfCopies = 1
' Initiate the plot
ThisDrawing.Plot.PlotToDevice
End Sub
Le nom du priphrique de traage est spcifi dans la proprit ConfigName Ce priphrique peut tre remplac dans la mthode PlotToDevice en spcifiant
un fichier PC3.
Dfinition de prsentations et traage
Traage en espace objet
Envoyez-nous vos commentaires sur cette page.
Vous pouvez tracer une prsentation de l'espace papier. Vous pouvez tracer la prsentation active comme indiqu dans la section "Traage en espace objet"
ou spcifier le nom de la prsentation tracer.
Dfinition de prsentations et traage
Traage dans l'espace papier
Envoyez-nous vos commentaires sur cette page.
Avec l'exprience, vous utiliserez au mieux les nombreuses fonctions avances d'AutoCAD permettant d'amliorer vos applications.
Vous pouvez inclure dans un dessin des images raster telles que des photographies ariennes, des photographies satellite et numriques, ainsi que des
images de rendu informatique. Pour de plus amples informations sur les images raster en plus des informations prsentes dans cette section, reportez-vous au
Manuel d'utilisation.
En plus de l'amlioration de l'image visuelle d'un dessin, AutoCAD propose plusieurs fonctions destines aider organiser les donnes, permettant ainsi
d'tendre l'intelligence des objets dans un dessin.
Rubriques de cette section :
Techniques avances de dessin et d'organisation
Page 149 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Utilisation d'images raster
Utilisation de blocs et d'attributs
Utilisation de rfrences externes
Attribution et extraction de donnes tendues
Envoyez-nous vos commentaires sur cette page.
AutoCAD
permet d'ajouter des images raster aux dessins vectoriels AutoCAD, puis de visualiser et de tracer le fichier obtenu.
Rubriques de cette section :
Association et mise l'chelle d'images raster
Gestion des images raster
Modification d'images et de contours d'image
Dlimitation d'images
Techniques avances de dessin et d'organisation
Utilisation d'images raster
Envoyez-nous vos commentaires sur cette page.
Vous pouvez placer les images dans un fichier de dessin bien qu'elles ne fassent pas vraiment partie du fichier. L'image est lie au fichier de dessin par
l'intermdiaire d'un chemin d'accs ou d'un ID de document de gestion de donnes. Vous pouvez modifier ou supprimer ces chemins d'accs n'importe quel
moment. Pour attacher une image, crez un objet Raster dans le dessin l'aide de la mthode AddRaster. Cette mthode requiert la saisie de quatre valeurs :
le nom du fichier image attacher, le point d'insertion o placer l'image dans le dessin, le facteur d'chelle de l'image et l'angle de rotation de l'image.
Souvenez-vous que l'objet Raster reprsente une liaison indpendante vers l'image, et non l'image elle-mme.
Une fois une image attache, vous pouvez l'attacher nouveau plusieurs fois, en crant ainsi un objet Raster pour chaque attachement. Chaque attachement
possde son propre contour de dlimitation et ses propres paramtres de luminosit, de contraste, d'estompe et de transparence. Chaque image peut tre
sectionne en plusieurs portions que vous pouvez rorganiser indpendamment dans le dessin.
Vous pouvez dfinir le facteur d'chelle de l'image raster lorsque vous crez l'objet Raster. Ainsi, l'chelle des objets de l'image correspond celle des objets
crs dans le dessin AutoCAD. Lorsque vous slectionnez une image attacher, l'image est insre selon un facteur d'chelle d'1 unit de mesure d'image
correspondant 1 unit de mesure AutoCAD. Pour dfinir le facteur d'chelle de l'image, vous devez connatre l'chelle de la gomtrie sur l'image, ainsi que
l'unit de mesure (pouces, pieds, etc.) utiliser pour dfinir une unit AutoCAD. Le fichier image doit contenir des informations sur la rsolution dfinissant les
PPP (ou nombre de points par pouce) ainsi que le nombre de pixels de l'image.
Si une image comporte des informations sur la rsolution, AutoCAD les combine avec le facteur d'chelle et l'unit de mesure AutoCAD que vous avez indique
afin de mettre l'chelle l'image dans votre dessin. Par exemple, s'il s'agit d'une image raster numrise dont l'chelle est de 1 pouce pour 50 pieds ou 1:600,
et que le dessin AutoCAD est configur de sorte qu'une unit reprsente 1 pouce, mettez 600 le paramtre ScaleFactor de la mthode AddRaster.
AutoCAD insre alors l'image selon une chelle qui aligne les objets de l'image avec la gomtrie vectorielle du dessin.
Remarque Si aucune information de rsolution n'est dfinie avec le fichier image attach, AutoCAD calcule la largeur d'origine de l'image en tant qu'une unit.
Aprs insertion, la largeur de l'image en units AutoCAD est gale au facteur d'chelle.
Ajout d'une image raster
Dans cet exemple, une image raster est ajoute dans l'espace objet. L'exemple utilise le fichier watch.jpg, qui se trouve dans le rpertoire Sample. Si cette
image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent, indiquez un chemin d'accs et un nom de fichier appropris pour la
variable imageName.
Sub Ch10_AttachingARaster()
Dim insertionPoint(0 To 2) As Double
Dim scalefactor As Double
Dim rotationAngle As Double
Dim imageName As String
Dim rasterObj As AcadRasterImage
imageName = "C:/Program Files/Rpertoire AutoCAD/sample/watch.jpg '
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
scalefactor = 2
rotationAngle = 0
On Error GoTo ERRORHANDLER
' Attach the raster image in model space
Set rasterObj = ThisDrawing.ModelSpace.AddRaster _
(imageName, insertionPoint, _
scalefactor, rotationAngle)
ZoomAll
Techniques avances de dessin et d'organisation
Association et mise l'chelle d'images raster
Page 150 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Envoyez-nous vos commentaires sur cette page.
Vous pouvez grer le nom d'une image raster, son nom de fichier et son chemin d'accs l'aide des proprits de l'objet Raster.
Rubriques de cette section :
Modification des chemins d'accs aux fichiers images
Noms des images
Techniques avances de dessin et d'organisation
Gestion des images raster
Envoyez-nous vos commentaires sur cette page.
La proprit ImageFile permet d'interroger ou de modifier le chemin d'accs et le nom de fichier d'une image. Le chemin d'accs dfini par cette proprit est le
chemin d'accs dans lequel AutoCAD recherche l'image.
Si AutoCAD ne trouve pas le dessin (par exemple, si vous avez dplac le fichier vers un autre rpertoire que celui enregistr avec la proprit ImageFile), il
supprime les informations de chemin relatives ou absolues du nom (par exemple, \images\tree.tga ou c:\projet\images\tree.tga devient tree.tga) et recherche les
chemins dfinis via la mthode SetProjectFilePath de l'objet Preferences. Si le dessin ne se trouve pas dans ces chemins, AutoCAD essaie nouveau le
premier chemin d'accs.
Vous pouvez supprimer le chemin d'accs du nom de fichier ou spcifier un chemin d'accs relatif en redfinissant la proprit ImageFile.
La modification du chemin d'accs dans la proprit ImageFile n'affecte pas les paramtres du chemin de recherche des fichiers de projet.
Techniques avances de dessin et d'organisation
Modification des chemins d'accs aux fichiers images
Envoyez-nous vos commentaires sur cette page.
Les noms d'image ne sont pas ncessairement identiques au nom de fichier des images. Lorsque vous associez une image un dessin, AutoCAD utilise le
nom du fichier sans son extension comme nom d'image. Vous pouvez changer le nom d'image sans modifier le nom de fichier.
Le fichier image est reprsent par la proprit ImageFile sur l'objet Raster. La modification de la proprit ImageFile modifie l'image dans le dessin. Le nom de
l'image est reprsent par la proprit Name, et la modification de celle-ci modifie uniquement le nom de l'image et non son fichier associ.
Techniques avances de dessin et d'organisation
Noms des images
Envoyez-nous vos commentaires sur cette page.
Toute image possde un contour. Lorsque vous attachez une image un dessin, son contour hrite des paramtres courants des proprits, notamment les
paramtres couleur, calque, type de ligne et chelle du type de ligne. S'il s'agit d'une image deux tons, la couleur de l'image et la couleur du contour sont
identiques.
De mme qu'avec d'autres objets AutoCAD, vous pouvez modifier les images et les proprits de leurs contours. Vous pouvez notamment effectuer les
oprations suivantes :
Affichage ou masquage du contour de l'image
Modification du calque de l'image, de la couleur du contour et du type de ligne
Modification de l'emplacement de l'image
Techniques avances de dessin et d'organisation
Modification d'images et de contours d'image
Page 151 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Mise l'chelle, rotation et modification des largeur et hauteur de l'image
Basculement de la visibilit de l'image
Modification de la transparence de l'image
Modification de la luminosit, du contraste et de l'estompe de l'image
Modification de la qualit et de la vitesse de l'affichage de l'image
Rubriques de cette section :
Affichage et masquage des contours de l'image
Modification du calque de l'image, de la couleur de contour et du type de ligne des contours
Modification de l'chelle, de la rotation, de l'emplacement, de la largeur et de la hauteur d'une image
Modification de la visibilit de l'image
Modification de la couleur et de la transparence d'une image deux tons
Rglage de la luminosit, du contraste et de l'estompe d'une image
Envoyez-nous vos commentaires sur cette page.
En cachant un contour d'image, vous vitez tout dplacement ou modification accidentelle de l'image, ainsi que le traage ou l'affichage du contour. Lorsque les
contours des images sont cachs, les images dlimites restent affiches dans les limites spcifies ; seuls les contours sont concerns. Les oprations
d'affichage et de masquage des contours s'appliquent toutes les images attaches votre dessin.
Pour afficher ou masquer les contours d'une image, utilisez la proprit ClippingEnabled.
Remarque Cette proprit affecte uniquement le contour de l'image. Pour visualiser une modification dans l'image lors de l'activation ou de la dsactivation de
cette proprit, observez de prs le petit contour entourant l'image.
Techniques avances de dessin et d'organisation
Affichage et masquage des contours de l'image
Envoyez-nous vos commentaires sur cette page.
Vous pouvez changer la couleur et le type de ligne des contours de l'image, ainsi que le calque de l'image l'aide des proprits suivantes :
Layer
Spcifie le calque de l'image.
Color
Spcifie la couleur du contour de l'image.
Linetype
Spcifie le type de ligne de l'image.
Techniques avances de dessin et d'organisation
Modification du calque de l'image, de la couleur de contour et du type de ligne des contours
Envoyez-nous vos commentaires sur cette page.
Vous pouvez modifier l'chelle, la rotation, l'emplacement, la largeur et la hauteur d'une image l'aide des mthodes et proprits suivantes :
ScaleEntity
Met l'image l'chelle.
Rotate
Fait pivoter l'image.
Origin
Spcifie l'emplacement de l'image.
Width
Spcifie la largeur de l'image en pixels.
Height
Spcifie la hauteur de l'image en pixels.
ImageWidth
Spcifie la largeur de l'image en units de base de donnes.
Techniques avances de dessin et d'organisation
Modification de l'chelle, de la rotation, de l'emplacement, de la largeur et de la hauteur d'une image
Page 152 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
ImageHeight
Spcifie la hauteur de l'image en units de base de donnes.
ShowRotation
Dtermine si l'effet de rotation de l'image raster est affich.
Envoyez-nous vos commentaires sur cette page.
La visibilit de l'image affecte la vitesse pour redessiner en masquant les images dans la session de dessin en cours. Les images ainsi masques ne sont pas
affiches ni traces; seul le contour du dessin est affich. Pour masquer des images, donnez la proprit ImageVisibility la valeur FALSE. Pour afficher
nouveau les images, donnez-lui la valeur TRUE
Techniques avances de dessin et d'organisation
Modification de la visibilit de l'image
Envoyez-nous vos commentaires sur cette page.
Les images raster deux tons comprennent uniquement une couleur de premier plan et une couleur d'arrire-plan. Lorsque vous attachez une image deux
tons, les pixels du premier plan de l'image hritent des paramtres de couleur du calque courant. Outre les modifications que vous pouvez apporter n'importe
quelle image attache, vous pouvez modifier les images deux tons en changeant la couleur du premier plan et en activant puis en dsactivant la transparence
de l'arrire-plan.
Remarque Les images deux tons et leurs contours sont toujours de couleur identique.
Pour modifier la couleur de premier plan d'une image deux tons, utilisez la proprit Color. Pour activer et dsactiver la transparence, utilisez la proprit
Transparency.
Techniques avances de dessin et d'organisation
Modification de la couleur et de la transparence d'une image deux tons
Envoyez-nous vos commentaires sur cette page.
Dans AutoCAD, vous pouvez rgler la luminosit, le contraste et l'estompe de l'image l'cran ainsi qu' la sortie trace sans affecter le fichier d'image raster
initial.
Pour rgler la luminosit, le contraste et l'estompe, utilisez les proprits suivantes :
Brightness
Spcifie le niveau de luminosit d'une image.
Contrast
Spcifie le niveau de contraste d'une image.
Fade
Spcifie le niveau d'estompe d'une image.
Techniques avances de dessin et d'organisation
Rglage de la luminosit, du contraste et de l'estompe d'une image
Envoyez-nous vos commentaires sur cette page.
Vous pouvez dlimiter une zone d'image en vue d'un affichage ou d'un traage. Le contour de dlimitation doit tre un rectangle ou un polygone 2D dont les
sommets figurent dans les contours de l'image. Plusieurs instances de la mme image peuvent avoir des contours diffrents
Pour dlimiter une image
1. Activez les contours de l'image l'aide de la proprit ClippingEnabled
2. Spcifiez le contour de dlimitation et excutez la dlimitation l'aide de la mthode ClipBoundary. Cette mthode requiert la saisie d'une valeur : un
tableau de variants de coordonnes de systme de coordonnes gnral 2D spcifiant le contour de dlimitation d'une image raster.
Rubriques de cette section :
Techniques avances de dessin et d'organisation
Dlimitation d'images
Page 153 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Modification du contour de dlimitation
Affichage et masquage du contour de dlimitation
Envoyez-nous vos commentaires sur cette page.
Pour modifier un contour de dlimitation existant, rptez les tapes prcdentes. L'ancien contour est supprim et remplac par le nouveau.
Techniques avances de dessin et d'organisation
Modification du contour de dlimitation
Envoyez-nous vos commentaires sur cette page.
Vous pouvez afficher le contour de dlimitation d'une image, ou cacher ce contour et afficher les contours initiaux de l'image. Pour masquer un contour de
dlimitation et afficher l'image d'origine, dfinissez la proprit ClippingEnabled sur FALSE. Pour afficher l'image dlimite, dfinissez la proprit
ClippingEnabled sur TRUE.
Rubriques de cette section :
Dlimitation du contour d'une image raster
Techniques avances de dessin et d'organisation
Affichage et masquage du contour de dlimitation
Envoyez-nous vos commentaires sur cette page.
Dans cet exemple, une image raster est ajoute dans l'espace objet. Ensuite, l'image est dlimite en fonction du contour de dlimitation. L'exemple utilise le
fichier downtown.jpg, qui se trouve dans le rpertoire Sample. Si cette image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent,
indiquez un chemin d'accs et un nom de fichier appropris pour la variable imageName.
Sub Ch10_ClippingRasterBoundary()
Dim insertionPoint(0 To 2) As Double
Dim scalefactor As Double
Dim rotationAngle As Double
Dim imageName As String
Dim rasterObj As AcadRasterImage
imageName = "C:\AutoCAD\sample\downtown.jpg"
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
scalefactor = 2
rotationAngle = 0
On Error GoTo ERRORHANDLER
' Creates a raster image in model space
Set rasterObj = ThisDrawing.ModelSpace.AddRaster _
(imageName, insertionPoint, _
scalefactor, rotationAngle)
ZoomAll
' Establish the clip boundary with an array of points
Dim clipPoints(0 To 9) As Double
clipPoints(0) = 6: clipPoints(1) = 6.75
clipPoints(2) = 7: clipPoints(3) = 6
clipPoints(4) = 6: clipPoints(5) = 5
clipPoints(6) = 5: clipPoints(7) = 6
clipPoints(8) = 6: clipPoints(9) = 6.75
' Clip the image
rasterObj.ClipBoundary clipPoints
' Enable the display of the clip
rasterObj.ClippingEnabled = True
ThisDrawing.Regen acActiveViewport
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Techniques avances de dessin et d'organisation
Dlimitation du contour d'une image raster
Page 154 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
AutoCAD propose plusieurs fonctions vous permettant de grer les objets d'un dessin. Grce aux blocs, vous pouvez organiser et manipuler de nombreux
objets comme un seul lment. Les attributs associent les lments d'information avec les blocs de vos dessins, les numros de rfrence et les prix par
exemple.
L'utilisation de rfrences externes AutoCAD permet d'attacher des dessins entiers au dessin courant ou de les superposer. Ainsi, les modifications apportes
au dessin de rfrence apparaissent dans le dessin courant lorsque vous ouvrez ce dernier.
Rubriques de cette section :
Utilisation des blocs
Utilisation d'attributs
Techniques avances de dessin et d'organisation
Utilisation de blocs et d'attributs
Envoyez-nous vos commentaires sur cette page.
Un bloc est un ensemble d'objets regroups de sorte qu'ils ne forment plus qu'un seul objet et constituent ce qu'on appelle une rfrence de bloc. AutoCAD
permet d'insrer une rfrence de bloc dans le dessin, de la mettre l'chelle et de lui appliquer une rotation. Vous pouvez galement dcomposer un bloc afin
d'en modifier un un les lments, et crer ainsi un nouvel objet lorsque vous reconstituez le bloc. AutoCAD met jour toutes les futures occurrences de ce
bloc en fonction de sa dfinition.
Les blocs peuvent tre dfinis partir d'objets initialement dessins sur des calques diffrents l'aide de couleurs et de types de lignes distincts. Vous pouvez
conserver les informations relatives aux calques, aux couleurs et aux types de lignes des objets dans un bloc. Lorsque vous insrez celui-ci dans le dessin,
chaque objet reste sur son calque d'origine et conserve sa couleur et son type de ligne initial.
Pour de plus amples informations sur l'utilisation de blocs, reportez-vous la section Cration et insertion de symboles (blocs) du Manuel d'utilisation.
Rubriques de cette section :
Dfinition de blocs
Insertion de blocs
Dcomposition d'une rfrence de bloc
Redfinition d'un bloc
Techniques avances de dessin et d'organisation
Utilisation des blocs
Envoyez-nous vos commentaires sur cette page.
Pour crer un bloc, utilisez la mthode Add. Cette mthode requiert la saisie de deux valeurs : l'emplacement o ajouter le bloc dans le dessin et le nom du bloc
crer.
Une fois le bloc cr, vous pouvez lui ajouter tout objet gomtrique ou un autre bloc. Vous pouvez ensuite insrer une occurrence du bloc dans le dessin. Un
bloc insr est un objet appel rfrence de bloc.
Vous pouvez galement crer un bloc l'aide de la mthode WBlock qui permet de grouper des objets dans un fichier dessin distinct. Le fichier dessin peut tre
ensuite utilis comme dfinition de bloc pour d'autres dessins. AutoCAD considre comme dfinition de bloc tout dessin que vous insrez dans un autre.
Pour de plus amples informations sur la dfinition de blocs, reportez-vous la section Cration de blocs du Manuel d'utilisation.
Techniques avances de dessin et d'organisation
Dfinition de blocs
Envoyez-nous vos commentaires sur cette page.
Techniques avances de dessin et d'organisation
Insertion de blocs
Page 155 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La mthode InsertBlock vous permet d'insrer des blocs ou des dessins entiers dans le dessin courant. La mthode InsertBlock requiert la saisie de six
valeurs : le point d'insertion, le nom du bloc ou du dessin insrer, les facteurs d'chelle de X, Y et Z, et l'angle de rotation.
Un dessin constitue une rfrence de bloc lorsque vous l'insrez intgralement dans un autre dessin. Lorsque vous renouvelez cette opration, AutoCAD utilise
la dfinition du bloc (c'est--dire, la description gomtrique de ce bloc) et modifie simplement les paramtres de position, d'chelle et de rotation. Si vous
modifiez le dessin d'origine aprs son insertion, vos modifications n'auront aucun effet sur le bloc insr. Si vous souhaitez que le bloc insr reflte les
changements effectus, vous pouvez le redfinir en insrant de nouveau le dessin d'origine. Pour ce faire, utilisez la mthode InsertBlock.
Si vous insrez un dessin en tant que bloc, le nom de fichier est automatiquement utilis en tant que nom du bloc. Une fois le bloc cr, vous pouvez modifier
son nom l'aide de la proprit Name.
AutoCAD attribue par dfaut les coordonnes (0, 0, 0) comme point de base aux dessins insrs. Vous pouvez modifier le point de base d'un dessin en ouvrant
le dessin d'origine et en utilisant la mthode SetVariable pour spcifier un point de base d'insertion diffrent pour la variable systme INSBASE. AutoCAD
appliquera le nouveau point de base lors de l'insertion suivante du dessin.
Si le dessin insr contient des objets PaperSpace, ceux-ci ne sont pas inclus dans la dfinition du bloc du dessin courant. Pour utiliser ces objets dans un
autre dessin, ouvrez le dessin d'origine et convertissez-les en bloc l'aide de la mthode Add. Vous pouvez insrer le dessin dans un autre dans l'espace
papier ou dans l'espace objet.
Une rfrence de bloc ne peut pas tre itre pour rechercher les objets d'origine qui la composent. Toutefois, vous pouvez itrer la dfinition du bloc d'origine,
ou alors dcomposer la rfrence de bloc en ses composants d'origine.
Vous pouvez galement insrer un rseau de blocs l'aide de la mthode AddMInsertBlock. Cette mthode n'insre pas un bloc unique dans le dessin, comme
le fait la mthode InsertBlock, mais insre en revanche un rseau du bloc spcifi. Cette mthode renvoie un objet MInsertBlock.
Pour de plus amples informations sur l'insertion de blocs, reportez-vous la section Insertion de blocs du Manuel d'utilisation.
Dfinition d'un bloc et insertion de celui-ci dans un dessin
Cet exemple dfinit un bloc et ajoute un cercle la dfinition de bloc. Ensuite, le bloc est insr dans le dessin comme rfrence de bloc.
Sub Ch10_InsertingABlock()
' Define the block
Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "CircleBlock")
' Add a circle to the block
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 0
center(1) = 0
center(2) = 0
radius = 1
Set circleObj = blockObj.AddCircle(center, radius)
' Insert the block
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
ZoomAll
MsgBox "The circle belongs to " & blockRefObj.ObjectName
End Sub
Remarque A la fin de l'opration d'insertion, le systme de coordonnes gnral (SCG) du fichier externe est align paralllement au plan XY du systme de
coordonnes utilisateur (SCU) dans le dessin courant. Il suffit donc de modifier le paramtre SCU, avant d'insrer la rfrence de bloc d'un fichier externe, pour
redfinir son orientation dans l'espace.
Envoyez-nous vos commentaires sur cette page.
Pour dcomposer une rfrence de bloc, utilisez la mthode Explode. Grce la dcomposition d'une rfrence de bloc, vous pouvez modifier le bloc, ou
ajouter ou supprimer les objets qui le composent.
Affichage du rsultat d'une rfrence de bloc dcompose
Cet exemple cre un bloc et ajoute un cercle la dfinition du bloc. Ensuite, le bloc est insr dans le dessin comme rfrence de bloc. La rfrence de bloc est
ensuite dcompose et les objets rsultants sont affichs avec les types d'objets correspondants.
Sub Ch10_ExplodingABlock()
' Define the block
Dim blockObj As AcadBlock
Techniques avances de dessin et d'organisation
Dcomposition d'une rfrence de bloc
Page 156 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "CircleBlock")
' Add a circle to the block
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 0
center(1) = 0
center(2) = 0
radius = 1
Set circleObj = blockObj.AddCircle(center, radius)
' Insert the block
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
ZoomAll
MsgBox "The circle belongs to " & blockRefObj.ObjectName
' Explode the block reference
Dim explodedObjects As Variant
explodedObjects = blockRefObj.Explode
' Loop through the exploded objects
Dim I As Integer
For I = 0 To UBound(explodedObjects)
explodedObjects(I).Color = acRed
explodedObjects(I).Update
MsgBox "Exploded Object " & I & ": " _
& explodedObjects(I).ObjectName
explodedObjects(I).Color = acByLayer
explodedObjects(I).Update
Suivant
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour redfinir un bloc, utilisez l'une des mthodes ou proprits de l'objet Block. Lorsque vous redfinissez un bloc, toutes les rfrences celui-ci dans le
dessin sont immdiatement mises jour en fonction de la nouvelle dfinition.
La redfinition affecte les insertions prcdentes et futures d'un bloc. Les attributs de valeur constante sont supprims et remplacs par ceux que vous
dfinissez. En revanche, les attributs de variable ne subissent aucune modification, mme si la nouvelle dfinition du bloc ne contient aucun attribut.
Redfinition des objets dans une dfinition de bloc
Cet exemple cre un bloc et ajoute un cercle la dfinition du bloc. Ensuite, le bloc est insr dans le dessin comme rfrence de bloc. Le cercle dans la
dfinition de bloc est mis jour, de mme que la rfrence du bloc.
Sub Ch10_RedefiningABlock()
' Define the block
Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "CircleBlock")
' Add a circle to the block
Dim circleObj As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 0
center(1) = 0
center(2) = 0
radius = 1
Set circleObj = blockObj.AddCircle(center, radius)
' Insert the block
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
ZoomAll
' Redefine the circle in the block,
Techniques avances de dessin et d'organisation
Redfinition d'un bloc
Page 157 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
' and update the block reference
circleObj.radius = 3
blockRefObj.Update
End Sub
Envoyez-nous vos commentaires sur cette page.
Un attribut dfinit une tiquette (galement appele libell) permettant d'indiquer, de manire interactive, le texte associer un bloc. Vous pouvez, par
exemple, entrer des numros de rfrence, des tarifs, des commentaires et les noms des propritaires.
Vous pouvez extraire les informations de rfrence d'attribut d'un dessin et les utiliser dans un tableur ou une base de donnes, pour crer une nomenclature.
AutoCAD permet d'associer plusieurs attributs un bloc, condition que vous dfinissiez une tiquette pour chacun d'entre eux. Vous pouvez galement dfinir
des attributs constants. Comme ils ont la mme valeur dans chaque occurrence du bloc, vous pouvez insrer le bloc sans entrer de valeur.
Les attributs peuvent tre invisibles, c'est--dire qu'ils n'apparaissent pas l'cran ou qu'ils ne sont pas tracs. Toutefois, les informations sur la rfrence
d'attribut sont stockes dans le fichier dessin.
Pour de plus amples informations sur l'utilisation d'attributs, reportez-vous la section Prsentation des attributs de bloc du Manuel d'utilisation.
Rubriques de cette section :
Cration de dfinitions et de rfrences d'attribut
Modification d'une dfinition d'attribut
Extraction des informations d'attribut
Techniques avances de dessin et d'organisation
Utilisation d'attributs
Envoyez-nous vos commentaires sur cette page.
Pour crer une rfrence d'attribut, vous devez d'abord crer une dfinition d'attribut sur un bloc l'aide de la mthode AddAttribute. Cette mthode requiert la
saisie de six valeurs : la hauteur du texte de l'attribut, le mode Attribut, une chane de message, le point d'insertion, la chane d'tiquette et la valeur par dfaut
de l'attribut.
La valeur du mode est facultative. Le mode de l'attribut peut tre spcifi via la saisie de cinq constantes:
acAttributeModeNormal
Indique que le mode courant de chaque attribut est mis jour.
acAttributeModeInvisible
Les valeurs des attributs n'apparatront pas au moment de l'insertion du bloc. La commande ATTECRAN est prioritaire sur le mode Invisible.
acAttributeModeConstant
Affecte aux attributs une valeur fixe pour les insertions de bloc.
acAttributeModeVerify
Demande une vrification de la valeur des attributs lors de l'insertion du bloc.
acAttributeModePreset
Dfinit l'attribut sur sa valeur par dfaut lorsque vous insrez un bloc contenant un attribut prdfini. La valeur ne peut pas tre modifie dans ce mode.
Vous pouvez n'entrer aucune option ou bien entrer une combinaison ou l'ensemble des options. Pour spcifier une combinaison d'options, ajoutez les
constantes ensemble. Par exemple, vous pouvez entrer acAttributeModeInvisible + acAttributeModeConstant.
La chane de message s'affiche lors de l'insertion d'un bloc contenant l'attribut. La valeur par dfaut de cette chane est la chane de l'tiquette. Entrez
acAttributeModeConstant pour le mode afin de dsactiver le message.
La chane de l'tiquette identifie chaque occurrence de l'attribut. Tous les caractres peuvent tre utiliss l'exception des espaces et des points d'exclamation.
AutoCAD convertit les minuscules en majuscules.
Une fois la dfinition d'attribut spcifie dans un bloc, l'insertion du bloc via la mthode InsertBlock permet de spcifier une valeur diffrente pour la rfrence de
l'attribut.
Une dfinition d'attribut est associe au bloc au moment de sa cration. Les dfinitions d'attribut cres dans l'espace objet ou l'espace papier ne sont
attaches aucun bloc donn.
Dfinition d'un attribut
Cet exemple cre un bloc auquel il ajoute un attribut. Ensuite, le bloc est insr dans le dessin.
Sub Ch10_CreatingAnAttribute()
' Define the block
Dim blockObj As AcadBlock
Techniques avances de dessin et d'organisation
Cration de dfinitions et de rfrences d'attribut
Page 158 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "BlockWithAttribute")
' Add an attribute to the block
Dim attributeObj As AcadAttribute
Dim height As Double
Dim mode As Long
Dim prompt As String
Dim insertionPoint(0 To 2) As Double
Dim tag As String
Dim value As String
height = 1
mode = acAttributeModeVerify
prompt = "New Prompt"
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
tag = "New Tag"
value = "New Value"
Set attributeObj = blockObj.AddAttribute(height, mode, _
prompt, insertionPoint, tag, value)
' Insert the block, creating a block reference
' and an attribute reference
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "BlockWithAttribute", 1#, 1#, 1#, 0)
End Sub
Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser les mthodes et proprits d'un objet Attribute pour modifier l'attribut. Certaines proprits d'un attribut incluent les suivantes :
Alignment
Spcifie l'alignement horizontal et vertical de l'attribut.
Backward
Spcifie la direction du texte de l'attribut.
FieldLength
Spcifie la longueur du champ de l'attribut.
Height
Indique la hauteur de l'attribut.
InsertionPoint
Spcifie le point d'insertion de l'attribut.
Mode
Spcifie le mode de l'attribut.
PromptString
Indique la chane de texte constituant le message de l'attribut.
Rotation
Spcifie la rotation de l'attribut.
ScaleFactor
Spcifie le facteur d'chelle de l'attribut.
TagString
Indique la chane de texte constituant l'tiquette de l'attribut.
Certaines des mthodes disponibles pour l'dition de l'attribut incluent les suivantes :
ArrayPolar
Cre un rseau polaire.
ArrayRectangular
Cre un rseau rectangulaire.
Copy
Copie l'attribut.
Erase
Efface l'attribut.
Mirror
Cre une copie-miroir de l'attribut.
Move
Dplace l'attribut.
Rotate
Techniques avances de dessin et d'organisation
Modification d'une dfinition d'attribut
Page 159 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Fait pivoter l'attribut.
ScaleEntity
Met l'chelle l'attribut.
Modification d'une dfinition d'attribut
Cet exemple cre un bloc auquel il ajoute un attribut. Ensuite, le bloc est insr dans le dessin. Le texte d'attribut est alors mis jour et s'affiche de droite
gauche.
Sub Ch10_RedefiningAnAttribute()
' Define the block
Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "BlockWithAttribute")
' Add an attribute to the block
Dim attributeObj As AcadAttribute
Dim height As Double
Dim mode As Long
Dim prompt As String
Dim insertionPoint(0 To 2) As Double
Dim tag As String
Dim value As String
height = 1
mode = acAttributeModeVerify
prompt = "New Prompt"
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
tag = "New Tag"
value = "New Value"
Set attributeObj = blockObj.AddAttribute(height, mode, _
prompt, insertionPoint, tag, value)
' Insert the block, creating a block reference
' and an attribute reference
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "BlockWithAttribute", 1#, 1#, 1#, 0)
' Redefine the attribute text to display backwards.
attributeObj.Backward = True
attributeObj.Update
End Sub
Envoyez-nous vos commentaires sur cette page.
Les mthodes GetAttributes et GetConstantAttributes permettent d'extraire les informations d'attribut d'un dessin. La mthode GetAttributes renvoie un rseau
des rfrences d'attribut attaches un bloc, en plus de leurs valeurs courantes. La mthode GetConstantAttributes renvoie un rseau des attributs constants
attachs au bloc ou la rfrence externe. Les attributs renvoys par cette mthode sont les dfinitions d'attributs constants, pas les rfrences d'attribut.
Les fichiers gabarits ne sont pas requis pour l'extraction des informations d'attribut, et aucun fichier d'informations d'attribut n'est cr. Il suffit d'itrer le rseau
des rfrences d'attribut, l'aide des proprits TagString et TextString des rfrences d'attribut, pour examiner les informations d'attribut.
La proprit TagString reprsente l'tiquette individuelle de la rfrence d'attribut. La proprit TextString contient la valeur de la rfrence d'attribut.
Pour plus d'informations sur l'extraction des informations d'attributs, reportez-vous la section Extraction de donnes des attributs de bloc du Manuel
d'utilisation.
Extraction des informations sur les rfrences d'attribut
Cet exemple cre un bloc auquel il ajoute un attribut. Ensuite, le bloc est insr dans le dessin. Les donnes d'attribut sont ensuite renvoyes et affiches dans
une bote de message. Elles sont alors mises jour en fonction de la rfrence de bloc avant d'tre nouveau renvoyes et affiches.
Sub Ch10_GettingAttributes()
' Create the block
Dim blockObj As AcadBlock
Dim insertionPnt(0 To 2) As Double
insertionPnt(0) = 0
insertionPnt(1) = 0
insertionPnt(2) = 0
Set blockObj = ThisDrawing.Blocks.Add _
(insertionPnt, "TESTBLOCK")
' Define the attribute definition
Dim attributeObj As AcadAttribute
Techniques avances de dessin et d'organisation
Extraction des informations d'attribut
Page 160 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim height As Double
Dim mode As Long
Dim prompt As String
Dim insertionPoint(0 To 2) As Double
Dim tag As String
Dim value As String
height = 1#
mode = acAttributeModeVerify
prompt = "Attribute Prompt"
insertionPoint(0) = 5
insertionPoint(1) = 5
insertionPoint(2) = 0
tag = "Attribute Tag"
value = "Attribute Value"
' Create the attribute definition object on the block
Set attributeObj = blockObj.AddAttribute _
(height, mode, prompt, _
insertionPoint, tag, value)
' Insert the block
Dim blockRefObj As AcadBlockReference
insertionPnt(0) = 2
insertionPnt(1) = 2
insertionPnt(2) = 0
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
(insertionPnt, "TESTBLOCK", 1, 1, 1, 0)
ZoomAll
' Get the attributes for the block reference
Dim varAttributes As Variant
varAttributes = blockRefObj.GetAttributes
' Move the attribute tags and values into a
' string to be displayed in a Msgbox
Dim strAttributes As String
strAttributes = ""
Dim I As Integer
For I = LBound(varAttributes) To UBound(varAttributes)
strAttributes = strAttributes + " Tag: " + _
varAttributes(I).TagString + vbCrLf + _
" Value: " + varAttributes(I).textString
Suivant
MsgBox "The attributes for blockReference " + _
blockRefObj.Name & " are: " & vbCrLf _
& strAttributes
' Change the value of the attribute
' Note: There is no SetAttributes. Once you have the
' variant array, you have the objects.
' Changing them changes the objects in the drawing.
varAttributes(0).textString = "NEW VALUE!"
' Get the attributes again
Dim newvarAttributes As Variant
newvarAttributes = blockRefObj.GetAttributes
' Again, display the tags and values
strAttributes = ""
For I = LBound(varAttributes) To UBound(varAttributes)
strAttributes = strAttributes + " Tag: " + _
newvarAttributes(I).TagString + vbCrLf + _
" Value: " + newvarAttributes(I).textString
Suivant
MsgBox "The attributes for blockReference " & _
blockRefObj.Name & " are: " & vbCrLf _
& strAttributes
End Sub
Envoyez-nous vos commentaires sur cette page.
Une rfrence externe (Xrf) relie un dessin au dessin courant. Lorsque vous insrez un dessin sous forme de bloc, la dfinition du bloc et tous les lments
associs sont enregistrs dans la base de donnes de dessins courante. Il n'est pas mis jour si vous modifiez le dessin d'origine. En revanche, lorsque vous
insrez un dessin sous forme de Xrf, celle-ci est mise jour lorsque vous apportez des modifications au dessin d'origine. Par consquent, un dessin qui
contient des xrfs reflte toujours les dernires modifications apportes chaque fichier de rfrence externe.
Une Xrf constitue une entit unique dans le dessin courant, au mme titre qu'une rfrence de bloc. Sachez cependant que les Xrfs n'augmentent pas
sensiblement la taille du fichier contenant le dessin courant et qu'elles ne peuvent pas tre dcomposes. Tout comme les blocs, vous pouvez imbriquer
plusieurs rfrences externes rattaches au dessin.
Pour de plus amples informations sur les xrfs, reportez-vous la section Attache, mise jour et liaison des rfrences externes du Manuel d'utilisation.
Rubriques de cette section :
Mise jour des Xrfs
Techniques avances de dessin et d'organisation
Utilisation de rfrences externes
Page 161 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Attachement de xrfs
Dtachement de Xrfs
Rechargement de Xrfs
Dchargement des xrfs
Liaison de Xrfs
Dlimitation de blocs et de Xrfs
Chargement sur demande et performances des Xrfs
Envoyez-nous vos commentaires sur cette page.
Lors de l'ouverture ou du trac d'un dessin, AutoCAD recharge chacune des xrfs, de sorte que leur contenu corresponde la dernire version du dessin de
rfrence. Une fois des modifications apportes un fichier de rfrences externes et le fichier enregistr, les autres utilisateurs peuvent immdiatement
visualiser les modifications en rechargeant la xrf.
Techniques avances de dessin et d'organisation
Mise jour des Xrfs
Envoyez-nous vos commentaires sur cette page.
L'attachement d'une xrf lie un dessin (le fichier de rfrences ou xrf) au dessin courant. Lorsqu'un dessin rfrence une xrf, AutoCAD attache uniquement la
dfinition de la xrf au dessin, la diffrence d'un bloc normal, o la dfinition et le contenu du bloc sont stocks avec le dessin courant. AutoCAD lit le dessin
de rfrence pour dterminer les lments afficher dans le dessin courant. Si le fichier de rfrence est introuvable ou altr, ses donnes n'apparaissent
pas. A chaque ouverture d'un dessin, AutoCAD charge tous les objets graphiques et non graphiques (tels que les calques, les types de lignes, les styles de
texte) partir des fichiers de rfrences. Si la variable VISRETAIN est active, AutoCAD enregistre toutes les informations de calque dpendant de rfrences
externes qui ont t mises jour dans le dessin courant.
Vous pouvez ainsi attacher une xrf autant de fois que vous le souhaitez et attribuer chaque occurrence une nouvelle position, une nouvelle chelle ou une
nouvelle rotation. Vous pouvez galement contrler les calques dpendants et les proprits des types de lignes dfinies dans cette xrf.
Pour attacher une xrf, utilisez la mthode AttachExternalReference. Cette mthode requiert la saisie du chemin d'accs et du nom du fichier dessin
rfrencer, le nom utilis par la xrf dans le dessin courant, le point d'insertion, l'chelle et les informations de rotation de la xrf. La mthode
AttachExternalReference renvoie l'objet ExternalReference cr.
Pour de plus amples informations sur l'association de xrfs, reportez-vous la section Attachement de rfrences externes du Manuel d'utilisation.
Ajout d'une rfrence externe un dessin
Dans cet exemple, tous les blocs du dessin courant sont affichs avant et aprs avoir ajout une rfrence externe. L'exemple utilise le fichier 3D House.dwg,
qui se trouve dans le rpertoire Sample. Si cette image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent, indiquez un chemin
d'accs et un nom de fichier appropris pour la variable PathName.
Sub Ch10_AttachingExternalReference()
On Error GoTo ERRORHANDLER
Dim InsertPoint(0 To 2) As Double
Dim insertedBlock As AcadExternalReference
Dim tempBlock As AcadBlock
Dim msg As String, PathName As String
' Define external reference to be inserted
InsertPoint(0) = 1
InsertPoint(1) = 1
InsertPoint(2) = 0
PathName = "C:/Program Files/AutoCAD 2007/sample/3D House.dwg"
' Display current Block information for this drawing
GoSub ListBlocks
' Add the external reference to the drawing
Set insertedBlock = ThisDrawing.ModelSpace. _
AttachExternalReference(PathName, "XREF_IMAGE", _
InsertPoint, 1, 1, 1, 0, False)
ZoomAll
' Display new Block information for this drawing
GoSub ListBlocks
Exit Sub
ListBlocks:
msg = vbCrLf ' Reset message
For Each tempBlock In ThisDrawing.Blocks
msg = msg & tempBlock.Name & vbCrLf
Suivant
MsgBox "The current blocks in this drawing are: " & msg
Return
Techniques avances de dessin et d'organisation
Attachement de xrfs
Page 162 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
ERRORHANDLER:
MsgBox Err.Description
End Sub
Rubriques de cette section :
Superposition de xrfs
Envoyez-nous vos commentaires sur cette page.
La superposition est comparable l'attachement, sauf lorsqu'un dessin est attach ou superpos. Toute autre superposition imbrique est ignore et, par
consquent, non affiche. En d'autres termes, les superpositions imbriques ne sont pas lues.
Pour superposer une xrf, dfinissez le paramtre Overlay de la mthode AttachExternalReference sur TRUE.
Techniques avances de dessin et d'organisation
Superposition de xrfs
Envoyez-nous vos commentaires sur cette page.
Vous pouvez supprimer une dfinition de xrf pour enlever compltement les xrfs du dessin. Vous pouvez galement effacer les occurrences des xrfs
individuelles. La suppression de la dfinition d'une xrf supprime tous les symboles dpendants associs celle-ci. Si toutes les occurrences d'une xrf sont
effaces du dessin, AutoCAD supprime la dfinition de la rfrence externe lors de la prochaine ouverture du dessin.
Pour supprimer l'attachement d'une xrf, utilisez la mthode Detach. Vous ne pouvez pas dtacher une xrf imbrique.
Dtachement d'une rfrence externe
Dans cet exemple, une rfrence externe est attache puis dtache. L'exemple utilise le fichier 3D House.dwg, qui se trouve dans le rpertoire Sample. Si
cette image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent, indiquez un chemin d'accs et un nom de fichier appropris pour la
variable PathName.
Sub Ch10_DetachingExternalReference()
On Error GoTo ERRORHANDLER
' Define external reference to be inserted
Dim xrefHome As AcadBlock
Dim xrefInserted As AcadExternalReference
Dim insertionPnt(0 To 2) As Double
Dim PathName As String
insertionPnt(0) = 1
insertionPnt(1) = 1
insertionPnt(2) = 0
PathName = "c:/AutoCAD 2007/sample/3D House.dwg"
' Add the external reference
Set xrefInserted = ThisDrawing.ModelSpace. _
AttachExternalReference(PathName, "XREF_IMAGE", _
insertionPnt, 1, 1, 1, 0, False)
ZoomAll
MsgBox "The external reference is attached."
' Detach the external reference definition
Dim name As String
name = xrefInserted.name
ThisDrawing.Blocks.Item(name).Detach
MsgBox "The external reference is detached."
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Techniques avances de dessin et d'organisation
Dtachement de Xrfs
Envoyez-nous vos commentaires sur cette page.
Si un utilisateur modifie un dessin de rfrence externe alors que vous travaillez sur un dessin hte auquel cette xrf est attache, vous pouvez mettre jour le
Techniques avances de dessin et d'organisation
Rechargement de Xrfs
Page 163 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
dessin de rfrence externe l'aide de la mthode Reload. Lorsque vous procdez au rechargement, le dessin de rfrence externe slectionn est mis jour
dans le dessin hte. En outre, si vous avez dsactiv une xrf, vous pouvez choisir de recharger le dessin de rfrence externe tout moment.
Rechargement d'une rfrence externe
Dans cet exemple, une rfrence externe est attache, puis recharge. L'exemple utilise le fichier 3D House.dwg, qui se trouve dans le rpertoire Sample. Si
cette image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent, indiquez un chemin d'accs et un nom de fichier appropris pour la
variable PathName
Sub Ch10_ReloadingExternalReference()
On Error GoTo ERRORHANDLER
' Define external reference to be inserted
Dim xrefHome As AcadBlock
Dim xrefInserted As AcadExternalReference
Dim insertionPnt(0 To 2) As Double
Dim PathName As String
insertionPnt(0) = 1
insertionPnt(1) = 1
insertionPnt(2) = 0
PathName = "c:/AutoCAD 2007/sample/3D House.dwg"
' Add the external reference to the block
Set xrefInserted = ThisDrawing.ModelSpace. _
AttachExternalReference(PathName, "XREF_IMAGE", _
insertionPnt, 1, 1, 1, 0, False)
ZoomAll
MsgBox "The external reference is attached."
' Reload the external reference definition
ThisDrawing.Blocks.Item(xrefInserted.name).Reload
MsgBox "The external reference is reloaded."
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Envoyez-nous vos commentaires sur cette page.
Pour dcharger une xrf, utilisez la mthode Unload. Lorsque vous dchargez un fichier de rfrences non utilis dans le dessin courant, les performances
d'AutoCAD sont amliores car il n'a pas besoin de lire ni d'afficher les objets inutiles des dessins ou les informations sur la table des symboles. Les objets de
la xrf et ceux des xrfs imbriques ne sont pas affichs dans le dessin courant jusqu' ce que la xrf soit recharge.
Dchargement d'une rfrence externe
Dans cet exemple, une rfrence externe est attache, puis dcharge. L'exemple utilise le fichier 3D House.dwg , qui se trouve dans le rpertoire Sample. Si
cette image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent, indiquez un chemin d'accs et un nom de fichier appropris pour la
variable PathName
Sub Ch10_UnloadingExternalReference()
On Error GoTo ERRORHANDLER
' Define external reference to be inserted
Dim xrefHome As AcadBlock
Dim xrefInserted As AcadExternalReference
Dim insertionPnt(0 To 2) As Double
Dim PathName As String
insertionPnt(0) = 1
insertionPnt(1) = 1
insertionPnt(2) = 0
PathName = "c:/AutoCAD 2007/sample/3D House.dwg"
' Add the external reference
Set xrefInserted = ThisDrawing.ModelSpace. _
AttachExternalReference(PathName, "XREF_IMAGE", _
insertionPnt, 1, 1, 1, 0, False)
ZoomAll
MsgBox "The external reference is attached."
' Unload the external reference definition
ThisDrawing.Blocks.Item(xrefInserted.name).Unload
MsgBox "The external reference is unloaded."
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Techniques avances de dessin et d'organisation
Dchargement des xrfs
Envoyez-nous vos commentaires sur cette page.
Techniques avances de dessin et d'organisation
Page 164 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Grce la mthode Bind, vous pouvez lier une xrf un dessin, c'est--dire l'intgrer celui-ci de manire permanente. Les informations sur les rfrences
externes deviennent un bloc. Lorsque le dessin de rfrence externe est mis jour, la Xrf ajoute n'est pas mise jour. Ce processus ajoute la base de
donnes entire d'un dessin, y compris tous ses symboles dpendants.
Les symboles dpendants sont des objets nomms tels que des blocs, des styles de cotation, des calques, des types de lignes et des styles de texte. La liaison
de la xrf permet d'utiliser des objets nomms de la xrf dans le dessin courant.
La mthode Bind ne requiert qu'un paramtre : bPrefixName. Si bPrefixName est dfini sur TRUE, les noms de symbole du dessin de la xrf sont prcds
dans le dessin courant par <nom_bloc>$x$, x tant un entier automatiquement incrment pour viter l'crasement des dfinitions de bloc existantes. Si le
paramtre bPrefixName est dfini sur FALSE, les noms de symboles du dessin de la xrf sont fusionns dans le dessin courant sans prfixe. Si des noms
dupliqus existent, AutoCAD utilise les symboles dfinis dans le dessin local. Si vous n'tes pas sr que vos dessins contiennent des noms de symbole
dupliqus, nous vous conseillons de dfinir le paramtre bPrefixName sur TRUE.
Pour de plus amples informations sur la liaison des xrfs, reportez-vous la section Archivage des dessins contenant des rfrences externes (lies) du
Manuel d'utilisation.
Liaison d'une rfrence externe
Dans cet exemple, une rfrence externe est attache, puis lie au dessin. L'exemple utilise le fichier 3D House.dwg, qui se trouve dans le rpertoire Sample.
Si cette image ne figure pas sur votre systme ou si elle se trouve dans un rpertoire diffrent, indiquez un chemin d'accs et un nom de fichier appropris pour
la variable PathName
Sub Ch10_BindingExternalReference()
On Error GoTo ERRORHANDLER
' Define external reference to be inserted
Dim xrefHome As AcadBlock
Dim xrefInserted As AcadExternalReference
Dim insertionPnt(0 To 2) As Double
Dim PathName As String
insertionPnt(0) = 1
insertionPnt(1) = 1
insertionPnt(2) = 0
PathName = "c:/AutoCAD 2007/sample/3D House.dwg"
' Add the external reference
Set xrefInserted = ThisDrawing.ModelSpace. _
AttachExternalReference(PathName, "XREF_IMAGE", _
insertionPnt, 1, 1, 1, 0, False)
ZoomAll
MsgBox "The external reference is attached."
' Bind the external reference definition
ThisDrawing.Blocks.Item(xrefInserted.name).Bind False
MsgBox "The external reference is bound."
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Liaison de Xrfs
Envoyez-nous vos commentaires sur cette page.
L'Automatisation ActiveX ne propose aucune mthode de dlimitation des contours de blocs et xrfs. Utilisez la commande XDELIM d'AutoCAD ou envoyez-la
AutoCAD via la mthode SendCommand.
Techniques avances de dessin et d'organisation
Dlimitation de blocs et de Xrfs
Envoyez-nous vos commentaires sur cette page.
En combinant l'option de chargement sur demande et l'enregistrement des dessins avec des index, vous pouvez amliorer les performances des dessins
contenant des rfrences externes. Le chargement sur demande fonctionne en conjonction avec les variables systme XLOADCTL et INDEXCTL. Lorsque
vous l'activez, si des index ont t enregistrs dans les dessins de rfrence, AutoCAD ne charge en mmoire que les donnes du dessin de rfrence qui sont
ncessaires la rgnration du dessin courant. En d'autres termes, les dessins rfrencs sont lus sur demande.
Pour bnficier pleinement des avantages du chargement sur demande, vous devez d'abord enregistrer les dessins que vous avez rfrencs avec des index
d'espace ou de calque. Les avantages du chargement sur demande se remarquent notamment :
lorsque vous dlimitez la xrf pour en afficher une petite fraction et qu'un index d'espace est enregistr dans le dessin de rfrence externe ;
lorsque vous gelez plusieurs calques de la xrf et que le dessin est enregistr avec un index de calque.
Techniques avances de dessin et d'organisation
Chargement sur demande et performances des Xrfs
Page 165 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour activer le chargement sur demande, utilisez la proprit XRefDemandLoad. Si vous activez le chargement sur demande avec l'option
acDemandLoadEnabledWithCopy, AutoCAD copie temporairement le fichier de rfrence externe et charge sur demande le fichier temporaire. Vous pouvez
alors charger la xrf sur demande et autoriser les modifications du dessin de rfrence initial. Lorsque vous dsactivez le chargement sur demande, AutoCAD lit
l'intgralit du fichier de rfrences sans tenir compte de l'affichage des calques ou des occurrences de dlimitation.
Pour activer les index d'espace et de calque, dfinissez la variable systme INDEXCTL l'aide de la mthode SetVariable. Les paramtres suivants
s'appliquent la variable systme INDEXCTL :
0 = aucun index cr
1 = index de calque cr
2 = index d'espace cr
3 = index d'espace et de calque crs
Par dfaut, INDEXCTL est paramtre sur 0 lorsque vous crez un nouveau dessin AutoCAD.
Pour de plus amples informations sur le chargement sur demande et les xrfs, reportez-vous la section Amlioration des performances avec des xrfs
volumineuses du Manuel d'utilisation.
Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser les donnes tendues (xdata) dans le but de lier des informations des objets dans un dessin.
Affectation de donnes tendues aux objets d'un jeu de slection
Dans cet exemple, l'utilisateur doit slectionner des objets dans le dessin. Les objets slectionns sont placs dans un jeu de slection et les donnes tendues
spcifies sont attaches tous les objets de la slection.
Sub Ch10_AttachXDataToSelectionSetObjects()
' Create the selection set
Dim sset As Object
Set sset = ThisDrawing.SelectionSets.Add("SS1")
' Prompt the user to select objects
sset.SelectOnScreen
' Define the xdata
Dim appName As String, xdataStr As String
appName = "MY_APP"
xdataStr = "This is some xdata"
Dim xdataType(0 To 1) As Integer
Dim xdata(0 To 1) As Variant
' Define the values for each array
'1001 indicates the appName
xdataType(0) = 1001
xdata(0) = appName
'1000 indicates a string value
xdataType(1) = 1000
xdata(1) = xdataStr
' Loop through all entities in the selection
' set and assign the xdata to each entity
Dim ent As Object
For Each ent In sset
ent.SetXData xdataType, xdata
Next ent
End Sub
Affichage des donnes tendues des objets d'un jeu de slection
L'exemple suivant affiche les donnes tendues attaches l'exemple prcdent. Si vous attachez des donnes tendues autres que des chanes (type 1000),
vous devez rviser ce code
Sub Ch10_ViewXData()
' Find the selection created in previous example
Dim sset As Object
Set sset = ThisDrawing.SelectionSets.Item("SS1")
' Define the xdata variables to hold xdata information
Dim xdataType As Variant
Dim xdata As Variant
Dim xd As Variant
'Define index counter
Dim xdi As Integer
xdi = 0
' Loop through the objects in the selection set
' and retrieve the xdata for the object
Dim msgstr As String
Dim appName As String
Dim ent As AcadEntity
appName = "MY_APP"
For Each ent In sset
msgstr = ""
xdi = 0
Techniques avances de dessin et d'organisation
Attribution et extraction de donnes tendues
Page 166 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
' Retrieve the appName xdata type and value
ent.GetXData appName, xdataType, xdata
' If the xdataType variable is not initialized, there
' was no appName xdata to retrieve for that entity
If VarType(xdataType) <> vbEmpty Then
For Each xd In xdata
msgstr = msgstr & vbCrLf & xdataType(xdi) _
& ": " & xd
xdi = xdi + 1
Next xd
End If
' If the msgstr variable is NULL, there was no xdata
If msgstr = "" Then msgstr = vbCrLf & "NONE"
MsgBox appName & " xdata on " & ent.ObjectName & _
":" & vbCrLf & msgstr
Next ent
End Sub
Envoyez-nous vos commentaires sur cette page.
De nombreuses tches de programmation vont au-del de la simple utilisation du modle d'objet ActiveX d'AutoCAD. Ce chapitre explique brivement comment
crer des botes de dialogue, grer des erreurs, contrler le focus et distribuer votre application d'autres utilisateurs.
Pour de plus amples informations, reportez-vous la documentation VBA de Microsoft.
Rubriques de cette section :
Terminologie VBA supplmentaire
Feuilles dans VBA
Traitement des erreurs
Codage de modules de code VBA
Excution d'une macro VBA depuis une barre d'outils ou un menu
Chargement automatique d'un projet VBA
Excution automatique d'une macro VBA
Ouverture automatique de l'environnement VBA IDE au chargement d'un projet
Etat sans document ouvert
Distribution d'applications
Dveloppement d'applications avec VBA
Envoyez-nous vos commentaires sur cette page.
Dans ce chapitre, il est fait davantage appel VBA. Les termes suivants vous aideront comprendre et utiliser l'environnement VBA.
Projet
Ensemble de feuilles et de modules regroups dans un seul fichier.
Module
Groupe de sous-programmes et de fonctions (le plus souvent associs les uns aux autres).
Macro
Sous-programme ou fonction publique. Les macros vous sont prsentes comme des composants excutables de votre projet.
Bote de dialogue
Moyen par lequel des informations sont affiches et regroupes pendant l'excution d'une application.
Forme
Conteneur des contrles de bote de dialogue.
Dveloppement d'applications avec VBA
Terminologie VBA supplmentaire
Envoyez-nous vos commentaires sur cette page.
Dveloppement d'applications avec VBA
Feuilles dans VBA
Page 167 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les feuilles sont les blocs de base partir desquels vous crez des botes de dialogue personnalises pour votre application. Les feuilles personnalises
permettent de fournir des informations aux utilisateurs, d'en obtenir ou de faire en sorte que les utilisateurs contrlent le fonctionnement de l'application.
Les feuilles sont identiques la toile d'un artiste et sont vierges au dpart. Pour remplir la toile, il faut une palette ; dans ce cas, il s'agit de la bote outils des
contrles. En tant que peintre, vous disposez les contrles voulus de la bote outils sur la feuille. Vous pouvez ajouter autant de contrles que vous le
souhaitez. Vous pouvez galement ajuster, tout moment, la taille et les proprits des contrles et de la feuille elle-mme. Enfin, vous attribuez des
fonctionnalits (codes) aux contrles pour "donner vie" la feuille.
Bien que Visual Basic 6 prenne en charge plusieurs types de feuilles, VBA ne prend en charge que les feuilles de type UserForm. Cela signifie que certaines
feuilles cres et exportes dans Visual Basic 6 ne peuvent pas tre importes dans VBA.
Les feuilles de type UserForm (appeles feuilles dans le prsent manuel) peuvent tre modales ou sans mode. C'est la proprit ShowModal de la feuille qui
dtermine ceci. Les feuilles Modal affiches dans l'application excute doivent tre fermes pour que l'utilisateur puisse effectuer une autre action dans
l'application. Pour de plus amples informations sur l'utilisation des feuilles modales, reportez-vous la section Feuilles modales.
Pour crer une nouvelle feuille dans un projet
1. Ouvrez l'Explorateur de projet de l'environnement VBA IDE et slectionnez le projet auquel vous voulez ajouter la feuille.
2. Dans le menu Insertion, choisissez l'option UserForm.
Une feuille vierge est cre et ajoute au projet.
Pour crer une feuille sans mode dans un projet
1. Ouvrez l'Explorateur de projet de l'environnement VBA IDE et slectionnez le projet auquel vous voulez ajouter la feuille.
2. Dans le menu Insertion, choisissez l'option UserForm et attribuez la valeur False (Faux) la proprit ShowModal.
3. Ajoutez AcFocusCtrl (AcFocusCtrl.dll) dans la bote outils et dplacez le contrle sur la feuille.
AcFocusCtrl reste centr sur la feuille au moment de l'intervention de l'utilisateur.
Rubriques de cette section :
Mode cration et mode excution
Ajout de contrles une feuille
Affichage et masquage de feuilles
Chargement et dchargement de feuilles
Feuilles modales
Envoyez-nous vos commentaires sur cette page.
Lorsque vous crez une feuille, vous tes en mode Cration. Ce mode permet d'excuter les oprations suivantes :
Ajouter des contrles la feuille
Changer les proprits de la feuille
Changer les proprits des contrles sur la feuille
Ajouter du code au module de feuille
En mode Cration, il n'y a pas d'interaction entre l'utilisateur, l'interface utilisateur d'AutoCAD
et la feuille.
Ds que l'application est lance, la feuille est en mode Excution. Dans ce mode, vous ne pouvez pas ajuster la feuille directement. Toutefois, elle apparat
dans l'interface utilisateur d'AutoCAD et l'utilisateur peut interagir avec elle dans le cadre d'une utilisation normale de l'application.
Dveloppement d'applications avec VBA
Mode cration et mode excution
Envoyez-nous vos commentaires sur cette page.
Dveloppement d'applications avec VBA
Page 168 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous pouvez ajouter facilement des contrles une feuille. Il suffit de slectionner le contrle voulu dans la bote outils des contrles et en le faisant glisser
sur la feuille. Lorsque vous relchez le bouton de la souris, une copie du contrle est place sur la feuille. Vous pouvez alors changer sa position et sa taille.
Vous pouvez copier autant de contrles que vous le souhaitez.
Outre la mthode par glisser-dposer mentionne prcdemment, il existe d'autres faons de placer des contrles sur une feuille.
Rubriques de cette section :
Changement de taille et de position d'un contrle
Utilisation de contrles de formatage
Changement des proprits d'un contrle
Ajout de code un contrle
Ajout de contrles une feuille
Envoyez-nous vos commentaires sur cette page.
Pour dplacer un contrle, slectionnez-le et faites-le glisser un autre endroit de la feuille.
Pour redimensionner un contrle, slectionnez-le en cliquant une fois dessus. Lorsque vous slectionnez un contrle, sa bordure devient visible. Pour le
redimensionner, slectionnez l'une des poignes de redimensionnement qui apparat sur sa bordure et faites-la glisser jusqu' la position souhaite. Lorsque
vous relchez la poigne, le contrle est redimensionn. (Vous pouvez redimensionner une feuille de la mme faon.)
Pour dplacer ou redimensionner plusieurs contrles la fois, slectionnez chacun d'eux en maintenant la touche MAJ enfonce. Tous les contrles sont mis
en surbrillance. Vous pouvez les dplacer ou les redimensionner en tant que groupe.
Pour dimensionner un contrle au moment o vous le placez
1. Slectionnez le contrle voulu dans la bote outils des contrles.
2. Sur la feuille, appuyez sur le bouton de la souris, faites glisser le contrle et relchez le bouton de la souris. Le contrle est plac sur la feuille. Sa taille
est fonction de l'tendue du glissement de la souris.
Pour placer plusieurs instances du mme contrle
1. Dans la bote outils des contrles, cliquez deux fois sur le contrle placer.
2. Sur la feuille, cliquez l'endroit o vous voulez placer une copie du contrle. Positionnez le curseur un autre endroit de la feuille et cliquez de nouveau.
Une autre copie du contrle apparat. Vous pouvez ajouter autant de copies d'un contrle que ncessaire.
3. Lorsque vous avez fini d'utiliser le contrle, retournez la bote outils des contrles et cliquez une nouvelle fois sur le contrle pour le dslectionner.
Dveloppement d'applications avec VBA
Changement de taille et de position d'un contrle
Envoyez-nous vos commentaires sur cette page.
VBA fournit plusieurs contrles de formatage qui vous aideront mettre en page votre feuille. Ces contrles se trouvent dans le menu Format de
l'environnement VBA IDE. Ils vous permettent d'aligner des contrles les uns par rapport aux autres, de crer deux ou plusieurs contrles de mme taille, de
changer l'espacement entre les contrles et de les centrer sur la feuille.
N'oubliez pas, lorsque vous utilisez des contrles de formatage, que vous pouvez slectionner plusieurs contrles la fois en appuyant sur la touche MAJ.
Dveloppement d'applications avec VBA
Utilisation de contrles de formatage
Envoyez-nous vos commentaires sur cette page.
Les proprits dfinissent les diffrentes caractristiques d'un contrle comme sa taille, sa forme, sa couleur, son tiquette et ses valeurs par dfaut. Vous
pouvez dfinir les proprits d'un contrle en mode cration dans la fentre Proprits.
Pour changer la proprit d'un contrle
1. Sur la feuille, slectionnez le contrle voulu.
2. Le cas chant, ouvrez la fentre Proprits en appuyant sur la touche F4.
Dveloppement d'applications avec VBA
Changement des proprits d'un contrle
Page 169 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
3. Dans cette fentre, recherchez la proprit changer et slectionnez sa valeur actuelle.
4. Attribuez-lui une nouvelle valeur.
Vous pouvez galement modifier la proprit d'un contrle, lors de l'excution, en crivant le code d'accs cette proprit. Reportez-vous la documentation
de Microsoft pour savoir comment changer la proprit d'un contrle au moment de l'excution.
Envoyez-nous vos commentaires sur cette page.
Maintenant que la feuille a l'aspect souhait, vous pouvez ajouter du code derrire les contrles. Pour accder la fentre Code d'un contrle, il suffit de cliquer
deux fois sur ce contrle dans la fentre Form. La fentre Code apparat avec un sous-programme cr pour ce contrle et son vnement par dfaut.
Vous pouvez ajouter du code cet vnement ou choisir un autre vnement dans la liste droulante affiche en haut droite de la fentre.
Dveloppement d'applications avec VBA
Ajout de code un contrle
Envoyez-nous vos commentaires sur cette page.
A prsent, la conception de la feuille est parfaite et un code entirement fonctionnel est dfini derrire chaque contrle. La dernire tape consiste rechercher
la feuille qui sera affiche sur l'cran de l'utilisateur l'excution. La mthode VBA Show permet d'afficher la feuille. Elle peut tre appele partir d'un module
de code de votre application.
La feuille que vous avez cre tant modale par dfaut, l'utilisateur ne peut pas interagir directement avec AutoCAD tant que la feuille est affiche. Par
exemple, il ne peut pas slectionner un point ou un objet dans le dessin tant que la feuille est l'cran. Pour permettre l'utilisateur d'accder au dessin
AutoCAD, utilisez la mthode VBA Hide. Cette mthode masque la feuille et octroie l'utilisateur un accs limit AutoCAD. Lorsque vous appliquez cette
mthode, n'oubliez pas que la feuille n'est pas dcharge de la mmoire. Elle conserve ses valeurs actuelles tant qu'elle est masque.
La mthode Hide est appele comme la mthode Show.
Affichage d'une feuille
Dans cet exemple, la feuille UserForm1 est affiche :
Public Sub MyApplication()
UserForm1.Show
End Sub
Le sous-programme (et par consquent, l'affichage de la feuille) peut tre appel en tant que macro depuis la commande EXECVBA ou un menu AutoCAD.
Masquage d'une feuille
L'exemple ci-dessous masque la feuille nomme UserForm1 :
Public Sub MyAppHide()
UserForm1.Hide
End Sub
Dveloppement d'applications avec VBA
Affichage et masquage de feuilles
Envoyez-nous vos commentaires sur cette page.
Il vous arrivera parfois de charger une feuille en mmoire pendant l'excution mais de ne pas l'afficher. Cela se produit notamment pour mieux contrler quel
moment le chargement survient dans l'application ou pour obtenir un accs, par programmation, la feuille sans pour autant l'afficher sur l'cran de l'utilisateur.
Pour charger une feuille sans l'afficher, utilisez la mthode VBA Load. La mthode Show peut tre ensuite utilise pour rendre la feuille visible au moment voulu
pendant l'excution de l'application. Souvenez-vous que l'utilisateur ne peut pas interagir sur la feuille tant qu'elle est invisible.
Si vous appelez la mthode Show et que la feuille n'a pas t charge, elle le sera automatiquement.
Vous souhaiterez aussi parfois dcharger une feuille spcifique. Lorsqu'une feuille est dcharge, elle est supprime de la mmoire et toute la mmoire qui lui
tait alloue est libre. Jusqu' ce que la feuille soit recharge l'aide de la mthode Load ou Show, un utilisateur ne peut pas interagir dessus et elle ne peut
pas tre traite par programmation. Vous pouvez dcider de dcharger une feuille lorsque vous savez qu'elle ne sera plus utilise dans l'application, et
rcuprer la mmoire qui lui tait alloue.
Dveloppement d'applications avec VBA
Chargement et dchargement de feuilles
Page 170 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La mthode Hide n'effectue pas de dchargement. Si l'excution de votre application se termine et qu'une feuille n'a pas t dcharge, elle le sera
automatiquement. Le tableau suivant compare les mthodes VBA Show, Hide, Load et Unload :
Mthodes VBA Show, Hide, Load et Unload
Mthode Utiliser
Afficher Affiche une feuille. Si la feuille n'a pas t charge, elle l'est automatiquement.
Cacher le trac Masque une feuille. La feuille n'est pas dcharge de la mmoire.
Charger Charge une feuille en mmoire mais ne l'affiche pas.
Dcharger Dcharge une feuille de la mmoire. Cela peut tre fait de faon explicite l'aide de la mthode Unload ou automatiquement, la fin de l'application.
Envoyez-nous vos commentaires sur cette page.
Lorsque vous donnez le type modal une bote de dialogue dans AutoCAD VBA, l'utilisateur doit y rpondre pour pouvoir excuter un autre composant de
l'application. Aucun autre code n'est excut tant que la bote de dialogue modale n'est pas referme via la mthode Hide ou Unload. C'est pourquoi, le
dveloppeur de l'application doit prter une attention toute particulire la faon et au moment o ces botes de dialogue sont mises en uvre.
Ainsi, une bote de dialogue peut demander l'utilisateur de slectionner un objet dans le dessin AutoCAD. Pour que l'utilisateur puisse effectivement
slectionner l'objet dans la fentre de l'application AutoCAD, vous devez masquer la feuille en faisant appel la mthode Hide. Une fois l'objet slectionn,
vous pouvez utiliser la mthode Show pour rafficher la feuille avec toutes ses donnes actuelles, puis poursuivre l'excution de l'application.
Remarque Bien que d'autres feuilles soient dsactives dans l'application lorsqu'une bote de dialogue modale est affiche, d'autres applications ne le sont pas.
Dveloppement d'applications avec VBA
Feuilles modales
Envoyez-nous vos commentaires sur cette page.
La plupart des environnements de dveloppement disposent, par dfaut, d'une fonction de gestion des erreurs. Dans VB et VBA, la raction par dfaut une
erreur consiste afficher un message d'erreur et fermer l'application. Cette raction tant approprie dans la phase de dveloppement d'une application, elle
n'est pas efficace pour l'utilisateur final. Il existe, en effet, des erreurs que vous voulez ignorer ou pour lesquelles vous souhaitez apporter des solutions
spcifiques. Pour d'autres, vous souhaiterez supprimer le message d'erreur qui les accompagne ou simplement contrler le message affich sur l'cran de
l'utilisateur. Par ailleurs, la fermeture automatique de l'application est rarement acceptable pour l'utilisateur final.
En rgle gnrale, la gestion des erreurs est ncessaire lorsqu'une entre utilisateur est obligatoire ou lorsque des E/S de fichier sont utilises. Mme si vous
savez que le fichier requis existe et est disponible, il existe peut-tre d'autres conditions susceptibles de provoquer des erreurs et auxquelles vous n'avez pas
pens.
Remarque La plupart des exemples de code fournis dans la documentation d'AutoCAD ne font pas appel la fonction de rcupration d'erreurs. Ainsi, ils sont
plus simples et spcifiques. Toutefois, comme dans tous les langages de programmation, la rcupration et le traitement adquats des erreurs jouent un rle
essentiel dans le bon fonctionnement d'une application.
Rubriques de cette section :
Dfinition des types d'erreurs d'applications
Rcupration d'erreurs d'excution
Rponse des erreurs rcupres
Rponse des erreurs d'entre utilisateur d'AutoCAD
Dveloppement d'applications avec VBA
Traitement des erreurs
Envoyez-nous vos commentaires sur cette page.
Il existe trois types d'erreurs diffrents que vous tes susceptible de rencontrer dans vos applications : erreurs de compilation, erreurs d'excution et erreurs
logiques.
Les erreurs de compilation se produisent lors de la construction de l'application. Il s'agit essentiellement d'erreurs de syntaxe, de problmes d'tendue des
variables ou de fautes de frappe. Dans VBA, ces types d'erreur sont dtects par l'environnement de dveloppement. Lorsque vous entrez une ligne de code
incorrecte, elle est mise en surbrillance et un message d'erreur s'affiche pour vous signaler le problme. Les erreurs de compilation doivent tre corriges
avant l'excution de l'application.
Les erreurs d'excution sont plus difficiles dtecter et corriger. Elles se produisent lors de l'excution du code et impliquent souvent la rception
d'informations de l'utilisateur. Par exemple, si l'application demande l'utilisateur d'entrer le nom d'un dessin et que l'utilisateur entre un nom qui n'existe pas,
une erreur d'excution se produit. Pour traiter ce type d'erreur efficacement, vous devez prvoir quels types de problme risquent de se produire, les dtecter
Dveloppement d'applications avec VBA
Dfinition des types d'erreurs d'applications
Page 171 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
et crire le code capable de grer ce genre de situation.
Les erreurs logiques sont les plus difficiles dtecter et corriger. En gnral, lorsque aucune erreur de compilation ou d'excution n'apparat, mais que la
sortie du programme est incorrecte, il s'agit d'une erreur logique. Ce type d'erreur est appel bogue par les programmeurs et peut tre dtect facilement ou
avec beaucoup de difficults.
Vous trouverez des informations sur la dtection et la correction de ces trois types d'erreur dans la documentation de votre environnement de dveloppement.
Les erreurs propres AutoCAD tombent dans la catgorie des erreurs d'excution et sont traites plus en dtails dans la prsente documentation.
Envoyez-nous vos commentaires sur cette page.
Dans VB et VBA, les erreurs d'excution sont rcupres via l'instruction On Error. Cette instruction cre un pige pour le systme. Lorsqu'une erreur
survient, dtourne automatiquement le traitement vers le systme de gestion des erreurs spcifiquement conu cet effet. Cela signifie que le systme de
gestion des erreurs par dfaut du programme n'est pas utilis.
L'instruction On Errorpeut prendre trois formes :
On Error Resume Next
On Error GoTo Label
On Error GoTo 0
L'instruction On Error Resume Next est utilise lorsque vous voulez ignorer des erreurs. Elle rcupre l'erreur, et au lieu d'afficher un message d'erreur et
de mettre fin au programme, elle passe la ligne de code suivante et poursuit le traitement. Supposons que vous souhaitiez crer un sous-programme pour
effectuer une itration dans l'espace objet et changer la couleur de chaque entit. Vous savez qu'AutoCAD va produire une erreur si vous essayez de colorer
une entit figurant sur un calque verrouill. Or, au lieu de fermer le programme, vous pouvez ignorer l'entit figurant sur le calque verrouill et continuer traiter
les autres entits. L'instruction On Error Resume Next permet d'effectuer cette opration.
L'instruction On Error GoTo Label est utilise lorsque vous voulez crer un module explicite de gestion des erreurs. Elle rcupre l'erreur, et au lieu
d'afficher un message d'erreur et de mettre fin au programme, elle passe directement un endroit spcifique du code. Ce dernier peut ensuite rpondre
l'erreur de la faon la plus approprie pour votre application. Par exemple, vous pouvez poursuivre l'exemple ci-dessus et afficher un message contenant le
descripteur de chaque entit figurant sur le calque verrouill.
Traitement des erreurs l'aide de l'instruction On Error Resume Next
Le sous-programme suivant itre l'espace objet et affiche chaque entit en rouge. Essayez d'excuter ce sous-programme sur un dessin comportant plusieurs
entits, certaines d'entre elles figurant sur un calque verrouill. Commentez ensuite l'instruction On Error Resume Next et excutez de nouveau le sous-
programme. Vous remarquerez que le sous-programme se termine lorsqu'il atteint la premire entit figurant sur le calque verrouill.
Sub Ch11_ColorEntities()
Dim entry As Object
On Error Resume Next
For Each entry In ThisDrawing.ModelSpace
entry.Color = acRed
Next entry
End Sub
Traitement des erreurs l'aide de l'instruction On Error GoTo
Le sous-programme suivant itre l'espace objet et affiche chaque entit en rouge. Pour chaque entit du calque verrouill, le module de gestion des erreurs
affiche un message d'erreur personnalis et le descripteur de cette entit. Essayez d'excuter ce sous-programme sur un dessin comportant plusieurs entits,
certaines d'entre elles figurant sur un calque verrouill. Commentez ensuite l'instruction On Error GoTo MyErrorHandling et excutez de nouveau le
sous-programme. Vous remarquerez que le sous-programme se termine lorsqu'il atteint la premire entit figurant sur le calque verrouill.
Sub Ch11_ColorEntities2()
Dim entry As Object
On Error GoTo MyErrorHandler
For Each entry In ThisDrawing.ModelSpace
entry.Color = acRed
Next entry
' Important! Exit the subroutine before the error handler
Exit Sub
MyErrorHandler:
Msgbox entry.EntityName + " is on a locked layer." + _
" The handle is: " + entry.Handle
Resume Next
End Sub
L'instruction On Error GoTo 0 annule le module de gestion des erreurs actif. Les instructions On Error Resume Next et On Error GoTo Label restent
en vigueur jusqu' la fin du sous-programme, jusqu' ce qu'un autre module de gestion des erreurs soit dclar ou que le module actif soit annul via
l'instruction On Error GoTo 0.
Dveloppement d'applications avec VBA
Rcupration d'erreurs d'excution
Envoyez-nous vos commentaires sur cette page.
Dveloppement d'applications avec VBA
Rponse des erreurs rcupres
Page 172 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Que faire aprs avoir rcupr une erreur ? Tout dpend de la nature de l'application et de l'erreur.
VB et VBA fournissent des informations sur le type d'erreur rcupre l'aide de l'objet Err. Cet objet comporte plusieurs proprits : Number, Description,
Source, HelpFile, HelpContext et LastDLLError. Ces proprits contiennent les informations de l'erreur la plus actuelle. Les proprits Number et Description
sont les plus importantes. La premire contient le code d'erreur unique associ l'erreur et la seconde, le message d'erreur qui serait normalement affich.
Dans le module de gestion des erreurs, vous pouvez comparer la proprit Number de l'erreur une valeur prvue. Cela vous aidera dterminer la nature de
l'erreur qui s'est produite. En effet, si vous connaissez la nature d'une erreur, vous pouvez prendre les mesures qui s'imposent.
Envoyez-nous vos commentaires sur cette page.
Les mthodes d'entre utilisateur crent un certain nombre d'oprations de rcupration d'erreurs car elles impliquent que l'utilisateur entre un certain type de
donnes. Si l'utilisateur essaie d'entrer un autre type de donnes, AutoCAD rejette l'entre et invite l'utilisateur saisir les donnes adquates. L'utilisation de la
mthode InitializeUserInput avec des fonctions d'entre utilisateur permet de mieux contrler les entres utilisateur, mais peut galement introduire d'autres
conditions qui doivent tre vrifies par le systme de rcupration d'erreurs. Pour obtenir un exemple de fonction de rcupration d'erreurs requise avec
certains types d'entres utilisateur, reportez-vous la section Demande d'entre utilisateur.
Dveloppement d'applications avec VBA
Rponse des erreurs d'entre utilisateur d'AutoCAD
Envoyez-nous vos commentaires sur cette page.
Bien que VBA ne prenne pas en charge la cration d'excutables, il n'offre pas de protection par mot de passe de l'affichage de feuilles, de classes et de
modules sur la base d'un projet. Cette fonction de protection de projet se trouve dans le menu VBA IDE. Choisissez Outils Proprits du projet Protection.
Dveloppement d'applications avec VBA
Codage de modules de code VBA
Envoyez-nous vos commentaires sur cette page.
Vous pouvez excuter une macro VBA depuis une barre d'outils ou un menu AutoCAD en changeant la proprit Macro de cette barre d'outils ou de ce menu.
Cette proprit doit avoir la valeur
-VBARUN fichier.dvb!module.macro
o fichier est le nom du fichier, module le nom du module contenant la macro excuter et macro le nom de la macro. Le nom de fichier n'est requis que si le
fichier n'est pas charg dans la session active d'AutoCAD. Si un nom de fichier est spcifi, le fichier est charg.
Pour de plus amples informations sur la modification des menus et des barres d'outils, reportez-vous la section Personnalisation des menus et barres d'outils.
Dveloppement d'applications avec VBA
Excution d'une macro VBA depuis une barre d'outils ou un menu
Envoyez-nous vos commentaires sur cette page.
Vous pouvez charger automatiquement un projet VBA de deux faons:
Lorsque VBA est excut, il recherche un projet appel acad.dvb dans le rpertoire d'AutoCAD. Ce fichier est automatiquement charg en tant que projet par
dfaut.
Vous pouvez charger explicitement, au dmarrage, un projet autre que celui par dfaut (acad.dvb) en utilisant la commande CHARGVBA. L'exemple de code
suivant utilise le fichier de dmarrage d'AutoLISP pour charger VBA et un projet VBA appel myproj.dvb au dmarrage d'AutoCAD. Lancez notepad.exe et
ajoutez les lignes suivantes au fichier acad.lsp:
(defun S::STARTUP()
(command "_VBALOAD" "myproj.dvb")
)
Dveloppement d'applications avec VBA
Chargement automatique d'un projet VBA
Page 173 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Envoyez-nous vos commentaires sur cette page.
Vous pouvez excuter automatiquement une macro du fichier acad.dvb en l'appelant l'aide de la version ligne de commande de la commande EXECVBA
depuis un utilitaire de dmarrage d'AutoCAD comme acad.lsp. Ainsi, pour excuter automatiquement la macro intitule drawline, enregistrez cette macro
drawline dans le fichier acad.dvb. Lancez notepad.exe et ajoutez les lignes suivantes au fichier acad.lsp:
(defun S::STARTUP()
(command "_-vbarun" "drawline")
)
Vous pouvez excuter automatiquement une macro au chargement de VBA en la nommant AcadStartup. Toute macro du fichier acad.dvb, appele
AcadStartup, est excute automatiquement au chargement de VBA.
Dveloppement d'applications avec VBA
Excution automatique d'une macro VBA
Envoyez-nous vos commentaires sur cette page.
Une option de la bote de dialogue Ouvrir un projet VBA vous permet d'ouvrir automatiquement l'environnement de dveloppement interactif (IDE). Slectionnez
la case Ouvrir l'diteur Visual Basic, en bas gauche de la bote de dialogue, pour ouvrir automatiquement l'environnement VBA IDE au chargement d'un projet
VBA. Cette option reste active jusqu' ce que vous supprimiez la coche de la case.
Remarque Pour accder la bote de dialogue Ouvrir un projet VBA, entrez CHARGVBA sur la ligne de commande. La bote de dialogue s'ouvre et vous
pouvez choisir le projet charger. Si la bote de dialogue n'apparat pas, la variable systme FILEDIA est sans doute dsactive. Cette variable active et
dsactive l'affichage des botes de dialogue. Pour ractiver la variable FILEDIA, attribuez-lui la valeur 1.
Dveloppement d'applications avec VBA
Ouverture automatique de l'environnement VBA IDE au chargement d'un projet
Envoyez-nous vos commentaires sur cette page.
Il s'agit de l'tat dans lequel se trouve AutoCAD lorsque aucun dessin n'est ouvert. Plusieurs points doivent tre pris en considration lorsque vous utilisez VBA
sans document ouvert dans AutoCAD.
L'objet ThisDrawing n'est pas dfini avec un tat sans document ouvert. Par consquent, toute tentative d'utilisation de cet objet ThisDrawing produira
une erreur.
De mme, les objets dpendants des documents ne sont pas dfinis avec un tat sans document ouvert. Il s'agit notamment des objets qui se trouvent en
dessous de l'objet Document dans le modle d'objet d'AutoCAD. L'utilisation d'objets indpendants des documents, comme Application ou MenuBar, est
autorise.
En tat sans document ouvert, AutoCAD n'a pas de ligne de commande. Lorsque AutoCAD est dans cet tat, toute tentative d'accs la ligne de commande
d'AutoCAD produit une erreur.
Dveloppement d'applications avec VBA
Etat sans document ouvert
Envoyez-nous vos commentaires sur cette page.
Vous pouvez distribuer des applications VBA de deux faons:
Incorpores dans un fichier de dessin AutoCAD
Enregistres dans un fichier de projet VBA
Vous devez choisir l'option de distribution adapte votre application. Les applications compatibles avec le dessin actif et n'utilisant pas d'autres dessins sont
souvent incorpores au dessin. Lorsque vous incorporez l'application au dessin, vous tes sr qu'elle est charge et disponible pour l'utilisateur lorsque le
dessin est ouvert.
Il est prfrable d'enregistrer, dans un fichier de projet VBA, les applications qui sont utilises par de nombreuses personnes, qui sont mises jour
frquemment, qui ouvrent et ferment d'autres dessins ou qui ne sont pas frquemment utilises. Ainsi, vous disposez d'un point central pour l'application, et
Dveloppement d'applications avec VBA
Distribution d'applications
Page 174 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
tous les utilisateurs peuvent excuter la dernire version.
Pour de plus amples informations sur les projets incorpors et les fichiers de projet VBA, reportez-vous la section Dfinition des projets VBA intgrs et
globaux.
Rubriques de cette section :
Distribution d'applications Visual Basic 6
Envoyez-nous vos commentaires sur cette page.
Les applications Visual Basic 6, ou toute autre application hors processus, ne peuvent pas tre enregistres dans un dessin AutoCAD. Elles sont compiles
dans des excutables autonomes (EXE).
Dveloppement d'applications avec VBA
Distribution d'applications Visual Basic 6
Envoyez-nous vos commentaires sur cette page.
La technologie ActiveX vous permet d'changer facilement des informations avec d'autres applications AutoCAD ou compatibles ActiveX, comme Microsoft
Excel ou Microsoft Word. Ce chapitre tudie certaines des procdures de base concernant l'interaction d'AutoCAD avec d'autres applications.
Rubriques de cette section :
Interaction avec des applications Visual LISP
Interaction avec d'autres applications Windows
Accs aux API de Windows partir de VBA
Interaction avec d'autres applications et API Windows
Envoyez-nous vos commentaires sur cette page.
Les applications Visual LISP
vous permet d'changer facilement des informations avec d'autres applications compatibles ActiveX, comme Microsoft
Excel ou Microsoft Word. Grce cette fonctionnalit, vous pouvez recueillir, enregistrer et prsenter des informations AutoCAD dans des formats autres que le
dessin AutoCAD. Vous pouvez galement lire dans AutoCAD des informations issues de ces applications afin de contrler la cration ou la manipulation des
objets AutoCAD. Par exemple, vous pouvez crer une nomenclature dans une feuille de calcul Microsoft Excel partir d'objets issus d'un dessin AutoCAD.
Vous avez dj appris crire du code en utilisant le modle d'objet ActiveX d'AutoCAD. L'change d'informations avec d'autres applications compatibles
ActiveX suppose que vous rfrenciez le modle d'objet ActiveX d'une autre application et que vous criviez le code ncessaire l'utilisation de ces objets.
Remarque Dans ce chapitre, vous trouverez une brve introduction aux fonctionnalits de programmation entre applications. Ces informations n'tant pas
spcifiques AutoCAD, vous les trouverez galement dans la documentation Microsoft et les guides de programmation indpendants.
Interaction avec d'autres applications et API Windows
Interaction avec d'autres applications Windows
Page 175 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour changer des informations entre des modles d'objet ActiveX:
1. Rfrencez le modle d'objet ActiveX de l'autre application.
Dans ce cas, le code reconnat les noms et les relations des objets de l'autre modle.
2. Crez une instance de l'autre application.
Dans ce cas, des objets sont crs (instancis) pour les objets de base de l'autre modle.
3. Ecrivez le code l'aide du modle d'objet AutoCAD et du modle d'objet de l'autre application.
C'est l que l'change de donnes a lieu.
Rubriques de cette section :
Rfrences la bibliothque d'objets ActiveX d'autres applications
Cration d'une instance de l'autre application
Programmation avec des objets d'autres applications
Envoyez-nous vos commentaires sur cette page.
Pour crire du code capable d'accder une autre application, il faut que VBA mette les objets de l'autre application votre disposition. Pour ce faire, dfinissez
une rfrence dans la bibliothque d'objets de l'autre application. Il s'agit d'un fichier enregistr sur votre ordinateur qui contient tous les objets, mthodes,
proprits, constantes et vnements dfinis en fonction de cette application.
Pour rfrencer une bibliothque d'objets, vous devez accder l'environnement VBA IDE. Lorsque vous avez activ cet environnement, dans le menu Outils,
choisissez l'option Rfrences. Cette option affiche une bote de dialogue qui contient la liste de toutes les bibliothques d'objets trouves par VBA sur votre
ordinateur. Il suffit de slectionner une bibliothque de la liste pour la rfrencer. Les bibliothques dont les cases cocher sont slectionnes sont dj
rfrences dans le projet courant. Par exemple, pour ajouter la bibliothque d'objets Microsoft Excel, slectionnez l'entre correspondante dans la liste.
Une fois que vous avez cr une rfrence la bibliothque d'objets d'une autre application, vous pouvez utiliser l'Explorateur d'objets de VBA pour afficher la
liste de tous les objets de l'application.
Remarque Vous devez dfinir une rfrence pour chaque projet VBA qui utilisera ce modle d'objet. La dfinition d'une rfrence un projet ne s'applique pas
automatiquement un autre projet. Cela pourrait nuire aux performances.
Pour rfrencer la bibliothque d'objets d'une autre application
1. Dans l'environnement VBA IDE, ouvrez le menu Outils et choisissez Rfrences.
2. Dans la liste des rfrences disponibles, recherchez l'entre de l'application laquelle vous voulez accder, puis slectionnez-la.
3. Cliquez sur OK pour fermer la bote de dialogue.
Interaction avec d'autres applications et API Windows
Rfrences la bibliothque d'objets ActiveX d'autres applications
Envoyez-nous vos commentaires sur cette page.
Une fois que vous avez rfrenc la bibliothque d'objets d'une application, vous devez crer une instance d'application. En d'autres termes, vous devez
dmarrer l'autre application par programmation de sorte que votre code puisse traiter des objets autoriss.
Pour cela, vous devez commencer par dclarer une variable qui reprsentera l'autre application. Vous devez procder comme avec les objets inhrents, en
faisant appel une instruction Dim. Indiquez le type d'application dans l'instruction Dim. Dans l'exemple suivant, l'instruction Dim dclare une variable d'objet de
type Excel.Application:
Dim ExcelAppObj as Excel.Application
Une fois la variable dclare, utilisez l'instruction Set avec le mot cl New pour dfinir la variable comme une instance active de l'application. Par exemple,
l'instruction Set suivante dfinit la variable dclare ci-dessus comme application Excel. Le mot cl New lance une nouvelle session Excel.
Set ExcelAppObj = New Excel.Application
Remarque Certaines applications n'autorisent qu'une seule instance active de l'application la fois. L'utilisation du mot cl New dans une telle application
permet de dfinir une rfrence l'instance existante et de lancer une nouvelle session de l'application.
Interaction avec d'autres applications et API Windows
Cration d'une instance de l'autre application
Envoyez-nous vos commentaires sur cette page.
Interaction avec d'autres applications et API Windows
Programmation avec des objets d'autres applications
Page 176 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous venez de rfrencer la bibliothque d'objets et de crer une instance de l'application. Vous pouvez maintenant crer des objets et les manipuler dans cette
application. Tous les objets, mthodes et proprits dfinis par le modle d'objet sont disponibles. Par exemple, si l'on reprend les dclarations de variable de la
section prcdente, la ligne de code suivante vous permet de voir la session Excel :
ExcelAppObj.Visible = TRUE
Nous vous conseillons d'apprendre utiliser le modle d'objet de l'application pour laquelle vous crivez du code. Vous pouvez faire appel l'Explorateur
d'objets de VBA ou au fichier d'aide de l'application pour en savoir plus sur le modle d'objet que vous rfrencez.
Rubriques de cette section :
Sortie de l'autre application
Envoyez-nous vos commentaires sur cette page.
L'application que vous lancez par programmation consomme une partie de la mmoire de votre ordinateur. Nous vous conseillons de quitter l'application lorsque
vous n'en avez plus besoin afin de librer les ressources systme.
Bien que tous les modles d'objet soient diffrents, la plupart possdent une mthode Quit issue de l'objet application pouvant tre utilise pour quitter
proprement l'application. Par exemple, si l'on reprend les dclarations de variable de la section prcdente, la ligne de code suivante permet de quitter Excel:
ExcelAppObj.Application.Quit
Remarque En revanche, l'application ne prend pas ncessairement fin si vous supprimez la variable d'objet ou que vous l'utilisez dans un contexte trop large.
Vous devez toujours quitter l'application en faisant appel la mthode approprie pour assurer une parfaite limination des donnes superflues enregistres
dans la mmoire.
Liste des attributs AutoCAD dans une feuille de calcul Excel
Ce sous-programme trouve toutes les rfrences de bloc dans le dessin courant. Il recherche ensuite les attributs associs ces rfrences et affiche ceux qu'il
trouve dans un tableur Excel. Procdez comme suit pour excuter cet exemple :
1. Ouvrez un dessin qui contient des rfrences de bloc et des attributs. (Par exemple, le dessin sample/activeX/attrib.dwg contient des rfrences de bloc.)
2. A l'aide de la commande VBAIDE d'AutoCAD, ouvrez l'environnement VBA IDE.
3. Dans le menu Outils Rfrences de l'environnement VBA IDE, slectionnez Microsoft Excel 8.0 Object Model.
4. Copiez le sous-programme suivant dans la fentre de code VBA et excutez-le.
Sub Ch12_Extract()
Dim Excel As Excel.Application
Dim ExcelSheet As Object
Dim ExcelWorkbook As Object
Dim RowNum As Integer
Dim Header As Boolean
Dim elem As AcadEntity
Dim Array1 As Variant
Dim Count As Integer
' Launch Excel.
Set Excel = New Excel.Application
' Create a new workbook and find the active sheet.
Set ExcelWorkbook = Excel.Workbooks.Add
Set ExcelSheet = Excel.ActiveSheet
ExcelWorkbook.SaveAs "Attribute.xls"
RowNum = 1
Header = False
' Iterate through model space finding
' all block references.
For Each elem In ThisDrawing.ModelSpace
With elem
' When a block reference has been found,
' check it for attributes
If StrComp(.EntityName, "AcDbBlockReference", 1) _
= 0 Then
If .HasAttributes Then
' Get the attributes
Array1 = .GetAttributes
' Copy the Tagstrings for the
' Attributes into Excel
For Count = LBound(Array1) To UBound(Array1)
If Header = False Then
If StrComp(Array1(Count).EntityName, _
"AcDbAttribute", 1) = 0 Then
ExcelSheet.Cells(RowNum, _
Count + 1).value = _
Array1(Count).TagString
End If
End If
Next Count
RowNum = RowNum + 1
Interaction avec d'autres applications et API Windows
Sortie de l'autre application
Page 177 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
For Count = LBound(Array1) To UBound(Array1)
ExcelSheet.Cells(RowNum, Count + 1).value _
= Array1(Count).textString
Next Count
Header = True
End If
End If
End With
Next elem
Excel.Application.Quit
End Sub
Envoyez-nous vos commentaires sur cette page.
La plupart des applications Windows
peuvent accder aux procdures API de Windows. Ces procdures vous permettent d'amliorer les fonctionnalits de
votre application.
En effet, grce aux API de Windows, vous pouvez obtenir des informations sur le systme courant, telles que les autres programmes installs ou excuts sur
votre ordinateur, l'emplacement des informations enregistres et les paramtres de contrle en vigueur. Vous pouvez galement accder aux commandes de
manette de jeu, multimdia et sonores. Ces commandes reprsentent quelques-unes des nombreuses fonctionnalits fournies par les API de Windows.
Si vous souhaitez utiliser une API de Windows, vous devez d'abord la dclarer dans votre application. Pour ce faire, utilisez l'instruction Declare. Pour que
l'instruction Declare fonctionne correctement, vous devez spcifier certaines informations:
Le nom de la bibliothque de liaisons dynamiques (DLL, Dynamic Link Library) contenant la procdure que vous voulez utiliser
Le nom de la procdure tel qu'il apparat dans la DLL
Le nom de la procdure tel que vous voulez l'utiliser dans votre application
Les paramtres que la procdure compte recevoir
Le type de donne de la valeur renvoye (si la procdure que vous appelez est une fonction)
Vous pouvez placer l'instruction Declare dans n'importe quel module VBA. Si vous la placez dans un module standard, tout module de votre application pourra
accder la procdure, moins que vous ne limitiez sa porte en utilisant le mot cl Private. Si vous placez Declare dans un module de classe ou de feuille,
la procdure ne sera disponible que dans ce module. Une fois la procdure dclare, vous pouvez l'appeler en suivant la procdure habituelle dans votre
application.
Il est difficile d'utiliser correctement l'instruction Declare. En revanche, il est trs facile d'employer Declare mauvais escient et d'obtenir des rsultats
catastrophiques. Pour viter tout problme dsastreux, enregistrez toutes les informations des applications actives avant de tester une nouvelle instruction
Declare.
Pour vous aider bien matriser cette instruction Declare, Microsoft propose un fichier donnant la liste des dclarations les plus usites. Ce fichier, qui
s'intitule Win32api.txt, est fourni avec Visual Basic 6 et Office. Vous pouvez y rechercher la procdure qui vous intresse et copier dans votre code l'instruction
Declare fournie.
La documentation VBA de Microsoft contient des informations sur l'instruction Declare et un exemple d'utilisation. La source Microsoft Windows API
Reference, enregistre sur le CD de Microsoft Developer Network, fournit des informations sur toutes les procdures disponibles dans les API de Windows. Le
livre de Dan Appleman, Visual Basic Programmer's Guide to the Win32 API, propose galement d'excellentes informations aux programmeurs Visual Basic 6.
Interaction avec d'autres applications et API Windows
Accs aux API de Windows partir de VBA
Envoyez-nous vos commentaires sur cette page.
Ce didacticiel explique comment utiliser ActiveX et Visual Basic pour Applications (VBA), et comment ajouter une macro AutoCAD. Il porte plus
particulirement sur l'architecture paysagre, mais les concepts qui y sont traits peuvent tre appliqus tous les domaines.
Il est destin l'utilisateur AutoCAD avanc qui est un programmeur VBA novice.
Rubriques de cette section :
Analyse de l'environnement
Dfinition de l'objectif
Ecriture de la premire fonction
Obtention d'entre
Dessin des contours du sentier
Dessin des dalles
Association de tous les lments
Excution du code
Conception d'un sentier de jardin : didacticiel ActiveX/VBA
Page 178 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Excution de la macro
Ajout d'une interface de bote de dialogue
Envoyez-nous vos commentaires sur cette page.
Ce didacticiel requiert l'environnement de dveloppement intgr VBA AutoCAD