Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Obj-ARX Wrapper

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Obj-ARX Wrapper (2907 mal gelesen)
facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 12. Aug. 2010 16:09    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 Leute,

ich habe wiedermal ein Problem, ich möchte mich jetzt mal aus gegebenen Anlass mit dem Obj-Arx-Wrapper und dem PSCOMWrapper im VB.NET beschäftigen.
Frei nach dem Motto "Vom großen Bruder lernen, heiß siegen lernen" *lach* habe ich mir zum Ziel gemacht, ein fertiges VBA-Makro von ProSteel in
VB.NET zu überführen.
Das Grundgerüst steht, ich konnte schon den Version-String etc. pp. von ProSteel auslesen, funktioniert im Prinzip.

Nun habe ich den VBA Code :

Code:
Dim Entity As AcadEntity
und
Code:
Set Entity = Selection.GetObject(Index)

Im Prinzip logisch, aber er kennt das AcadEntity nicht :-( folgende Fehlermeldung kommt:

Zitat:
Ein Verweis auf die Assembly "Autodesk.AutoCAD.Interop.Common, Version=17.2.0.0, Culture=neutral, PublicKeyToken=eed84259d7cbf30b", die den Typ "Autodesk.AutoCAD.Interop.Common.AcadEntity" enthält, ist erforderlich. Fügen Sie dem Projekt einen Verweis hinzu.

Was muß ich noch an DLLs hinzufügen, das ich Acad-Entitys ansprechen kann?
Eine DLL Autodesk.AutoCAD.Interop.Common.dll existiert natürlich nicht :-(

Hier nochmal mein Code bis jetzt:

Code:
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports PSCOMWRAPPERLib
Public Class Class1

    'Define Command 'NewCmd1'
    <CommandMethod("NewCmd1")> _
    Sub NewCmd1()
        Dim test As New PSCOMWRAPPERLib.Ks_ComApplication
        MsgBox(test.VersionString & " " & test.GetGlobalSettings.ApplicationPath)
        MsgBox("NewCMD1")
    End Sub

    <CommandMethod("GetWeight")> _
    Sub GetWeight()
        Dim selection As New Ks_ComSelection
        Dim property_ps As New Ks_ComProperty
        Dim entity As Object
        Dim mWeight As Double
        Dim mLength As Double
        Dim Msg As String
        Dim Result As Long
        Dim Index As Integer

        selection.SetSelectionFilter(KsSelectionFilter.kFilterAllSteel)

        Result = selection.SelectObjects("Elemente für Gewicht waählen")

        If Result = 0 Then Result = selection.SelectAllObjects
        For Index = 0 To selection.ObjectCount - 1
            entity = selection.GetObject(Index)

        Next

    End Sub

End Class


Wie gesagt NewCmd1 funktioniert :-)

Ich hoffe es ist nur eine Kleinigkeit ;-)

Grüße Alex

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


Ex-Mitglied

erstellt am: 12. Aug. 2010 16:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Im Dialog für 'Verweise hinzufügen' gehst Du auf die 'COM'-Seite und dort findest Du
- AutoCAD 2009 TypeLibrary    - und
- AutoCAD/ObjectDBX Common 17.x Type Library

Bei '17.x' das x gegen die aktuellste Nummer austauschen, kann variieren zwischen 17.0 und 17.2

Natürlich nur gültig, wenn Du COM-basierst arbeitest (und so siehts ja aus).  

- alfred -

------------------
www.hollaus.at

[Diese Nachricht wurde von a.n. am 12. Aug. 2010 editiert.]

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 12. Aug. 2010 16:25    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

Hi Alfred,

genau und noch:

Code:
Imports Autodesk.AutoCAD.Interop

und dann kann ich sagen:

Code:
Dim entity As Common.AcadEntity

SUFU und dann die Eingebung mit COM Register hat geholfen:-)

Danke schön!!!

Jetzt muss ich mich zwingen Feierabend zu machen, habe Blut geleckt :-/

Alex

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

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 12. Aug. 2010 17:02    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


debugmode.JPG

 
Hi,

mein Bemühen war von Erfolg gekrönt, ich konnte das Makro zur Gewichtsermittlung konnte ich im .NET mit dem Wrapper
nachbauen und funktioniert, bin stolz auf mich ;-)

ABER das war ja nicht viel Code und ich habe das Problem, dass ich nicht debuggen kann.
Mein Vorgehen ist folgendes:
Ich programmiere die DLL im Visual Studio, gehe dann auf Debuggen und er startet mir gleich das AutoCAD,
dann sage ich im AutoCAD netload und öffne die DLL im Debug-Ordner.
Jetzt kann ich Haltepunkte im Code setzen wie ich will, er rauscht durch und führ den Code aus.
Ich kann mir vorstellen, dass die DLL im Debug-Verzeichnis nicht mehr mit dem Visual Studio "verbunden" ist.

Aber Kluge leute im Buch sagen, das funktioniert so.
Jetzt ist es noch einfach Fehler zu finden, aber ich kann schlecht auf die Einzelschritt Abarbeitung verzichten :-(

An den Haltepunkten steht folgender Fehler mit Ausrufezeichen:

Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen

Ich habe noch ein Screenshot meiner Debug-Einstellungen angehängt.
Ich denke mal es ist nicht viel kann mir nicht vorstellen, dass alle ohne Einzelschritt programmieren ;-)

Danke schön!!!

Gruss Alex

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9807
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 12. Aug. 2010 17:18    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 facebraker 10 Unities + Antwort hilfreich

Stimmt die Angabe aus der Sysinfo "Visual Studio 2005" noch?
Für VS 2010 (bzw. Express) hätte ich da was:
Mal nach "Breakpoint Visual Studio AutoCAD" suchen
Bei mir hat es dann (wie in VS 2008) wieder funktioniert.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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


Ex-Mitglied

erstellt am: 12. Aug. 2010 17:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

hast Du wirklich VS2005? Lt. Autodesk ist VS2008 empfohlen (ich glaube seit AutoCAD 2008, das ist aber nicht sicher)

Deine Projekteinstellung steht auf 'Debug' oder auf 'Release'? In zweiterem Fall geht nix mit Breakpoint!

- alfred -

------------------
www.hollaus.at

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 13. Aug. 2010 11:14    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


FehlerCAD-Debug.JPG


FehlerCAD-Debug2.JPG

 
Guten Morgen,

sorry, ich habe meine Signatur noch nicht aktualisiert, nutze VS 2010 Ultimate und Windows 7 64Bit Professional mit AutoCAD 2009.

Ich habe jetzt mal gegoogelt und die autocad.exe.config angepasst.
Ich hatte zuerst das Framework 2 drin, da kam der Fehler siehe Anhang.
Dann habe ich das Framework 4 eingestellt:

Code:
<startup>
<!--We always use the latest version of the framework installed on the computer. If you
are having problems then explicitly specify .NET 2.0 by uncommenting the following line.-->
<supportedRuntime version="v4.0.30319"/>
  </startup>

Dann kam der Fehler nicht mehr.
Aber anscheinend kann er die Symbole nicht finden:

Zitat:
C:\Program Files\AutoCAD 2009\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
U:\develop\global\Release64\bin\acad\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\symbols\exe\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\exe\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.

C:\Program Files\AutoCAD 2009\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
U:\develop\global\Release64\bin\acad\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Users\alki\AppData\Local\Temp\SymbolCache\symbols\exe\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Users\alki\AppData\Local\Temp\SymbolCache\exe\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Users\alki\AppData\Local\Temp\SymbolCache\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\symbols\exe\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\exe\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\acadlock.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.


Wenn ich in Einzelschritt vorgehe, kommt de rFehler (siehe Anhang).
Ich bin irgendwie ratlos :-(

Der Prozess ist managed :-/

Ich habe noch im I-Net die "Lösung" gefunden, die Application manuell zu starten und dann unter "Debuggen" sich an den Prozess zu hängen, finde aber nicht wie das gehen soll :-/

Das ist echt frustrierend ...

@Alfred, ich gehe davon aus, dass ich im Debug unterwegs bin, er startet mir ja auch AutoCAD (wie in den Debug-Einstellungen) hinterlegt ist? Oder ist das ein falsches Zeichen? Worauf muss ich noch achten?

Vielen Dank!!!

Gruß Alex

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


Ex-Mitglied

erstellt am: 15. Aug. 2010 18:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

kannst Du mal nachsehen, ob PDB-Dateien erzeugt werden?
Nennst Du Deine Assembly überhaupt 'acadlock'?

- alfred -

------------------
www.hollaus.at

facebraker
Mitglied
IT


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

Beiträge: 158
Registriert: 03.05.2009

Windows 7 Professional 64Bit
AutoCAD 2007/2008/2009
ProSteel 3D 17.2/18.0/V8i
ProStructures V8i_S3
Visual Studio 2010 Ultimate

erstellt am: 16. Aug. 2010 10:46    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


symbole.JPG


module_fehler.txt

 
Guten Morgen,

sorry, dass ich erst heute antworte, aber ich bin erst heute dazu gekommen.
Das mit dem "acadlock" ist mir auch ein Rätsel :-/ Ich habe es heute nochmal aufgerufen und bei Symbolladeinformationen folgendes bekommen:

Zitat:
C:\Program Files\AutoCAD 2009\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
U:\develop\global\Release64\bin\acad\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Users\alki\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\symbols\dll\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Users\alki\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\dll\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Users\alki\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\symbols\dll\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\dll\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
C:\Windows\AcMgdReverse.pdb: PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.

Die PDB Datei wurden NICHT erzeugt, könnte das ein Berechtigungsproblem sein? ICh habe VS schon mit Admin-Rechten gestartet.
Oder muß ich noch Debug-Einstellungen machen?

Ich habe mal die Symboleinstellungen als Bildschirmschuss angehängt.

Außerdem noch die Fehler im Modulfenster als Textdatei.

Wie würdest du, Alfred, an die Sache rangehen? Nochmal ein Minimal-Application nur mit Acad - Wrapper-DLLs und probieren, ich weiß nicht wie ich an das Problem rangehen kann :-/

Vielleicht sieht jemand das Problem in den "Log"-Files ...

Vielen Dank!

Gruss Alex

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


Ex-Mitglied

erstellt am: 16. Aug. 2010 11:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Wie würdest du, Alfred, an die Sache rangehen?

Mit VisualStudio 2008 

Und Spass beiseite, wenn Dir 2008 nicht zur Verfügung steht, dann ein neues Projekt ('Hello World', für AutoCAD halt 'Hello Line') und Schritt für Schritt die Verweise hinzufügen, von denen Du weißt, dass Du diese brauchst.

Die Meldung der fehlenden 'AcMgdReverse.pdb' kapier ich selbst nicht, denn die wird ja nicht gebaut und zum Debuggen verwendet, aber für Deine Assemblies muss (zum Debuggen) eine PDB-Datei vorhanden sein.

Wo ich auch ein wenig skeptisch wäre, wenn ich mir Deine SysInfo ansehe: Du arbeitest mit 64bit Betriebssystem, damit auch (bei AutoCAD 2009) mit 64bit AutoCAD, hat ProSteel überhaupt eine 64bit-Version?

- alfred -

------------------
www.hollaus.at

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)2025 CAD.de | Impressum | Datenschutz