COM

Communication bidirectionnelle entre AutoCAD et un programme externe via COM

Français

Un client m'a demandé si on pouvait faire dialoguer une application écrite en .NET avec un programme AutoLISP fonctionnant dans AutoCAD.

Dans le sens application .NET > AutoCAD, c'est très simple. Il suffit d'utiliser l'API COM d'AutoCAD :

Etiquettes:

Récupérer le nom du dessin AutoCAD actif en .NET

Français

Voici un petit exemple de code qui permet de détecter si AutoCAD est en cours d'exécution. Si c'est le cas, il affiche le chemin complet du dessin ouvert.

Le code utilise COM (out of process).

VB.NET

Imports System.Runtime.InteropServices

Module Module1

    Sub Main()
        Try
            Dim acad = Marshal.GetActiveObject("AutoCAD.Application")
            Dim activeDocument = acad.ActiveDocument
            MsgBox("Le chemin complet du document actif est : " & activeDocument.FullName)
        Catch ex As COMException
            Const MK_E_UNAVAILABLE As Integer = &H800401E3
            If ex.ErrorCode = MK_E_UNAVAILABLE Then
                MsgBox("AutoCAD n'est pas en cours d'exécution.")
            Else
                Throw
            End If
        End Try
    End Sub

End Module

Subscribe to RSS - COM