Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Abfrage ob ACAD geladen wurde

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Abfrage ob ACAD geladen wurde (1836 mal gelesen)
blacky1985
Mitglied
Application Engineer


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

Beiträge: 348
Registriert: 16.04.2008

PSP 2008 SP1
PSP 2009 SP1
PSP 2010
AIP 2008 SP3
AIP 2009 SP2
AIP 2010

erstellt am: 14. Sep. 2008 09:57    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 Jungs,

wollte mal bei euch Nachfragen, ob es eine Möglichkeit gibt den Status von ACAD Abzufragen. Ich will ACAD ganz normal über eine VB.NET Anwendung starten, also die "acad.exe". Allerdings sollte man dann ja wohl etwas warten mit dem nächsten Programmaufruf bzw. wenn ich z.B. irgendwelche Aktionen in ACAD ausführen will, bis ACAD auch vollständig geladen ist.

Daher meine Frage na der Stelle, gibt es eine Möglichkeit und wenn ja, wie lautet diese, um abzufragen ob ACAD nach dem Aufruf über ein VB.NET Programm vollständig geladen und initialisiert wurde.

P:S: Bitte jetzt nicht den Tip geben darauf zu prüfen ob die acad.exe im Taskmanager vorhanden ist   

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


Ex-Mitglied

erstellt am: 14. Sep. 2008 16:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

hi,

wenn du nicht ueber taskmanager pruefen willst, dann lass uns mal wissen, wie du autocad startest.

machst du dies ueber com ueber createobject bzw. ueber getobject, bekommst du das acadobjekt sowieso zurueck.

BTWBy the way (So nebenbei bemerkt) wenn du acad aus einer dotnet-exe startest, dann bekommst du nicht die performance wie eine in autocad geladene dotnet-dll


- alfred -

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 14. Sep. 2008 17: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 Nur für blacky1985 10 Unities + Antwort hilfreich

Hallo,

wie findest du den die EXE von AutoCAD ?
Du kannst doch die Zeichnung öffnen z.B. mit

Code:
System.Diagnostics.Process.Start("Zeichnung")


Prüfen kannst du in einer Schleife mit Getobject(..).

Übringes hat Alfred mit der Geschwindigkeit recht. Je nachdem was du machen willst, z.B. Zeichnungselemente erstellen, hast du einen 10-20 -fachen Geschwindigkeitsverlust wenn du AutoCAD von aussen steuerst. Bei 1 ms oder 20 ms ist es egal, aber 1 min oder 20 min machen schon einen Unterschied.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

blacky1985
Mitglied
Application Engineer


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

Beiträge: 348
Registriert: 16.04.2008

erstellt am: 14. Sep. 2008 18:13    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

Die exe von Autocad findet man ganz klar über die Registry :-), dann kann ich in einer VB.NET Anwendung das Programm ganz ohne Probleme über die acad.exe starten.

Natürlich dauert es je nach Rechnerleistung unterschiedlich lang bis ACAD geöffnet ist. Ich will nachdem ACAD also gestartet wurde eine Zeichnung öffnen und diese dann über die VB.NET Anwendung plotten un dann ACAD wieder schließen.

Hab glaub ich den Befehl auch gefunden. Ist es richtig das ich über GetAcadState abrufen kann mit dem Wert IsQuiescent, ob ACAD gerade fertig geladen wurde ?

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 14. Sep. 2008 18:22    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 blacky1985 10 Unities + Antwort hilfreich

Hallo Blacky,

arbeitest du mit der ActiveX (com)-Schnittstelle ?
Da kannst du zwar den Staus abfragen, bekommst aber nur eine Antwort wenn AutoCAD "betriebsbereit" ist.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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


Ex-Mitglied

erstellt am: 14. Sep. 2008 19:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

hi

Zitat:
Die exe von Autocad findet man ganz klar über die Registry

==>nicht, wenn mehr als eine autocad-version (2004,2005,2006,...) bzw. mehr als ein autocad-produkt (autocad-lt,autocad-map3d,autocad-civil3d,autocad-architecture,...) installiert ist.

Zitat:
System.Diagnostics.Process.Start("Zeichnung")

auch hier vorsicht, es wird die autocadversion/das autocad-produkt gestartet, das zuletzt als aktiv in der registry abgelegt wurde. d.h. wenn autocad 'von aussen' gestartet wird und dann von aussen gesteuert wird, dann ist nicht gewaehrleistet, dass meine geladenen lib's, egal ob dotnet(assemblys) oder activex(komponenten) koennten dann die falschen sein.

also nochmals zurueck zu meiner ersten frage (weil das mal die basis fuer alles andere ist), wie wird autocad von deiner exe gestaret? dann kann ich andere fragen wie 'zustand von aktivitaet von autocad', ... beantworten.

- alfred -

blacky1985
Mitglied
Application Engineer


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

Beiträge: 348
Registriert: 16.04.2008

erstellt am: 15. Sep. 2008 07:20    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

Zitat:
arbeitest du mit der ActiveX (com)-Schnittstelle ?
Da kannst du zwar den Staus abfragen, bekommst aber nur eine Antwort wenn AutoCAD "betriebsbereit" ist.

Das ist mir bewußt, reicht aber vollkommend aus für meinen Zweck, da ich einfach ne while-Schleife einsetze die abgebrochen wird, wenn ACAD betriebsbereit ist, was mir vollkommend wie gesagt ausreicht.

Zitat:
==>nicht, wenn mehr als eine autocad-version (2004,2005,2006,...) bzw. mehr als ein autocad-produkt (autocad-lt,autocad-map3d,autocad-civil3d,autocad-architecture,...) installiert ist.

Dies ist mit ebenfalls bewußt, aber da nur ACAD 2008 im Einsatz ist, ist auch dies kein Problem an der Stelle.

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



Anzeige:Infos zum Werbeplatz >>

AVC Properties Palette CAD APP für Allgemeine Werkzeuge, Möbel, Messestände

Plugin AVC_Palette for AutoCAD and BricsCAD The plugin adds to the properties of all objects in the drawing the NAME property, like blocks. Also a new section Metric will be added to the properties of solids. Density and price of materials. Editing covers and edge bandings.


Ex-Mitglied

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

hi

wenn du ueber activex gehst und dabei auf sendcommand und auf 'plot im hintergrund' verzichtest, dann brauchst du keine status-ueberpruefung, weil:
- beim start ueber CreateObject
- bei ausfuehrung von COM-functions/subs
dein code erst dann weitergefuehrt wird, wenn autocad die jeweils aktuelle programmzeile ausgefuehrt hat (bzw. autocad geladen ist).

wenn du ueberpruefen willst, ob autocad sich aufgehaengt hat, dann geht (in diesem fall) nur ueber einen getrennten, parallelen thread, der ueber prozessueberwachung laeuft und dabei, kombiniert mit einem timer, z.b. speicherveraenderungen protokolliert.

- alfred -

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