Anda di halaman 1dari 194

Aide aux dveloppeurs d'AutoCAD 2007

Guide de programmation ActiveX et VBA


Le Guide de programmation ActiveX et VBA explique comment utiliser les contrles ActiveX et VBA pour dvelopper une application
afin de personnaliser AutoCAD. Ce manuel contient en outre des exemples de code et des procdures. Vous y trouverez les
rubriques suivantes :
Introduction
Dmarrage avec VBA
Fondements de l'automatisation ActiveX
Contrle de l'environnement AutoCAD
Cration et modification d'entits AutoCAD
Cotation et tolrance
Personnalisation des menus et barres d'outils
Evnements
Travail en 3D
Dfinition de prsentations et traage
Techniques avances de dessin et d'organisation
Dveloppement d'applications avec VBA
Interaction avec d'autres applications et interfaces de programmation d'applications (API, Application Programming
Interface) de Windows
Conception du sentier de jardin--Un didacticiel ActiveX/VBA
Comparaison de Visual LISP avec ActiveX/VBA
Informations gnrales

Fichiers d'aide
Guide de personnalisation
AutoLISP Reference
AutoLISP Developer's Guide
Didacticiel AutoLISP
Rfrence DXF
Guide de programmation ActiveX
et VBA
ActiveX and VBA Reference
Sheet Set Objects Reference
Connectivity Automation
Reference
ObjectARX
Mon aide

Ressources sur le Web

Cette introduction dcrit le concept d'exposition d'objets AutoCAD via une interface Automatisation ActiveX et leur programmation dans l'environnement Visual
Basic pour Applications (VBA).
Rubriques de cette section :
Prsentation de la technologie ActiveX d'AutoCAD
Prsentation de l'interface Visual Basic pour Applications (VBA) d'AutoCAD
ActiveX et VBA d'AutoCAD utiliss ensemble
Structure du manuel
Informations complmentaires
Exemple de code
Migration de projets d'automatisation



Introduction

Envoyez-nous vos commentaires sur cette page.
ActiveX d'AutoCAD vous permet de manipuler AutoCAD par programmation depuis AutoCAD ou depuis l'extrieur d'AutoCAD. Pour ce faire, le programme
affiche les objets AutoCAD dans un environnement extrieur.Une fois exposs, ces objets sont accessibles par diffrents langages et environnements de
programmation, ainsi que par d'autres programmes comme Microsoft Word VBA ou Excel VBA.
ADD AX_INTRO graphic
La mise en uvre d'une interface ActiveX pour AutoCAD prsente deux avantages :
L'accs par programmation aux dessins AutoCAD est possible sous de nombreux autres environnements de programmation. Avant Automatisation ActiveX,
les dveloppeurs ne disposaient que d'une interface AutoLISP ou C++.
Le partage de donnes avec d'autres applications Windows, telles que Microsoft Excel et Word, s'en trouve grandement facilit.
Un objet constitue le noyau de toute application ActiveX. 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.
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.
Introduction


Prsentation de la technologie ActiveX d'AutoCAD

Page 1 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.
Microsoft VBA est un environnement de programmation orient objet conu pour fournir des fonctions de dveloppement tendues semblables celles de
Visual Basic 6 (VB). La principale diffrence entre VBA et VB est que VBA est excut dans le mme espace de traitement qu'AutoCAD et constitue ainsi un
environnement de programmation trs rapide, capable d'interprter des commandes AutoCAD.
VBA permet galement l'intgration d'autres applications utilisant VBA. Ainsi, en association avec d'autres bibliothques d'objets d'application, AutoCAD peut
constituer un contrleur d'automatisation pour d'autres applications comme Microsoft Word ou Excel.
Les modules de dveloppement autonome de Visual Basic 6, qui sont vendus sparment, compltent AutoCAD VBA en proposant des composants
supplmentaires tels qu'un moteur de base de donnes externe ou un module de gnration de rapports.
La mise en uvre de VBA pour AutoCAD prsente quatre avantages :
VBA et son environnement sont d'un apprentissage et d'une utilisation aiss.
VBA est excut paralllement AutoCAD. Cela signifie que les programmes sont trs rapides.
La cration de botes de dialogue est rapide et efficace. Les dveloppeurs peuvent ainsi crer des applications prototypes et recevoir rapidement des
informations en retour sur leur conception.
Les projets peuvent tre autonomes ou incorpors aux dessins. Ce choix donne aux dveloppeurs une grande marge de manuvre pour la distribution de
leurs applications.
Rubriques de cette section :
Mise en uvre de VBA dans AutoCAD

Introduction


Prsentation de l'interface Visual Basic pour Applications (VBA) d'AutoCAD

Envoyez-nous vos commentaires sur cette page.
VBA transmet les messages AutoCAD via l'interface ActiveX Automation. AutoCAD VBA permet d'excuter l'environnement VBA et AutoCAD simultanment.
Elle offre galement la possibilit d'un contrle d'AutoCAD par programmation, grce l'interface Automatisation ActiveX. Le regroupement d'AutoCAD,
d'ActiveX Automation et de VBA constitue une interface extrmement puissante, non seulement pour le traitement d'objets AutoCAD mais aussi pour l'envoi et
l'extraction de donnes vers et depuis d'autres applications.
Trois lments fondamentaux dfinissent la programmation ActiveX et VBA dans AutoCAD. Le premier est le logiciel AutoCAD proprement dit, qui dispose d'un
riche ensemble d'objets encapsulant les entits, donnes et commandes AutoCAD. AutoCAD ayant t conu en tant qu'application d'architecture ouverte avec
plusieurs niveaux d'interface, vous devez vous familiariser avec les possibilits de programmation de ce logiciel pour pouvoir exploiter VBA au mieux. Si vous
avez dj utilis AutoLISP pour contrler AutoCAD par programmation, vous devez dj avoir une bonne comprhension des fonctions d'AutoCAD. Toutefois,
l'approche VBA qui est fonde sur les objets est assez diffrente de celle d'AutoLISP.
Le second lment est l'interface Automatisation ActiveX d'AutoCAD, qui tablit des messages (communication) avec les objets AutoCAD. La programmation
dans VBA ncessite une comprhension gnrale d'Automatisation ActiveX. Vous trouverez une description de l'interface Automatisation ActiveX d'AutoCAD
dans le manuel ActiveX and VBA Reference. Mme les programmeurs VB expriments trouvent cette interface essentielle pour la comprhension et le
dveloppement d'applications AutoCAD VBA.
Le troisime lment est l'environnement de programmation VBA ; il dispose de son propre ensemble d'objets, de mots cls, de constantes, etc., qui permettent
l'excution, le dbogage, le contrle et le flux du programme. L'aide en ligne tendue Microsoft de VBA est fournie avec l'aide d'AutoCAD VBA ; vous pouvez y
accder partir de l'environnement VBA IDE de l'une des faons suivantes :
En appuyant sur la touche F1 du clavier
En choisissant l'option Aide dans la barre des menus VBA IDE
En cliquant sur l'icne du point d'interrogation dans la barre d'outils de l'environnement VBA IDE.
Rubriques de cette section :
Utilisation de Microsoft .NET Framework
Contraintes et limitations

Introduction


Mise en uvre de VBA dans AutoCAD

Envoyez-nous vos commentaires sur cette page.
Introduction


Utilisation de Microsoft .NET Framework

Page 2 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour accder pleinement aux objets d'automatisation d'AutoCAD partir de Microsoft Visual Studio .NET, crez des rfrences aux fichiers suivants :
La bibliothque de type AutoCAD 2007 acax17enu.tlb, place sous c:\program files\common files\autodesk shared.
La bibliothque de type AutoCAD/ObjectDBX Common 17.0, axdb17enu.tlb, place sous c:\program files\common files\autodesk shared.
Ces rfrences mettront disposition les assemblys avec interoprabilit principaux suivants : Autodesk.AutoCAD.Interop.dll (pour les types spcifiques
AutoCAD) et Autodesk.AutoCAD.Interop.Common.dll (pour les types partags par les applications htes ObjectDBXTM). Les assemblys avec interoprabilit
sont placs dans le cache d'assembly global ; ils tablissent la correspondance des objets d'automatisation avec les quivalents .NET.
Aprs avoir rfrenc les bibliothques de type, vous pouvez dclarer les variables bases sur AutoCAD dans Microsoft Visual Studio .NET, comme dans les
exemples suivants :
Dim objAcad As Autodesk.AutoCAD.Interop.AcadApplication
Dim objLine As Autodesk.AutoCAD.Interop.Common.AcadLine
Vous pouvez charger une application .NET l'aide de la commande NETLOAD dans AutoCAD.
Pour de plus amples informations sur l'utilisation d'une application .NET avec AutoCAD, visitez la section Developer Center (Centre des dveloppeurs) du site
Web Autodesk.

Envoyez-nous vos commentaires sur cette page.
Si vous installez, rinstallez ou dsinstallez Microsoft Office ou d'autres applications VBA aprs avoir install AutoCAD, rinstallez AutoCAD et redmarrez
votre ordinateur.

Introduction


Contraintes et limitations

Envoyez-nous vos commentaires sur cette page.
Compare aux autres environnements API d'AutoCAD, l'interface AutoCAD ActiveX/VBA prsente plusieurs avantages :
Vitesse. Excutes dans le mme processus que VBA, les applications ActiveX sont plus rapides que les applications AutoLISP.
Facilit d'utilisation. Le langage de programmation ainsi que l'environnement de dveloppement sont simples utiliser et sont fournis, prts l'emploi, avec
AutoCAD.
Interaction avec Windows. Les applications ActiveX et VBA sont conues pour tre utilises avec d'autres programmes Windows et constituent ainsi un bon
outil d'change d'informations entre diffrentes applications.
Prototypage rapide. L'interface de dveloppement rapide de VBA est parfaite pour la cration de prototypes d'application, ceci mme si l'application en
question doit tre dveloppe dans un autre langage.
Accessibilit aux programmeurs. Les technologies ActiveX et VBA d'AutoCAD permettent aux programmeurs Visual Basic 6 de personnaliser AutoCAD et
de dvelopper des applications ddies.

Introduction


ActiveX et VBA d'AutoCAD utiliss ensemble

Envoyez-nous vos commentaires sur cette page.
Le prsent manuel fournit des informations sur le dveloppement d'applications ActiveX et VBA en vue de leur utilisation avec AutoCAD. Vous trouverez des
informations propres au dveloppement d'applications l'aide de VBA dans les chapitres Dmarrage avec VBA et Dveloppement d'applications avec
VBA.Les programmeurs utilisant ActiveX partir d'un environnement de dveloppement autre que VBA peuvent ignorer ces deux chapitres. N'oubliez pas que
tous les exemples de code donns dans ce manuel sont excuts dans l'environnement VBA.

Introduction


Structure du manuel

Envoyez-nous vos commentaires sur cette page.
Ce guide suppose que vous disposez d'un savoir de niveau professionnel du langage de programmation Visual Basic 6 et que vous ne tenterez pas de
dupliquer ou de remplacer l'abondante documentation propose sur Visual Basic 6. Pour de plus amples informations sur le langage ou l'utilisation de
Introduction


Informations complmentaires

Page 3 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
l'environnement de dveloppement Visual Basic 6, consultez le fichier d'aide Visual Basic pour Applications dvelopp par Microsoft, disponible dans le menu
d'aide de l'environnement de dveloppement interactif (IDE).

Envoyez-nous vos commentaires sur cette page.
Ce guide et le manuel ActiveX and VBA Reference contiennent eux deux plus de 800 exemples de sous-programmes VBA qui montrent comment utiliser des
mthodes, des proprits et des vnements ActiveX.
De nombreuses applications sont galement disponibles dans le rpertoire Sample d'AutoCAD. Ces applications prsentent de nombreuses fonctionnalits qui
vont de l'extraction de donnes de dessin d'AutoCAD dans des feuilles Microsoft Excel jusqu'au trac et l'excution d'analyses de contrainte sur un pylne
lectrique.
Ces exemples vous montrent comment allier la polyvalence de l'environnement de programmation de Visual Basic pour Applications la puissance de
l'interface ActiveX d'AutoCAD afin de crer des applications personnalises.
De plus, il est possible de copier le code d'exemple du Guide de programmation ActiveX et VBA et du manuel ActiveX and VBA Reference depuis les fichiers
d'aide, de le coller directement dans l'environnement AutoCAD VBA, puis de l'excuter la seule condition suivante : le dessin courant actif dans AutoCAD doit
tre un dessin vide ouvert dans l'espace objet.
1. Copiez l'exemple du fichier d'aide dans un module de code VBA vide.
2. Vrifiez qu'un dessin vierge est ouvert dans l'espace objet d'AutoCAD.
3. Ouvrez la bote de dialogue Macros en entrant la commande EXECVBA.
4. Choisissez une macro et cliquez sur Excuter.
Vous trouverez des informations supplmentaires sur l'excution de macros et la bote de dialogue Macros la section Excution d'une macro.

Introduction


Exemple de code

Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser les fonctionnalits d'AutoCAD avec les objets et les mthodes ajouts l'interface Automatisation ActiveX. Cette section inclut les
modifications applicables aux projets d'automatisation crs avec Visual Basic pour Applications (VBA), Visual Basic 6 (VB) et d'autres environnements
compatibles avec l'automatisation.
Pour plus d'informations sur l'utilisation des fonctions dans AutoCAD, reportez-vous la section correspondante.
Rubriques de cette section :
Nouveaux objets
Elments modifis
Procdure de migration des projets

Introduction


Migration de projets d'automatisation

Envoyez-nous vos commentaires sur cette page.
Les objets suivants sont nouveaux dans AutoCAD 2007. Pour de plus amples informations sur ces objets, reportez-vous au manuel ActiveX and VBA Reference
et l'Explorateur d'objets dans l'environnement VBA IDE.
SortentsTable. Contient et manipule des informations d'ordre de dessin.
Table. Ajoute et modifie des tableaux dans un dessin.
TableStyle. Ajoute et modifie du formatage de tableaux comme la visibilit de grille, l'paisseur de ligne et la couleur.
Par ailleurs, AutoCAD 2007 contient des objets pour l'automatisation du Gestionnaire du jeu de feuilles. Pour de plus amples informations sur ces objets,
reportez-vous au manuel Sheet Set Objects Reference.

Introduction


Nouveaux objets

Envoyez-nous vos commentaires sur cette page.
Page 4 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cette section dcrit les lments existants qui ont chang.

Introduction


Elments modifis

Elments modifis
Elment AutoCAD
2004
Elment AutoCAD
2007
Description du changement
BeginClose,
vnement
Evnement
BeginDocClose
Vous pouvez utiliser l'vnement BeginDocClose pour empcher la fermeture d'un dessin.
Layer, objet Layer, objet Ajout de la proprit Description et de la proprit Used
Layers, collection Layers, collection Ajout de la mthode GenerateUsageData
Collection
ModelSpace
Collection
PaperSpace
Block, objet
Collection
ModelSpace
Collection
PaperSpace
Block, objet
Ajout de la mthode AddTable toutes les collections et l'objet ; ajout de la proprit Path dans l'objet Block.
Objet MText, objet
Text
Objet MText, objet
Text
Ajout de la proprit BackgroundFill l'objet MText ; ajout de la mthode FieldCode l'objet MText et l'objet Text.
Plot, objet Plot, objet La proprit BatchPlotProgress et la proprit StartBatchMode sont obsoltes. Il est recommand d'utiliser les applications
Microsoft .NET pour le traage en diffr. La mthode DisplayPlotPreview ne prend plus en charge l'aperu partiel.
Objet
PreferencesFiles
Objet
PreferencesFiles
Ajout de la proprit PlotLogFilePath, de la proprit PageSetupOverridesTemplateFile et de la proprit
QNewTemplateFile.
Objet
PreferencesOutput
Objet
PreferencesOutput
Ajout de la proprit AutomaticPlotLog, de la proprit DefaultPlotToFilePath et de la proprit ContinuousPlotLog.
Viewport, objet Viewport, objet Ajout de la proprit ModelView, de la proprit SheetView, de la proprit LabelBlockId, de la proprit HasSheetView et
de la mthode SyncModelView.
Objet View Objet View Ajout de la proprit CategoryName, de la proprit LayoutId, de la proprit LayerState et de la proprit
HasVpAssociation.
Envoyez-nous vos commentaires sur cette page.
En rgle gnrale, un projet d'automatisation AutoCAD cr dans l'environnement VBA IDE ou avec Visual Basic 6 fonctionne avec AutoCAD 2007.
Les projets d'automatisation AutoCAD 2007 utilisent la mme bibliothque de type (acax17enu.tlb) que les projets d'automatisation AutoCAD. La bibliothque
de type est place sous C:\Program Files\Common Files\Autodesk Shared.
Les projets d'automatisation AutoCAD 2007 utilisent galement le mme ProgID dpendant d'une version pour les mthodes CreateObject, GetObject et
GetInterfaceObject. Par exemple, si vous utilisez la fonction CreateObject dans un projet d'automatisation AutoCAD, vous utilisez CreateObject
("AutoCAD.Application.17"). Si un projet d'automatisation utilise des ProgID indpendants d'une version, changez le projet pour utiliser des ProgID dpendants
d'une version.

Introduction


Procdure de migration des projets

Envoyez-nous vos commentaires sur cette page.
Ce chapitre prsente les projets AutoCAD Visual Basic pour Applications (VBA) et l'environnement VBA IDE (environnement de dveloppement interactif). Bien
que la plupart des environnements VBA se comportent de la mme faon, l'environnement VBA IDE pour AutoCAD prsente des caractristiques uniques.
Certaines commandes AutoCAD peuvent par ailleurs tre utilises pour charger et excuter des projets, ou ouvrir l'environnement VBA IDE. Ce chapitre dfinit
l'utilisation de projets et de commandes VBA, et de l'environnement VBA IDE en gnral.
Rubriques de cette section :
Dfinition des projets VBA intgrs et globaux
Organisation de projets avec le Gestionnaire VBA
Gestion de macros
Modification de projets avec VBA IDE
Exercice prparatoire
Informations complmentaires
Termes du projet AutoCAD VBA
Commandes AutoCAD VBA


Dmarrage avec VBA

Page 5 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.
Un projet AutoCAD

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

, l'automatisation ActiveX ne propose qu'une seule mthode


de cration par objet. Par exemple, dans AutoCAD, il existe quatre manires diffrentes de crer un cercle : (1) en spcifiant le centre et le rayon, (2) l'aide de
deux points dfinissant le diamtre, (3) l'aide de trois points dfinissant la circonfrence ou (4) l'aide de deux tangentes et d'un rayon. Toutefois,
l'automatisation ActiveX n'offre qu'une mthode de cration de cercle, qui consiste utiliser le centre et le rayon.
Remarque Les mthodes VB et VBA de cration d'objets l'aide de CreateObject ou Dim et du mot-cl New peuvent uniquement tre utilises pour crer
l'objet Application AutoCAD. Tous les autres objets AutoCAD doivent tre crs l'aide de la mthode Add ou Add<nom_objet> fournie par l'interface AutoCAD.
Rubriques de cette section :
Dfinition de l'objet incorporant
Cration de lignes
Cration d'objets de type courbe
Cration d'objets Point
Cration de zones pleines
Utilisation des rgions
Cration de hachures

Cration et modification d'entits AutoCAD


Cration d'objets

Envoyez-nous vos commentaires sur cette page.
Les objets graphiques sont crs dans la collection ModelSpace, la collection PaperSpace ou un objet Block
La collection ModelSpace est renvoye par la proprit ModelSpace et la collection PaperSpace par la proprit PaperSpace
Cration et modification d'entits AutoCAD


Dfinition de l'objet incorporant

Page 47 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous pouvez rfrencer ces 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 l'espace objet :
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)
Pour rfrencer les objets via une variable dfinie par l'utilisateur, attribuez le type AcadModelSpace ou AcadPaperSpace cette variable, puis assignez-lui
la proprit approprie en dehors du document actif. L'exemple suivant dfinit deux variables et les rend gales l'espace objet et l'espace papier,
respectivement:
Dim moSpace As AcadModelSpace
Dim paSpace As AcadPaperSpace
Set moSpace = ThisDrawing.ModelSpace
Set paSpace = ThisDrawing.PaperSpace
L'instruction suivante ajoute une ligne l'espace objet en utilisant la variable dfinie par l'utilisateur :
Set lineObj = moSpace.AddLine(startPoint,endPoint)

Envoyez-nous vos commentaires sur cette page.
La ligne est l'lment de base du dessin dans AutoCAD. Vous pouvez crer une grande varit de lignes : lignes uniques, segments de ligne multiples avec ou
sans arcs. En gnral, il suffit de spcifier des points de coordonnes pour tracer des lignes. Le type de ligne utilis par dfaut correspond une ligne continue
(CONTINUOUS) mais divers types de lignes utilisant des points et des tirets sont disponibles.
Pour crer une ligne, utilisez l'une des mthodes suivantes :
AddLine
Cre une ligne passant par deux points.
AddLightweightPolyline
Cre une polyligne fine 2D partir d'une liste de sommets.
AddMLine
Cre une multiligne.
AddPolyline
Cre une polyligne 2D ou 3D.
Les lignes et les multilignes standard sont cres sur le plan XY du systme de coordonnes gnral. Les polylignes et les polylignes fines sont cres dans le
systme de coordonnes de l'objet (SCO). Pour plus d'informations sur la conversion des coordonnes SCO, reportez-vous la section Conversion de
coordonnes.
Cration d'un objet Polyline
L'exemple suivant utilise la mthode AddLightweightPolyline pour crer une polyligne simple deux segments en utilisant les coordonnes 2D (2,4), (4,2) et
(6,4).
Sub Ch4_AddLightWeightPolyline()
Dim plineObj As AcadLWPolyline
Dim points(0 To 5) As Double
' Define the 2D polyline points
points(0) = 2: points(1) = 4
points(2) = 4: points(3) = 2
points(4) = 6: points(5) = 4
' Create a light weight Polyline object in model space
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
ThisDrawing.Application.ZoomAll
End Sub

Cration et modification d'entits AutoCAD


Cration de lignes

Envoyez-nous vos commentaires sur cette page.
AutoCAD permet de crer diffrents types d'objets incurvs, y compris des courbes splines, des cercles, des arcs et des ellipses. Toutes les courbes sont
cres sur le plan XY du SCG courant.
Pour crer une courbe, utilisez l'une des mthodes suivantes :
AddArc
Cre un arc suivant un centre, un rayon et des angles de dpart et de fin.
AddCircle
Cration et modification d'entits AutoCAD


Cration d'objets de type courbe

Page 48 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cre un cercle suivant le centre et le rayon.
AddEllipse
Cre une ellipse suivant un point de centre, un point sur le grand axe et le rapport des rayons.
AddSpline
Cre une courbe NURBS (spline B rationnelle non uniforme) quadratique ou cubique.
Cration d'un objet Spline
L'exemple suivant cre une spline dans l'espace objet l'aide des coordonnes (0, 0, 0), (5, 5, 0) et (10, 0, 0). La courbe spline possde des tangentes de
dpart et de fin (0.5, 0.5, 0.0).
Sub Ch4_CreateSpline()
' This example creates a spline object in model space
' Declare the variables needed
Dim splineObj As AcadSpline
Dim startTan(0 To 2) As Double
Dim endTan(0 To 2) As Double
Dim fitPoints(0 To 8) As Double
' Define the variables
startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0
endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0
fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0
fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0
fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0
' Create the spline
Set splineObj = ThisDrawing.ModelSpace.AddSpline _
(fitPoints, startTan, endTan)
ZoomAll
End Sub
Pour de plus amples informations sur les splines, reportez-vous la documentation relative l'objet Spline et la mthode AddSpline dans le manuel ActiveX
and VBA Reference d'AutoCAD.

Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser ce type d'objet comme points d'ancrage du curseur ou pour dcaler des objets. AutoCAD permet non seulement de dfinir le style du point
mais aussi sa taille (exprime par rapport aux dimensions de l'cran ou en units absolues).
Les variables systme PDMODE et PDSIZE contrlent l'aspect des objets Point. Les valeurs PDMODE 0, 2, 3 et 4 spcifient une figure dessiner l'aide du
point. La valeur 1 ne slectionne rien afficher.

L'ajout de 32, 64 ou 96 la valeur prcdente slectionne une forme dessiner autour du point en plus de la figure dessine au travers de celui-ci :

La variable systme PDSIZE dtermine la taille de la figure reprsentant un point, sauf pour les valeurs 0 et 1 de la variable PDMODE. Si PDSIZE est 0, le
point 5% de la hauteur du graphique est gnr. Une valeur PDSIZE positive spcifie une taille absolue. Une valeur ngative est interprte comme un
pourcentage de la taille de la fentre. La taille de tous les points est recalcule au moment de la rgnration du dessin.
Ainsi, quand vous modifiez la valeur de PDMODE et de PDSIZE, l'apparence des points existants change lors de la rgnration suivante du dessin.
Pour dfinir les variables PDMODE et PDSIZE, utilisez la mthode SetVariable.
Cration d'un objet Point et modification de son aspect
L'exemple de code suivant cre un objet Point dans l'espace objet la coordonne (5, 5, 0). Les variables systme PDMODE et PDSIZE sont ensuite mises
jour.
Sub Ch4_CreatePoint()
Dim pointObj As AcadPoint
Dim location(0 To 2) As Double
' Define the location of the point
location(0) = 5#: location(1) = 5#: location(2) = 0#
' Create the point
Set pointObj = ThisDrawing.ModelSpace.AddPoint(location)
ThisDrawing.SetVariable "PDMODE", 34
ThisDrawing.SetVariable "PDSIZE", 1
ZoomAll
Cration et modification d'entits AutoCAD


Cration d'objets Point

Page 49 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.
Il est possible d'appliquer une couleur de remplissage des zones fermes (en forme de triangle ou de quadrilatre). Pour obtenir des rsultats plus
rapidement, crez ces zones en dsactivant la variable systme FILLMODE, puis activez FILLMODE pour remplir la zone finie.
Lorsque vous dfinissez une zone quadrilatrale remplie, l'ordre dans lequel vous dsignez le troisime et le quatrime points dtermine l'aspect final de la
zone. Comparez les deux illustrations suivantes :

Les deux premiers points dfinissent un ct du polygone. Le troisime point est dfini diagonalement par rapport au second. Si le quatrime point est dfini
comme tant gal au troisime point, un triangle rempli est cr.
Pour crer une zone pleine, utilisez la mthode AddSolid
Pour de plus amples informations sur le remplissage de solides, reportez-vous la section Cration de zones pleines du Manuel d'utilisation.
Cration d'un objet plein
L'exemple de code suivant cre une zone remplie ayant la forme d'un quadrilatre dans l'espace objet l'aide des coordonnes (0, 0, 0), (5, 0, 0), (5, 8, 0) et (0,
8, 0).
Sub Ch4_CreateSolid()
Dim solidObj As AcadSolid
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
Dim point3(0 To 2) As Double
Dim point4(0 To 2) As Double
' Define the solid
point1(0) = 0#: point1(1) = 0#: point1(2) = 0#
point2(0) = 5#: point2(1) = 0#: point2(2) = 0#
point3(0) = 5#: point3(1) = 8#: point3(2) = 0#
point4(0) = 0#: point4(1) = 8#: point4(2) = 0#
' Create the solid object in model space
Set solidObj = ThisDrawing.ModelSpace.AddSolid _
(point1, point2, point3, point4)
ZoomAll
End Sub

Cration et modification d'entits AutoCAD


Cration de zones pleines

Envoyez-nous vos commentaires sur cette page.
Les rgions sont des zones dlimites par des contours en deux dimensions, dfinis partir d'objets ferms appels boucles. Une boucle est une courbe ou
une squence de courbes relies qui dfinit une aire plane dont le contour ne comporte pas d'auto-intersection. Les boucles peuvent tre des combinaisons de
lignes, de polylignes fines, de cercles, d'arcs, d'ellipses, d'arcs elliptiques, de splines, de faces 3D, de traces et de solides. Les objets composant une boucle
doivent tre ferms ou former une zone dlimite avec d'autres objets dont ils partagent les extrmits. Ils doivent galement tre coplanaires (sur un mme
plan). Les boucles constituant une rgion doivent tre dfinies sous forme de rseau d'objets.
Pour de plus amples informations sur l'utilisation de rgions, reportez-vous la section Cration et combinaison d'aires (rgions) du Manuel d'utilisation.
Rubriques de cette section :
Cration de rgions
Cration de rgions composes
Union de rgions
Recherche de l'intersection de deux rgions

