kluna Posté(e) le 28 octobre 2021 Posté(e) le 28 octobre 2021 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 ...
(gile) Posté(e) le 28 octobre 2021 Posté(e) le 28 octobre 2021 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant