Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Herstellen ein Verbindung zu Autocad aus C#

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Herstellen ein Verbindung zu Autocad aus C# (1278 mal gelesen)
fotograf_xaver
Mitglied


Sehen Sie sich das Profil von fotograf_xaver an!   Senden Sie eine Private Message an fotograf_xaver  Schreiben Sie einen Gästebucheintrag für fotograf_xaver

Beiträge: 2
Registriert: 12.11.2004

erstellt am: 06. Dez. 2004 11:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

wie kann ich aus C# über die ActiveX/COM Schnittstelle eine Verbindung zu einer bereits aktiven AutoCad Sitzung herstellen?

In VisualBasic funktioniert das ganz einfach über folgende Zeilen:

Dim acadApp As AcadApplication
    On Error Resume Next
   
    Set acadApp = GetObject(, "AutoCAD.Anwendung.16")
    If Err Then
        Err.Clear
        Set acadApp = CreateObject("AutoCAD.Anwendung.16")
        If Err Then
            MsgBox Err.Description
            Exit Sub
        End If
    End If
    MsgBox "Jetzt wird ausgeführt " + acadApp.Name + _
          " Version " + acadApp.Version

So einfach ist dies in VBasic!

Ich schaffe es (ohne Probleme) eine neue acad.exe zu starten, das ist jedoch nicht das gewünschte Ziel!

Ich bitte um eure Hilfe.

Danke im voraus

ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 06. Dez. 2004 17:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für fotograf_xaver 10 Unities + Antwort hilfreich

Code:

Type tAcadApp = typeof( Acad.Application.16 );
Object oAcadApp = System.Runtime.InteropServices.Marshal. 
GetActiveObject("Acad.Application.16" );

AcadApp = (Acad.Application.16) System.Runtime.InteropServices.Marshal.CreateWrapperOfType( oAcadApp, tAcadApp );

Object DocObj = AcadApp.ActiveDocument;


(Vielleicht auch einfach AcadApp = oAcadApp as Acad.Application.16)

Ist eben etwas schwieriger als in VB, da C# kein late binding unterstützt.

Habe das jetzt nicht getestet, aber irgendwie sollte es so (ähnlich) gehen.

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz