| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Interessant..... VB(A) AutoCAD Libs direkt ansprechbar?? (1306 mal gelesen)
|
CB_ Mitglied Bauingenieur
Beiträge: 163 Registriert: 20.01.2004 ACAD 2002, W2k, P4 1800Mhz, 512 MB RAM, 20GB HD, 2 Stck. TFT an Matrox G550
|
erstellt am: 14. Mrz. 2005 08:12 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich versuche über VB6 / VBA ein eTansmit einer dwg zu erstellen. Bis jetzt war der Lösungsansatz über sendcommand. (Dank dieses Forums habe ich überhaupt einen Ansatz ;-) ) Jetzt habe ich aber gefunden, dass man über Projekt->Verweise bzw. Extras->Verweise einen Verweis auf verschiedene ACAD dlls in das VB Projekt einbinden kann. http://forum.cad.de/foren/ubb/uploads/CB_/verweise.jpg Was bedeutet das? Kann ich also den Befehl eTransmit auch ausführen OHNE Acad mit der dwg starten zu müssen?? (Darauf hoffe ich) Wo bekomme ich eine Referenz über diese Bibliothek? (AcStETransmit.arx) MfG Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 14. Mrz. 2005 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für CB_
Hallo Christian, wie Du richtig schreibst, kannst Du auf externe Bibliotheken einen Verweis legen. Ein Arx Programm ist allerdings keine Bibliothek, sondern ein eigenständiges Programm, welches Du über die Befehlszeile und "_appload" in AutoCAD laden kannst. Was sind Verweise auf dlls? Vereinfacht kann man sich das vorstellen, wenn Du ein angenommenes Modul in deinem Projekt hast, in welchem nur Funktionen sind die Du nicht nur in einem Projekt benutzen möchtest, sondern auch in deinem nächsten. Eine Möglichkeit ist, das Modul einfach in dein neues Projekt zu kopieren. Die andere Moglichkeit besteht darin es als eine DLL zu verpacken und über die Verweise einfach zu integrieren. Somit hast Du auch jetzt Zugriff auf diese Funktionen. Vorteil der DLLs ist es ausserdem, wenn Sie einmal kompiliert sind, kommst Du nie wieder an den Code ran und Du kannst nur einzelne Funktionen für die Aussenwelt nutzbar und sichtbar machen. Du musst also wissen, wie Du an die Funktionen in der DLL kommst und welche Übergabeparameter diese erwartet. Hoffe das ist einigermassen verständlich. >Kann ich also den Befehl eTransmit auch ausführen OHNE Acad mit der dwg starten zu müssen?? (Darauf hoffe ich) ETransmit ausführen, ohne ACAD zu starten. Hmmm .. Es gibt verschiedene Möglichkeiten über die diversen Schnittstellen, aber da steck ich leider auch nicht tief genug drinnen. Vielleicht hilft Dir die angehangene Grafik weiter. Habe damals mit ObjectDBX einen Zugriff auf die Zeichnung bekommen. Damit hast Du Möglichkeiten auf die Zeichnungsdatenbank zuzugreifen, aber ob ETransmit dort funktioniert, dass musst Du selbst herausfinden. Ich würde aber meinen, dass es darauf hinausläuft eine andere Schnittstelle zu benutzen und nicht mehr VB/VBA .. Kuck Dich sonst einfach mal im '.NET/ARX' Forum um. >Wo bekomme ich eine Referenz über diese Bibliothek? (AcStETransmit.arx) Wie oben erwähnt, eine ARX Datei ist keine Bibliothek. Was mich noch interessiert, um Dir eventuell weiter zu helfen ist, auf welche Datei verweist Du in deinen Referenzen bei 'Autodesk Standards ETransmit Type Library'. Eventuell hilft das weiter. Gruss TP
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CB_ Mitglied Bauingenieur
Beiträge: 163 Registriert: 20.01.2004 ACAD 2002, W2k, P4 1800Mhz, 512 MB RAM, 20GB HD, 2 Stck. TFT an Matrox G550
|
erstellt am: 14. Mrz. 2005 09:49 <-- editieren / zitieren --> Unities abgeben:
|
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 14. Mrz. 2005 11:12 <-- editieren / zitieren --> Unities abgeben: Nur für CB_
Hallo Christian, Zitat: Das ist die AcStETransmit.arx (die jpg ist aktualisiert). http://forum.cad.de/foren/ubb/uploads/CB_/verweise.jpg
Das kann nicht sein, das kann keine ARX-Datei sein! Klicke mal in den Referenzen auf diesen Verweis ( 'Autodesk Standards ETransmit Type Library'), dann wird Dir unten bei 'Pfad' die Datei angezeigt, auf welcher die Referenz liegt. Zitat:
Achsoooooo: Wenn ich mit Thisdrawing.sendcommand arbeite will, muss ich dann vorher einen Verweis auf das AutoCAD Objektmodell erstellen oder gehts auch so?
Auf ThisDrawing kannst Du in AutoCAD immer zugreifen. Gruss TP
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CB_ Mitglied Bauingenieur
Beiträge: 163 Registriert: 20.01.2004 ACAD 2002, W2k, P4 1800Mhz, 512 MB RAM, 20GB HD, 2 Stck. TFT an Matrox G550
|
erstellt am: 14. Mrz. 2005 11:18 <-- editieren / zitieren --> Unities abgeben:
|
BloodyMess Mitglied Applicationingenieur
Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 14. Mrz. 2005 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für CB_
Hallo Christian, habe Map 2005, da funktioniert es nicht, die Datei 'AcStETransmit.arx' zu referenzieren. Nun habe ich mir die Datei in einer älteren Version besorgt und nun ist Sie auch referenzierbar. Nun bin ich allerdings überfordert, da ich der Meinung war, dass ARX-Dateien eigenständige Programme sind und nicht referenzierbar sind. Vielleicht kann mir das jemand erklären? Interessieren würde mich, ob Du mit '_appload' die Datei beim Start von AutoCAD gleich mitgeladen bekommst. Bei mir wird Sie mitgeladen, da es Bestandteil von AutoCAD ist und es schon ein eigenständiges Programm ist und keine Bibliothek! Wenn Du die Referenz auf die Datei hast, dann bekommst Du auch nur die Info, dass Du ein Object vom Typ 'AcStETransmitSvc' anlegen kannst. Aber wie man das händelt steht nirgends und das ist meistens das Problem von den ganzen Bibliotheken - es ist so gewollt, dass man damit nichts machen kann! Dir bleibt als wirklich nur der Weg über SendCommand den Dialog aufzurufen. Das sind die Funktionen, die sich noch darin verbergen, aber die sind nicht ansprechbar! ------------------------ DllCanUnloadNow DllGetClassObject DllRegisterServer DllUnregisterServer acrxEntryPoint acrxGetApiVersion ------------------------ Es bringt also nichts die Datei zu referenzieren um dort auf Objecte zuzugreifen! Und ab hier weiss ich leider nicht mehr weiter. Sorry. Gruss TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CB_ Mitglied Bauingenieur
Beiträge: 163 Registriert: 20.01.2004 ACAD 2002, W2k, P4 1800Mhz, 512 MB RAM, 20GB HD, 2 Stck. TFT an Matrox G550
|
erstellt am: 14. Mrz. 2005 16:11 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|