Aller au contenu

Messages recommandés

Posté(e)

Bonjour je cherche comment ouvrir un dessin autocad dans un nouveau process si celui ci n'est pas ouvert ou dans l'autocad Déja ouvert....

 

Ci dessous m'ouvre un autocad à chaque appel ....

///////////////////////////////////////////////

ConfigExe.FichierExeAutocad = ""C:\\Program Files\\Autodesk\\AutoCAD 2021\\acad.exe"

 file.FullName = "D:\\Dossier Plans\\xxx.dwg"

 System.Diagnostics.Process process = new System.Diagnostics.Process();
 process.StartInfo = new System.Diagnostics.ProcessStartInfo(ConfigExe.FichierExeAutocad, "\"" + file.FullName + "\"");
 process.Start();

//////////////////////////////////////////////////

Developpement C++, C/CLI, .NET, ObjectARX, OpenDWG, O.D.A., Teigha ...

Posté(e)

Salut,

Il serait bon que tu précise dans quel but tu désires faire ceci, parce que si c'est pour pour accéder au dessin en lecture et/ou en écriture depuis l'exe, tu ne peux le faire que via ActiveX et, dans ce cas, tu dois référencer les bibliothèque Autodesk.AutoCAD.Interop et, éventuellement, Autodesk.AutoCAD.Interop.Common.

Un exemple avec une simple application console :

using Autodesk.AutoCAD.Interop;

using System;
using System.Runtime.InteropServices;

namespace ConsoleAppAutoCAD
{
    class Program
    {
        static void Main(string[] args)
        {
            AcadApplication acadApp = null;

            // progId concerne la denière version utilisée sur le poste (en fonction de la version majeure)
            const string progId =
                //"AutoCAD.Application";    // toutes versions
                //"AutoCAD.Application.19"; // AutoCAD 2013-2014
                //"AutoCAD.Application.20"; // AutoCAD 2015-2016
                //"AutoCAD.Application.21"; // AutoCAD 2017
                //"AutoCAD.Application.22"; // AutoCAD 2018
                //"AutoCAD.Application.23"; // AutoCAD 2019-2020
                "AutoCAD.Application.24"; // AutoCAD 2021-2022

            // Essaye d'obtenir une instance d'AutoCAD en cours
            try
            {
                acadApp = (AcadApplication)Marshal.GetActiveObject(progId);
            }
            catch // une exception est lancée si aucun processus n'est trouvé
            {
                try
                {
                    // Crée une nouvelle instance d'AutoCAD
                    acadApp = (AcadApplication)Activator.CreateInstance(Type.GetTypeFromProgID(progId), true);
                }
                catch
                {
                    // Si aucune instance n'a pu être démarrée (aucun AutoCAD R24 n'est installé)
                    System.Windows.Forms.MessageBox.Show("Aucune instance de 'AcadApplication' n'a pu être créée.");

                    return;
                }
            }

            // Afficher AutoCAD
            acadApp.Visible = true;

            // Ouvrir le fichier
            acadApp.Documents.Open(@"D:\Dossier Plans\xxx.dwg");

            // Manipuler le fichier avec l'API COM/ActiveX
            // par exemple, faire un zoom étendu
            acadApp.ZoomExtents();
        }
    }
}

 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é