Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Zeichnung1 bei mehreren Fenstern (MDI)

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 präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  Zeichnung1 bei mehreren Fenstern (MDI) (1084 mal gelesen)
vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 08. Jan. 2012 23:39    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

Liebes Forum

Mit dem untenstehenden Code (in Access 2003) starte ich AutoCAD 2009 und öffne die Datei in "tocall"
AutoCAD wird gestartet und die Zeichnung geöffnet. Mit    acApp.Visible = True wird dann auch AutoCAD als aktives Fenster im Vordergrund dargestellt. Wenn ich dann eine weitere Zeichnung öffne in Access wird jedoch AutoCAD nicht mehr im Vordergrund dargestellt. Jede weitere Zeichnung ist die Access Applikation im Vordergrund. Warum? Mit "acApp.Visible = True" wird doch AutoCAD angezeigt.


Da aber immer eine Zeichnung1 mitgeöffnet wird, aktiviere ich diese um sie danach zu schliessen. 

Im Forum hab ich gelesen dass AutoCAD etwa 20 mal langsamer arbeitet wenn es von einer externen Applikation wie Excel oder in meinem Fall von Access gestartet wird.

Danke für Eure Hilfe

Code:
' check if acad is already loaded
Dim acApp As AutoCAD.AcadApplication
Dim acDok As Object

On Error Resume Next
Set acApp = GetObject(, "AutoCAD.Application")
If Err.Number Then
    'MsgBox "Instanz Autocad läuft noch nicht...", vbInformation, "Autocad..."
    Set acApp = CreateObject("AutoCAD.Application")
    acApp.Documents.Open (tocall)  ' z.B. "C:\dwgs\3007766.dwg"
    acApp.Visible = True
    'Zeichnung1 wird selektiert und geschlossen, stört
    Documents("Zeichnung1.dwg").Activate
    Documents("Zeichnung1.dwg").Close False
  Else
    'MsgBox "Instanz von Autocad läuft schon...", vbInformation, "Autocad..."
    acApp.Documents.Open (tocall)  'Zeichnung in tocall wird geöffnet, z.B. "C:\dwgs\342344.dwg"
    acApp.Visible = True            'Autocad in der Vordergrund
End If
On Error GoTo 0



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: 09. Jan. 2012 13:01    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 vittorio0 10 Unities + Antwort hilfreich

Hallo,

mit

Code:
AppActivate acApp.caption

bekommst du AutoCAD wieder in den Vordergrund.
"acApp.Visible = True" macht AutoCAD nur sichtbar (falls verborgen geöffnet).

Zitat:
Im Forum hab ich gelesen dass AutoCAD etwa 20 mal langsamer arbeitet wenn es von einer externen Applikation wie Excel oder in meinem Fall von Access gestartet wird.


Wenn du AutoCAD extern ansteuerst ist es in der Tat wesenlich langsamer als wenn du es intern steuerst. Das hängt davon ab was du erreichen willst.

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

vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 09. Jan. 2012 15: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

Hallo Stelli1,
AppAcivate hat funktioniert, hab das mit hide falsch versatanden. Besten Dank für die schnelle Antwort.

Betreffend der Geschwindigkeit. In meinem Fall starte ich AutoCAD von Access aus und lade mir eine Zeichnung gemäss obigem code. Ist es auch langsämer für alle weiteren Operationen die danach manuell ausgeführt werden?

Gruss Vittorio0

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



Anzeige:Infos zum Werbeplatz >>

AVC Expose Assemblies CAD APP für Messestände, Möbel, Allgemeine Werkzeuge

Plugin for AutoCAD and BricsCAD AVC_Expose. Expose all blocks-assemblies in a row. Explosion of all assemblies (TNT). Sign the name and number of blocks.

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: 10. Jan. 2012 09:55    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 vittorio0 10 Unities + Antwort hilfreich

Hallo Vittorio,

das mit der Geschwindigkeit kommt nur zum tragen wenn du irgenwelche Massenoperationen ausführst. Werden zum Beispiel 100000 Punkte oder Linien erzeugt dann macht das schon einen Unterschied.
Beim "normalen" Handling sollte kein Unterschied sein.
Deine Variante hat für dich wahrscheinlich den Vorteil, dass du deine gewohnte Umgebung und die Vorzüge von Access Formularen nutzen kannst.

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

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