Aller au contenu

Piloter AutoCAD depuis VBA Excel


DenisHen

Messages recommandés

Bonjours à tous,

 

J'ai créé une macro VBA sous Excel qui fait des fichiers script (.scr) très gros, donc, très long à traiter dans AutoCAD...

 

J'aimerai savoir s'il existe un FAQ ou des "Trucs et astuces" pour piloter AutoCAD depuis ma macro VBA Excel.

 

Le script dessine des points, des textes, des textes multilignes, des polylignes 3D....

 

D'avence merci...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Tu peux piloter AutoCAD (version complète) depuis Excel via l'API COM d'AutoCAD en "out-of-process".

 

Il faut ajouter la référence à AutoCAD (AutoCAD 20xx Type Library) dans ton projet VBA Excel, puis tu peux te connecter avec AutoCAD et utiliser l'API pour créer des entités.

 

Public Sub StartAutoCAD()
   Dim acadApp As AcadApplication
   On Error Resume Next
   ' Essaie de se connecter à une instance d'AutoCAD en cours d'exécution
   Set acadApp = GetObject(, "AutoCAD.Application")
   If Err Then
       Err.Clear
       ' Pas d'AutoCAD en cours d'exécution, on en démarre un
       Set acadApp = CreateObject("AutoCAD.Application")
       If Err Then
           MsgBox Err.Description
           Exit Sub
       End If
   End If
   On Error GoTo 0
   MsgBox "Now running " + acadApp.Name + " version " + acadApp.Version
   ' On affiche la fenêtre sinon elle reste invisible
   acadApp.Visible = True
   ' Crée une ligne du point 0,0 au point 10,10
   Dim p1(2) As Double
   Dim p2(2) As Double
   p2(0) = 10: p2(1) = 10
   acadApp.ActiveDocument.ModelSpace.AddLine p1, p2
End Sub

 

La documentation de l'API était fournie avec AutoCAD jusqu'à la version 2010 au moins mais dans les dernières versions, elle est en ligne par défaut et elle est difficile à trouver (ils ont eu la bonne idée chez Autodesk de créer une aide sans table des matières ! : http://docs.autodesk.com/ACD/2014/FRA/index.html)

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Merci Maxence, je vais potasser ta réponse...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 3 ans après...

J'ai trouver avec le code suivant !

 

    ' Création de la propriété personalisée
       AcadPlan.SummaryInfo.AddCustomInfo "titre_affaire", titre_affaire
   'Si la propriété existe déjà, il y aura une erreur -2145386475
       If Err.Number = -2145386475 Then
   's'il y a une erreur -2145386475 on mets à jour la veleur
       AcadPlan.SummaryInfo.SetCustomByKey "titre_affaire", titre_affaire
       ElseIf Err.Number = 0 Then
   'Si une autre erreur se produit on continue comme si de rien
       Else
       End If

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité