Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

Choix d'un Layout en vba

11 RÉPONSES 11
Répondre
Message 1 sur 12
claude37
1587 Visites, 11 Réponses

Choix d'un Layout en vba

Bonjour,
Est-ce que quelqu'un pourrait m'expliquer comment, au travers de vba autocad, sélectionner une présentattion, y placer des infos, puis passer ou activer la présentation suivante, y mettre des infos etc..
Je ne vois aucune information dans l'aide vba.
Merci pour le coup de main.
Voici un exemple de ce que j'ai fait qui ne marche pas bien sur.
sub toto
'On insère un numéro différent dans le cartouche en bas à droite
For j = 1 To NbFeuilles
Set Layout = ThisDrawing.Layouts.Layout("L" & j)
'Definit la position du numéro
text = "0" & j
insertionPoint(0) = 392: insertionPoint(1) = 5: insertionPoint(2) = 0
height = 8
'Crée le numéro dans l'espace papier
Set textObj = ThisDrawing.PaperSpace.AddText _(text,insertionPoint, height)
Next j
end sub
Avec ce système je devrais avoir sur chaque feuille L1, puis sur la suivante L2 etc. Mais comme le changement de feuille ne se fait pas j'ai tous les repères L1,L2 etc sur la même feuille.
11 RÉPONSES 11
Message 2 sur 12
Anonymous
en réponse à: claude37

Bonjour,

remplacer

Set Layout = ThisDrawing.Layouts.Layout("L" & j)

par

Set ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Layout("L" & j)


ou


remplacer

Set textObj = ThisDrawing.PaperSpace.AddText _(text,insertionPoint, height)

par

Set textObj =ThisDrawing.Layouts("L" & j).Block.AddText (text, InsertionPoint, Height)


Matthieu
Message 3 sur 12
Anonymous
en réponse à: claude37

Avec les 2 présentation par défaut ça donne ceci
Attention de ne pas définir de variable de nom "layout, insertionpoint ...
"noms réservés à VBA et ça peut causer des soucis.

Sub toto()
Dim ptinsert(2) As Double
Dim presentation As AcadLayout
'On insère un numéro différent dans le cartouche en bas à droite
For j = 1 To 2
Set presentation = ThisDrawing.Layouts("Présentation" & j)
ThisDrawing.ActiveLayout = presentation
'Definit la position du numéro
text = "0" & j
ptinsert(0) = 392: ptinsert(1) = 5: ptinsert(2) = 0
Height = 8
'Crée le numéro dans l'espace papier
Set textObj = ThisDrawing.PaperSpace.AddText(text, ptinsert, Height)
Next j
End Sub

Bon courage
--
Bernard Flavignard
www.guidonchalettois.fr
"Matthieu" a écrit dans le message de news:
5766905@discussion.autodesk.com...
Bonjour,

remplacer

Set Layout = ThisDrawing.Layouts.Layout("L" & j)

par

Set ThisDrawing.ActiveLayout = ThisDrawing.Layouts.Layout("L" & j)


ou


remplacer

Set textObj = ThisDrawing.PaperSpace.AddText _(text,insertionPoint, height)

par

Set textObj =ThisDrawing.Layouts("L" & j).Block.AddText (text,
InsertionPoint, Height)


Matthieu
Message 4 sur 12
claude37
en réponse à: claude37

OK
Merci beaucoup
claude
Message 5 sur 12
claude37
en réponse à: claude37

OK Merci beaucoup
claude
Message 6 sur 12
claude37
en réponse à: claude37

Je pense à une chose : où avez-vous appris vba autocad ?
ou plutôt comment ?
si je compare vba excel et vba autocad, je trouve vba autocad quand même plus compliqué. Ceci dit c'est peut-être du au fait que je m'y mets seulement maintenant. Je ne vois pas trop l'utilité, dans les livres vba autocad, de faire des cercles en vba etc. ?
claude
Message 7 sur 12
Anonymous
en réponse à: claude37

Claude,
Pour ma part, j'ai commencé en VB autonome (possibilité de faire des
ficheirs exe) en y mélageant un peu de VBA word, puis VBA AutoCAD et excel,
quelques livres et beaucoup, beaucoup de temps, sans oublier les forums
remplis de personnes qui donnent de bon coeur un peu de leur temps.
Et puis je travaille aussi un peu de VBA dans Catia (CAO).
Comme je l'ai déja dit, investir dans VB/VBA est une bonne chose, c'est
utilisable dans tellement de logiciels !!
Avantage avec Word, Excel ou Catia, il y a un enregistreur de macros, tu
fais tes commandes normalement, l'enchainement est enregistré pout toi et
ensuite tu analyses ce qui a été fait, c'est pédagogique et donc formateur.
Bon courage
--
Bernard Flavignard
www.guidonchalettois.fr
a écrit dans le message de news:
5767770@discussion.autodesk.com...
Je pense à une chose : où avez-vous appris vba autocad ?
ou plutôt comment ?
si je compare vba excel et vba autocad, je trouve vba autocad quand même
plus compliqué. Ceci dit c'est peut-être du au fait que je m'y mets
seulement maintenant. Je ne vois pas trop l'utilité, dans les livres vba
autocad, de faire des cercles en vba etc. ?
claude
Message 8 sur 12
Anonymous
en réponse à: claude37