Cration et modification d'entits AutoCAD


Utilisation des rgions

Envoyez-nous vos commentaires sur cette page.
Page 50 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour crer une rgion, utilisez la mthode AddRegion Cette mthode cre une rgion partir de chaque boucle ferme, forme par le rseau d'entres des
courbes. AutoCAD convertit les polylignes 2D fermes et 3D planaires afin de sparer les rgions puis convertit les polylignes, lignes et courbes qui forment les
boucles planaires fermes. Si plus de deux courbes partagent une extrmit, la rgion rsultante peut tre arbitraire. Pour cette raison, plusieurs rgions
peuvent en fait tre cres lors de l'utilisation de la mthode AddRegion. Utilisez un variant pour contenir le rseau de rgions cr.
Pour calculer le nombre total d'objets Region crs, utilisez les fonctions UBound et LBound de VBA, comme dans l'exemple suivant :
UBound(objRegions) - LBound(objRegions) + 1
o objRegions est un variant contenant la variable renvoye par la mthode AddRegion. Cette instruction permet de calculer le nombre total de rgions
cres.
Cration d'une rgion simple
L'exemple de code suivant cre une rgion partir d'un cercle.
Sub Ch4_CreateRegion()
' Define an array to hold the
' boundaries of the region.
Dim curves(0 To 0) As AcadCircle
' Create a circle to become a
' boundary for the region.
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 2
center(1) = 2
center(2) = 0
radius = 5#
Set curves(0) = ThisDrawing.ModelSpace.AddCircle _
(center, radius)
' Create the region
Dim regionObj As Variant
regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
ZoomAll
End Sub

Cration et modification d'entits AutoCAD


Cration de rgions

Envoyez-nous vos commentaires sur cette page.
Vous pouvez crer des rgions composes en soustrayant, combinant ou recherchant l'intersection de rgions ou solides 3D. Vous pouvez ensuite appliquer
une extrusion ou une rvolution aux rgions composes afin de crer des solides complexes. Pour crer une rgion compose, utilisez la mthode Boolean
Lorsque vous soustrayez une rgion une autre, vous appelez la mthode Boolean partir de la premire rgion. Il s'agit de la rgion depuis laquelle effectuer
la soustraction. Par exemple, pour calculer la taille de moquette requise pour un plancher, appelez la mthode Boolean partir du contour externe de l'espace
au sol et utilisez les zones sans moquette, tels que les colonnes et les comptoirs, en tant qu'objet dans la liste des paramtres boolens.
Cration d'une rgion compose
Sub Ch4_CreateCompositeRegions()
' Create two circles, one representing a room,
' the other a pillar in the center of the room
Dim RoomObjects(0 To 1) As AcadCircle
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 4
center(1) = 4
center(2) = 0
radius = 2#
Set RoomObjects(0) = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
radius = 1#
Set RoomObjects(1) = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Create a region from the two circles
Dim regions As Variant
regions = ThisDrawing.ModelSpace.AddRegion(RoomObjects)
' Copy the regions into the region variables for ease of use
Dim RoundRoomObj As AcadRegion
Dim PillarObj As AcadRegion
If regions(0).Area > regions(1).Area Then
' The first region is the room
Set RoundRoomObj = regions(0)
Set PillarObj = regions(1)
Else
Cration et modification d'entits AutoCAD


Cration de rgions composes

Page 51 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
' The first region is the pillar
Set PillarObj = regions(0)
Set RoundRoomObj = regions(1)
End If
' Subtract the pillar space from the floor space to
' get a region that represents the total carpet area.
RoundRoomObj.Boolean acSubtraction, PillarObj
' Use the Area property to determine the total carpet area
MsgBox "The carpet area is: " & RoundRoomObj.Area
End Sub
Recherchez l'aire de la rgion rsultante l'aide de la proprit Area.

Envoyez-nous vos commentaires sur cette page.
Pour unir des rgions, appelez la mthode Boolean et entrez la constante acUnion pour l'opration au lieu de acSubtraction. Vous pouvez combiner les
rgions comme vous l'entendez afin de les unir.

Cration et modification d'entits AutoCAD


Union de rgions

Envoyez-nous vos commentaires sur cette page.
Pour rechercher l'intersection de deux rgions, utilisez la constante acIntersection. Vous pouvez combiner les rgions comme vous l'entendez afin de crer
une intersection entre elles.

Cration et modification d'entits AutoCAD


Recherche de l'intersection de deux rgions

Envoyez-nous vos commentaires sur cette page.
Les hachures permettent la mise en vidence de certaines parties du dessin.
Lors de la cration d'une hachure, vous ne spcifiez pas initialement la zone remplir. Vous devez d'abord crer l'objet Hatch. Une fois cette opration
effectue, vous pouvez spcifier la boucle externe, qui est le contour externe de la hachure. Vous pouvez ensuite spcifier des boucles internes qui peuvent
exister dans la hachure.
Pour de plus amples informations sur l'utilisation de hachures, reportez-vous la section Prsentation des motifs de hachures et des remplissages du Manuel
d'utilisation.
Rubriques de cette section :
Cration de l'objet Hatch
Association d'une hachure
Assignation du type et du nom d'un motif de hachure
Dfinition des contours de hachure

Cration et modification d'entits AutoCAD


Cration de hachures

Envoyez-nous vos commentaires sur cette page.
Lors de la cration de l'objet Hatch, vous devez spcifier le type de motif de hachure, le nom du motif de hachure et l'associativit. Une fois l'objet Hatch cr,
vous ne pouvez plus modifier l'associativit de la hachure.
Pour crer un objet Hatch, utilisez la mthode AddHatch
Cration et modification d'entits AutoCAD


Cration de l'objet Hatch

Page 52 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 crer des hachures associatives ou non associatives. Les hachures associatives sont lies leurs contours et mises jour lorsque les contours
sont modifis. Les hachures non associatives sont indpendantes de leurs contours.
L'associativit peut uniquement tre dfinie lors de la cration d'une hachure. Une fois une hachure cre, vous pouvez la dissocier mais vous ne pouvez pas
l'associer de nouveau.
Pour rendre une hachure associative, attribuez la valeur TRUE au paramtre Associativit de la mthode AddHatch. Pour rendre une hachure non
associative, attribuez la valeur FALSE au paramtre Associativit de la mthode AddHatch.

Cration et modification d'entits AutoCAD


Association d'une hachure

Envoyez-nous vos commentaires sur cette page.
AutoCAD comporte un remplissage plein et plus de cinquante motifs de hachure de norme industrielle. Les motifs de hachure servent distinguer diffrentes
parties ou caractristiques d'un dessin. Ils permettent, par exemple, de diffrencier les parties d'un objet en trois dimensions ou de reprsenter les matires
utilises pour crer un objet.
Vous pouvez utiliser les motifs de hachures fournis avec AutoCAD ou ceux d'une bibliothque externe. Pour obtenir un tableau des motifs de hachures fournis
avec AutoCAD, reportez-vous au manuel Prsentation des commandes d'AutoCAD.
Pour spcifier un motif unique, vous devez entrer un type et un nom de motif lors de la cration de l'objet Hatch. Le type de motif spcifie l'emplacement du nom
du motif. Lors de la saisie du type de motif, utilisez l'une des constantes suivantes :
acHatchPatternTypePredefined
Slectionne le nom du motif parmi ceux dfinis dans le fichier acad.pat.
acHatchPatternTypeUserDefined
Dfinit un motif de lignes en utilisant le type de ligne courant.
acHatchPatternTypeCustomDefined
Slectionne le nom du motif partir d'un fichier PAT autre que le fichier acad.pat.
Lors de la saisie du nom de motif, utilisez un nom de fichier autoris pour le fichier spcifi par le type de motif.

Cration et modification d'entits AutoCAD


Assignation du type et du nom d'un motif de hachure

Envoyez-nous vos commentaires sur cette page.
Une fois l'objet Hatch cr, vous pouvez ajouter les contours de hachure. Il peut s'agir d'une combinaison de lignes, d'arcs, de cercles, de polylignes 2D,
d'ellipses, de splines et de rgions.
Le premier contour hachur doit tre le contour externe qui dfinit les limites externes remplir par la hachure. Pour ajouter le contour externe, utilisez la
mthode AppendOuterLoop
Une fois le contour externe dfini, vous pouvez ajouter des contours internes. Ajoutez les contours internes avec la mthode AppendInnerLoop
Les contours internes dfinissent les lots au sein de la hachure. La gestion de ces lots par l'objet Hatch est fonction de la dfinition de la proprit HatchStyle
La proprit HatchStyle peut tre dfinie sur l'une des conditions suivantes :
Cration et modification d'entits AutoCAD


Dfinition des contours de hachure

Dfinitions des styles de hachure
HatchStyle Condition Description

Normal Spcifie un style standard ou normal. Cette option permet de raliser des hachures internes partir du contour le plus loign. Si AutoCAD
rencontre un contour interne, le hachurage est dsactiv jusqu'au prochain contour. Il s'agit de la valeur par dfaut de la proprit HatchStyle.

Extrieur Remplit uniquement les zones les plus loignes. Il s'effectue galement vers l'intrieur partir du contour, mais il est dfinitivement dsactiv
lorsqu'un contour interne est rencontr.
Ignorer La structure interne est ignore. Cette option hachure tous les objets internes.
Page 53 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Une fois la dfinition de la hachure termine, elle doit tre value avant de pouvoir tre affiche. Pour ce faire, utilisez la mthode Evaluate.
Cration d'un objet Hatch
Dans cet exemple, une hachure associe est cre dans l'espace objet. Une fois la hachure cre, vous pouvez modifier la taille du cercle auquel elle est
associe. La hachure s'adapte alors la taille du cercle slectionn.
Sub Ch4_CreateHatch()
Dim hatchObj As AcadHatch
Dim patternName As String
Dim PatternType As Long
Dim bAssociativity As Boolean
' Define the hatch
patternName = "ANSI31"
PatternType = 0
bAssociativity = True
' Create the associative Hatch object
Set hatchObj = ThisDrawing.ModelSpace.AddHatch _
(PatternType, patternName, bAssociativity)
' Create the outer boundary for the hatch. (a circle)
Dim outerLoop(0 To 0) As AcadEntity
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 3: center(1) = 3: center(2) = 0
radius = 1
Set outerLoop(0) = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Append the outerboundary to the hatch
' object, and display the hatch
hatchObj.AppendOuterLoop (outerLoop)
hatchObj.Evaluate
ThisDrawing.Regen True
End Sub


Envoyez-nous vos commentaires sur cette page.
Un jeu de slection peut tre compos d'un seul objet ou d'un groupement plus complexe : par exemple, le jeu d'objets d'un certain calque.
La dfinition d'un jeu de slection se fait en deux tapes. Tout d'abord, vous devez crer un jeu de slection et l'ajouter la collection SelectionSets Une fois ce
jeu cr, vous pouvez le remplir avec les objets traiter.
Rubriques de cette section :
Cration d'un jeu de slection
Ajout d'objets un jeu de slection
Dfinition de rgles pour les jeux de slection
Affichage des informations concernant les jeux de slection
Suppression d'objets d'un jeu de slection

Cration et modification d'entits AutoCAD


Utilisation des jeux de slection

Envoyez-nous vos commentaires sur cette page.
Pour crer un jeu de slection nomm, utilisez la mthode Add Cette mthode ne requiert qu'un paramtre : le nom du jeu de slection.
Si un jeu de slection porte dj ce nom, AutoCAD affiche un message d'erreur. Nous vous conseillons de supprimer les jeux de slection dont que vous
n'utilisez plus. Utilisez la mthode Delete pour supprimer un jeu de slection :
ThisDrawing.SelectionSets.Item("NewSelectionSet").Delete
Cration d'un jeu de slection vide
Cration et modification d'entits AutoCAD


Cration d'un jeu de slection

Page 54 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Cet exemple cre un nouveau jeu de slection.
Sub Ch4_CreateSelectionSet()
Dim selectionSet1 As AcadSelectionSet
Set selectionSet1 = ThisDrawing.SelectionSets. _
Add("NewSelectionSet")
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez ajouter des objets au jeu de slection actif en utilisant l'une des mthodes suivantes :
AddItems
Ajoute un ou plusieurs objets au jeu de slection spcifi.
Select
Slectionne des objets et les place dans le jeu de slection actif. Vous pouvez slectionner tous les objets, des objets au sein ou croisant une zone
rectangulaire, des objets au sein ou croisant une zone polygone, tous les objets croisant un trajet, l'objet cr le plus rcent, les objets du jeu de slection le
plus rcent, les objets au sein d'une fentre ou les objets au sein d'un polygone de fentre.
SelectAtPoint
Slectionne des objets passant par un point donn et les place dans le jeu de slection actif.
SelectByPolygon
Slectionne des objets au sein d'un trajet et les ajoute au jeu de slection actif.
SelectOnScreen
Invite l'utilisateur slectionner des objets l'cran et les ajoute au jeu de slection actif.
Ajout d'objets un jeu de slection
Dans cet exemple, l'utilisateur doit slectionner des objets, puis les ajouter au jeu de slection.
Sub Ch4_AddToASelectionSet()
' Create a new selection set
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("SS1")
' Prompt the user to select objects
' and add them to the selection set.
' To finish selecting, press ENTREE.
sset.SelectOnScreen
End Sub

Cration et modification d'entits AutoCAD


Ajout d'objets un jeu de slection

Envoyez-nous vos commentaires sur cette page.
Vous pouvez limiter les jeux de slection par proprit ou par type d'objet l'aide de listes de filtre. Vous pouvez, par exemple, copier uniquement les objets
bleus d'un circuit imprim ou uniquement les objets faisant partie du mme calque. Vous pouvez galement combiner les critres de slection dans vos filtres.
Ainsi, vous pouvez demander AutoCAD de n'inclure un objet dans un jeu de slection que s'il s'agit d'un cercle bleu situ sur un calque spcifique. Les listes
de filtre peuvent tre utilises avec les mthodes Select, SelectAtPoint, SelectByPolygon et SelectOnScreen.
Remarque Le filtrage reconnat uniquement les types de ligne explicitement assigns aux objets, et non ceux hrits par le calque.
Rubriques de cette section :
Utilisation de listes de filtre pour dfinir les rgles des jeux de slection
Utilisation de plusieurs critres dans une liste de filtre
Multiplication des conditions dans la liste de filtre
Utilisation de caractres gnriques dans les critres de filtre
Filtrage des donnes tendues

Cration et modification d'entits AutoCAD


Dfinition de rgles pour les jeux de slection

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Utilisation de listes de filtre pour dfinir les rgles des jeux de slection
Page 55 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les listes de filtre se composent de deux arguments. Le premier identifie le type du filtre (un objet, par exemple), le second spcifie la valeur sur laquelle vous
souhaitez effectuer le filtrage (les cercles, par exemple). Le type de filtre est un code de groupe DXF qui spcifie le filtre utiliser. Certains types de filtres
courants sont rpertoris ici.
Pour connatre les codes de groupe DXF, reportez-vous la section relative aux types de valeur de code de groupe dans le manuel Rfrence DXF.
Les arguments de filtres sont dclars en tant que tableaux ("arrays"). Le type du filtre est dclar comme entier, sa valeur comme variant. Tout type de filtre
doit tre combin une valeur. Par exemple :
FilterType(0) = 0 'Indicates filter refers to an object type
FilterData(0) = "Circle" 'Indicates the object type is "Circle"
Utilisation d'un critre de slection unique dans un jeu de slection
Dans l'exemple suivant, l'utilisateur choisit les objets devant tre inclus dans un jeu de slection, mais seuls les cercles sont effectivement ajouts :
Sub Ch4_FilterMtext()
Dim sstext As AcadSelectionSet
Dim FilterType(0) As Integer
Dim FilterData(0) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS2")
FilterType(0) = 0
FilterData(0) = "Circle"
sstext.SelectOnScreen FilterType, FilterData
End Sub


Codes DXF pour filtres ordinaires
Code DXF Type de filtre
0 Type d'objet (chane)
Par exemple, Line, Circle, Arc,, etc.
2 Nom d'objet (chane)
Le nom de table (attribu) d'un objet nomm.
8 Nom de calque (chane)
Par exemple, Calque 0.
60 Visibilit de l'objet (entier)
0 = visible, 1 = invisible.
62 Numro de couleur (entier)
Valeur d'index numrique comprise entre 0 et 256.
Zro indique la proprit DUBLOC. 256 indique DUCALQUE. Une valeur ngative indique que le calque est dsactiv.
67 Indicateur d'espace objet/papier (entier)
0 ou omis = espace objet, 1 = espace papier.
Envoyez-nous vos commentaires sur cette page.
Pour spcifier plusieurs critres de slection, dclarez un tableau compos de suffisamment d'lments pour reprsenter tous les critres, puis affectez chaque
critre un lment.
Slection d'objets rpondant trois critres
Le code suivant spcifie deux critres : l'objet doit tre un cercle et il doit rsider sur le calque 0. Le code dclare FilterType et FilterData comme tableaux de
deux lments et affecte chaque critre un lment :
Sub Ch4_FilterBlueCircleOnLayer0()
Dim sstext As AcadSelectionSet
Dim FilterType(1) As Integer
Dim FilterData(1) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS4")
FilterType(0) = 0
FilterData(0) = "Circle"
FilterType(1) = 8
FilterData(1) = "0"
sstext.SelectOnScreen FilterType, FilterData
End Sub

Cration et modification d'entits AutoCAD


Utilisation de plusieurs critres dans une liste de filtre

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Multiplication des conditions dans la liste de filtre

Page 56 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Lorsque vous spcifiez plusieurs critres de slection, AutoCAD suppose que l'objet slectionn rpond chacun des critres. Il est cependant possible de
qualifier vos critres d'une autre faon. Dans le cas d'lments numriques, vous pouvez spcifier des oprations relationnelles (par exemple, le rayon d'un
cercle devant tre suprieur ou gal 5). En outre, pour tous les lments, vous pouvez utiliser des oprations logiques (par exemple, Text ou Mtext).
Utilisez un code -4 DXF pour placer un oprateur relationnel dans votre filtre. Cet oprateur est spcifi sous forme de chane. Le tableau qui suit indique quels
sont les oprateurs relationnels autoriss.
Les oprateurs logiques dans les listes de filtre sont galement indiqus par un code de groupe 4, et l'oprateur est une chane, mais les oprateurs doivent
tre groups par paires. Le premier oprateur est prcd du symbole d'infriorit (<), le second par le symbole de supriorit (>). Le tableau qui suit dresse la
liste des oprateurs logiques que vous pouvez utiliser pour filtrer les jeux de slection.
Slection d'un cercle dont le rayon est suprieur ou gal 5
L'exemple ci-dessous spcifie que l'objet slectionn doit tre un cercle de rayon au moins gal 5 :
Sub Ch4_FilterRelational()
Dim sstext As AcadSelectionSet
Dim FilterType(2) As Integer
Dim FilterData(2) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS5")
FilterType(0) = 0
FilterData(0) = "Circle"
FilterType(1) = -4
FilterData(1) = ">="
FilterType(2) = 40
FilterData(2) = 5#
sstext.SelectOnScreen FilterType, FilterData
End Sub
Slection d'un objet Text ou Mtext
Dans l'exemple suivant, seuls les objets Text ou Mtext peuvent tre slectionns :
Sub Ch4_FilterOrTest()
Dim sstext As AcadSelectionSet
Dim FilterType(3) As Integer
Dim FilterData(3) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS6")
FilterType(0) = -4
FilterData(0) = "<or"
FilterType(1) = 0
FilterData(1) = "TEXT"
FilterType(2) = 0
FilterData(2) = "MTEXT"
FilterType(3) = -4
FilterData(3) = "or>"
sstext.SelectOnScreen FilterType, FilterData
End Sub

Oprateurs relationnels utilisables dans les listes de filtre des jeux de slection
Oprateur Description
"*" Tout est slectionn (toujours vrai)
"=" Egal
"!=" Diffrent de
"/=" Diffrent de
"<>" Diffrent de
"<" Infrieur
"<=" Infrieur ou gal
">" Suprieur
">=" Suprieur ou gal
"&" ET binaire (groupes d'entiers uniquement)
"&=" Egalit de masque binaire (groupes d'entiers uniquement)
Oprateurs de regroupement logique pour les listes de filtre de jeu de slection
Oprateur
de dbut
Inclut Oprateur
final
"<AND" Un ou plusieurs oprandes "AND>"
"<OR" Un ou plusieurs oprandes "OR>"
"<XOR" Deux oprandes "XOR>"
"<NOT" Un oprande "NOT>"
Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Utilisation de caractres gnriques dans les critres de filtre
Page 57 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dans les listes de filtre, les noms de symboles et les chanes peuvent contenir des caractres gnriques.
Le tableau qui suit recense les caractres gnriques reconnus par AutoCAD, ainsi que leur signification en contexte de chane :
Utilisez l'apostrophe (`) lorsque vous souhaitez indiquer que le caractre suivant n'est pas un caractre gnrique. Par exemple, pour indiquer que seul un bloc
anonyme appel *U2 doit tre inclus dans la slection, utilisez les arguments suivants :
FilterType(0) = 2
FilterData(0) = "`*U2"
Slection d'un objet Mtext contenant un mot prcis
Dans l'exemple suivant, les critres permettent de slectionner tous les objets Mtext contenant le mot Les. En outre, la mthode de slection SelectByPolygon
est utilise.
Sub Ch4_FilterPolygonWildcard()
Dim sstext As AcadSelectionSet
Dim FilterType(1) As Integer
Dim FilterData(1) As Variant
Dim pointsArray(0 To 11) As Double
Dim mode As Integer
mode = acSelectionSetWindowPolygon
pointsArray(0) = -12#: pointsArray(1) = -7#: pointsArray(2) = 0
pointsArray(3) = -12#: pointsArray(4) = 10#: pointsArray(5) = 0
pointsArray(6) = 10#: pointsArray(7) = 10#: pointsArray(8) = 0
pointsArray(9) = 10#: pointsArray(10) = -7#: pointsArray(11) = 0
Set sstext = ThisDrawing.SelectionSets.Add("SS10")
FilterType(0) = 0
FilterData(0) = "MTEXT"
FilterType(1) = 1
FilterData(1) = "*Les*"
sstext.SelectByPolygon mode, pointsArray, FilterType, FilterData
End Sub


Caractres gnriques
Caractre Fonction
# (dise) Reprsente un chiffre.
@ (arobas) Reprsente un caractre alphabtique.
. (point) Reprsente un caractre autre qu'alphanumrique.
* (astrisque) Reprsente tout groupe de caractres, y compris un groupe vide, et peut tre utilis n'importe o dans la squence de recherche : au dbut, au
milieu ou la fin
? (point
d'interrogation)
Reprsente tout caractre unique
~ (tilde) S'il s'agit du premier caractre de la squence, reprsente tout SAUF la squence.
[...] Reprsente tout caractre encadr par les crochets
[~...] Reprsente tout caractre unique non encadr par les crochets.
- (trait d'union) Plac entre crochets, reprsente une plage de valeurs pour un caractre unique.
, (virgule) Spare deux squences
` (guillemet invers) Annule les caractres spciaux (le caractre suivant est lu littralement).
Envoyez-nous vos commentaires sur cette page.
Les applications externes peuvent associer aux objets AutoCAD des donnes telles que des chanes de texte, des valeurs numriques, des points 3D, des
distances et des noms de calques. Ces donnes sont appeles "donnes tendues" (xdata). Il est possible de filtrer les entits contenant ces donnes tendues
pour une application prcise.
Reportez-vous la section Filtrage des donnes tendues pour de plus amples informations sur ce type de donnes.
Slection de cercles contenant des donnes tendues
L'exemple suivant permet de filtrer les cercles contenant des donnes tendues ajoutes par l'application MY_APP :
Sub Ch4_FilterXdata()
Dim sstext As AcadSelectionSet
Dim mode As Integer
Dim pointsArray(0 To 11) As Double
mode = acSelectionSetWindowPolygon
pointsArray(0) = -12#: pointsArray(1) = -7#: pointsArray(2) = 0
pointsArray(3) = -12#: pointsArray(4) = 10#: pointsArray(5) = 0
pointsArray(6) = 10#: pointsArray(7) = 10#: pointsArray(8) = 0
pointsArray(9) = 10#: pointsArray(10) = -7#: pointsArray(11) = 0
Cration et modification d'entits AutoCAD


Filtrage des donnes tendues

Page 58 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dim FilterType(1) As Integer
Dim FilterData(1) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS9")
FilterType(0) = 0
FilterData(0) = "Circle"
FilterType(1) = 1001
FilterData(1) = "MY_APP"
sstext.SelectByPolygon mode, pointsArray, FilterType, FilterData
End Sub

Envoyez-nous vos commentaires sur cette page.
Si vous devez faire rfrence un jeu de slection dont vous connaissez le nom, vous pouvez le faire en utilisant ce nom. L'exemple suivant fait rfrence au
jeu de slection SS10
Sub GetObjInSet()
Dim selset As AcadSelectionSet
Set selset = ThisDrawing.SelectionSets("SS10")
MsgBox ("Selection set " & selset.Name & " contains " & _
selset.Count & " items")
End Sub
Tous les jeux de slection d'un dessin sont des membres de la collection SelectionSets Vous pouvez utiliser l'instruction For Each pour parcourir la collection
SelectionSets d'un dessin afin de recueillir des informations sur tous les jeux de slection.
Affichage du nom des jeux de slection d'un dessin
L'exemple suivant affiche le nom de tous les jeux de slection d'un dessin et indique le type des objets contenus dans chacun :
Sub ListSelectionSets()
Dim selsetCollection As AcadSelectionSets
Dim selset As AcadSelectionSet
Dim ent As Object
Dim i, j As Integer
Set selsetCollection = ThisDrawing.SelectionSets
' Find each selection set in the drawing
i = 0
For Each selset In selsetCollection
MsgBox "Selection set " & CStr(i) & " is: " & selset.Name
' Now find each object in the selection set, and say what it is
j = 0
For Each ent In selset
MsgBox "Item " & CStr(j + 1) & " in " & selset.Name _
& "is: " & ent.EntityName
j = j + 1
Suivant
i = i + 1
Suivant
End Sub

Cration et modification d'entits AutoCAD


Affichage des informations concernant les jeux de slection

Envoyez-nous vos commentaires sur cette page.
Une fois un jeu de slection cr, vous pouvez dcider de supprimer des objets individuels ou l'ensemble des objets de ce jeu. Par exemple, vous pouvez
slectionner un groupe entier d'objets groups par densit et supprimer des objets spcifiques au sein du groupe, en conservant uniquement les objets
souhaits dans le jeu.
Pour supprimer des lments d'un jeu de slection, utilisez l'une des mthodes suivantes :
RemoveItems
La mthode RemoveItems supprime un ou plusieurs lments d'un jeu de slection. Les lments supprims existent toujours mais ne rsident plus dans le
jeu de slection.
Clear
La mthode Clear vide le jeu de slection. Le jeu de slection existe toujours mais ne contient aucun lment. Les lments qui rsidaient prcdemment
dans le jeu de slection existent toujours mais sont dsormais absents de ce dernier.
Erase
La mthode Erase supprime tous les lments dans le jeu de slection. Le jeu de slection existe toujours mais ne contient aucun lment. Les lments qui
rsidaient prcdemment dans le jeu de slection n'existent plus.
Delete
Cration et modification d'entits AutoCAD


Suppression d'objets d'un jeu de slection

Page 59 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La mthode Delete supprime un jeu de slection et tous les lments qu'il contient. Une fois la mthode Delete appele, le jeu de slection et les lments
qu'il contenait prcdemment n'existent plus.

Envoyez-nous vos commentaires sur cette page.
Pour modifier un objet existant, utilisez les mthodes et proprits qui lui sont associes. Si vous modifiez une proprit visible d'un objet graphique, utilisez la
mthode Update pour redessiner l'objet l'cran.
Cette section dcrit la mthode de modification d'objets 2D.
Rubriques de cette section :
Utilisation des objets nomms
Copie d'objets
Dcalage des objets
Copie miroir d'objets
Copie en rseau d'objets
Dplacement d'objets
Rotation des objets
Suppression d'objets
Mise l'chelle des objets
Transformation d'objets
Prolongement ou ajustement d'objet
Dcomposition des objets
Modification des polylignes
Modification des splines
Modification de hachures

Cration et modification d'entits AutoCAD


Modification d'objets

Envoyez-nous vos commentaires sur cette page.
En plus des objets graphiques utiliss par AutoCAD, il existe plusieurs types d'objets non graphiques stocks dans les fichiers dessin. Ces objets possdent
une dsignation descriptive associe tels que des blocs, calques, groupes et styles de cote. Dans la plupart des cas, vous nommez les objets lorsque vous les
crez, puis vous les renommez ultrieurement. Les noms sont stocks dans des tables de symboles. Lorsque vous spcifiez un objet nomm, vous faites
rfrence au nom et aux donnes associes de l'objet dans la table de symboles.
Rubriques de cette section :
Purge des objets nomms
Modification du nom des objets

Cration et modification d'entits AutoCAD


Utilisation des objets nomms

Envoyez-nous vos commentaires sur cette page.
Au cours d'une session de modification, vous pouvez supprimer d'un dessin les objets nomms auxquels aucun autre objet ne fait rfrence. Cette opration
offre l'avantage de rduire la taille du fichier dessin. Il est impossible de supprimer des objets rfrencs par d'autres. Par exemple, un fichier police peut tre li
un style de texte. De mme, un calque est rfrenc par les objets du calque.
Pour purger un dessin, utilisez la mthode PurgeAll
ThisDrawing.PurgeAll
Cration et modification d'entits AutoCAD


Purge des objets nomms

Page 60 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.
Lorsque le dessin devient plus complexe, vous pouvez modifier le nom des objets pour qu'il soit plus explicite ou pour viter tout conflit avec les noms contenus
dans d'autres dessins que vous avez insrs dans le dessin principal.
Vous pouvez renommer tout objet nomm l'exception de ceux nomms par dfaut par AutoCAD (par exemple, le calque 0 ou le type de ligne CONTINUOUS).
Les noms peuvent contenir 255 caractres. Outre les lettres et les chiffres, vous pouvez insrer des espaces (bien qu'AutoCAD supprime les espaces qui
apparaissent directement avant et aprs un nom) et des caractres spciaux non utiliss d'autres fins par Microsoft Windows ou AutoCAD. Vous ne pouvez
pas utiliser les symboles de supriorit et d'infriorit (< >), les barres obliques et les barres obliques inverses (/ \), les guillemets ("), les deux-points (:), les
points-virgule (;), les points d'interrogation (?), les virgules (,), les astrisques (*), les barres verticales (|), les signes d'galit (=) et les apostrophes ('). Il n'est
pas possible non plus d'utiliser des caractres spciaux crs avec les polices Unicode.
Pour renommer un objet, utilisez sa proprit Name
Modification du nom d'un calque
Cet exemple cre un calque intitul NewLayer, puis le renomme MyLayer.
Sub Ch4_RenamingLayer()
' Create a layer
Dim layerObj As AcadLayer
Set layerObj = ThisDrawing.Layers.Add("NewLayer")
' Change the name of the layer
layerObj.Name = "MyLayer"
End Sub

Cration et modification d'entits AutoCAD


Modification du nom des objets

Envoyez-nous vos commentaires sur cette page.
Vous pouvez copier un ou plusieurs objets au sein du dessin courant. La fonction de dcalage permet de crer des objets une distance et dans une direction
donnes des objets slectionns, ou par rapport un point donn. La fonction de copie-miroir permet de reproduire le mme objet en fonction d'un axe de
symtrie. La fonction de copie en rseau permet de disposer les diffrents exemplaires en forme de cercle ou de rectangle.
Pour de plus amples informations sur la copie des objets, reportez-vous la section Copie, dcalage et reproduction en miroir des objets du Manuel
d'utilisation.
Remarque Aucune des mthodes de copie suivantes n'est disponible lors de l'itration simultane dans une collection. Une itration ouvre l'espace de travail
pour une opration en lecture seule, alors que ces mthodes tentent d'effectuer une opration de type criture-lecture. Terminez toute itration d'une collection
avant d'appeler ces mthodes.
Rubriques de cette section :
Copie d'un objet vers le mme emplacement
Copie de plusieurs objets

Cration et modification d'entits AutoCAD


Copie d'objets

Envoyez-nous vos commentaires sur cette page.
Pour copier un seul objet, utilisez la mthode Copy fournie pour cet objet. Cette mthode cre un nouvel objet qui est un duplicata de l'objet source. Le nouvel
objet est plac la mme position que l'original et est renvoy par la mthode.

Cration et modification d'entits AutoCAD


Copie d'un objet vers le mme emplacement

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Copie de plusieurs objets
Page 61 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Pour copier plusieurs objets, faites appel la mthode CopyObjects ou crez un rseau des objets utiliser avec la mthode Copy (Pour copier les objets dans
un jeu de slection, itrez via le jeu de slection et enregistrez les objets dans un rseau.) Itrez via le rseau en copiant chaque objet individuellement et
placez les objets crs dans un deuxime rseau.
Pour copier plusieurs objets dans un autre dessin, utilisez la mthode CopyObjects et dfinissez le paramtre Propritaire sur l'espace objet du dessin.
Copie de deux objets Circle
Dans cet exemple, l'utilisateur cre deux cercles et fait appel la mthode CopyObjets pour en faire une copie.
Sub Ch4_CopyCircleObjects()
Dim DOC1 As AcadDocument
Dim circleObj1 As AcadCircle
Dim circleObj2 As AcadCircle
Dim circleObj1Copy As AcadCircle
Dim circleObj2Copy As AcadCircle
Dim centerPoint(0 To 2) As Double
Dim radius1 As Double
Dim radius2 As Double
Dim radius1Copy As Double
Dim radius2Copy As Double
Dim objCollection(0 To 1) As Object
Dim retObjects As Variant
' Define the Circle object
centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
radius1 = 5#: radius2 = 7#
radius1Copy = 1#: radius2Copy = 2#
' Create a new drawing
Set DOC1 = ThisDrawing.Application.Documents.Add
' Add two circles to the drawing
Set circleObj1 = DOC1.ModelSpace.AddCircle _
(centerPoint, radius1)
Set circleObj2 = DOC1.ModelSpace.AddCircle _
(centerPoint, radius2)
ZoomAll
' Put the objects to be copied into a form
' compatible with CopyObjects
Set objCollection(0) = circleObj1
Set objCollection(1) = circleObj2
' Copy object and get back a collection of
' the new objects (copies)
retObjects = DOC1.CopyObjects(objCollection)
' Get newly created object and apply
' new properties to the copies
Set circleObj1Copy = retObjects(0)
Set circleObj2Copy = retObjects(1)
circleObj1Copy.radius = radius1Copy
circleObj1Copy.Color = acRed
circleObj2Copy.radius = radius2Copy
circleObj2Copy.Color = acRed
ZoomAll
End Sub
Copie d'objets dans un autre dessin
Dans cet exemple, l'utilisateur cre des cercles, puis fait appel la mthode CopyObjects pour les copier dans un nouveau dessin.
Sub Ch4_Copy_to_New_Drawing()
Dim DOC0 As AcadDocument
Dim circleObj1 As AcadCircle, circleObj2 As AcadCircle
Dim centerPoint(0 To 2) As Double
Dim radius1 As Double, radius2 As Double
Dim radius1Copy As Double, radius2Copy As Double
Dim objCollection(0 To 1) As Object
Dim retObjects As Variant
' Define the Circle object
centerPoint(0) = 0: centerPoint(1) = 0: centerPoint(2) = 0
radius1 = 5#: radius2 = 7#
radius1Copy = 1#: radius2Copy = 2#
' Add two circles to the current drawing
Set circleObj1 = ThisDrawing.ModelSpace.AddCircle _
(centerPoint, radius1)
Set circleObj2 = ThisDrawing.ModelSpace.AddCircle _
(centerPoint, radius2)
ThisDrawing.Application.ZoomAll
' Save pointer to the current drawing
Set DOC0 = ThisDrawing.Application.ActiveDocument
' Copy objects
'
' First put the objects to be copied into a form compatible
' with CopyObjects
Set objCollection(0) = circleObj1
Set objCollection(1) = circleObj2
' Create a new drawing and point to its model space
Dim Doc1MSpace As AcadModelSpace
Dim DOC1 As AcadDocument

Page 62 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Set DOC1 = Documents.Add
Set Doc1MSpace = DOC1.ModelSpace
' Copy the objects into the model space of the new drawing. A
' collection of the new (copied) objects is returned.
retObjects = DOC0.CopyObjects(objCollection, Doc1MSpace)
Dim circleObj1Copy As AcadCircle, circleObj2Copy As AcadCircle
' Get the newly created object collection and apply new
' properties to the copies.
Set circleObj1Copy = retObjects(0)
Set circleObj2Copy = retObjects(1)
circleObj1Copy.radius = radius1Copy
circleObj1Copy.Color = acRed
circleObj2Copy.radius = radius2Copy
circleObj2Copy.Color = acRed
ThisDrawing.Application.ZoomAll
MsgBox "Circles copied."
End Sub

Envoyez-nous vos commentaires sur cette page.
Le dcalage d'un objet cre un nouvel objet la distance de dcalage spcifie de l'objet source. Vous pouvez dcaler des arcs, cercles, ellipses, lignes,
polylignes fines, polylignes, splines et droites.
Pour dcaler un objet, utilisez la mthode Offset fournie pour cet objet. La seule entre requise par cette mthode est la distance de dcalage de l'objet. Si cette
distance est ngative, elle est interprte par AutoCAD en tant que dcalage destin rendre une courbe plus petite (ce qui, dans le cas d'un arc, dcale un
rayon gal la distance donne moins le rayon de la courbe de dpart). Si plus petite n'a aucune signification, AutoCAD effectue un dcalage dans la
direction des coordonnes X, Y, Z les plus faibles du SCG. Si la valeur du dcalage n'est pas valide, une erreur est renvoye.

Dans le cas de plusieurs objets, le rsultat de cette opration sera une nouvelle courbe unique (dont le type peut tre diffrent de la courbe source). Par
exemple, le dcalage d'une ellipse rsulte en une spline car le rsultat correspond l'quation d'une ellipse. Dans certains cas, il peut s'avrer ncessaire que
le dcalage rsulte en plusieurs courbes. C'est pourquoi, la mthode renvoie le nouvel objet, ou un rseau d'objets, en tant que variant.
Pour de plus amples informations sur le dcalage des objets, reportez-vous la section Copie, dcalage et reproduction en miroir des objets du Manuel
d'utilisation.
Dcalage d'une polyligne
Dans cet exemple, l'utilisateur cre une polyligne fine qu'il dcale ensuite.
Sub Ch4_OffsetPolyline()
' Create the polyline
Dim plineObj As AcadLWPolyline
Dim points(0 To 11) 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) = 2
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 1
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
plineObj.Closed = True
ZoomAll
' Offset the polyline
Dim offsetObj As Variant
offsetObj = plineObj.Offset(0.25)
ZoomAll
End Sub

Cration et modification d'entits AutoCAD


Dcalage des objets

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Copie miroir d'objets

Page 63 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La copie-miroir cre une copie miroir de l'image d'un objet autour d'un axe (ligne de symtrie). Vous pouvez effectuer une copie-miroir de tous les objets d'un
dessin.
Pour effectuer une copie-miroir d'un objet, utilisez la mthode Mirror fournie pour cet objet. Cette mthode requiert la saisie de deux coordonnes. Les deux
coordonnes spcifies deviennent les extrmits de la ligne de symtrie autour de laquelle l'objet de base est rflchi. En 3D, cette ligne dfinit l'orientation
d'un plan miroir perpendiculaire au plan XY du SCU qui contient la ligne de symtrie.
A la diffrence de la commande Miroir d'AutoCAD, cette mthode place l'image rflchie dans le dessin et conserve l'objet source. (Pour supprimer l'objet
source, utilisez la mthode Erase.

Pour grer les proprits de rflexion des objets Text, utilisez la variable systme MIRRTEXT. La valeur par dfaut de MIRRTEXT est 1 (actif) : les objets texte
sont rpts comme les autres objets. Si la variable MIRRTEXT est dsactive (0), le texte n'est pas rpt. Utilisez les mthodes GetVariable et SetVariable
pour interroger et dfinir le paramtre MIRRTEXT.

Vous pouvez reflter un objet Viewport dans l'espace papier, bien que ceci n'ait aucun effet sur la vue en espace objet ou sur les objets de l'espace objet.
Pour de plus amples informations sur la cration de copies-miroirs d'objets, reportez-vous la section Copie, dcalage et reproduction en miroir des objets du
Manuel d'utilisation.
Copie-miroir d'une polyligne autour d'un axe
Dans cet exemple, l'utilisateur cre une polyligne fine dont il fait une copie-miroir par rapport un axe. La nouvelle polyligne apparat en bleu.
Sub Ch4_MirrorPolyline()
' Create the polyline
Dim plineObj As AcadLWPolyline
Dim points(0 To 11) 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) = 2
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 1
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
plineObj.Closed = True
ZoomAll
' Define the mirror axis
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
point1(0) = 0: point1(1) = 4.25: point1(2) = 0
point2(0) = 4: point2(1) = 4.25: point2(2) = 0
' Mirror the polyline
Dim mirrorObj As AcadLWPolyline
Set mirrorObj = plineObj.Mirror(point1, point2)
Dim col As New AcadAcCmColor
Call col.SetRGB(125, 175, 235)
mirrorObj.TrueColor = col
ZoomAll
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez copier un objet sous forme de rseau polaire ou rectangulaire. Dans le cas d'un rseau polaire, vous devez indiquer le nombre de copies souhait
et l'angle de rfrence. Pour crer un rseau rectangulaire, il suffit de prciser le nombre de ranges et de colonnes voulues et de spcifier la distance qui les
spare les unes des autres.
Pour de plus amples informations sur les rseaux, reportez-vous la section Cration d'un rseau d'objets du Manuel d'utilisation.
Rubriques de cette section :
Cration de rseaux polaires
Cration de rseaux rectangulaires
Cration et modification d'entits AutoCAD


Copie en rseau d'objets

Page 64 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 copier en rseau tous les objets d'un dessin. Pour crer un rseau polaire, utilisez la mthode ArrayPolar fournie pour cet objet. Cette mthode
requiert la saisie du nombre d'objets crer, de l'angle dcrire et du centre du rseau. Le nombre d'objets doit tre un nombre entier positif suprieur 1.
L'angle dcrire doit tre exprim en radians. Une valeur positive indique une rotation trigonomtrique, tandis qu'une valeur ngative indique une rotation
horaire. Une erreur est renvoye pour un angle gal 0. Le centre est un tableau de type Variant qui contient trois coordonnes doubles. Ces coordonnes
doubles reprsentent les coordonnes SCG 3D qui spcifient le centre du rseau polaire.

AutoCAD dtermine la distance du centre du rseau un point de rfrence sur l'objet source. Le point de rfrence utilis dpend du type d'objet. AutoCAD
utilise le centre d'un cercle ou d'un arc, le point d'insertion d'un bloc ou d'une forme, le point de dpart d'un texte et l'extrmit d'une ligne ou d'un trac.
Cette mthode ne prend pas en charge l'option Rotation des objets en rseau de la commande RESEAU d'AutoCAD.
Cration d'un rseau polaire
Cet exemple cre un cercle auquel il applique un rseau polaire. Vous obtenez alors quatre cercles couvrant 180 degrs partir du centre (4, 4, 0).
Sub Ch4_ArrayingACircle()
' 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 = 1
Set circleObj = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
ZoomAll
' Define the polar array
Dim noOfObjects As Integer
Dim angleToFill As Double
Dim basePnt(0 To 2) As Double
noOfObjects = 4
angleToFill = 3.14 ' 180 degrees
basePnt(0) = 4#: basePnt(1) = 4#: basePnt(2) = 0#
' The following example will create 4 copies
' of an object by rotating and copying it about
' the point (3,3,0).
Dim retObj As Variant
retObj = circleObj.ArrayPolar _
(noOfObjects, angleToFill, basePnt)
ZoomAll
End Sub

Cration et modification d'entits AutoCAD


Cration de rseaux polaires

Envoyez-nous vos commentaires sur cette page.
Pour crer un rseau rectangulaire 2D ou 3D, utilisez la mthode ArrayRectangular fournie pour cet objet. Cette mthode requiert la saisie du nombre de lignes,
du nombre de colonnes, de la distance entre les lignes et de la distance entre les colonnes. Lors de la cration d'un rseau 3D, vous devez galement spcifier
le nombre de niveaux ainsi que la distance entre les niveaux.
Pour construire un rseau rectangulaire, il suffit de copier l'objet slectionn le nombre de fois requis. Si vous spcifiez une range, vous devez spcifier
plusieurs colonnes et inversement.
En principe, l'lment source se trouve dans le coin infrieur gauche et le rseau est gnr vers le haut et la droite. Si la distance entre les lignes est ngative,
les lignes sont ajoutes vers le bas. De mme, si la distance entre les colonnes est ngative, les colonnes sont ajoutes gauche.
Cration et modification d'entits AutoCAD


Cration de rseaux rectangulaires

Page 65 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

AutoCAD construit le rseau rectangulaire suivant une ligne de base dfinie par l'angle de rotation appliqu au mode d'accrochage. Cet angle tant de 0 par
dfaut, les lignes et colonnes d'un rseau rectangulaire sont orthogonales aux axes du dessin X et Y. Vous pouvez modifier cet angle et crer un rseau pivot
en dfinissant l'angle de rotation d'accrochage sur une valeur non nulle. Pour ce faire, utilisez la proprit SnapRotationAngle.
Cration d'un rseau rectangulaire
Dans cet exemple, l'utilisateur cre un cercle auquel il applique un rseau rectangulaire en crant 5 ranges et 5 colonnes de cercles.
Sub Ch4_ArrayRectangularExample()
' 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)
ZoomAll
' 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 = 5
numberOfColumns = 5
numberOfLevels = 2
distanceBwtnRows = 1
distanceBwtnColumns = 1
distanceBwtnLevels = 1
' Create the array of objects
Dim retObj As Variant
retObj = circleObj.ArrayRectangular _
(numberOfRows, numberOfColumns, numberOfLevels, _
distanceBwtnRows, distanceBwtnColumns, distanceBwtnLevels)
ZoomAll
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez dplacer des objets le long d'un vecteur sans modifier leur orientation ni leur taille. Vous pouvez galement faire pivoter des objets autour d'un
point de base.
Pour de plus amples informations sur le dplacement d'objets, reportez-vous la section Dplacement d'objets du Manuel d'utilisation.
Rubriques de cette section :
Dplacement d'objets le long d'un vecteur

Cration et modification d'entits AutoCAD


Dplacement d'objets

Envoyez-nous vos commentaires sur cette page.
Vous pouvez dplacer tous les objets d'un dessin et les objets de rfrence d'attribut le long d'un vecteur spcifi.
Pour dplacer un objet, utilisez la mthode Move fournie pour cet objet. Cette mthode requiert la saisie de deux coordonnes. Ces coordonnes dfinissent un
vecteur de dplacement qui indique la distance et la direction du dplacement de l'objet.
Cration et modification d'entits AutoCAD


Dplacement d'objets le long d'un vecteur

Page 66 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

Dplacement d'un cercle sur un vecteur
Dans cet exemple, l'utilisateur cre un cercle qu'il dplace de 2 units le long de l'axe X.
Sub Ch4_MoveCircle()
' 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)
ZoomAll
' Define the points that make up the move vector.
' The move vector will move the circle 2 units
' along the x axis.
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
point1(0) = 0: point1(1) = 0: point1(2) = 0
point2(0) = 2: point2(1) = 0: point2(2) = 0
' Move the circle
circleObj.Move point1, point2
circleObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez faire pivoter tous les objets d'un dessin et les objets de rfrence d'attribut.
Pour faire pivoter un objet, utilisez la mthode Rotate fournie pour cet objet. Cette mthode requiert la saisie d'un point de base et d'un angle de rotation. Le
point de base est un tableau de type Variant avec trois coordonnes doubles. Ces coordonnes doubles reprsentent une coordonne SCG 3D qui spcifie le
point au travers duquel est dfini l'axe de rotation. L'angle de rotation est exprim en radians. Il dtermine la distance de rotation d'un objet autour du point de
base par rapport son emplacement actuel.

Pour de plus amples informations sur la rotation des objets, reportez-vous la section Rotation des objets du Manuel d'utilisation.
Rotation d'une polyligne autour d'un point de base
Dans cet exemple, l'utilisateur cre une polyligne fine ferme qu'il fait pivoter de 45 degrs le long du point de base (4, 4.25, 0).
Sub Ch4_RotatePolyline()
' Create the polyline
Dim plineObj As AcadLWPolyline
Dim points(0 To 11) As Double
points(0) = 1: points(1) = 2
points(2) = 1: points(3) = 3
points(4) = 2: points(5) = 3
points(6) = 3: points(7) = 3
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 2
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
plineObj.Closed = True
ZoomAll
' Define the rotation of 45 degrees about a
' base point of (4, 4.25, 0)
Dim basePoint(0 To 2) As Double
Dim rotationAngle As Double
basePoint(0) = 4: basePoint(1) = 4.25: basePoint(2) = 0
Cration et modification d'entits AutoCAD


Rotation des objets

Page 67 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
rotationAngle = 0.7853981 ' 45 degrees
' Rotate the polyline
plineObj.Rotate basePoint, rotationAngle
plineObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez supprimer des objets individuels l'aide de la mthode Delete
Remarque Les objets Collection dans l'automatisation ActiveX possdent une mthode Delete en raison de la manire dont ils ont t dfinis dans la
bibliothque de type. Toutefois, les objets Collection, tels que les collections ModelSpace, Layers et Dictionaries, ne doivent pas tre supprims. La tentative de
suppression d'une collection entrane une erreur.
Cration et suppression d'une polyligne
Dans cet exemple, l'utilisateur cre une polyligne fine, puis la supprime.
Sub Ch4_DeletePolyline()
' Create the polyline
Dim lwpolyObj As AcadLWPolyline
Dim vertices(0 To 5) As Double
vertices(0) = 2: vertices(1) = 4
vertices(2) = 4: vertices(3) = 2
vertices(4) = 6: vertices(5) = 4
Set lwpolyObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(vertices)
ZoomAll
' Erase the polyline
lwpolyObj.Delete
ThisDrawing.Regen acActiveViewport
End Sub

Cration et modification d'entits AutoCAD


Suppression d'objets

Envoyez-nous vos commentaires sur cette page.
Vous pouvez mettre l'chelle un objet en spcifiant un point de base et une longueur utilise en tant que facteur d'chelle bas sur les units de dessin
actuelles. Vous pouvez mettre l'chelle tous les objets d'un dessin ainsi que les objets de rfrence d'attribut.
Pour modifier l'chelle d'un objet, utilisez la mthode ScaleEntity fournie pour cet objet. Cette mthode modifie les dimensions de l'objet de faon homothtique
sur les axes X, Y et Z. Elle requiert la saisie du point de base pour l'chelle et un facteur d'chelle. Le point de base est un tableau de type Variant avec trois
coordonnes doubles. Ces coordonnes doubles reprsentent une coordonne SCG 3D qui spcifie le point partir duquel l'chelle commence. Le facteur
d'chelle est le facteur de mise l'chelle de l'objet. Les cotes de l'objet sont multiplies par le facteur d'chelle. Un facteur d'chelle suprieur 1 agrandit
l'objet. Un facteur d'chelle compris entre 0 et 1 le rduit.

Pour de plus amples informations sur la mise l'chelle, reportez-vous la section Modification de la taille ou de la forme des objets du Manuel d'utilisation.
Mise l'chelle d'une polyligne
Dans cet exemple, l'utilisateur cre une polyligne fine ferme qu'il met l'chelle selon un facteur de 0.5.
Sub Ch4_ScalePolyline()
' Create the polyline
Dim plineObj As AcadLWPolyline
Dim points(0 To 11) As Double
points(0) = 1: points(1) = 2
points(2) = 1: points(3) = 3
points(4) = 2: points(5) = 3
points(6) = 3: points(7) = 3
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 2
Cration et modification d'entits AutoCAD


Mise l'chelle des objets

Page 68 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
plineObj.Closed = True
ZoomAll
' Define the scale
Dim basePoint(0 To 2) As Double
Dim scalefactor As Double
basePoint(0) = 4: basePoint(1) = 4.25: basePoint(2) = 0
scalefactor = 0.5
' Scale the polyline
plineObj.ScaleEntity basePoint, scalefactor
plineObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez dplacer, mettre l'chelle et faire pivoter un objet avec une matrice de transformation 4 x 4 l'aide de la mthode TransformBy.
Le tableau suivant dcrit la configuration d'une matrice de transformation, o R = Rotation et T = Translation :
Pour transformer un objet, initialisez d'abord la matrice de transformation. L'exemple suivant prsente une matrice de transformation, attribue la variable
tMatrix, qui fait pivoter une entit de 90 degrs par rapport au point (0, 0, 0):
tMatrix(0,0) = 0.0
tMatrix(0,1) = -1.0
tMatrix(0,2) = 0.0
tMatrix(0,3) = 0.0
tMatrix(1,0) = 1.0
tMatrix(1,1) = 0.0
tMatrix(1,2) = 0.0
tMatrix(1,3) = 0.0
tMatrix(2,0) = 0.0
tMatrix(2,1) = 0.0
tMatrix(2,2) = 1.0
tMatrix(2,3) = 0.0
tMatrix(3,0) = 0.0
tMatrix(3,1) = 0.0
tMatrix(3,2) = 0.0
tMatrix(3,3) = 1.0
Une fois la matrice de transformation cre, appliquez-la l'objet l'aide de la mthode TransformBy. La ligne de code suivante prsente l'application d'une
matrice (tMatrix) un objet (anObj):
anObj.TransformBy tMatrix
Rotation d'une ligne avec matrice de transformation
Dans cet exemple, l'utilisateur cre une ligne qu'il fait pivoter de 90 degrs en utilisant une matrice de transformation.
Sub Ch4_TransformBy()
' Create a line
Dim lineObj As AcadLine
Dim startPt(0 To 2) As Double
Dim endPt(0 To 2) As Double
startPt(0) = 2
startPt(1) = 1
startPt(2) = 0
endPt(0) = 5
endPt(1) = 1
endPt(2) = 0
Set lineObj = ThisDrawing.ModelSpace. _
AddLine(startPt, endPt)
ZoomAll
' Initialize the transMat variable with a
' transformation matrix that will rotate
' an object by 90 degrees about the point(0,0,0)
Dim transMat(0 To 3, 0 To 3) As Double
transMat(0, 0) = 0#: transMat(0, 1) = -1#
transMat(0, 2) = 0#: transMat(0, 3) = 0#
transMat(1, 0) = 1#: transMat(1, 1) = 0#
transMat(1, 2) = 0#: transMat(1, 3) = 0#
Cration et modification d'entits AutoCAD


Transformation d'objets

Configuration de matrice de transformation
R00 R01 R02 T0
R10 R11 R12 T1
R20 R21 R22 T2
0 0 0 1
Page 69 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
transMat(2, 0) = 0#: transMat(2, 1) = 0#
transMat(2, 2) = 1#: transMat(2, 3) = 0#
transMat(3, 0) = 0#: transMat(3, 1) = 0#
transMat(3, 2) = 0#: transMat(3, 3) = 1#
' Transform the line using the defined transformation matrix
lineObj.TransformBy transMat
lineObj.Update
End Sub
Voici d'autres exemples de matrices de transformation :

Matrice de rotation : 90 degrs autour du point (0, 0, 0)
0.0 -1.0 0.0 0.0
1.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
Matrice de rotation : 45 degrs autour du point (5, 5, 0)
0.707107 -0.707107 0.0 5.0
0.707107 0.707107 0.0 -2.071068
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
Matrice de transposition : dplacer une entit par (10, 10, 0)
1.0 0.0 0.0 10.0
0.0 1.0 0.0 10.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
Matrice de mise l'chelle : chelle par 10,10 au point (0, 0, 0)
10.0 0.0 0.0 0.0
0.0 10.0 0.0 0.0
0.0 0.0 10.0 0.0
0.0 0.0 0.0 1.0
Matrice de mise l'chelle : chelle par 10,10 au point (2, 2, 0)
10.0 0.0 0.0 -18.0
0.0 10.0 0.0 -18.0
0.0 0.0 10.0 0.0
0.0 0.0 0.0 1.0
Envoyez-nous vos commentaires sur cette page.
Vous pouvez modifier la longueur des objets (lignes ouvertes, arcs de cercle, polylignes ouvertes, arcs elliptiques et splines ouvertes) et l'angle dcrit par les
arcs. Vous obtenez ainsi des rsultats similaires l'application des commandes permettant de prolonger ou d'ajuster les objets.
Vous pouvez prolonger ou ajuster un objet en modifiant ses proprits. Par exemple, pour allonger une ligne, modifiez les coordonnes de la proprit
StartPoint ou EndPoint. Pour modifier l'angle d'un arc, modifiez la proprit StartAngle ou EndAngle de l'arc. Une fois que vous avez modifi une ou plusieurs
proprits d'un objet, utilisez la mthode Update pour visualiser vos modifications dans le dessin.
Pour de plus amples informations sur le prolongement et l'ajustement d'objets, reportez-vous la section Modification de la taille ou de la forme des objets du
Manuel d'utilisation.
Allongement d'une ligne
Dans cet exemple, l'utilisateur cre une ligne dont il modifie l'extrmit pour obtenir une ligne plus longue.
Sub Ch4_LengthenLine()
' Define and create the line
Dim lineObj As AcadLine
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
startPoint(0) = 0
startPoint(1) = 0
startPoint(2) = 0
endPoint(0) = 1
endPoint(1) = 1
endPoint(2) = 1
Set lineObj = ThisDrawing.ModelSpace. _
AddLine(startPoint, endPoint)
lineObj.Update
' Lengthen the line by changing the
Cration et modification d'entits AutoCAD


Prolongement ou ajustement d'objet

Page 70 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
' endpoint to 4, 4, 4
endPoint(0) = 4
endPoint(1) = 4
endPoint(2) = 4
lineObj.endPoint = endPoint
lineObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Cette fonction permet de sparer les diffrents lments qui constituent les objets sans que leur dcomposition soit visible l'cran. Vous pouvez, par exemple,
dcomposer des lignes simples et des arcs partir de polygones 3D, de polylignes, de maillages et de rgions. La dcomposition remplace une rfrence de
bloc par des copies des objets simples qui composent ce bloc.
Pour de plus amples informations sur la dcomposition des objets, reportez-vous la section Dissociation des objets composs (Dcomposer) du Manuel
d'utilisation.
Dcomposition d'une polyligne
Dans cet exemple, l'utilisateur cre une polyligne fine. Ensuite, il la dcompose en objets distincts. L'exemple est alors rpt pour les objets rsultants, et une
bote de message s'affiche avec le nom de chaque objet et son index dans la liste des objets dcomposs.
Sub Ch4_ExplodePolyline()
Dim plineObj As AcadLWPolyline
Dim points(0 To 11) As Double
' Define the 2D polyline points
points(0) = 1: points(1) = 1
points(2) = 1: points(3) = 2
points(4) = 2: points(5) = 2
points(6) = 3: points(7) = 2
points(8) = 4: points(9) = 4
points(10) = 4: points(11) = 1
' Create a light weight Polyline object
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
' Set the bulge on one segment to vary the
' type of objects in the polyline
plineObj.SetBulge 3, -0.5
plineObj.Update
' Explode the polyline
Dim explodedObjects As Variant
explodedObjects = plineObj.Explode
' Loop through the exploded objects
' and display a message box with
' the type of each object
Dim I As Integer
For I = 0 To UBound(explodedObjects)
explodedObjects(I).Update
MsgBox "Exploded Object " & I & ": " & _
explodedObjects(I).ObjectName
explodedObjects(I).Update
Suivant
End Sub

Cration et modification d'entits AutoCAD


Dcomposition des objets

Envoyez-nous vos commentaires sur cette page.
Les polylignes 2D et 3D, les rectangles, les polygones et les maillages 3D font partie de la famille des polylignes et peuvent donc tre modifis de la mme
manire.
AutoCAD reconnat les polylignes et les polylignes de type spline. Une polyligne de type spline utilise une courbe similaire une courbe B-spline. Il existe deux
types de polylignes de type spline : quadratiques et cubiques. Ces deux polylignes sont gres par la variable systme SPLINETYPE. Une polyligne utilise des
courbes standard pour le lissage et adopte des directions de tangentes quelconques dfinies en fonction d'un sommet donn.
Pour modifier une polyligne, utilisez les proprits et mthodes de l'objet LightweightPolyline ou Polyline Utilisez les proprits suivantes pour ouvrir ou fermer
une polyligne, modifier les coordonnes d'un sommet de polyligne ou ajouter un sommet:
Closed, proprit
Ouvre ou ferme la polyligne.
Coordinates, proprit
Cration et modification d'entits AutoCAD


Modification des polylignes

Page 71 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Spcifie les coordonnes de chaque sommet dans la polyligne.
Mthode AddVertex
Ajoute un sommet une polyligne fine.
Utilisez les mthodes suivantes pour mettre jour la courbure ou la largeur d'une polyligne :
SetBulge
Dfinit la courbure d'une polyligne, suivant l'index de segment.
SetWidth
Dfinit le dbut et la fin d'une polyligne, suivant l'index de segment.
Pour de plus amples informations sur la modification des polylignes, reportez-vous la section Modification ou jonction des polylignes du Manuel d'utilisation.
Modification d'une polyligne
Dans cet exemple, l'utilisateur cre une polyligne fine. Il ajoute ensuite une courbure au troisime segment de la polyligne, ajoute un sommet la polyligne,
modifie la largeur du dernier segment et referme la polyligne.
Sub Ch4_EditPolyline()
Dim plineObj As AcadLWPolyline
Dim points(0 To 9) As Double
' Define the 2D polyline points
points(0) = 1: points(1) = 1
points(2) = 1: points(3) = 2
points(4) = 2: points(5) = 2
points(6) = 3: points(7) = 2
points(8) = 4: points(9) = 4
' Create a light weight Polyline object
Set plineObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
' Add a bulge to segment 3
plineObj.SetBulge 3, -0.5
' Define the new vertex
Dim newVertex(0 To 1) As Double
newVertex(0) = 4: newVertex(1) = 1
' Add the vertex to the polyline
plineObj.AddVertex 5, newVertex
' Set the width of the new segment
plineObj.SetWidth 4, 0.1, 0.5
' Close the polyline
plineObj.Closed = True
plineObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Utilisez les proprits modifiables suivantes pour modifier les splines :
ControlPoints
Spcifie les points de contrle d'une spline.
EndTangent
Spcifie la tangente de fin de la spline en tant que vecteur directionnel.
FitPoints
Spcifie tous les points de contrle d'une spline.
FitTolerance
Lisse nouveau la spline sur les points existants, avec de nouvelles valeurs de tolrance.
Knots
Spcifie les vecteurs de noeuds de la spline.
StartTangent
Spcifie la tangente de dbut de la spline.
Vous pouvez galement utiliser les mthodes suivantes pour modifier les splines:
AddFitPoint
Ajoute un point de lissage sur la spline un index donn.
DeleteFitPoint
Supprime le point de lissage d'une spline un index donn.
ElevateOrder
Elve l'ordre de la spline l'ordre donn.
GetFitPoint
Obtient le point de lissage d'une spline un index donn. (Obtient un seul point de lissage. Pour interroger tous les points de lissage de la spline, utilisez la
proprit FitPoints.)
Reverse
Inverse la direction d'une spline.
Cration et modification d'entits AutoCAD


Modification des splines

Page 72 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
SetControlPoint
Dfinit le point de contrle de la spline un index donn.
SetFitPoint
Dfinit le point de lissage de la spline un index donn. (Dfinit un seul point de lissage. Pour modifier tous les points de lissage de la spline, utilisez la
proprit FitPoints.)
SetWeight
Dfinit le poids du point de contrle un index donn.
Utilisez les proprits en lecture seule suivantes pour interroger les splines :
Area
Dfinit la zone ferme d'une spline.
Closed
Indique si la spline est ouverte ou ferme.
Degr
Obtient le degr de la reprsentation du polynme de la spline.
IsPeriodic
Indique si la spline spcifie est priodique.
IsPlanar
Indique si la spline spcifie est planaire.
IsRational
Indique si la spline spcifie est rationnelle.
NumberOfControlPoints
Obtient le nombre de points de contrle de la spline.
NumberOfFitPoints
Obtient le nombre de points de lissage de la spline.
Pour de plus amples informations sur la modification des splines, reportez-vous la section Modification des splines du Manuel d'utilisation.
Modification d'un point de contrle d'une spline
Dans cet exemple, l'utilisateur cre une spline dont il modifie le premier point de contrle.
Sub Ch4_ChangeSplineControlPoint()
' Create the spline
Dim splineObj As AcadSpline
Dim startTan(0 To 2) As Double
Dim endTan(0 To 2) As Double
Dim fitPoints(0 To 8) As Double
startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0
endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0
fitPoints(0) = 1: fitPoints(1) = 1: fitPoints(2) = 0
fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0
fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0
Set splineObj = ThisDrawing.ModelSpace. _
AddSpline(fitPoints, startTan, endTan)
splineObj.Update
' Change the coordinate of the first fit point
Dim controlPoint(0 To 2) As Double
controlPoint(0) = 0
controlPoint(1) = 3
controlPoint(2) = 0
splineObj.SetControlPoint 0, controlPoint
splineObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Vous pouvez modifier aussi bien les contours que les motifs de hachures. S'il s'agit de hachures associatives, elles s'adaptent automatiquement au contour de
la zone condition que les changements effectus figurent dans un contour appropri. Les hachures associatives s'adaptent au contour mme si elles figurent
sur des calques dsactivs. Vous pouvez modifier les motifs de hachure ou appliquer un nouveau motif une zone hachure, mais l'associativit peut
uniquement tre dfinie lors de la cration d'une hachure. Vous pouvez savoir si un objet Hatch est associatif en utilisant la proprit AssociativeHatch (Pour de
plus amples informations sur la cration d'une hachure, reportez-vous la mthode AddHatch
Vous devez rvaluer une hachure en utilisant la mthode Evaluate afin de visualiser toutes les modifications apportes la hachure.
Pour de plus amples informations sur la modification des hachures, reportez-vous la section Modification des zones hachures et des zones de remplissage
plein du Manuel d'utilisation.
Rubriques de cette section :
Modification de contours de hachures
Modification de motifs de hachures
Cration et modification d'entits AutoCAD


Modification de hachures

Page 73 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 ajouter ou insrer des boucles dans les contours de hachures. Les hachures associatives sont mises jour en fonction des modifications
apportes leur contour. En revanche, les hachures non associatives ne tiennent pas compte de ces changements.
Pour modifier un contour de hachure, utilisez l'une des mthodes suivantes :
AppendInnerLoop
Ajoute une boucle interne la hachure.
AppendOuterLoop
Ajoute une boucle externe la hachure.
InsertLoopAt
Insre une boucle un index donn d'une hachure.
Ajout d'une boucle interne une hachure
Dans cet exemple, l'utilisateur cre une hachure associative. Il cre ensuite un cercle qu'il ajoute la hachure comme boucle interne.
Sub Ch4_AppendInnerLoopToHatch()
Dim hatchObj As AcadHatch
Dim patternName As String
Dim PatternType As Long
Dim bAssociativity As Boolean
' Define and create the hatch
patternName = "ANSI31"
PatternType = 0
bAssociativity = True
Set hatchObj = ThisDrawing.ModelSpace. _
AddHatch(PatternType, patternName, bAssociativity)
' Create the outer loop for the hatch.
Dim outerLoop(0 To 1) As AcadEntity
Dim center(0 To 2) As Double
Dim radius As Double
Dim startAngle As Double
Dim endAngle As Double
center(0) = 5: center(1) = 3: center(2) = 0
radius = 3
startAngle = 0
endAngle = 3.141592
Set outerLoop(0) = ThisDrawing.ModelSpace. _
AddArc(center, radius, startAngle, endAngle)
Set outerLoop(1) = ThisDrawing.ModelSpace. _
AddLine(outerLoop(0).startPoint, outerLoop(0).endPoint)
' Append the outer loop to the hatch object
hatchObj.AppendOuterLoop (outerLoop)
' Create a circle as the inner loop for the hatch.
Dim innerLoop(0) As AcadEntity
center(0) = 5: center(1) = 4.5: center(2) = 0
radius = 1
Set innerLoop(0) = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Append the circle as an inner loop to the hatch
hatchObj.AppendInnerLoop (innerLoop)
' Evaluate and display the hatch
hatchObj.Evaluate
ThisDrawing.Regen True
End Sub

Cration et modification d'entits AutoCAD


Modification de contours de hachures

Envoyez-nous vos commentaires sur cette page.
Vous pouvez modifier l'orientation et l'espacement d'un motif de hachures ou le remplacer par un objet plein ou un des motifs prdfinis dans AutoCAD. Dans la
bote de dialogue Hachures de contour, si vous cliquez sur le bouton Motif, une liste de motifs s'affiche. Pour rduire la taille des fichiers, la hachure est dfinie
dans un dessin comme un seul objet graphique.
Utilisez les proprits et mthodes suivantes pour modifier les motifs de hachure :
PatternAngle
Spcifie l'angle du motif de hachure.
Cration et modification d'entits AutoCAD


Modification de motifs de hachures

Page 74 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
PatternDouble
Indique si la hachure dfinie par l'utilisateur est hachure deux fois.
PatternName
Spcifie le nom du motif de hachure (ne modifie pas le type du motif).
PatternScale
Spcifie l'chelle du motif de hachure.
PatternSpace
Spcifie l'espacement du motif de hachure dfini par l'utilisateur.
SetPattern
Dfinit le nom et le type de motif de la hachure.
Modification de l'espacement du motif de hachure
Dans cet exemple, l'utilisateur cre une hachure. Il augmente ensuite de deux l'espacement du motif courant de la hachure.
Sub Ch4_ChangeHatchPatternSpace()
Dim hatchObj As AcadHatch
Dim patternName As String
Dim PatternType As Long
Dim bAssociativity As Boolean
' Define the hatch
patternName = "ANSI31"
PatternType = 0
bAssociativity = True
' Create the associative Hatch object
Set hatchObj = ThisDrawing.ModelSpace. _
AddHatch(PatternType, patternName, bAssociativity)
' Create the outer loop for the hatch.
Dim outerLoop(0 To 0) As AcadEntity
Dim center(0 To 2) As Double
Dim radius As Double
center(0) = 5
center(1) = 3
center(2) = 0
radius = 3
Set outerLoop(0) = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
hatchObj.AppendOuterLoop (outerLoop)
hatchObj.Evaluate
' Change the spacing of the hatch pattern by
' adding 2 to the current spacing
hatchObj.patternSpace = hatchObj.patternSpace + 2
hatchObj.Evaluate
ThisDrawing.Regen True
End Sub

Envoyez-nous vos commentaires sur cette page.
Les calques sont similaires des couches transparentes dans lesquelles vous pouvez organiser et grouper diffrents types d'informations relatives au dessin.
Les objets que vous crez possdent des proprits telles que des calques, des couleurs et des types de ligne. La couleur vous permet de distinguer des
lments similaires dans vos dessins et les types de ligne vous aident diffrencier facilement les lments de dessin tels que les axes ou les lignes caches.
L'utilisation de plusieurs calques permet de dfinir votre propre systme d'organisation des objets du dessin et de simplifier leur manipulation.
Pour de plus amples informations ce sujet, reportez-vous la section Contrle des proprits des objets du Manuel d'utilisation.
Rubriques de cette section :
Utilisation des calques
Utilisation des couleurs
Utilisation des types de ligne
Affectation de calques, de couleurs et de types de ligne aux objets

Cration et modification d'entits AutoCAD


Utilisation de calques, couleurs et types de ligne

Envoyez-nous vos commentaires sur cette page.
Lorsque vous dessinez dans AutoCAD, vous travaillez systmatiquement sur un calque. Il peut s'agir du calque propos par dfaut ou d'un autre que vous avez
cr et nomm. Chaque calque est associ une couleur et un type de ligne. Vous pouvez, par exemple, crer un calque destin exclusivement aux axes et
Cration et modification d'entits AutoCAD


Utilisation des calques

Page 75 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
lui attribuer le type de ligne CENTER et la couleur bleue. Ensuite, lorsque vous souhaitez tracer des axes, vous pouvez accder ce calque et commencer
dessiner.
Tous les calques et types de ligne sont conservs au sein de leurs objets Collection parent. Les calques sont conservs dans la collection Layers et les types
de ligne dans la collection Linetypes
Pour de plus amples informations sur les calques, reportez-vous la section Utilisation des calques du Manuel d'utilisation.
Rubriques de cette section :
Tri des calques et des types de ligne
Cration et appellation des calques
Activation d'un calque
Activation et dsactivation des calques
Gel et libration des calques
Verrouillage et dverrouillage des calques
Affectation d'une couleur un calque
Affectation d'un type de ligne un calque
Suppression de calques

Envoyez-nous vos commentaires sur cette page.
Vous pouvez lancer une itration dans les collections Layers et Linetypes pour rechercher tous les calques et tous les types de lignes d'un dessin.
Itration via la collection Layers
Le code suivant itre via la collection Layers pour rassembler les noms de tous les calques dans le dessin. Les noms sont ensuite affichs dans une bote de
message.
Sub Ch4_IteratingLayers()
Dim layerNames As String
Dim entry As AcadLayer
layerNames = ""
For Each entry In ThisDrawing.Layers
layerNames = layerNames + entry.Name + vbCrLf
Suivant
MsgBox "The layers in this drawing are: " + _
vbCrLf + layerNames
End Sub

Cration et modification d'entits AutoCAD


Tri des calques et des types de ligne

Envoyez-nous vos commentaires sur cette page.
Vous pouvez crer des calques et leur affecter des proprits de couleur et de type de ligne. Chaque calque individuel fait partie de la collection Layers Utilisez
la mthode Add pour crer un calque et l'ajouter la collection Layers.
Une fois un calque cr, vous pouvez lui attribuer un nom. Pour modifier le nom d'un calque aprs sa cration, utilisez la proprit Name Les noms de calques
peuvent inclure jusqu' 31 caractres et contenir des lettres, des chiffres et les caractres spciaux signe dollar ($), tiret () et caractre de soulignement (_),
mais ne peuvent pas contenir d'espaces.
Pour de plus amples informations sur la cration de calques, reportez-vous la section Cration et appellation des calques du Manuel d'utilisation.
Crez un calque, donnez-lui la couleur rouge et ajoutez-lui un objet
Le code suivant cre un cercle et un calque. Le calque se voit attribuer la couleur rouge. Le cercle est attribu au calque, et la couleur du cercle est modifie en
consquence.
Sub Ch4_NewLayer()
' Create a 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 = 1
Cration et modification d'entits AutoCAD


Cration et appellation des calques

Page 76 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Set circleObj = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Create a color object
Dim col As New AcadAcCmColor
col.ColorMethod = AutoCAD.acColorMethodForeground
' Set the layer to the color
Dim layColor As AcadAcCmColor
Set layColor =
AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.17")
Call layColor.SetRGB(122, 199, 25)
ThisDrawing.ActiveLayer.TrueColor = layColor
col.ColorMethod = AutoCAD.acColorMethodByLayer
' Assign the circle the color "ByLayer" so
' that the circle will automatically pick
' up the color of the layer on which it resides
circleObj.Color = acByLayer
circleObj.Update
End Sub

Envoyez-nous vos commentaires sur cette page.
Lorsque vous dessinez, vous travaillez systmatiquement sur le calque courant. Vous avez la possibilit de rendre actif un calque et d'y ajouter des objets. Si
vous rendez un autre calque actif, les nouveaux objets que vous crez seront associs ce calque et adopteront sa couleur et son type de ligne. Vous ne
pouvez pas activer un calque s'il est gel.
Pour rendre un calque actif, utilisez la proprit ActiveLayer Cette proprit est dfinie sur le dessin courant. Par exemple :
Dim newlayer As AcadLayer
Set newlayer = ThisDrawing.Layers.Add("LAYER1")
ThisDrawing.ActiveLayer = newlayer

Cration et modification d'entits AutoCAD


Activation d'un calque

Envoyez-nous vos commentaires sur cette page.
Les calques dsactivs sont rgnrs, mais ils ne sont ni affichs ni tracs. En dsactivant les calques, vous vitez de rgnrer le dessin chaque fois que
vous librez un calque. Lors de l'activation d'un calque dsactiv, AutoCAD redessine les objets de ce calque.
Pour activer et dsactiver les calques, utilisez la proprit LayerOn Si vous dfinissez cette proprit sur la valeur TRUE, le calque est activ. Si vous dfinissez
cette proprit sur la valeur FALSE, le calque est dsactiv.
Dsactivation d'un calque
Dans cet exemple, l'utilisateur cre un nouveau calque auquel il ajoute un cercle, puis dsactive le calque de sorte que le cercle ne soit plus visible.
Sub Ch4_LayerInvisible()
' Create a 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 = 1
Set circleObj = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Create a new layer called "ABC"
Dim layerObj As AcadLayer
Set layerObj = ThisDrawing.Layers.Add("ABC")
' Assign the circle to the "ABC" layer
circleObj.Layer = "ABC"
circleObj.Update
' Turn off layer "ABC"
layerObj.LayerOn = False
ThisDrawing.Regen acActiveViewport
End Sub

Cration et modification d'entits AutoCAD


Activation et dsactivation des calques

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD
Page 77 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous pouvez geler des calques pour acclrer l'excution de commandes d'affichage, faciliter les oprations de slection des objets et gagner du temps lors de
la rgnration de dessins complexes. Les objets des calques gels ne sont ni affichs, ni tracs, ni rgnrs. Gelez les calques que vous voulez masquer
pendant une longue priode. Lorsque vous librez un calque gel, AutoCAD rgnre et affiche les objets qui s'y trouvent.
Pour geler ou librer un calque, utilisez la proprit Freeze Si vous donnez la valeur TRUE cette proprit, le calque est gel. Si vous lui donnez la valeur
FALSE, le calque est libr.
Gel d'un calque
Cet exemple cre un calque intitul ABC, puis le gle.
Sub Ch4_LayerFreeze()
' Create a new layer called "ABC"
Dim layerObj As AcadLayer
Set layerObj = ThisDrawing.Layers.Add("ABC")
' Freeze layer "ABC"
layerObj.Freeze = True
End Sub


Gel et libration des calques

Envoyez-nous vos commentaires sur cette page.
Vous ne pouvez pas modifier les objets situs sur un calque verrouill, mais ils restent visibles si ce calque est actif et libr. Vous avez la possibilit de rendre
actif un calque verrouill et d'y ajouter des objets. Vous pouvez aussi geler et masquer des calques verrouills, et changer les couleurs et les types de ligne qui
leur sont associs.
Pour verrouiller ou dverrouiller un calque, utilisez la proprit Lock Si vous donnez cette proprit la valeur TRUE, le calque est verrouill. Si vous lui donnez
la valeur FALSE, le calque est dverrouill.
Verrouillage d'un calque
Cet exemple cre un calque intitul ABC, puis le verrouille.
Sub Ch4_LayerLock()
' Create a new layer called "ABC"
Dim layerObj As AcadLayer
Set layerObj = ThisDrawing.Layers.Add("ABC")
' Lock layer "ABC"
layerObj.Lock = True
End Sub

Cration et modification d'entits AutoCAD


Verrouillage et dverrouillage des calques

Envoyez-nous vos commentaires sur cette page.
Vous pouvez attribuer une couleur un calque. Les couleurs sont identifies par l'objet AcCmColor Celui-ci peut avoir une valeur RVB, un nombre ACI (un
entier de 1 255) ou une couleur nomme.
Pour attribuer une couleur un calque, utilisez la proprit TrueColor
Des constantes ont t fournies pour les sept couleurs standard et les dsignations DUBLOC et DUCALQUE.
Si vous utilisez acByBlock, AutoCAD dessine les nouveaux objets dans la couleur par dfaut (blanc ou noir selon la configuration) jusqu' ce qu'ils soient
regroups dans un bloc. Ds l'insertion du bloc dans le dessin, les objets de ce bloc hritent du paramtre actif.
Si vous choisissez acByLayer, les nouveaux objets adoptent la couleur du calque sur lequel ils se trouvent.

Cration et modification d'entits AutoCAD


Affectation d'une couleur un calque

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Affectation d'un type de ligne un calque
Page 78 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Lorsque vous dfinissez des calques, les types de ligne vous permettent de transmettre des informations visuelles d'une autre faon. Un type de ligne est un
motif rpt de tirets, de points et d'espaces servant distinguer l'utilisation des lignes.
Le nom et la dfinition du type de ligne dcrivent l'aspect du motif de base (ordre des tirets et pointills, longueur relative des tirets et des espaces,
caractristiques du texte ou des formes ventuellement ajouts la dfinition).
Pour attribuer un type de ligne un calque, utilisez la proprit Linetype Cette proprit prend le nom du type de ligne comme entre.


Envoyez-nous vos commentaires sur cette page.
Pour supprimer un calque, utilisez la mthode Delete
Vous pouvez supprimer un calque tout moment au cours d'une session de dessin. Il n'est pas possible de supprimer le calque courant, le calque 0, un calque
dpendant d'une rfrence externe ou un calque contenant des objets.
Remarque De mme, les calques rfrencs par des dfinitions de blocs, ainsi que le calque spcial appel DEFPOINTS, ne peuvent pas tre supprims,
mme s'ils ne contiennent aucun objet visible.

Cration et modification d'entits AutoCAD


Suppression de calques

Envoyez-nous vos commentaires sur cette page.
AutoCAD offre la possibilit d'attribuer des paramtres Couleurs vraies aux diffrents objets d'un dessin l'aide de l'objet AcCmColor En utilisant une valeur
RVB dans l'objet AcCmColor, vous pouvez choisir parmi des milliers de couleurs celles qui dfiniront les lignes, les cercles et autres objets. L'objet AcCmColor
contient galement des mthodes et proprits qui dfinissent les noms des couleurs, leurs carnets, leurs index, leurs valeurs et leurs mthodes.
AutoCAD offre galement la possibilit d'attribuer des couleurs aux calques. Chaque couleur peut tre identifie par un nom ou un nombre de l'index des
couleurs AutoCAD (ACI, AutoCAD Color Index), savoir un nombre entier compris entre 1 et 255. La mme couleur peut tre affecte plusieurs objets et
calques. Vous pouvez affecter chaque numro de couleur une plume diffrente (si vous disposez d'un traceur plumes) ou utiliser les numros de couleur
pour identifier certains lments du dessin, mme si les couleurs ne sont pas visibles l'cran.
Pour spcifier une couleur, vous pouvez entrer son nom ou son numro ACI. L'index ACI propose 255 numros de couleur. Les couleurs 1 7 sont les seules
possder un nom standard.
Pour associer les couleurs 8 255 des objets ou des calques, vous devez indiquer leur numro ou les slectionner dans une bote de dialogue. La couleur
par dfaut (7) est le blanc ou le noir, en fonction de la couleur de fond.
Pour de plus amples informations sur les couleurs, reportez-vous la section Utilisation des couleurs du Manuel d'utilisation.

Cration et modification d'entits AutoCAD


Utilisation des couleurs

Couleurs 1 7
Numro de couleur Nom de couleur
1 Rouge
2 Jaune
3 Vert
4 Cyan
5 Bleu
6 Magenta
7 Noir/Blanc
Envoyez-nous vos commentaires sur cette page.
Un type de ligne est un motif compos d'une succession de tirets, de points et d'espaces. De mme, un type de ligne complexe est une suite de combinaisons
de symboles. Si vous souhaitez utiliser un type de ligne particulier, vous devez d'abord le charger dans le dessin. Dans ce cas, il est indispensable que sa
dfinition figure dans un fichier de bibliothque .lin avant de le charger dans un dessin. Pour charger un type de ligne dans un dessin, utilisez la mthode Load
Pour de plus amples informations sur les types de ligne, reportez-vous la section Prsentation des types de ligne du Manuel d'utilisation.
Cration et modification d'entits AutoCAD


Utilisation des types de ligne

Page 79 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Remarque Ne confondez pas les types de ligne propres AutoCAD et les types de ligne matriels que peuvent produire certains traceurs. Ces deux types de
ligne discontinues produisent le mme effet. Il est toutefois dconseill de les utiliser simultanment, les rsultats pouvant tre imprvisibles.
Chargement d'un type de ligne dans AutoCAD
Dans cet exemple, l'utilisateur essaie de charger le type de ligne CENTER partir du fichier acad.lin. Si le type de ligne existe dj ou si le fichier n'existe pas,
un message s'affiche.
Sub Ch4_LoadLinetype()
On Error GoTo ERRORHANDLER
Dim linetypeName As String
linetypeName = "CENTER"
' Load "CENTER" line type from acad.lin file
ThisDrawing.Linetypes.Load linetypeName, "acad.lin"
Exit Sub
ERRORHANDLER:
MsgBox Err.Description
End Sub
Rubriques de cette section :
Activation d'un type de ligne
Attribution d'un nouveau nom aux types de ligne
Suppression des types de ligne
Changement des descriptions des types de ligne
Spcification de l'chelle d'un type de ligne

Envoyez-nous vos commentaires sur cette page.
Pour utiliser un type de ligne dessiner sur le calque courant, vous devez le rendre actif. Tous les nouveaux objets utilisent le type de ligne courant.
Remarque Vous ne pouvez pas activer les types de ligne dpendant de rfrences externes.
Pour rendre un type de ligne actif, utilisez la proprit ActiveLinetype Cette proprit est dfinie sur le dessin courant. Par exemple :
ThisDrawing.ActiveLinetype = ThisDrawing. _
Linetypes.Item("CONTINUOUS")
Pour de plus amples informations sur l'activation des types de ligne, reportez-vous la section Dfinition du type de ligne courant du Manuel d'utilisation.

Cration et modification d'entits AutoCAD


Activation d'un type de ligne

Envoyez-nous vos commentaires sur cette page.
Pour renommer un type de ligne, utilisez la proprit Name Lorsque vous renommez un type de ligne, vous ne renommez que la dfinition du type de ligne dans
votre dessin. Le nom dans le fichier bibliothque LIN n'est cependant pas modifi.

Cration et modification d'entits AutoCAD


Attribution d'un nouveau nom aux types de ligne

Envoyez-nous vos commentaires sur cette page.
Pour supprimer un type de ligne, utilisez la mthode Delete Vous pouvez supprimer un type de ligne tout moment au cours d'une session de dessin ; toutefois,
il est interdit de supprimer les types de ligne DUCALQUE, DUBLOC, CONTINUOUS, le type de ligne actif et les types de ligne dpendant d'une rfrence
externe. Notez galement que les types de ligne rfrencs par des dfinitions de blocs ne peuvent pas tre supprims, mme s'ils ne sont utiliss par aucun
objet.
Pour de plus amples informations sur la suppression des types de ligne, reportez-vous la section Dfinition du type de ligne courant du Manuel d'utilisation.
Cration et modification d'entits AutoCAD


Suppression des types de ligne

Envoyez-nous vos commentaires sur cette page.
Page 80 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

Une description peut tre associe aux types de ligne. La description fournit une reprsentation ASCII du type de ligne. Vous pouvez attribuer ou modifier une
description de type de ligne l'aide de la proprit Description
Une description de type de ligne peut comporter jusqu' 47 caractres. Il peut s'agir d'un commentaire ou d'une srie de tirets de soulignement, de points, de
tirets et d'espaces reprsentant le modle du type de ligne. Par exemple :
ThisDrawing.ActiveLinetype.Description = "Exterior Wall"

Cration et modification d'entits AutoCAD


Changement des descriptions des types de ligne

Envoyez-nous vos commentaires sur cette page.
AutoCAD vous offre la possibilit de spcifier l'chelle applique aux types de ligne pour les objets que vous crez. Plus cette chelle est rduite, plus les motifs
sont nombreux par unit de dessin. Par dfaut, l'chelle applique aux types de lignes dans AutoCAD est de 1, ce qui correspond une unit de dessin. Vous
pouvez modifier l'chelle des types de ligne pour tous les objets, rfrences d'attribut et groupes d'un dessin.
Pour modifier l'chelle d'un type de ligne, utilisez la proprit LinetypeScale
La variable systme CELTSCALE permet de choisir l'chelle du type de ligne associ aux nouveaux objets. LTSCALE modifie de faon globale l'chelle du type
de ligne pour les objets existants et les nouveaux objets. Pour modifier les valeurs des variables systme l'aide de l'automatisation ActiveX d'AutoCAD,
utilisez la mthode SetVariable.
Pour de plus amples informations sur l'chelle des types de ligne, reportez-vous la section Contrle de l'chelle d'un type de ligne du Manuel d'utilisation.
Modification de l'chelle d'un type de ligne pour un cercle
Sub Ch4_ChangeLinetypeScale()
' Save the current linetype
Set currLineType = ThisDrawing.ActiveLinetype
' Change the active linetype to Border, so the scale change will
' be visible.
' First see if the Border linetype is already loaded
On Error Resume Next 'Turn on error trapping
ThisDrawing.ActiveLinetype = ThisDrawing.Linetypes.Item("BORDER")
If Err.Number = -2145386476 Then
' Error indicates linetype is not currently loaded, so load it.
ThisDrawing.Linetypes.Load "BORDER", "acad.lin"
ThisDrawing.ActiveLinetype = _
ThisDrawing.Linetypes.Item("BORDER")
End If
On Error GoTo 0 'Turn off error trapping
' Create a circle object in model space
Dim center(0 To 2) As Double
Dim radius As Double
Dim circleObj As AcadCircle
center(0) = 2
center(1) = 2
center(2) = 0
radius = 4
Set circleObj = ThisDrawing.ModelSpace.AddCircle(center, radius)
circleObj.Update
MsgBox ("Here is the circle with the original linetype")
' Set the linetype scale of a circle to 3
circleObj.LinetypeScale = 3#
circleObj.Update
MsgBox ("Here is the circle with the new linetype")
' Restore original active linetype
ThisDrawing.ActiveLinetype = currLineType
End Sub

Cration et modification d'entits AutoCAD


Spcification de l'chelle d'un type de ligne

Envoyez-nous vos commentaires sur cette page.
Aprs avoir dfini les calques, les couleurs et les types de ligne, vous pouvez les affecter aux objets de votre dessin. Les composants associs d'un dessin
peuvent tre groups en assignant des objets diffrents calques. AutoCAD vous permet de contrler l'affichage du calque, la couleur et le type de ligne et de
spcifier si les objets d'un calque peuvent tre dits. Vous pouvez dplacer les objets d'un calque un autre et changer le nom d'un calque.
Cration et modification d'entits AutoCAD


Affectation de calques, de couleurs et de types de ligne aux objets

Page 81 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Un dessin peut comporter un nombre quelconque de calques et chaque calque peut comporter un nombre illimit d'objets. AutoCAD vous donne la possibilit
d'attribuer un nom vos diffrents calques et de choisir librement ceux que vous voulez afficher.
Les blocs peuvent tre dfinis partir d'objets initialement dessins sur des calques diffrents l'aide de couleurs et de types de ligne 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.
Rubriques de cette section :
Modification du calque d'un objet
Modification de la couleur d'un objet
Modification du type de ligne d'un objet

Envoyez-nous vos commentaires sur cette page.
Aprs avoir cr un objet et lui avoir affect des proprits de calque, de couleur et de type de ligne, vous pouvez souhaiter changer le calque de l'objet. Il est
utile de changer le calque d'un objet si vous crez un objet accidentellement sur un mauvais calque ou si vous dcidez de modifier l'organisation de vos calques
ultrieurement.
Pour changer le calque d'un objet, utilisez la proprit Layer fournie pour cet objet. Cette proprit prend le nom du calque comme entre.
Placement d'un objet sur un calque diffrent
Cet exemple cre un cercle sur le calque actif puis un nouveau calque intitul ABC. Le cercle est ensuite plac sur le nouveau calque.
Sub Ch4_MoveObjectNewLayer()
' Create a 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 = 1
Set circleObj = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Create a new layer called "ABC"
Dim layerObj As AcadLayer
Set layerObj = ThisDrawing.Layers.Add("ABC")
' Assign the circle to the "ABC" layer
circleObj.Layer = "ABC"
circleObj.Update
End Sub

Cration et modification d'entits AutoCAD


Modification du calque d'un objet

Envoyez-nous vos commentaires sur cette page.
Pour changer la couleur d'un objet, utilisez la proprit TrueColor de cet objet. AutoCAD offre la possibilit d'attribuer des couleurs aux diffrents objets d'un
dessin. Chaque couleur est identifie par un objet AcCmColor Celui-ci peut avoir une valeur RVB, un nombre ACI (un entier de 1 255) ou une couleur
nomme. En utilisant une valeur RVB, vous avez le choix entre des millions de couleurs.
Lorsque vous attribuez une couleur un objet, celle-ci remplace la couleur associe au calque auquel l'objet appartient. AutoCAD vous permet de changer la
couleur d'un objet, si vous souhaitez le laisser sur un calque donn sans conserver la couleur associe ce calque.
Modification de la couleur d'un cercle
Dans cet exemple, l'utilisateur cre un cercle qu'il colorie en bleu.
Sub Ch4_ColorCircle()
Dim color As AcadAcCmColor
Set color = _
AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.17")
Call color.SetRGB(80, 100, 244)
Dim circleObj 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 circleObj = _
ThisDrawing.ModelSpace.AddCircle(centerPoint, radius)
Cration et modification d'entits AutoCAD


Modification de la couleur d'un objet

Page 82 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
circleObj.TrueColor = color
ZoomAll
End Sub

Envoyez-nous vos commentaires sur cette page.
Par dfaut, les objets hritent du type de ligne du calque sur lequel ils sont crs. Pour changer le type de ligne d'un objet, utilisez la proprit Linetype fournie
pour cet objet. Elle prend comme entre le nom du type de ligne et l'attribue l'objet.
Remarque Avant de pouvoir attribuer un type de ligne un objet, le type de ligne doit tre charg dans le dessin actif. Pour charger un type de ligne dans un
dessin, utilisez la mthode Load.
Pour de plus amples informations sur les types de ligne, reportez-vous la section Prsentation des types de ligne du Manuel d'utilisation.
Modification du type de ligne d'un cercle
Dans cet exemple, l'utilisateur cre un cercle. Il essaie ensuite de charger le type de ligne CENTER partir du fichier acad.lin. Si le type de ligne existe dj
ou si le fichier n'existe pas, un message s'affiche. Le type de ligne dfini pour le cercle est CENTER..
Sub Ch4_ChangeCircleLinetype()
On Error Resume Next
' Create a 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 = 1
Set circleObj = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
Dim linetypeName As String
linetypeName = "CENTER"
' Load "CENTER" line type from acad.lin file
ThisDrawing.Linetypes.Load linetypeName, "acad.lin"
If Err.Description <> "" Then MsgBox Err.Description
' Assign the circle the linetype "CENTER"
circleObj.Linetype = "CENTER"
circleObj.Update
End Sub

Cration et modification d'entits AutoCAD


Modification du type de ligne d'un objet

Envoyez-nous vos commentaires sur cette page.
Il est possible d'enregistrer les paramtres de calques et de les recharger ultrieurement. Ceci vous permet de ractiver rapidement des paramtres prcis pour
tous les calques diverses tapes de la cration ou du traage de vos dessins.
Les paramtres d'un calque comportent diverses informations : son activation, son gel, son verrouillage, son traage, son gel automatique dans les nouvelles
fentres, ainsi que la couleur, le type et l'paisseur de ligne et le style du trac. Vous pouvez indiquer quels paramtres vous souhaitez enregistrer et crer
diffrents groupes de paramtres pour un mme dessin.
Un objet spcial, LayerStateManager, offre des fonctions de manipulation de paramtres de calques via ActiveX.
Pour de plus amples informations sur l'enregistrement des paramtres de calques, reportez-vous la section Enregistrement et restauration des paramtres
des calques du Manuel d'utilisation.
Rubriques de cette section :
AutoCAD et l'enregistrement des paramtres de calques
Gestion des paramtres de calques avec LayerStateManager

Cration et modification d'entits AutoCAD


Enregistrement et restauration des paramtres des calques

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


AutoCAD et l'enregistrement des paramtres de calques
Page 83 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
AutoCAD enregistre les informations concernant les calques dans un dictionnaire d'extensions au sein de la collection Layers du dessin. Lors du premier
enregistrement des paramtres de calques dans un dessin, AutoCAD effectue les oprations suivantes :
Il cre un dictionnaire d'extensions dans la collection Layers.
Il cre un objet Dictionary appel ACAD_LAYERSTATE dans le dictionnaire d'extensions.
Il stocke les proprits de chaque calque du dessin dans un objet XRecord situ dans le dictionnaire ACAD_LAYERSTATE. AutoCAD place tous les
paramtres de calques dans l'objet XRecord, mais identifie les paramtres spcifiques que vous souhaitez enregistrer. Lorsque vous restaurez les
paramtres de calques, AutoCAD ne restaure que les paramtres que vous avez enregistrs.
A chaque fois que vous enregistrez un nouveau paramtre de calque, AutoCAD cre un nouvel objet XRecord dcrivant les paramtres enregistrs, puis le
place dans le dictionnaire ACAD_LAYERSTATE. Le diagramme ci-dessous illustre ce processus.

Il n'est pas ncessaire (ni mme souhaitable) d'interprter les objets XRecord lorsque vous manipulez les paramtres de calques avec ActiveX. Utilisez les
fonctions LayerStateManager pour accder aux paramtres de calques enregistrs.
Affichage des paramtres de calques enregistrs d'un dessin
L'exemple suivant permet d'afficher le nom de tous les paramtres enregistrs du dessin actif :
Sub Ch4_ListStates()
On Error Resume Next
Dim oLSMDict As AcadDictionary
Dim XRec As Object
Dim layerstateNames As String
layerstateNames = ""
' Get the ACAD_LAYERSTATES dictionary, which is in the
' extension dictionary in the Layers object.
Set oLSMDict = ThisDrawing.Layers. _
GetExtensionDictionary.Item("ACAD_LAYERSTATES")
' List the name of each saved layer setting. Settings are
' stored as XRecords in the dictionary.
For Each XRec In oLSMDict
layerstateNames = layerstateNames + XRec.Name + vbCrLf
Next XRec
MsgBox "The saved layer settings in this drawing are: " + _
vbCrLf + layerstateNames
End Sub


Envoyez-nous vos commentaires sur cette page.
L'objet LayerStateManager est semblable l'objet Utility d'AutoCAD, en ce sens qu'il offre un ensemble de fonctions ddies la manipulation des donnes.
Ces fonctions sont des mthodes qui permettent d'utiliser les paramtres de calques enregistrs. Utilisez les mthodes LayerStateManager ci-dessous pour
manipuler les paramtres de calques enregistrs :
Delete
Supprime un paramtre enregistr.
Export
Exporte un paramtre enregistr dans un fichier.
Import
Importe un paramtre enregistr depuis le fichier spcifi.
Rename
Renomme un paramtre enregistr.
Restore
Charge un paramtre enregistr dans le dessin actif.
Save
Enregistre les tats et les proprits du calque spcifi.
SetDataBase
Associe une base de donnes AutoCAD LayerStateManager.
Pour accder l'objet LayerStateManager, utilisez la mthode GetInterfaceObject
Dim oLSM As AcadLayerStateManager
Cration et modification d'entits AutoCAD


Gestion des paramtres de calques avec LayerStateManager

Page 84 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Set oLSM = ThisDrawing.Application. _
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
Aprs avoir charg l'objet LayerStateManager, vous devez lui associer une base de donnes pour pouvoir accder ses mthodes. Utilisez la mthode
SetDatabase pour associer une base de donnes LayerStateManager.
oLSM.SetDatabase ThisDrawing.Database
Rubriques de cette section :
Enregistrement des paramtres de calques
Restauration des paramtres de calques
Exportation et importation de paramtres enregistrs

Envoyez-nous vos commentaires sur cette page.
La mthode Save permet d'enregistrer un ensemble de paramtres de calques dans un dessin. Elle demande deux paramtres. Le premier est une chane de
caractres reprsentant le nom des paramtres que vous enregistrez. Le second identifie les proprits de calques que vous souhaitez enregistrer. Utilisez les
constantes du tableau suivant pour identifier ces proprits.
Ajoutez les constantes entre elles pour spcifier plusieurs proprits.
Si vous tentez d'enregistrer les paramtres de calques sous un nom dj attribu, une erreur est renvoye. Vous devrez dans ce cas renommer ou supprimer
les paramtres prcdemment enregistrs si vous souhaitez rutiliser ce nom.
Enregistrement des paramtres de couleur et de type de ligne d'un calque
L'exemple suivant permet d'enregistrer la couleur et le type de ligne du calque actif sous le nom ColorLinetype.
Sub Ch4_SaveLayerColorAndLinetype()
Dim oLSM As AcadLayerStateManager
' Access the LayerStateManager object
Set oLSM = ThisDrawing.Application. _
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
' Associate the current drawing database with LayerStateManager
oLSM.SetDatabase ThisDrawing.Database
oLSM.Save "ColorLinetype", acLsColor + acLsLineType
End Sub
Modification du nom d'un paramtre de calque enregistr
L'exemple suivant renomme les paramtres ColorLinetypeOldColorLinetype.
Sub Ch4_RenameLayerSettings()
Dim oLSM As AcadLayerStateManager
Set oLSM = ThisDrawing.Application. _
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
oLSM.SetDatabase ThisDrawing.Database
oLSM.Rename "ColorLinetype", "OldColorLinetype"
End Sub
Suppression d'un paramtre enregistr
L'exemple suivant supprime des paramtres de calques enregistrs sous le nom ColorLinetype.
Sub Ch4_DeleteColorAndLinetype()
Dim oLSM As AcadLayerStateManager
Set oLSM = ThisDrawing.Application. _
Cration et modification d'entits AutoCAD


Enregistrement des paramtres de calques

Constantes utiliser pour les proprits de calques
Nom de la constante Layer, proprit
acLsAll Tous les paramtres de calques
acLsColor Color
acLsFrozen Gel ou libr
acLsLineType Linetype
acLsLineWeight Epaisseur de ligne
acLsLocked Verrouill ou dverrouill
acLsNewViewport Calques gels ou librs dans une nouvelle fentre
acLsNone Aucune
acLsOn Activ ou dsactiv
acLsPlot Trac activ ou dsactiv
acLsPlotStyle Style du trac
Page 85 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
oLSM.SetDatabase ThisDrawing.Database
oLSM.Delete "ColorLinetype"
End Sub

Envoyez-nous vos commentaires sur cette page.
La mthode Restore charge, pour tous les paramtres de calques du dessin actif, les valeurs prcdemment enregistres. Par exemple, si vous enregistrez les
couleurs et les types de ligne d'un dessin sous le nom ColorLinetype, les modifiez, puis restaurez ColorLinetype, vos modifications seront perdues. Si vous
ajoutez des calques aprs avoir enregistr ColorLinetype, ils ne seront pas affects par la restauration de ColorLinetype.
Restauration des paramtres de couleurs et de types de ligne des calques d'un dessin
Si les couleurs et les types de ligne des calques du dessin actif ont t enregistrs sous le nom ColorLinetype, l'exemple suivant permet de redonner ces
paramtres (pour chaque calque du dessin) la valeur qu'ils avaient lors de la cration du fichier ColorLinetype.
Sub Ch4_RestoreLayerSettings()
Dim oLSM As AcadLayerStateManager
Set oLSM = ThisDrawing.Application. _
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
oLSM.SetDatabase ThisDrawing.Database
oLSM.Restore "ColorLinetype"
End Sub

Cration et modification d'entits AutoCAD


Restauration des paramtres de calques

Envoyez-nous vos commentaires sur cette page.
Vous pouvez exporter et importer les paramtres de calques enregistrs afin de les utiliser dans d'autres dessins. Utilisez la mthode Export de l'objet
LayerStateManager pour exporter les paramtres dans un fichier et la mthode Import pour les importer dans un dessin.
Remarque Le fait d'importer des paramtres de calques ne les rinitialise pas ; vous devez utiliser la mthode Restore pour que vos calques prennent en
compte les paramtres imports.
La mthode Export attend deux paramtres. Le premier est une chane identifiant les paramtres enregistrs que vous exportez. Le second est le nom du
fichier dans lequel vous les exportez. Si vous ne spcifiez pas le chemin d'accs au fichier, il est plac dans le rpertoire d'installation d'AutoCAD. Si un fichier
porte dj le nom que vous spcifiez, il est cras. Utilisez l'extension .las lorsque vous tapez le nom du fichier : il s'agit de l'extension qu'AutoCAD attribue par
dfaut aux fichiers de paramtres de calques.
La mthode Import accepte un paramtre : une chane nommant le fichier qui contient les paramtres de calques que vous importez.
Lorsque vous importez les paramtres d'un calque, une erreur est signale si certaines des proprits rfrences dans le fichier ne sont pas disponibles dans
le dessin actif. L'importation est cependant effectue, bien que les proprits par dfaut soient utilises. Par exemple, si un calque export contient un type de
ligne qui n'est pas charg dans le dessin dans lequel vous l'importez, une erreur est signale et le type de ligne par dfaut du dessin lui est substitu. Il est
conseill de prvoir cette erreur dans votre programme, et de laisser le traitement se terminer.
Si le fichier import contient des paramtres de calques qui n'existent pas dans le dessin actif, ces calques sont crs. Lorsque vous utilisez la mthode
Restore, les proprits spcifies au moment de l'enregistrement des paramtres sont affectes aux nouveaux calques ; les autres proprits des nouveaux
calques prennent les paramtres par dfaut.
Exportation des paramtres enregistrs
L'exemple suivant exporte les paramtres de calques enregistrs dans le fichier Colortype.las.
Sub Ch4_ExportLayerSettings()
Dim oLSM As AcadLayerStateManager
Set oLSM = ThisDrawing.Application. _
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
oLSM.SetDatabase ThisDrawing.Database
oLSM.Export "ColorLinetype", "c:\my documents\ColorLType.las"
End Sub
Importation de paramtres enregistrs
L'exemple suivant importe les paramtres de calques depuis le fichier Colortype.las.
Sub Ch4_ImportLayerSettings()
Dim oLSM As AcadLayerStateManager
Set oLSM = ThisDrawing.Application. _
GetInterfaceObject("AutoCAD.AcadLayerStateManager.17")
oLSM.SetDatabase ThisDrawing.Database
Cration et modification d'entits AutoCAD


Exportation et importation de paramtres enregistrs

Page 86 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
' If the drawing you're importing to does not contain
' all the linetypes referenced in the saved settings,
' an error is returned. The import is completed, though,
' and the default linetype is used.
On Error Resume Next
oLSM.Import "c:\my documents\ColorLType.las"
If Err.Number = -2145386359 Then
' Error indicates a linetype is not defined
MsgBox ("One or more linetypes specified in the imported " + _
"settings is not defined in your drawing")
End If
On Error GoTo 0
End Sub

Envoyez-nous vos commentaires sur cette page.
Le texte est un moyen d'enrichir vos dessins par des informations importantes. Vous avez besoin d'insrer du texte pour remplir les cartouches, identifier les
diffrentes parties d'un dessin, spcifier les caractristiques techniques ou ajouter des annotations.
AutoCAD offre diffrentes mthodes de cration de texte. Pour les entres uniques et courtes, entrez de simples lignes de texte. Pour les entres plus longues
comportant du formatage, utilisez des paragraphes de texte. Bien que le texte que vous entrez adopte par dfaut les caractristiques et la police dfinies par le
style courant, vous pouvez personnaliser la prsentation du texte par diverses mthodes.
Pour de plus amples informations sur l'utilisation du texte, reportez-vous la section Cration de texte du Manuel d'utilisation.
Rubriques de cette section :
Utilisation de styles de texte
Utilisation des lignes de texte
Utilisation de texte multiligne (Textmult)
Utilisation de caractres Unicode, de codes de contrle et de caractres spciaux
Polices de substitution
Vrification orthographique

Cration et modification d'entits AutoCAD


Ajout de texte aux dessins

Envoyez-nous vos commentaires sur cette page.
Tout texte contenu dans un dessin AutoCAD est associ un style. Lorsque vous saisissez du texte, la police, la taille, l'angle, l'orientation et toutes les autres
caractristiques spcifiques au texte sont dtermines par le style de texte courant. Vous pouvez utiliser ou modifier le style par dfaut ou crer et charger un
nouveau style. Une fois un style cr, vous pouvez modifier ses attributs, changer son nom ou supprimer ce style s'il ne vous est plus utile.
Rubriques de cette section :
Dfinition et modification des styles de texte
Affectation des polices
Utilisation de polices TrueType
Utilisation de polices Unicode et de polices de grande taille
Dfinition de la hauteur du texte
Dfinition de l'angle d'inclinaison
Configuration d'un drapeau de gnration de texte

Cration et modification d'entits AutoCAD


Utilisation de styles de texte

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Dfinition et modification des styles de texte

Page 87 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Le nouveau texte adopte les caractristiques (hauteur, expansion ou compression, inclinaison, orientation, inscription l'envers ou inversion et alignement) du
style de texte courant. Pour crer un style de texte, utilisez la mthode Add pour crer un objet TextStyle et l'ajouter la collection TextStyles La mthode Add
prend un nom de style de texte comme entre. Une fois un style de texte cr, vous ne pouvez pas modifier son nom via l'Automatisation ActiveX d'AutoCAD.
Les noms de styles peuvent contenir des lettres, des chiffres et des caractres spciaux tels que le dollar ($), le trait d'union (-) et le trait de soulignement (_).
AutoCAD convertit le nom en lettres majuscules. Si vous n'entrez pas de nom de style, AutoCAD le nomme automatiquement Stylen, n tant un nombre
commenant 1. Chaque nouveau style est incrment de 1.
Vous pouvez modifier un style existant en changeant les proprits de l'objet TextStyle. Vous pouvez galement mettre jour le texte prsentant ce style afin
qu'il prenne vos modifications en compte. Pour modifier un objet TextStyle, utilisez les proprits suivantes :
FontFile
Spcifie le fichier associ une police (style des caractres).
BigFontFile
Spcifie le fichier de dfinition de la forme des caractres utilis pour un jeu de caractres non-ASCII.
Height
Spcifie la hauteur des caractres.
Width
Spcifie l'extension ou la compression des caractres.
ObliqueAngle
Spcifie l'inclinaison des caractres.
TextGenerationFlag
Spcifie un texte crit l'envers, renvers ou les deux.
Lorsque vous modifiez la police ou l'orientation d'un style, AutoCAD rgnre tout texte utilisant ce style en fonction de la nouvelle police ou orientation. La
modification de la hauteur du texte, du facteur d'extension/compression et de l'angle d'inclinaison n'affecte pas le texte existant, mais modifie les objets texte
crs ultrieurement.
Remarque Vous devez appeler la mthode Regen ou Update pour visualiser toutes les modifications apportes aux proprits ci-dessus.

Envoyez-nous vos commentaires sur cette page.
Une police dfinit un ensemble de caractres de mme aspect. Une mme police peut tre utilise par diffrents styles de texte. Pour affecter une police un
style de texte, utilisez la proprit FontFile de l'objet TextStyle En entrant le fichier de police contenant une police SHX d'AutoCAD, vous attribuez cette police
au style de texte.
Dfinition des polices de texte
Cet exemple applique les valeurs de police courantes au style de texte actif, puis utilise la police PlayBill.La nouvelle police est alors dfinie l'aide de la
mthode SetFont. Pour constater l'effet du changement de police, ajoutez un objet Mtext ou Text votre dessin avant d'excuter l'exemple. Si la police PlayBill
n'est pas installe sur votre ordinateur, utilisez l'une de vos polices dans l'exemple.
Sub Ch4_UpdateTextFont()
MsgBox ("Look at the text now...")
Dim typeFace As String
Dim SavetypeFace As String
Dim Bold As Boolean
Dim Italic As Boolean
Dim charSet As Long
Dim PitchandFamily As Long
' Get the current settings to fill in the
' default values for the SetFont method
ThisDrawing.ActiveTextStyle.GetFont typeFace, _
Bold, Italic, charSet, PitchandFamily
' Change the typeface for the font
SavetypeFace = typeFace
typeFace = "PlayBill"
ThisDrawing.ActiveTextStyle.SetFont typeFace, _
Bold, Italic, charSet, PitchandFamily
ThisDrawing.Regen acActiveViewport
MsgBox ("Now see how it looks after changing the font...")
'Restore the original typeface
ThisDrawing.ActiveTextStyle.SetFont SavetypeFace, _
Bold, Italic, charSet, PitchandFamily
ThisDrawing.Regen acActiveViewport
End Sub

Cration et modification d'entits AutoCAD


Affectation des polices

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Utilisation de polices TrueType

Page 88 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Les polices TrueType s'affichent toujours pleines dans le dessin ; cependant, lors du traage, la variable systme TEXTFILL rgit le remplissage des polices.
Par dfaut, TEXTFILL a pour valeur 1 pour tracer les polices pleines. Lorsque vous exportez votre dessin au format PostScript

l'aide de la mthode Export et


l'imprimez sur une imprimante PostScript, la police est trace comme spcifi.

Envoyez-nous vos commentaires sur cette page.
AutoCAD est compatible avec la norme de codage des caractres Unicode. Une police Unicode peut contenir 65535 caractres, avec des formes utilises dans
de nombreuses langues. Toutes les polices SHX propres AutoCAD sont prsent des polices Unicode.
Certains alphabets utilisent des fichiers texte comportant des milliers de caractres non-ASCII. Pour grer ces types de fichier, AutoCAD fournit un fichier de
dfinition des caractres particulier (fichier de grandes polices). Vous pouvez dfinir un style utilisant la fois des fichiers de police normale et de grande police.
Pour spcifier des polices normales, utilisez la proprit FontFile Pour spcifier des polices de grande taille, utilisez la proprit BigFontFile
Remarque Les noms de fichiers de polices ne doivent pas contenir de virgules.
AutoCAD vous permet de remplacer une police par une autre et de choisir la police par dfaut. Pour de plus amples informations ce sujet, reportez-vous la
section Polices de substitution.
Modification des fichiers de polices
Cet exemple modifie les proprits FontFile et BigFontFile. Vous devez remplacer les informations de chemin d'accs donnes dans cet exemple par les noms
de chemin et de fichier appropris votre systme.
Sub Ch4_ChangeFontFiles()
ThisDrawing.ActiveTextStyle.BigFontFile = _
"C:/AutoCAD/Fonts/bigfont.shx"
ThisDrawing.ActiveTextStyle.fontFile = _
"C:/AutoCAD/Fonts/italic.shx"
End Sub

Cration et modification d'entits AutoCAD


Utilisation de polices Unicode et de polices de grande taille

Envoyez-nous vos commentaires sur cette page.
La hauteur de texte dtermine, en units de dessin, la taille des lettres dans la police utilise. Cette valeur reprsente en gnral la taille des majuscules, sauf
dans le cas des polices TrueType.
Pour ces dernires, la valeur spcifie correspondant la hauteur du texte peut ne pas reprsenter la hauteur des lettres majuscules. La hauteur spcifie
reprsente la hauteur d'une lettre majuscule plus une zone rserve aux accents et autres marques utilises dans les langues autres que l'anglais. La partie
relative des zones affectes aux lettres majuscules et aux caractres accentus est dtermine par l'auteur de la police au moment de la conception de cette
dernire et par consquent varie d'une police l'autre.
En plus de la hauteur d'une lettre majuscule et de la zone d'ascension comprises dans la hauteur spcifie par l'utilisateur, les polices TrueType ont une zone
de descente pour les parties de caractres qui se prolongent sous la ligne d'insertion de texte. Les caractres y, j, p, g et q en sont quelques exemples.
Pour spcifier la hauteur du texte, utilisez la proprit Height Cette proprit accepte uniquement des nombres positifs.
Modification de la hauteur d'un objet Text
Cet exemple cre une ligne de texte, puis modifie sa hauteur.
Sub Ch4_ChangeTextHeight()
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim height As Double
' Define the text object
textString = "Hello, World."
insertionPoint(0) = 3
insertionPoint(1) = 3
insertionPoint(2) = 0
height = 0.5
' Create the text object in model space
Set textObj = ThisDrawing.ModelSpace. _
AddText(textString, insertionPoint, height)
' Change the value of the Height to 1
textObj.height = 1
textObj.Update
End Sub
Cration et modification d'entits AutoCAD


Dfinition de la hauteur du texte

Page 89 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'angle d'inclinaison fixe le degr d'inclinaison des caractres vers la droite ou la gauche. L'angle reprsente le dcalage par rapport son axe vertical (90
degrs). Pour dfinir l'angle d'inclinaison, utilisez la proprit ObliqueAngle L'angle d'inclinaison doit tre exprim en radians. Un angle positif spcifie une
inclinaison vers la droite, une valeur ngative se voit ajouter 2*PI pour tre convertie en son quivalent positif.
Cration d'un texte oblique
Cet exemple cre un objet Text qui est ensuite inclin de 45 degrs.
Sub Ch4_ObliqueText()
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim height As Double
' Define the text object
textString = "Hello, World."
insertionPoint(0) = 3
insertionPoint(1) = 3
insertionPoint(2) = 0
height = 0.5
' Create the text object in model space
Set textObj = ThisDrawing.ModelSpace. _
AddText(textString, insertionPoint, height)
' Change the value of the ObliqueAngle
' to 45 degrees (.707 radians)
textObj.ObliqueAngle = 0.707
textObj.Update
End Sub

Cration et modification d'entits AutoCAD


Dfinition de l'angle d'inclinaison

Envoyez-nous vos commentaires sur cette page.
Le drapeau de gnration de texte indique si le texte est affich de droite gauche ou invers. Pour dfinir ce drapeau, utilisez la proprit TextGenerationFlag
Pour afficher le texte de droite gauche, entrez acTextFlagBackward pour cette proprit. Pour afficher le texte invers, entrez acTextFlagUpsideDown
pour cette proprit. Pour combiner ces deux attributs, entrez acTextFlagBackward+acTextFlagUpsidedown pour cette proprit.
Affichage de texte de droite gauche
Cet exemple cre une ligne de texte, puis l'affiche de droite gauche l'aide de la proprit TextGenerationFlag.
Sub Ch4_ChangingTextGenerationFlag()
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim height As Double
' Create the text object
textString = "Hello, World."
insertionPoint(0) = 3
insertionPoint(1) = 3
insertionPoint(2) = 0
height = 0.5
Set textObj = ThisDrawing.ModelSpace. _
AddText(textString, insertionPoint, height)
' Change the value of the TextGenerationFlag
textObj.TextGenerationFlag = acTextFlagBackward
textObj.Update
End Sub

Cration et modification d'entits AutoCAD


Configuration d'un drapeau de gnration de texte

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD


Utilisation des lignes de texte

Page 90 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Le texte que vous ajoutez aux dessins contient diverses informations. Il peut s'agir d'une spcification complexe, d'un cartouche, d'un libell ou mme d'une
partie du dessin. Pour des entres plus courtes ne requrant pas plusieurs polices ou lignes, crez des lignes de texte l'aide de l'objet Text. Les lignes de
texte conviennent davantage aux libells.
Rubriques de cette section :
Cration d'une ligne de texte
Formatage des lignes de texte
Alignement des lignes de texte
Modification des lignes de texte

Envoyez-nous vos commentaires sur cette page.
Lors de l'utilisation de lignes de texte, chaque ligne de texte individuelle est un objet distinct. Pour crer un objet LineText, utilisez la mthode AddText Cette
mthode requiert la saisie de trois valeurs : la chane de texte, le point d'insertion et la hauteur du texte.
La chane de texte est le texte lui-mme afficher. Les caractres Unicode, les codes de contrle et les caractres spciaux sont accepts. Le point d'insertion
est un tableau de type Variant qui contient trois coordonnes doubles reprsentant les coordonnes SCG 3D o placer le texte dans le dessin. La hauteur du
texte est un nombre positif reprsentant la hauteur du texte en majuscules. Elle est mesure en units courantes.
Pour crer une ligne de texte
L'exemple suivant cre une ligne de texte dans l'espace objet la coordonne (2, 2, 0).
Sub Ch4_CreateText()
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim height As Double
' Create the text object
textString = "Hello, World."
insertionPoint(0) = 2
insertionPoint(1) = 2
insertionPoint(2) = 0
height = 0.5
Set textObj = ThisDrawing.ModelSpace. _
AddText(textString, insertionPoint, height)
textObj.Update
End Sub

Cration et modification d'entits AutoCAD


Cration d'une ligne de texte

Envoyez-nous vos commentaires sur cette page.
Un objet Text prend, lors de sa cration, le style de texte actif. Vous pouvez modifier le formatage de l'objet Text en changeant son style de texte associ ou en
modifiant ses proprits. Il est impossible d'appliquer des formats des mots et caractres individuels.
Pour modifier un style de texte associ un objet Text individuel, dfinissez la proprit StyleName sur un nouveau style de texte. Une fois un style de texte
modifi, utilisez la mthode Update de l'objet Text pour visualiser les modifications dans le dessin.
En plus des proprits modifiables standard des entits (couleur, calque, type de ligne, etc.), d'autres proprits que vous pouvez modifier sur un objet Text
sont les suivantes :
Alignment
Spcifie l'alignement horizontal et vertical du texte.
InsertionPoint
Spcifie le point d'insertion du texte.
ObliqueAngle
Spcifie l'angle d'inclinaison de l'objet Text individuel.
Rotation
Spcifie l'angle de rotation en radians du texte.
ScaleFactor
Spcifie le facteur d'chelle du texte.
TextAlignmentPoint
Spcifie le point d'alignement du texte.
TextGenerationFlag
Indique si le texte est affich de gauche droite, invers ou les deux simultanment.
Cration et modification d'entits AutoCAD


Formatage des lignes de texte

Page 91 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
TextString
Spcifie la chane de texte affiche.
Une fois la proprit modifie, utilisez la mthode Update pour visualiser les modifications dans le dessin.
Remarque Pour obtenir la liste complte des mthodes et proprits, reportez-vous la documentation sur l'objet Text dans le manuel AutoCADActiveX and
VBA Reference.

Envoyez-nous vos commentaires sur cette page.
Vous pouvez justifier horizontalement et verticalement des lignes de texte. L'alignement s'effectue gauche par dfaut. Pour dfinir les options d'alignement
horizontal et vertical, utilisez la proprit Alignment
Ralignement de texte
Dans cet exemple, l'utilisateur cre un objet Text et un objet Point. L'objet Point est dfini sur le point d'alignement du texte et prend la forme d'un rticule rouge
pour tre facilement repr. L'alignement du texte est modifi et une bote de message s'affiche pour suspendre l'excution de la macro. Vous pouvez alors
constater la modification de l'alignement du texte.
Sub Ch4_TextAlignment()
Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim height As Double
' Define the new Text object
textString = "Hello, World."
insertionPoint(0) = 3
insertionPoint(1) = 3
insertionPoint(2) = 0
height = 0.5
' Create the Text object in model space
Set textObj = ThisDrawing.ModelSpace. _
AddText(textString, insertionPoint, height)
' Create a point over the text alignment point,
' so we can better visualize the alignment process
Dim pointObj As AcadPoint
Dim alignmentPoint(0 To 2) As Double
alignmentPoint(0) = 3
alignmentPoint(1) = 3
alignmentPoint(2) = 0
Set pointObj = ThisDrawing.ModelSpace. _
AddPoint(alignmentPoint)
pointObj.Color = acRed
' Set the point style to crosshair
ThisDrawing.SetVariable "PDMODE", 2
' Align the text to the Left
textObj.Alignment = acAlignmentLeft
ThisDrawing.Regen acActiveViewport
MsgBox "The Text object is now aligned left"
' Align the text to the Center
textObj.Alignment = acAlignmentCenter
' Align the text to the point (necessary for
' all but left aligned text.)
textObj.TextAlignmentPoint = alignmentPoint
ThisDrawing.Regen acActiveViewport
MsgBox "The Text object is now centered"
' Align the text to the Right
textObj.Alignment = acAlignmentRight
ThisDrawing.Regen acActiveViewport
MsgBox "The Text object is now aligned right"
End Sub

Cration et modification d'entits AutoCAD


Alignement des lignes de texte

Envoyez-nous vos commentaires sur cette page.
L'objet Text peut subir les mmes modifications que tous les autres objets d'AutoCAD (dplacement, rotation, suppression et copie). Vous pouvez galement
crer une copie miroir d'un texte. Pour viter que le texte soit invers lors d'une opration de copie-miroir, affectez la valeur 0 la variable systme MIRRTEXT.
La liste suivante prsente quelques mthodes d'dition d'un objet Text. Pour obtenir une liste complte, reportez-vous la documentation sur l'objet Text dans
le manuel ActiveX and VBA Reference d'AutoCAD.
Cration et modification d'entits AutoCAD


Modification des lignes de texte

Page 92 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
ArrayPolar
Cre un rseau polaire.
ArrayRectangular
Cre un rseau rectangulaire.
Copy
Copie l'objet Text.
Erase
Efface l'objet Text.
Mirror
Rflchit l'objet Text.
Move
Dplace l'objet Text.
Rotate
Fait pivoter l'objet Text.

Envoyez-nous vos commentaires sur cette page.
Pour les entres longues et complexes, crez des paragraphes de texte l'aide de la commande textmult. Un texte multiligne occupe une largeur spcifie
mais peut s'tendre verticalement de faon indfinie. Il est possible d'appliquer un format particulier chacun des mots ou caractres au sein du paragraphe.
Rubriques de cette section :
Cration d'un texte multiligne
Formatage d'un texte multiligne

Cration et modification d'entits AutoCAD


Utilisation de texte multiligne (Textmult)

Envoyez-nous vos commentaires sur cette page.
Vous pouvez crer un paragraphe de texte (objet MText) l'aide de la mthode AddMText Cette mthode requiert la saisie de trois valeurs : la chane de texte,
le point d'insertion dans le dessin o placer le texte et la largeur de la zone de contour du texte.
La chane de texte est le texte lui-mme afficher. Les caractres Unicode, les codes de contrle et les caractres spciaux sont accepts. Le point d'insertion
est un tableau de type Variant qui contient trois coordonnes doubles reprsentant les coordonnes SCG 3D o placer le texte dans le dessin. La largeur du
texte est un nombre positif reprsentant la largeur de la zone de dlimitation du texte. Elle est mesure en units courantes.
Aprs avoir cr un objet MText, vous pouvez lui appliquer une hauteur de texte, une justification, un angle de rotation et un style, ou appliquer un formatage
des caractres slectionns.
Reportez-vous la section traitant de MText dans le manuel ActiveX and VBA Reference d'AutoCAD pour obtenir la liste des mthodes et proprits des objets
MText.
Pour crer un texte multiligne
L'exemple de code suivant cre un objet MText dans l'espace objet la coordonne (2, 2, 0).
Sub Ch4_CreateMText()
Dim mtextObj As AcadMText
Dim insertPoint(0 To 2) As Double
Dim width As Double
Dim textString As String
insertPoint(0) = 2
insertPoint(1) = 2
insertPoint(2) = 0
width = 4
textString = "This is a text string for the mtext object."
' Create a text Object in model space
Set mtextObj = ThisDrawing.ModelSpace. _
AddMText(insertPoint, width, textString)
ZoomAll
End Sub

Cration et modification d'entits AutoCAD


Cration d'un texte multiligne

Envoyez-nous vos commentaires sur cette page.
Cration et modification d'entits AutoCAD
Page 93 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Le nouveau texte que vous entrez adopte automatiquement les caractristiques du style de texte courant. Le style de texte STANDARD est utilis par dfaut.
Vous pouvez ignorer le style de texte par dfaut en appliquant un format de caractre individuel et des proprits l'objet Text. Vous pouvez galement choisir
un formatage ou utiliser des caractres spciaux l'aide des mthodes dcrites dans cette section.
Les proprits telles que le style, la justification, la largeur et la rotation portent obligatoirement sur tout l'objet MText. Utilisez la proprit AttachmentPoint pour
modifier la justification du texte multiligne et la proprit Rotation pour grer l'angle de rotation des bords du texte.
La proprit StyleName dfinit les polices et le formatage par dfaut du nouveau texte. A mesure que vous crez du texte, vous pouvez slectionner le style
que vous souhaitez utiliser, partir d'une liste de styles existants. Lorsque vous modifiez le style d'un paragraphe contenant des caractres formats, le style
est appliqu au paragraphe entier et le formatage de caractres n'est pas ncessairement conserv. Par exemple, si vous remplacez un style TrueType par un
style utilisant une police SHX ou par une autre police TrueType, TrueType ne conserve aucun formatage et applique la nouvelle police au paragraphe entier.
Les options de formatage telles que le soulignement, le texte superpos ou les polices peuvent tre appliques individuellement aux mots et aux caractres
d'un paragraphe. Vous pouvez galement changer la couleur, la police et la hauteur de texte. Vous pouvez modifier l'espacement entre les diffrents caractres
du texte ou augmenter la largeur des caractres.
Pour appliquer le formatage une partie du texte uniquement, placez le texte entre accolades ({ }). Huit niveaux d'imbrication sont possibles.
Vous pouvez galement entrer les quivalents ASCII des codes de contrle dans les lignes ou les paragraphes pour spcifier un style de formatage ou des
caractres spciaux, tels que les symboles de tolrance ou de cotation.
Les caractres de contrle suivants permettent de crer le texte de l'illustration : (Pour connatre l'quivalent ASCII de cette chane, reportez-vous l'exemple
prsent aprs l'illustration.)
{{\H1.5x; Big text} \A2; over text\A1;/\A0; under text}

Pour de plus amples informations sur le formatage du texte multiligne, reportez-vous la section Formatage des caractres d'un texte multiligne du Manuel
d'utilisation.
Utilisation de caractres de contrle pour formater le texte
Cet exemple cre et formate un objet MText.
Sub Ch4_FormatMText()
Dim mtextObj As AcadMText
Dim insertPoint(0 To 2) As Double
Dim width As Double
Dim textString As String
insertPoint(0) = 2
insertPoint(1) = 2
insertPoint(2) = 0
width = 4
' Define the ASCII characters for the control characters
Dim OB As Long ' Open Bracket {
Dim CB As Long ' Close Bracket }
Dim BS As Long ' Back Slash \
Dim FS As Long ' Forward Slash /
Dim SC As Long ' Semicolon ;
OB = Asc("{")
CB = Asc("}")
BS = Asc("\")
FS = Asc("/")
SC = Asc(";")
' Assign the text string the following line of control
' characters and text characters:
' {{\H1.5x; Big text}\A2; over text\A1;/\A0; under text}
textString = Chr(OB) + Chr(OB) + Chr(BS) + "H1.5x" _
+ Chr(SC) + "Big text" + Chr(CB) + Chr(BS) + "A2" _
+ Chr(SC) + "over text" + Chr(BS) + "A1" + Chr(SC) _
+ Chr(FS) + Chr(BS) + "A0" + Chr(SC) + "under text" _
+ Chr(CB)
' Create a text Object in model space
Set mtextObj = ThisDrawing.ModelSpace. _
AddMText(insertPoint, width, textString)
ZoomAll
End Sub


Formatage d'un texte multiligne

Envoyez-nous vos commentaires sur cette page.
Vous pouvez utiliser des caractres Unicode, des codes de contrle et des caractres spciaux dans une chane de texte pour reprsenter des symboles.
(Vous devez entrer tous les caractres spciaux en utilisant leur quivalent ASCII.)
Cration et modification d'entits AutoCAD


Utilisation de caractres Unicode, de codes de contrle et de caractres spciaux

Page 94 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous pouvez crer des caractres spciaux en entrant les chanes de caractres Unicode suivantes :
En plus de l'utilisation de caractres Unicode pour obtenir des caractres spciaux, vous pouvez spcifier un caractre spcial en incluant des informations de
contrle dans la chane de caractres. Entrez deux signes de pourcentage (%%) au dbut de chaque squence de contrle. Ainsi, le code de contrle suivant
permet, avec les polices de texte standard d'AutoCAD et les polices PostScript, de dessiner le caractre nnn :
%%nnn
Dans une chane de texte VB ou VBA, cet exemple serait entr comme suit :
Dim percent as Long
percent = ASC("%")
TextString = chr(percent) + chr(percent) + "nnn"
Les codes de contrle suivants sont compatibles seulement avec les polices de texte standard d'AutoCAD :

Description des caractres Unicode
Caractre Unicode Description
\U+00B0 Symbole de degr
\U+00B1 Symbole de tolrance plus/moins
\U+2205 Symbole de cote de diamtre
Description des codes de contrle
Code de contrle Description
%%o Active/dsactive le mode de surlignement.
%%u Active/dsactive le mode de soulignement.
%%d Dessine un symbole de degr.
%%p Dessine un symbole de tolrance plus/moins.
%%c Dessine un symbole de cote de diamtre.
%%% Dessine le symbole de pourcentage.
Envoyez-nous vos commentaires sur cette page.
Vous pouvez dsigner les polices que vous dsirez utiliser la place d'autres polices ou comme polices par dfaut lorsque AutoCAD ne parvient pas localiser
la police spcifie dans un dessin.
Les polices utilises pour le texte de votre dessin sont dfinies par le style de texte et, dans le cas des paragraphes, par les options de formatage appliques
certaines parties du texte.
Vous pouvez utiliser des tables de correspondance des polices pour vous assurer que votre dessin ne contiendra que certaines polices, mais galement pour
convertir les polices utilises en d'autres polices. Ces tables permettent de respecter les normes dfinies par votre entreprise en matire de police ou de faciliter
le traitement en diffr des fichiers. AutoCAD est fourni avec une table de correspondance de polices par dfaut. Vous pouvez modifier ce fichier partir de
n'importe quel diteur de texte ASCII. Il est galement possible de spcifier une autre table de correspondance des polices en utilisant la proprit FontFileMap
sur l'objet Preferences
Pour de plus amples informations sur les correspondances entre polices et sur leur substitution, reportez-vous la section Polices de substitution du Manuel
d'utilisation.
Rubriques de cette section :
Spcification d'une police de substitution par dfaut

Cration et modification d'entits AutoCAD


Polices de substitution

Envoyez-nous vos commentaires sur cette page.
Si votre dessin utilise une police non installe sur le systme, AutoCAD la remplace automatiquement par la police de substitution que vous avez choisie. Par
dfaut, AutoCAD utilise le fichier simplex.shx. Toutefois, vous pouvez spcifier une autre police si ncessaire. Utilisez la proprit AltFontFile de l'objet
Preferences pour choisir le fichier de la police de substitution.
Si votre style de texte utilise une grande police, vous pouvez mapper cette police sur une autre police en utilisant la proprit AltFontFile. Cette variable
systme utilise par dfaut la paire de fichiers de police txt.shx, bigfont.shx.
Si AutoCAD ne trouve pas le fichier de police l'ouverture d'un dessin, il applique un ensemble prdfini de rgles de substitution.
Cration et modification d'entits AutoCAD


Spcification d'une police de substitution par dfaut

Page 95 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 effectue la vrification orthographique en comparant les mots du dessin ceux du dictionnaire principal courant. Les mots que vous ajoutez sont
placs dans le dictionnaire personnalis actif au moment de la vrification. Vous pouvez, par exemple, ajouter des noms propres pour viter qu'AutoCAD
indique systmatiquement une faute d'orthographe.
Pour effectuer la vrification dans une autre langue, changez de dictionnaire principal.
L'Automatisation ActiveX d'AutoCAD ne propose aucune mthode de vrification de l'orthographe. Toutefois, vous pouvez spcifier un dictionnaire principal
diffrent l'aide de la proprit MainDictionary, ou un dictionnaire personnalis diffrent l'aide de la proprit CustomDictionary de l'objet Preferences
Pour de plus amples informations sur la vrification de l'orthographe, reportez-vous la section Vrification orthographique du Manuel d'utilisation.

Cration et modification d'entits AutoCAD


Vrification orthographique

Envoyez-nous vos commentaires sur cette page.
Les cotes ajoutent des dimensions un dessin. Les tolrances dfinissent les carts admissibles pour une cote fixe. Automatisation ActiveX vous permet de
grer facilement la cotation l'aide de styles de cotes et de styles de cotes modifis.
Rubriques de cette section :
Concepts de cotation
Cration de cotes
Modification des cotes
Utilisation des styles de cotes
Cotation dans l'espace objet et dans l'espace papier
Cration de lignes de repre et d'annotations
Utilisation des tolrances gomtriques



Cotes et tolrances

Envoyez-nous vos commentaires sur cette page.
Les cotes indiquent les dimensions gomtriques des objets, les distances qui les sparent ou les angles qu'ils dcrivent, ou bien encore les coordonnes X et
Y d'un dtail du dessin. 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

et pour interroger ces coordonnes.


Pour de plus amples informations sur l'entre de coordonnes 3D, reportez-vous la section Dfinition de coordonnes 3D du Manuel d'utilisation.
Dfinition et recherche des coordonnes des polylignes 2D et 3D
Dans cet exemple, l'utilisateur cre deux polylignes, chacune d'elles comportant trois coordonnes. La premire est une polyligne 2D et la deuxime une
polyligne 3D. Notez que la longueur du rseau contenant les sommets est tendue pour inclure les coordonnes Z dans la cration de la polyligne 3D.
L'exemple se termine en recherchant les coordonnes des polylignes puis en les affichant dans une bote de message.
Sub Ch8_Polyline_2D_3D()
Dim pline2DObj As AcadLWPolyline
Dim pline3DObj As AcadPolyline
Dim points2D(0 To 5) As Double
Dim points3D(0 To 8) As Double
' Define three 2D polyline points
points2D(0) = 1: points2D(1) = 1
points2D(2) = 1: points2D(3) = 2
points2D(4) = 2: points2D(5) = 2
' Define three 3D polyline points
points3D(0) = 1: points3D(1) = 1: points3D(2) = 0
points3D(3) = 2: points3D(4) = 1: points3D(5) = 0
points3D(6) = 2: points3D(7) = 2: points3D(8) = 0
' Create the 2D light weight Polyline
Set pline2DObj = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points2D)
pline2DObj.Color = acRed
pline2DObj.Update
' Create the 3D polyline
Set pline3DObj = ThisDrawing.ModelSpace. _
AddPolyline(points3D)
pline3DObj.Color = acBlue
pline3DObj.Update
' Query the coordinates of the polylines
Dim get2Dpts As Variant
Dim get3Dpts As Variant
get2Dpts = pline2DObj.Coordinates
get3Dpts = pline3DObj.Coordinates
' Display the coordinates
MsgBox ("2D polyline (red): " & vbCrLf & _
get2Dpts(0) & ", " & get2Dpts(1) & vbCrLf & _
get2Dpts(2) & ", " & get2Dpts(3) & vbCrLf & _
get2Dpts(4) & ", " & get2Dpts(5))
MsgBox ("3D polyline (blue): " & vbCrLf & _
get3Dpts(0) & ", " & get3Dpts(1) & ", " & _
get3Dpts(2) & vbCrLf & _
get3Dpts(3) & ", " & get3Dpts(4) & ", " & _
get3Dpts(5) & vbCrLf & _
get3Dpts(6) & ", " & get3Dpts(7) & ", " & _
get3Dpts(8))
End Sub
Travail en 3D


Dtermination de coordonnes en 3D

Envoyez-nous vos commentaires sur cette page.
Page 132 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

La cration d'un systme de coordonnes utilisateur (SCU) permet de modifier l'emplacement de l'origine (0, 0, 0) et l'orientation du plan XY et de l'axe Z. Vous
tes entirement libre de dfinir et d'orienter les axes de votre systme de coordonnes comme vous le souhaitez dans l'espace 3D. D'autre part, il est possible
de crer, d'enregistrer et de rutiliser un nombre quelconque des systmes de coordonnes utilisateur. L'entre et l'affichage des coordonnes s'effectuent en
fonction du SCU courant.
Pour indiquer l'emplacement de l'origine et l'orientation du systme de coordonnes utilisateur, vous pouvez afficher l'icne SCU au niveau du point d'origine du
SCU, l'aide de la proprit UCSIconAtOrigin Si l'icne SCU est active (voir la proprit UCSIconOn) et n'est pas affiche au point d'origine, elle est affiche
la coordonne SCG dfinie par la variable systme UCSORG.
Vous pouvez crer un nouveau systme de coordonnes utilisateur l'aide de la mthode Add Cette mthode requiert la saisie de quatre valeurs : la
coordonne de l'origine, une coordonne sur les axes X et Y et le nom du SCU.
Dans l'Automatisation ActiveX d'AutoCAD

, 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

ont accs l'ensemble de la gamme d'objets ActiveX

. Elles peuvent appeler les mthodes ActiveX, dfinir et extraire les


proprits correspondantes. En outre, les applications Visual LISP peuvent excuter des macros VBA par l'intermdiaire de la commande VBARUN
Les applications ActiveX et VBA peuvent excuter les applications Visual LISP par l'intermdiaire de la mthode SendCommand. Celle-ci permet aux
applications ActiveX et VBA d'envoyer une commande la ligne de commande AutoCAD.
Pour de plus amples informations sur l'accs aux objets ActiveX via Visual LISP, voir le manuel AutoLISP Developer's Guide.

Interaction avec d'autres applications et API Windows


Interaction avec des applications Visual LISP

Envoyez-nous vos commentaires sur cette page.
La technologie ActiveX d'AutoCAD

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

(VBA IDE). Ce dernier est install automatiquement lorsque vous


slectionnez l'option Complte du programme d'installation d'AutoCAD. Si vous avez slectionn l'option Personnalise lors de l'installation d'AutoCAD, il se
peut que VBA IDE ne soit pas install ; si tel est le cas, il vous faudra lancer nouveau le programme d'installation d'AutoCAD pour l'installer.
Pour vrifier si VBA IDE est install
1. Lancez AutoCAD.
2. Entrez vbaide sur la ligne de commande, puis appuyez sur ENTREE.
Si VBA IDE s'ouvre, cela signifie qu'il est install. Dans le cas inverse, vous recevrez un message confirmant qu'il n'est pas install.

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Analyse de l'environnement

Envoyez-nous vos commentaires sur cette page.
Votre objectif dans le cadre de ce didacticiel est de dvelopper une nouvelle macro pour AutoCAD permettant de dessiner un sentier de jardin et d'agrmenter
ce dernier de dalles en bton rondes. Votre nouvelle macro aura la squence d'invite suivante :
Command: gardenpath
Start point of path: L'utilisateur dfinira le point de dpart
Endpoint of path: L'utilisateur dfinira l'extrmit
Half width of path: L'utilisateur dfinira un nombre
Radius of tiles: L'utilisateur dfinira un nombre
Spacing between tiles: L'utilisateur dfinira un nombre
Votre macro invite d'abord l'utilisateur entrer le point de dpart et l'extrmit afin de dfinir le trait d'axe d'un sentier. Elle l'invite, ensuite, entrer la demi-
largeur du sentier et le rayon des dalles rondes. Enfin, l'utilisateur entre l'espacement entre les dalles. On utilise la demi-largeur du sentier plutt que sa largeur
totale car la premire est plus facile visualiser depuis le trait d'axe du sentier.

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Dfinition de l'objectif

Envoyez-nous vos commentaires sur cette page.
Vous dveloppez la macro Gardenpath (sentier de jardin) l'aide d'une srie de fonctions et de sous-programmes. De nombreux sous-programmes requirent
la manipulation d'angles. Dans la mesure o ActiveX dfinit les angles en radians mais que la plupart des utilisateurs le fait en degrs, commencez par crer
une fonction qui convertit ces derniers en radians.
Pour convertir les degrs en radians
1. Entrez vbaide sur la ligne de commande, puis appuyez sur ENTREE.
2. Dans le menu Affichage de VBA IDE, cliquez sur Code pour ouvrir la fentre Code.
3. Entrez le code suivant dans la fentre Code :
Const pi = 3.14159
' Convert angle in degrees to radians
Function dtr(a As Double) As Double
dtr = (a / 180) * pi
End Function
Notez que ds que vous appuyez sur ENTREE aprs avoir entr la ligne Function dtr(a As Double) As Double, End Function est ajout
automatiquement. Ainsi, tous les sous-programmes et fonctions ont une instruction End associe.
Considrez prsent le code. D'abord, la constante pi est dfinie comme gale la valeur 3.14159. Cela vous permet d'utiliser le mot pi au lieu de taper
3.14159 chaque fois que vous devez utiliser cette valeur.
Vous dfinissez ensuite une fonction dnomme dtr (diminutif pour "degrees to radians", degrs en radians). La fonction dtr comprend un argument,
savoir a, qui est l'angle en degrs. Le rsultat est obtenu en divisant l'angle en degrs par 180, puis en multipliant cette valeur par pi. La ligne
commenant par une apostrophe est un commentaire ; VBA ignore tout le texte d'une ligne figurant aprs une apostrophe.
Cette fonction peut prsent tre utilise dans d'autres sous-programmes du projet.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Ecriture de la premire fonction

Page 179 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
4. Enregistrez votre travail. Cliquez sur Fichier Enregistrer Global1. Dnommez le projet gardenpath.dvb.
Ajoutez ensuite une fonction afin de calculer la distance entre les points.
Pour calculer la distance entre deux points
1. Entrez le code suivant aprs la fonction dtr:
' Calculate distance between two points
Function distance(sp As Variant, ep As Variant) _
As Double
Dim x As Double
Dim y As Double
Dim z As Double
x = sp(0) - ep(0)
y = sp(1) - ep(1)
z = sp(2) - ep(2)
distance = Sqr((Sqr((x ^ 2) + (y ^ 2)) ^ 2) + (z ^ 2))
End Function
2. Enregistrez votre travail.

Envoyez-nous vos commentaires sur cette page.
La macro Gardenpath demande l'utilisateur d'indiquer l'endroit o dessiner le sentier, la largeur de ce dernier, la largeur des dalles en bton et l'espacement
qu'il doit y avoir entre elles. Vous dfinissez un sous-programme qui soumet l'ensemble de ces requtes l'utilisateur, puis qui calcule des nombres utiliser
dans le reste de la macro.
Dans ce sous-programme, vous utilisez les mthodes d'entre utilisateur trouves dans l'objet Utility
Rubriques de cette section :
Dclaration de variables
Saisie du sous-programme gpuser

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Obtention d'entre

Envoyez-nous vos commentaires sur cette page.
Le sous-programme suivant utilise plusieurs variables. Toutes les variables doivent tre dclares afin que le sous-programme puisse y accder.
Dans la fentre Code de VBA IDE, entrez le code suivant, immdiatement aprs la ligne Const pi = 3.14159:
Private sp(0 To 2) As Double
Private ep(0 To 2) As Double
Private hwidth As Double
Private trad As Double
Private tspac As Double
Private pangle As Double
Private plength As Double
Private totalwidth As Double
Private angp90 As Double
Private angm90 As Double
Considrez prsent les deux listes droulantes situes en haut de la fentre Code. Ces dernires, dnommes zone Objet et zone Procdure, affichent
respectivement les termes (Gnral) et (Dclarations). Elles indiquent la section du code dans lequel vous travaillez et vous permettent de passer rapidement
une autre section, simplement en slectionnant cette dernire dans la liste. La section (Dclarations) sert dclarer les variables que vous prvoyez d'utiliser
dans plusieurs sous-programmes.

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Dclaration de variables

Envoyez-nous vos commentaires sur cette page.
Le sous-programme gpuser demande l'utilisateur les informations permettant de dessiner un sentier de jardin. Entrez le code suivant aprs la fonction
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Saisie du sous-programme gpuser

Page 180 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
distance:
' Acquire information for garden path
Private Sub gpuser()
Dim varRet As Variant
varRet = ThisDrawing.Utility.GetPoint( _
, "Start point of path: ")
sp(0) = varRet(0)
sp(1) = varRet(1)
sp(2) = varRet(2)
varRet = ThisDrawing.Utility.GetPoint( _
, "Endpoint of path: ")
ep(0) = varRet(0)
ep(1) = varRet(1)
ep(2) = varRet(2)
hwidth = ThisDrawing.Utility. _
GetDistance(sp, "Half width of path: ")
trad = ThisDrawing.Utility. _
GetDistance(sp, "Radius of tiles: ")
tspac = ThisDrawing.Utility. _
GetDistance(sp, "Spacing between tiles: ")
pangle = ThisDrawing.Utility.AngleFromXAxis( _
sp, ep)
totalwidth = 2 * hwidth
plength = distance(sp, ep)
angp90 = pangle + dtr(90)
angm90 = pangle - dtr(90)
End Sub
Dans le sous-programme gpuser, la ligne Dim varRet As Variant dclare la variable varRet. Cette variable n'tant utilise que dans ce sous-
programme, elle peut tre dclare ici localement, plutt que dans la section (Declarations).
La ligne suivante, varRet = ThisDrawing.Utility.GetPoint( , "Start point of path: "), appelle la mthode GetPoint. Le caractre de
soulignement figurant dans la ligne a pour objet de faciliter la lecture d'une ligne longue et indique VBA de lire la ligne suivante comme si elle se trouvait sur la
mme ligne. Vous pouvez supprimer le caractre de soulignement en plaant l'ensemble du code sur la mme ligne.
Pour accder la mthode GetPoint, vous devez d'abord parcourir l'objet ThisDrawing qui reprsente l'objet en cours d'utilisation. Aprs tre entr dans
ThisDrawing, vous devez saisir un point (.), ce qui signifie que vous allez accder quelque chose dans cet objet. Une fois le point saisi, vous devez entrer
Utility et un autre point. Une fois de plus, vous allez accder quelque chose dans l'objet Utility. Enfin, entrez GetPoint, qui est le nom de la mthode que
vous appelez.
La mthode GetPoint comprend deux paramtres. Le premier paramtre, facultatif, ne sera pas utilis. Laissez-le vide et ne tapez qu'une virgule pour marquer
son emplacement. Le second paramtre, galement facultatif, est l'invite. Pour celui-ci, vous avez entr une chane invitant l'utilisateur saisir le point de
dpart. Ce dernier est plac dans la variable varRet. Les trois lignes suivantes du sous-programme copient le point retourn par l'utilisateur dans le tableau
sp.
L'extrmit est retourne de la mme manire.
La mthode GetDistance permet d'obtenir la demi-largeur du sentier (hwidth), le rayon des dalles (trad) et l'espacement entre ces dernires (tspac). Cette
mthode comprend deux paramtres. Le premier est un point de base. Vous devez fournir le point de dpart pour cette valeur. Le second paramtre est l'invite,
pour laquelle vous fournissez une chane invitant l'utilisateur effectuer l'action approprie. La mthode GetDistance s'illustre par le fait qu'elle puisse retourner
aussi bien une valeur entre sur la ligne de commande que la distance entre un point slectionn dans AutoCAD et le point de dpart.
Le sous-programme se met calculer plusieurs variables utilises ultrieurement dans la macro. La variable pangle, dfinie sur l'angle entre le point de dpart
et l'extrmit, peut tre trouve l'aide de la mthode AngleFromXAxis La largeur du sentier est calcule en multipliant la demi-largeur par deux. La variable
plength, dfinie sur la longueur du sentier, peut tre trouve l'aide de la fonction Distance entre prcdemment. Enfin, calculez et enregistrez l'angle du
sentier plus et moins 90 degrs respectivement dans angp90 et angm90.
L'illustration suivante indique la faon dont les variables obtenues par gpuser dfinissent les dimensions du sentier.
Page 181 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

Enregistrez votre travail.

Envoyez-nous vos commentaires sur cette page.
Maintenant que vous connaissez l'emplacement et la largeur du sentier, vous pouvez en dessiner les contours. Ajoutez le code suivant sous le sous-programme
gpuser:
' Draw outline of path
Private Sub drawout()
Dim points(0 To 9) As Double
Dim pline As AcadLWPolyline
Dim varRet As Variant
varRet = ThisDrawing.Utility.PolarPoint( _
sp, angm90, hwidth)
points(0) = varRet(0)
points(1) = varRet(1)
points(8) = varRet(0)
points(9) = varRet(1)
varRet = ThisDrawing.Utility.PolarPoint( _
varRet, pangle, plength)
points(2) = varRet(0)
points(3) = varRet(1)
varRet = ThisDrawing.Utility.PolarPoint( _
varRet, angp90, totalwidth)
points(4) = varRet(0)
points(5) = varRet(1)
varRet = ThisDrawing.Utility.PolarPoint( _
varRet, pangle + dtr(180), plength)
points(6) = varRet(0)
points(7) = varRet(1)
Set pline = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
End Sub
Ce sous-programme permet de dessiner les contours du sentier l'aide de la mthode AddLightweightPolyline Cette mthode requiert la saisie d'un paramtre :
un tableau de points constituant la polyligne. Vous devez trouver tous les points constituant l'objet Polyligne et les placer dans un tableau dans l'ordre o ils
doivent tre dessins. Pour cette polyligne, les points requis sont les coins du sentier.
Pour trouver les coins du sentier, utilisez la mthode PolarPoint Celle-ci permet de trouver un point tant un angle et une distance d'un point de base dfinis.
Commencez par le point de dpart (sp) et recherchez le premier coin du sentier, en travaillant dans le sens inverse des aiguilles d'une montre. Ce coin se
trouve mi-largeur du sentier (hwidth) et -90 degrs de l'angle du sentier. Dans la mesure o vous souhaitez dessiner un rectangle ferm pour figurer le
sentier, ce point devient le premier et le dernier du tableau. Par consquent, les coordonnes X et Y retournes par la mthode PolarPoint sont dplacs aux
premire et dernire positions du tableau de points.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Dessin des contours du sentier

Page 182 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
La recherche des autres coins du sentier s'effectue de la mme manire l'aide de la longueur et de la largeur du sentier (plength et width), ainsi que de
son angle. Chaque fois que la mthode PolarPoint est appele, les coordonnes retournes (varRet) sont copies dans le tableau de points.
Une fois tous les coins identifis dans le tableau de points, la mthode AddLightweightPolyline est appele. Notez que cette mthode est appele depuis l'objet
ModelSpace Si vous deviez excuter cette macro, vous constaterez galement que la polyligne n'est pas encore visible dans AutoCAD. Elle ne le sera pas
avant que vous ne mettiez jour l'affichage, ce que vous ferez ultrieurement.

Envoyez-nous vos commentaires sur cette page.
Maintenant que vous avez dvelopp le sous-programme d'entre utilisateur et le sous-programme permettant de dessiner le contour, vous tes prt
agrmenter le sentier de dalles rondes. Cette tche requiert de recourir la gomtrie.
Dans la fentre Code de VBA IDE, entrez le code suivant, aprs le sous-programme drawout:
' Place one row of tiles the given distance along path
' and possibly offset it
Private Sub drow(pd As Double, offset As Double)
Dim pfirst(0 To 2) As Double
Dim pctile(0 To 2) As Double
Dim pltile(0 To 2) As Double
Dim cir As AcadCircle
Dim varRet As Variant
varRet = ThisDrawing.Utility.PolarPoint( _
sp, pangle, pd)
pfirst(0) = varRet(0)
pfirst(1) = varRet(1)
pfirst(2) = varRet(2)
varRet = ThisDrawing.Utility.PolarPoint( _
pfirst, angp90, offset)
pctile(0) = varRet(0)
pctile(1) = varRet(1)
pctile(2) = varRet(2)
pltile(0) = pctile(0)
pltile(1) = pctile(1)
pltile(2) = pctile(2)
Do While distance(pfirst, pltile) < (hwidth - trad)
Set cir = ThisDrawing.ModelSpace.AddCircle( _
pltile, trad)
varRet = ThisDrawing.Utility.PolarPoint( _
pltile, angp90, (tspac + trad + trad))
pltile(0) = varRet(0)
pltile(1) = varRet(1)
pltile(2) = varRet(2)
Boucle
varRet = ThisDrawing.Utility.PolarPoint( _
pctile, angm90, tspac + trad + trad)
pltile(0) = varRet(0)
pltile(1) = varRet(1)
pltile(2) = varRet(2)
Do While distance(pfirst, pltile) < (hwidth - trad)
Set cir = ThisDrawing.ModelSpace.AddCircle( _
pltile, trad)
varRet = ThisDrawing.Utility.PolarPoint( _
pltile, angm90, (tspac + trad + trad))
pltile(0) = varRet(0)
pltile(1) = varRet(1)
pltile(2) = varRet(2)
Boucle
End Sub
' Draw the rows of tiles
Private Sub drawtiles()
Dim pdist As Double
Dim offset As Double
pdist = trad + tspac
offset = 0
Do While pdist <= (plength - trad)
drow pdist, offset
pdist = pdist + ((tspac + trad + trad) * Sin(dtr(60)))
If offset = 0 Then
offset = (tspac + trad + trad) * Cos(dtr(60))
Else
offset = 0
End If
Boucle
End Sub
Pour comprendre comment ces sous-programmes fonctionnent, reportez-vous l'illustration suivante. Le sous-programme drow dessine une range de dalles
dans le sentier sur une distance dfinie par son premier argument et la dcale perpendiculairement au sentier une distance dfinie par son second argument.
Vous souhaitez dcaler les dalles sur des ranges alternes afin de couvrir plus d'espace et d'obtenir une disposition plus esthtique.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Dessin des dalles

Page 183 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

Le sous-programme drow trouve l'emplacement de la premire range l'aide de la mthode PolarPoint lui permettant de se dplacer le long du sentier sur la
distance dfinie par le premier argument. Il utilise ensuite cette mthode pour dcaler la range perpendiculairement au sentier et l'instruction Puis, le sous-
programme utilise l'instruction While pour continuer dessiner des cercles jusqu'aux bords de ce dernier. La mthode PolarPoint de la premire instruction
While passe l'emplacement de la dalle suivante en conservant une distance de deux rayons de dalles (trad) et un espacement entre les dalles (tspac).
Une seconde boucle while dessine ensuite les dalles de la range dans l'autre direction jusqu' ce que l'autre bord soit atteint.
Le sous-programme drawtiles appelle drow plusieurs reprises pour dessiner les ranges de dalles. Le sous-programme While loop passe dans
l'ensemble du sentier, en appelant drow pour chaque range. Les dalles des ranges adjacentes forment des triangles quilatraux, comme indiqu dans
l'illustration prcdente. Les coins de ces triangles quivalent deux fois le rayon des dalles plus l'espacement qui spare ces dernires. Ainsi, par
trigonomtrie, la distance entre les ranges du sentier correspond au sinus de 60 degrs multipli par cette quantit et le dcalage des ranges impaires au
cosinus de 60 degrs multipli par cette quantit.
L'instruction If est utilise dans drawtiles pour dcaler toutes les autres ranges. Si le dcalage est gal 0, dfinissez-le sur l'espacement entre le centre
des dalles multipli par le cosinus de 60 degrs, comme expliqu pralablement. Dans le cas contraire, dfinissez-le sur 0. Ceci permet de l'appliquer en
alternance sur les ranges, selon vos dsirs.
Enregistrez votre travail.

Envoyez-nous vos commentaires sur cette page.
Vous tes prt combiner les sous-programmes dans la macro Gardenpath. Dans la fentre Code de VBA IDE, entrez le code suivant, aprs le sous-
programme drawtiles:
' Execute command, calling constituent functions
Sub gardenpath()
Dim sblip As Variant
Dim scmde As Variant
gpuser
sblip = ThisDrawing.GetVariable("blipmode")
scmde = ThisDrawing.GetVariable("cmdecho")
ThisDrawing.SetVariable "blipmode", 0
ThisDrawing.SetVariable "cmdecho", 0
drawout
drawtiles
ThisDrawing.SetVariable "blipmode", sblip
ThisDrawing.SetVariable "cmdecho", scmde
End Sub
Le sous-programme path appelle gpuser pour rassembler les entres ncessaires. La mthode GetVariable est ensuite utilise pour obtenir les valeurs
actuelles des variables systme BLIPMODE et CMDECHO ; elle enregistre ces valeurs sous sblip et scmde. Puis, le sous-programme utilise la mthode
SetVariable pour dfinir ces deux variables systme sur 0, en dsactivant, ce faisant, les marques et la confirmation des commandes. Le sentier est ensuite
dessin l'aide des sous-programmes drawout et drawtiles. Enfin, la mthode SetVariable sert rtablir les valeurs d'origine des variables systme.
Vous remarquerez peut-tre qu'il s'agit du seul sous-programme entr ne commenant pas par un mot-cl personnel, ce qui garantit qu'il ne peut tre appel
qu' partir du module actuel. Dans la mesure o l'utilisateur doit pouvoir disposer du sous-programme gardenpath, il vous est recommand de supprimer le
mot-cl personnel.
Enregistrez votre travail.

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Association de tous les lments

Envoyez-nous vos commentaires sur cette page.
Lancez prsent la macro, en excutant paralllement le code.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Excution du code

Page 184 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Dans le menu Outils d'AutoCAD, cliquez sur Macro Macros. Dans la bote de dialogue Macros, slectionnez ThisDrawing.gardenpath et cliquez sur Pas pas.
VBA IDE s'affiche en premier plan, la premire ligne de la macro gardenpath en surbrillance. Il s'agit de la ligne de code sur le point d'tre excute. Pour ce
faire, appuyez sur F8. La ligne de code suivante tre excute est le sous-programme gpuser. Pour excuter le sous-programme gpuser, appuyez
nouveau sur F8.
Vous tes prsent au dbut du programme gpuser. Appuyez encore une fois sur F8 pour mettre en surbrillance la premire mthode GetPoint. Avant
d'excuter cette ligne, ouvrez la fentre Variables locales en cliquant sur Affichage Variables locales. La fentre apparat en bas de VBA IDE. Toutes les
variables locales et leur valeur s'y affichent pendant l'excution de la macro.
Appuyez prsent sur F8 pour excuter la mthode GetPoint Notez que la surbrillance disparat et qu'aucun nouveau code n'est prsent. La mthode
GetPoint attend en effet que l'utilisateur entre un point dans AutoCAD. Basculez vers la fentre AutoCAD. Vous apercevez l'invite que vous avez dfinie dans
l'appel GetPoint de la ligne de commande. Entrez un point.
Le contrle retourne prsent la macro. La ligne suivant l'appel de la mthode GetPoint est mise en surbrillance. Poursuivez l'excution du code en appuyant
sur F8. Rappelez-vous de basculer vers la fentre AutoCAD lorsque vous entrez les informations.

Envoyez-nous vos commentaires sur cette page.
Vous n'avez pas besoin d'excuter le code lorsque vous excutez la macro. Vous pouvez excuter la macro partir du menu Outils en cliquant sur Macro
Macros, en slectionnant une macro, puis en cliquant sur Excuter. Ceci vous permet de voir le flux d'excution de la faon dont un utilisateur le verrait.
Excutez la macro depuis AutoCAD, en entrant les valeurs suivantes :
Start point of the path: 2, 2
Endpoint of the path: 9, 8
Half width of the path: 2
Radius of tiles: 0,2
Spacing between tiles: 0,1
Cet exemple doit permettre de dessiner un sentier de jardin comme indiqu dans la figure suivante :

Vous pouvez faire des essais avec la macro Gardenpath en dfinissant les diffrentes entres.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Excution de la macro

Page 185 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 macro Gardenpath a t crite pour accepter les saisies sur la ligne de commande. Pour ajouter des botes de dialogue, utilisez les feuilles de VBA IDE.
Copiez d'abord la version finale de gardenpath.dvb dans un autre fichier, gpdialog.dvb. Faites glisser ensuite gpdialog.dvb dans AutoCAD.
Rubriques de cette section :
Cration de la bote de dialogue
Utilisation de la fentre Projet pour parcourir votre projet
Mise jour du code existant
Ajout de code la bote de dialogue

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Ajout d'une interface de bote de dialogue

Envoyez-nous vos commentaires sur cette page.
La bote de dialogue que vous crez contient deux boutons d'option (si vous en slectionnez un, l'autre est effac) permettant de choisir la forme de la dalle :
cercle ou polygone. Cette bote de dialogue comporte galement trois zones de texte permettant la saisie des valeurs numriques suivantes : le rayon des
mosaques, l'espacement entre les mosaques et le nombre de cts de la mosaque (disponible uniquement si le bouton de l'option Polygone est slectionn).
Pour crer une bote de dialogue partir de VBA IDE
1. Dans le menu Insertion, cliquez sur UserForm (feuille utilisateur) pour ouvrir une nouvelle feuille. Deux fentres, une bote outils et une feuille utilisateur
vierge apparaissent.
2. Slectionnez un par un les contrles suivants et faites-les glisser sur la feuille utilisateur. Vous devez placer deux boutons d'option( ), trois intituls (
), trois zones de texte ( ) et deux boutons de commande ( ), comme illustr sur la feuille suivante :

3. Fermez la bote outils.
Pour dfinir les proprits des contrles propres aux cases d'option
1. Sur la feuille utilisateur, slectionnez le contrle OptionButton1. Dans le menu Affichage, cliquez sur Fentre Proprits et modifiez les proprits
suivantes pour OptionButton1 :
(Name) = gp_poly
Caption = Polygon
ControlTipText = Polygon Tile Shape
Accelerator = P
2. Dans la feuille utilisateur, slectionnez le contrle OptionButton2. Dans la fentre Proprits, modifiez les proprits suivantes pour OptionButton2 :
(Name) = gp_circ
Caption = Circle
ControlTipText = Circle Tile Shape
Accelerator = I
Pour dfinir les proprits des contrles d'intituls
1. Sur la feuille utilisateur, slectionnez le contrle Label1. Dans la fentre Proprits, modifiez les proprits suivantes pour Label1 :
(Name) = label_trad
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Cration de la bote de dialogue

Page 186 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Caption = Radius of tiles
TabStop = True
2. Sur la feuille utilisateur, slectionnez le contrle Label2. Dans la fentre Proprits, modifiez les proprits suivantes pour Label2 :
(Name) = label_tspac
Caption = Space between tiles
TabStop = True
3. Sur la feuille utilisateur, slectionnez le contrle Label3. Dans la fentre Proprits, modifiez les proprits suivantes pour Label3 :
(Name) = label_tsides
Caption = Number of sides
TabStop = True
Pour dfinir les proprits des contrles propres aux zones de texte
1. Sur la feuille utilisateur, slectionnez le contrle TextBox1. Dans la fentre Proprits, modifiez la proprit suivante pour TextBox1 :
(Name) = gp_trad
2. Sur la feuille utilisateur, slectionnez le contrle TextBox2. Dans la fentre Proprits, modifiez la proprit suivante pour TextBox2 :
(Name) = gp_tspac
3. Sur la feuille utilisateur, slectionnez le contrle TextBox3. Dans la fentre Proprits, modifiez la proprit suivante pour TextBox3 :
(Name) = gp_tsides
Pour dfinir les proprits des contrles propres aux boutons de commande et de la fentre de feuille
1. Sur la feuille utilisateur, slectionnez le contrle CommandButton1. Dans la fentre Proprits, modifiez les proprits suivantes pour CommandButton1 :
(Name) = accept
Caption = OK
ControlTipText = Accept the options
Accelerator = O
Default = True
2. Sur la feuille utilisateur, slectionnez le contrle CommandButton2. Dans la fentre Proprits, modifiez les proprits suivantes pour CommandButton2 :
(Name) = cancel
Caption = Cancel
ControlTipText = Cancel the operation
Accelerator = C
3. Slectionnez la feuille utilisateur en cliquant sur son arrire-plan, distance de tout contrle. Dans la fentre Proprits, modifiez les proprits suivantes
pour la feuille :
(Name) = gpDialog
Caption = Garden Path
Votre feuille doit prsent ressembler cela :

4. Enregistrez votre travail.

Envoyez-nous vos commentaires sur cette page.
Dans VBA IDE, la fentre Projet contient le nom et l'emplacement du projet, un dossier appel Objets AutoCAD et un dossier appel Feuilles. (Vous pouvez
avoir cliquer sur Basculer les dossiers pour afficher ces derniers.) Lorsque vous ouvrez le dossier Objets AutoCAD (qui peut tre dj ouvert), vous apercevez
une icne de dessin et le nom ThisDrawing. Lorsque vous ouvrez le dossier Feuilles (qui peut tre dj ouvert), vous apercevez une icne de feuille et le nom
gpDialog, savoir la feuille que vous avez cre.
Vous pouvez utiliser la fentre Projet pour parcourir le code et vous aider identifier l'emplacement o vous travaillez. A titre d'exemple, pour afficher le code
associ la feuille que vous avez cre, mettez en surbrillance gpDialog dans la fentre Projet et cliquez sur Afficher le code.
La fentre Code de la feuille s'affiche.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Utilisation de la fentre Projet pour parcourir votre projet

Page 187 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Mettez prsent ThisDrawing en surbrillance dans la fentre Projet. Vous pouvez afficher le code en cliquant sur Afficher le code. Tout le code que vous
avez dj entr se trouve dans cette fentre.

Envoyez-nous vos commentaires sur cette page.
Maintenant que vous avez cr une bote de dialogue, vous pouvez modifier le code ou en ajouter.
Pour modifier le code existant
1. Ouvrez le code de ThisDrawing, si tel n'est pas encore le cas.
2. Mettez jour les lignes suivantes dans la section Dclarations :
Public trad As Double ' Updated
Public tspac As Double ' Updated
Public tsides As Integer ' Add
Public tshape As String ' Add
Dans la mesure o le code de la feuille accde trad et tspac, vous devez mettre jour leur dfinition afin de les rendre publiques. Les variables
personnelles sont uniquement disponibles dans le module o elles sont dfinies ; par consquent, elles doivent devenir publiques. De plus, vous avez
ajout tsides pour le nombre de cts des dalles en forme de polygone et tshape pour le choix effectu par l'utilisateur en ce qui concerne la forme
des dalles, savoir cercle ou polygone.
3. Passez au sous-programme gpuser. Supprimez les deux lignes indiquant le rayon des dalles et l'espacement entre chacune d'elles, car ces informations
proviennent de la feuille. Supprimez notamment les entres suivantes :
trad = ThisDrawing.Utility. _
GetDistance(sp, "Radius of tiles: ")
tspac = ThisDrawing.Utility. _
GetDistance(sp, "Spacing between tiles: ")
4. Ajoutez les lignes permettant de charger et d'afficher la feuille. Ajoutez les lignes suivantes la place de celles supprimes l'tape 3 :
Load gpDialog
gpDialog.Show
5. Ajoutez un sous-programme la fin du fichier de code qui dessine les dalles rondes ou celles en forme de polygone :
'Draw the tile with the designated shape
Sub DrawShape(pltile)
Dim angleSegment As Double
Dim currentAngle As Double
Dim angleInRadians As Double
Dim currentSide As Integer
Dim varRet As Variant
Dim aCircle As AcadCircle
Dim aPolygon As AcadLWPolyline
ReDim points(1 To tsides * 2) As Double
'Branch based on the type of shape to draw
Select Case tshape
Case "Circle"
Set aCircle = ThisDrawing.ModelSpace. _
AddCircle(pltile, trad)
Case "Polygon"
angleSegment = 360 / tsides
currentAngle = 0
For currentSide = 0 To (tsides - 1)
angleInRadians = dtr(currentAngle)
varRet = ThisDrawing.Utility.PolarPoint(pltile, _
angleInRadians, trad)
points((currentSide * 2) + 1) = varRet(0)
points((currentSide * 2) + 2) = varRet(1)
currentAngle = currentAngle + angleSegment
Next currentSide
Set aPolygon = ThisDrawing.ModelSpace. _
AddLightWeightPolyline(points)
aPolygon.Closed = True
End Select
End Sub
Ce sous-programme utilise une instruction Select Case pour contrler le programme bas sur le type de forme dessiner. La variable tshape sert
dterminer le type de forme.
6. Passez ensuite au sous-programme drow. Recherchez les deux occurrences de la ligne suivante :
Set cir = ThisDrawing.ModelSpace.AddCircle(pltile, trad)
Modifiez ces lignes pour dessiner la dalle de forme approprie, comme suit :
DrawShape (pltile) ' Updated

Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Mise jour du code existant

Envoyez-nous vos commentaires sur cette page.
Conception d'un sentier de jardin : didacticiel ActiveX/VBA


Page 188 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Vous devez prsent supprimer le code relatif la cration de la dalle ronde et appeler le sous-programme DrawShape afin de dessiner la forme approprie
la place.
Pour ajouter des gestionnaires d'vnements la bote de dialogue
1. Ouvrez la fentre Code de gpDialog.
2. Entrez le code suivant en haut de la fentre :
Private Sub gp_poly_Click()
gp_tsides.Enabled = True
ThisDrawing.tshape = "Polygon"
End Sub
Private Sub gp_circ_Click()
gp_tsides.Enabled = False
ThisDrawing.tshape = "Circle"
End Sub
Notez que les sous-programmes gp_poly_Click() et gp_circ_Click() sont dnomms d'aprs les deux contrles d'option que vous avez ajouts
prcdemment, avec l'addition de _Click. Ces sous-programmes sont excuts automatiquement lorsque l'utilisateur clique sur le contrle respectif.
Notez galement que la zone Objet rpertorie les contrles figurant sur la feuille, classs par ordre alphabtique sous la proprit de nom (Name).

3. Placez votre curseur sur la ligne Private Sub gp_poly_Click() et ouvrez la zone Procdure.
Vous apercevez une liste de tous les vnements auxquels vous pouvez rpondre pour le contrle d'option gp_poly. Les deux sous-programmes que
vous avez entrs grent l'vnement Click. Vous pouvez galement ajouter du code pour rpondre l'vnement DblClick qui s'excute
automatiquement lorsque l'utilisateur clique deux fois sur le contrle. Vous pouvez ajouter du code pour tous les vnements rpertoris. Ces types de
sous-programmes sont appels gestionnaires d'vnements.
Considrez le code que vous avez entr pour ces deux gestionnaires d'vnements. Le premier gestionnaire d'vnement rpond l'vnement Click
du contrle d'option gp_poly. La premire ligne de code active la zone de texte destine au nombre de cts. Cette dernire n'est disponible que pour
les polygones ; elle n'est donc pas active si vous n'avez pas slectionn le contrle Polygon. La ligne de code suivante dfinit la variable tshape sur
Polygon.
Le second gestionnaire d'vnements rpond l'vnement Click du contrle d'option gp_circ. Ce gestionnaire dsactive la zone de texte destine au
nombre de cts et dfinit la variable tshape sur Circle.
4. Ajoutez le gestionnaire d'vnements suivant pour le bouton OK :
Private Sub accept_Click()
If ThisDrawing.tshape = "Polygon" Then
ThisDrawing.tsides = CInt(gp_tsides.text)
If (ThisDrawing.tsides < 3#) Or _
(ThisDrawing.tsides > 1024#) Then
MsgBox "Enter a value between 3 and " & _
"1024 for the number of sides."
Exit Sub
End If
End If
ThisDrawing.trad = CDbl(gp_trad.text)
ThisDrawing.tspac = CDbl(gp_tspac.text)
If ThisDrawing.trad < 0# Then
MsgBox "Enter a positive value for the radius."
Exit Sub
End If
If (ThisDrawing.tspac < 0#) Then
MsgBox "Enter a positive value for the spacing."
Exit Sub
End If
GPDialog.Hide
End Sub
Ce code vrifie si le choix final de forme portait sur un polygone. Si tel est le cas, il rcupre le nombre de cts partir du contrle gp_tsides. La
valeur entre par l'utilisateur est stocke dans la proprit de texte (Text). Dans la mesure o elle l'est sous la forme d'une chane de texte, vous devez
convertir cette dernire en un nombre entier quivalent, l'aide de la fonction CInt. Une fois ceci fait, le gestionnaire d'vnements vrifie la plage de la
valeur pour s'assurer qu'elle est comprise entre 3 et 1024. Si tel n'est pas le cas, un message s'affiche et le gestionnaire d'vnements est interrompu sur-
le-champ. Il en rsulte qu'un message s'affiche et que l'utilisateur a la possibilit de modifier la valeur. Une fois que ce dernier a cliqu nouveau sur le
bouton OK, ce gestionnaire d'vnements se dclenche et vrifie nouveau la valeur.
La macro obtient les valeurs relatives au rayon et l'espacement, mais celles-ci sont des doubles, elles ne sont pas des nombres entiers et elles sont
obtenues l'aide de la fonction CDbl. Ces valeurs sont galement testes pour s'assurer qu'elles sont positives.
Une fois les valeurs obtenues et vrifies, l'instruction gpDialog.Hide masque la feuille, en retournant le contrle au sous-programme qui l'a appele
en premier.
5. Ajoutez le gestionnaire d'vnements suivant pour le bouton Annuler :
Private Sub cancel_Click()
Unload Me
Ajout de code la bote de dialogue

Page 189 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
Fin
End Sub
Ce simple gestionnaire d'vnements dcharge la feuille et termine l'ensemble de la macro.
La seule chose que vous n'avez pas faite est d'ajouter les valeurs initiales la feuille. Il existe un vnement appel "Initialize" qui s'applique la feuille. Il
est excut lors du premier chargement de cette dernire.
6. Ajoutez le gestionnaire d'vnement suivant pour l'initialisation de la feuille :
Private Sub UserForm_Initialize()
gp_circ.Value = True
gp_trad.Text = ".2"
gp_tspac.Text = ".1"
gp_tsides.Text = "5"
gp_tsides.Enabled = False
ThisDrawing.tsides = 5
End Sub
Ce code dfinit les valeurs initiales de la feuille et de la variable tsides. La variable tsides doit tre dfinie sur un nombre positif suprieur 3, mme si
l'utilisateur slectionne un cercle. Pour mieux comprendre ce point, reportez-vous au sous-programme DrawShape que vous avez entr prcdemment. Il
contient une variable appele points dfinie l'aide du nombre de cts du polygone. Celle-ci a une mmoire alloue qu'une forme de polygone ait t
requise ou pas. Pour cette raison, tsides doit avoir une plage valide dfinie pour elle. L'utilisateur est libre de modifier cette valeur durant l'excution de la
macro.
Vous pouvez prsent enregistrer la macro et l'excuter partir d'AutoCAD.

Envoyez-nous vos commentaires sur cette page.
La plupart des fonctionnalits de l'interface Visual LISP se retrouvent dans les interfaces ActiveX et VBA. Cette annexe sert de rfrence aux dveloppeurs qui
connaissent dj bien Visual LISP et qui souhaitent dcouvrir les fonctionnalits quivalentes dans ActiveX et VBA.
Rubriques de cette section :
Comparaison de Visual LISP avec ActiveX/VBA



Comparaison de Visual LISP avec ActiveX/VBA

Envoyez-nous vos commentaires sur cette page.
Le tableau suivant compare les fonctions Visual LISP avec les fonctions et les oprateurs quivalents d'ActiveX

, de VBA et de Visual Basic 6. Les fonctions


quivalentes de l'Automatisation ActiveX sont signales par la mention AutoCAD.Applicationet celles de Visual Basic 6 sont numres en tant que fonction
ou oprateur.
Comparaison de Visual LISP avec ActiveX/VBA


Comparaison de Visual LISP avec ActiveX/VBA

Comparaison de Visual LISP avec ActiveX/VBA
Fonction AutoLISP Equivalent ActiveX, VBA ou Visual Basic 6
+ (addition) + (oprateur d'addition)
- (soustraction) - (oprateur de soustraction)
* (multiplication) * (oprateur de multiplication)
/ (division) / (oprateur de division)
= (gal ) = (oprateur de comparaison gal )
/= (diffrent de) <> (oprateur de comparaison diffrent de)
< (infrieur ) < (oprateur de comparaison infrieur )
<= (infrieur ou gal ) <= (oprateur de comparaison infrieur ou gal )
/= (diffrent de) <> (oprateur de comparaison diffrent de)
> (suprieur ) > (oprateur de comparaison suprieur )
>= (suprieur ou
gal )
>= (oprateur de comparaison suprieur ou gal )
~ (oprateur binaire Not) Oprateur Not
1+ (incrmentation) Utilisez + (oprateur d'addition)
1- (dcrment) Utilisez (oprateur de soustraction)
abs Fonction Abs
acad_colordlg Non fourni
acad_helpdlg Recherchez le mot HELP dans l'index de l'aide en ligne.
acad_strlsort Recherchez le mot SORT dans l'index de l'aide en ligne.
action_tile Utilisez l'diteur de bote de dialogue.
Page 190 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
add_list Utilisez l'diteur de bote de dialogue.
ads Mthode AutoCAD.Application.ListADS
alert Fonction MsgBox
and Oprateur And
angle AutoCAD.Application.ActiveDocument.Utility.
Mthode AngleFromXAxis
angtof Mthode AutoCAD.Application.ActiveDocument.Utility.AngleToReal
angtos AutoCAD.Application.ActiveDocument.Utility.
Mthode AngleToString
append Utilisez les fonctions de gestion de tableau.
apply Non fourni
arx Mthode AutoCAD.Application.ListARX
arxload Mthode AutoCAD.Application.LoadARX
arxunload Mthode AutoCAD.Application.UnloadARX
ascii Fonction Asc
assoc Non fourni
atan Fonction Atn
atof Fonction CDbl
atoi Fonction CInt
atom Recherchez le mot IS dans l'index de l'aide en ligne.
atoms-family Non fourni
autoarxload Non fourni
autoload Non fourni
Boole Utilisez les oprateurs logiques.
boundp Recherchez le mot IS dans l'index de l'aide en ligne.
car/cdr Utilisez les fonctions de gestion de tableau.
chr Fonction Chr
client_data_tile Utilisez l'diteur de bote de dialogue.
fermer Mthode AutoCAD.Application.Documents.Close
command Mthode AutoCAD.ActiveDocument.SendCommand
cond Instruction Select Case
cons Utilisez les fonctions de gestion de tableau ou la mthode AutoCAD.Application.collection.Add<entityname>.
cos Fonction Cos
cvunit Utilisez les fonctions de conversion.
defun Les mots cls Function et End Function
dictadd Mthode AutoCAD.Application.ActiveDocument.Dictionaries.Add
dictnext Mthode AutoCAD.Application.ActiveDocument.Dictionaries.Item
dictremove AutoCAD.Application.ActiveDocument.Dictionaries.
Mthode Dictionary.Delete
dictrename AutoCAD.Application.ActiveDocument.Dictionaries.
Mthode Dictionary.Rename
dictsearch AutoCAD.Application.ActiveDocument.Dictionaries.
Mthodes Dictionary.GetName et GetObject
dimx_tile et dimy_tile Utilisez l'diteur de bote de dialogue.
Distance AutoCAD.Application.Utility.GetDistance pour une mthode interactive.
distof Non fourni
done_dialog Utilisez l'diteur de bote de dialogue.
end_image Utilisez l'diteur de bote de dialogue.
end_list Utilisez l'diteur de bote de dialogue.
entdel AutoCAD.Application.ActiveDocument.collection_object.
Mthode Delete
entget AutoCAD.Application.ActiveDocument.collection_object.
Proprits property
entlast AutoCAD.Application.ActiveDocument.Modelspace.
Item(count-1)
entmake AutoCAD.Application.ActiveDocument.Modelspace.
Mthode Add<entityname>
entmakex AutoCAD.Application.ActiveDocument.Modelspace.
Mthode Add<entityname>
entmod Utilisez une des proprits de lecture ou d'criture appliquer l'objet.
entnext Mthode AutoCAD.Application.ActiveDocument.collection.Item
entsel Objet/mthodes/proprits AutoCAD.Application.ActiveDocument.SelectionSets
entupd AutoCAD.Application.ActiveDocument.Modelspace.object.
Mthode Update
eq Non fourni
equal Oprateur Eqv
Page 191 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
*error* Objet/mthode/proprits Error
eval Non fourni
exit Mthode AutoCAD.Application.Quit
exp Fonction Exp
expand Non fourni
expt ^ (oprateur exponentiel)
fill_image Utilisez l'diteur de bote de dialogue.
findfile Fonction Dir
fix Fonctions Fix, Int, Cint
float Fonction CDbl
foreach Instruction For Each...Next
gc AutoCAD.Application.ActiveDocument.PurgeAll
gcd Non fourni
get_attr Utilisez l'diteur de bote de dialogue.
get_tile Utilisez l'diteur de bote de dialogue.
getangle Mthode AutoCAD.Application.ActiveDocument.Utility.GetAngle
getcfg Proprit AutoCAD.Application.Preferences.property
getcname Non fourni
getcorner Mthode AutoCAD.Application.ActiveDocument.Utility.GetCorner
getdist Mthode AutoCAD.Application.ActiveDocument.Utility.GetDistance
getenv Proprit AutoCAD.Application.Preferences.property
getfiled Utilisez la bote de dialogue permettant de slectionner un fichier.
getint Mthode AutoCAD.Application.ActiveDocument.Utility.GetInteger
getkword Mthode AutoCAD.Application.ActiveDocument.Utility.GetKeyword
getorient AutoCAD.Application.ActiveDocument.Utility.
Mthode GetOrientation
getpoint Mthode AutoCAD.Application.ActiveDocument.Utility.GetPoint
getreal Mthode AutoCAD.Application.ActiveDocument.Utility.GetReal
getstring Mthode AutoCAD.Application.ActiveDocument.Utility.GetString
getvar Mthode AutoCAD.Application.GetVariable
graphscr AppActivate AutoCAD.Application.Caption
grclear Fonction Obsolete
grdraw Non fourni
grread Non fourni
grtext AutoCAD.Application.ActiveDocument.Utility.Prompt
grvecs Non fourni
handent AutoCAD.Application.ActiveDocument.ModelSpace.object.
Proprit Handle
help Recherchez le mot HELP dans l'index de l'aide en ligne.
if instruction If Then Else
initget AutoCAD.Application.ActiveDocument.Utility.
InitializeUserInput
inters AutoCAD.Application.ActiveDocument.Modelspace.object.
IntersectWith
itoa Fonction Str
lambda Non fourni
last arrayname(UBound(arrayname))
Longueur Fonction UBound
liste Instruction ReDim
listp Fonction IsArray
load_dialog Utilisez l'diteur de bote de dialogue.
charger AutoLISP n'est pas pris en charge par l'Automatisation.
log Fonction Log
logand Fonction And
logior Fonction Or
lsh Fonction Imp
mapcar Non fourni
max Fonction Max
mem Non fourni
member Utilisez une collection.
menucmd Objet AutoCAD.Application.MenuBar
menugroup Objet AutoCAD.Application.MenuGroup
min Fonction Min
minusp Utilisez la syntaxe < 0.
mode_tile Utilisez l'diteur de bote de dialogue.
Page 192 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm
namedobjdict Collection AutoCAD.Application.ActiveDocument.Dictionaries
nentsel AutoCAD.Application.ActiveDocument.SelectionSets.
Mthode SelectionSet.SelectAtPoint
nentselp AutoCAD.Application.ActiveDocument.SelectionSets.
Mthode SelectionSet.SelectAtPoint
new_dialog Utilisez l'diteur de bote de dialogue.
not Utilisez les oprateurs logiques.
nth Utilisez la syntaxe object(n).
null Fonction IsNull
numberp Fonction TypeName
ouvrir Fonction Open
or Utilisez les oprateurs logiques.
osnap Non fourni (Vous pouvez contrler la variable systme OSMODE l'aide de la mthode SetVariable.)
polar Mthode AutoCAD.Application.ActiveDocument.Utility.PolarPoint
prin1 AutoCAD.Application.ActiveDocument.Utility.Prompt
princ AutoCAD.Application.ActiveDocument.Utility.Prompt
print AutoCAD.Application.ActiveDocument.Utility.Prompt
progn Non fourni
prompt AutoCAD.Application.ActiveDocument.Utility.Prompt
quitter Mthode AutoCAD.Application.Quit
quote Non fourni
read Non fourni
read-char Fonction Input
read-line Fonction Line Input
redraw AutoCAD.Application.ActiveDocument.Modelspace.object.
Mthode Update
regapp AutoCAD.Application.ActiveDocument.
Mthode RegisteredApplications.Add
rem Fonction Mod
repeat For Each, While,
reverse Non fourni
rtos Mthode AutoCAD.Application.ActiveDocument.Utility.RealToString
set Fonction Set
set_tile Utilisez l'diteur de bote de dialogue.
setcfg Proprit AutoCAD.Application.Preferences.property
setfunhelp Non fourni
setq Fonction Set
setvar Mthode AutoCAD.Application.SetVariable
sin Fonction Sin
setview AutoCAD.Application.ActiveDocument.Viewports.Viewport.
Mthode SetView
slide_image Utilisez l'diteur de bote de dialogue.
snvalid Non fourni
sqrt Fonction Sqr
ssadd Mthode AutoCAD.Application.ActiveDocument.SelectionSets.Add
ssdel AutoCAD.Application.ActiveDocument.SelectionSets.
Mthode SelectionSet.Delete
ssget AutoCAD.Application.ActiveDocument.SelectionSets.
Mthode SelectionSet.SelectOnScreen
ssgetfirst Non fourni
sslength AutoCAD.Application.ActiveDocument.SelectionSets.
Mthode SelectionSet.Count
ssmemb Comparez l'ID de l'objet avec les membres de SelectionSet.
ssname AutoCAD.Application.ActiveDocument.SelectionSets.
Proprit SelectionSet.Name
ssnamex Non fourni
sssetfirst AutoCAD.Application.ActiveDocument.PickfirstSelectionSet
startapp Fonction Shell
start_dialog Utilisez l'diteur de bote de dialogue.
start_image Utilisez l'diteur de bote de dialogue.
start_list Utilisez l'diteur de bote de dialogue.
strcase Fonction StrConv
strcat Oprateur &
strlen Fonction Len
subst Non fourni
substr Fonction Mid
Page 193 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

tablette Non fourni
tblnext AutoCAD.Application.ActiveDocument.collection_object.
Mthode Item
tblobjname AutoCAD.Application.ActiveDocument.collection_object.
Mthode Name
tblsearch AutoCAD.Application.ActiveDocument.collection_object.
Mthode Name
term_dialog Utilisez l'diteur de bote de dialogue.
terpri Non fourni
textbox AutoCAD.Application.ActiveDocument.space.object.
Mthode GetBoundingBox
textpage Non fourni
textscr Non fourni
trace Non fourni
trans AutoCAD.Application.ActiveDocument.Utility.
Mthode TranslateCoordinates
type Fonction TypeName
unload_dialog Utilisez l'diteur de bote de dialogue.
untrace Non fourni
vector_image Utilisez l'diteur de bote de dialogue.
ver Proprit AutoCAD.Application.Version
vports Collection AutoCAD.Application.ActiveDocument.Viewports
wcmatch Oprateur Like
while While Wend
write-char Fonction Print
write-line Fonction Print
xdroom Non fourni
xdsize Non fourni
zerop Utilisez la syntaxe = 0.
Envoyez-nous vos commentaires sur cette page.
Page 194 of 194 Aide d'AutoCAD 2007
06/11/2008 file://C:\Documents and Settings\m.quinart\Local Settings\Temp\~hhDBE9.htm

Anda mungkin juga menyukai