Bonjour,

Avant de faire du vba, j'ai fait du Pascal et du vb entre autre. Ça aide beaucoup pour la programmation de base, boucle,
gestion d'erreur, récursivité, méthode de recherche et de tri...

J'ai appris le VBA dans Access. Lorsqu'on ouvre Word ou Excel, on peut directement taper un courrier ou remplir un
tableau. Dans Access, lorsqu'on l'ouvre, on ne peut rien faire.
Il faut se mettre à créer des tables, des formulaires, des macros et du vba. On apprend à créer des applications.

pour le vba Autocad, connaitre le lisp et le code DXF apporte beaucoup sur la spécificité des objets d'autocad.

L'aide Autocad contient beaucoup de petits exemples vba de base.

Autocad c'est dessiner un cercle, on a payé pour ça, mais Autocad ne sait pas par exemple dessiner un cercle autour de
tous les objets qui ont une coordonnées en Z négative...

Pour le reste il faut avoir des idées et du temps.

Matthieu
Message 9 sur 12
dolives
en réponse à: claude37

Bonjour à tous,
Si je peux ajouter, en VBA tout n'est pas possible bien des
objets ne sont pas disponibles et il faut alors se pencher sur
la liaison entre le LISP et le VBA, les fonctions du module de classe VLAX nous y aide bien.
Par exemple depuis quelques jours je cherche comment accéder au dictionnaire qui contiens les informations des champs dans une étiquette d'attribut et celà reste assez compliqué. Par contre il semble que toutes ces infos soient accessible en .NET, mais là c'est une autre paire de manche !

Pour la formation, il existe peut de formation officielle sur le VBA AutoCAD, pour ma part j'ai demandé à ARES une formation spécifique, par mon entreprise, mais celà à un coût, qu'il faut savoir négocier, par les routines et autres dévelloppements internes qui peuvent faire gagner énormenet de temp aux collègues.

Quelques petits liens utiles :
http://www.activedwg.com/html/VBA.htm
http://www.afralisp.net/vbaa/vbatips.htm
http://dominique.vaquand.free.fr/index.html
http://pagesperso-orange.fr/maxence.delannoy/
http://www.contractcaddgroup.com/download/

Il y en a bien d'autres (google)

et surtout les forums :
http://forums.augi.com/
http://www.cadtutor.net/forum/forumdisplay.php?f=21
http://www.theswamp.org/index.php?board=14.0
http://www.cadxp.com/forumXForum-16.htm
http://discussion.autodesk.com/forum.jspa?forumID=33

Seul Cadxp est en francais !
Daniel OLIVES
Lyon-FRANCE
Message 10 sur 12
claude37
en réponse à: claude37

bonsoir,
Merci pour toutes ces infos très interessantes.
Il y a de quoi s'occuper.....
Peur-être pourrais-tu me dire brièvement comment faire, en vba, pour avoir un zoom de l'entité sélectionnée dans une fenêtre.
Je m'explique en + clair :
J'ai écris une proc vba (avec l'aide d'autre personnes) qui me permet de définir un nombre de feuilles (layout) puis lorsque je clique sur une entité dans l'espace objet je DEVRAIS retrouver cette dernière dans ma fenêtre. Le pb c'est que je retrouve toujours la même chose dans toutes les fenêtres, donc je dois faire un PAN dans chaque fenêtre et c'est ce que je voulais EVITER.
Merci encore pour toutes ces infos, en espérant que tu auras qqes instants à m'accorder.
PS : J'ai utiliser PickdPoint et vPickPoint mais cela ne change rien.
Que penses-tu du livre de Roger Rosec sur vba ?
A+
Message 11 sur 12
Anonymous
en réponse à: claude37

Bonjour,

avec un ZoomWindow sur le boudingBox de l'objet cela ne fonctionne pas ?

Matthieu
Message 12 sur 12
Anonymous
en réponse à: claude37

c'est pas mal ça, faudra que j'essaye.
jusqu'à present je jouais avec un coefficient de zoom sur le point
d'insertion.
et un raccourcis clavier pour un zoom + ou -

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums