Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Datei speichern und schließen

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:  Datei speichern und schließen (3201 mal gelesen)
KaiW
Mitglied
Schüler

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

Beiträge: 5
Registriert: 17.03.2004

WinXP pro SP1
AutoCAD 2000
VisualBasic 6.0 SP5

erstellt am: 17. Mrz. 2004 22: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 Alle zusammen!

Ich versuche aus einem VB-Programm heraus AutoCAD 2000 zu steuern, um mehrere tausend DWG-Dateien automatisch zu bearbeiten. Dabei bin ich auf das Problem gestoßen, dass ich keinen passenden Befehl zum speichern und schließen einer Datei gefunden habe.

Der Befehl

        ACad.ActiveDocument.Close True
funktioniert zwar recht nett, hat nur den kleinen Schönheitsfehler, gleich gesamt AutoCAD zu schließen,

        Acad.ThisDrawing.Close True
verursacht einen Laufzeitfehler.

Wie kann ich nun eine einzelne Datei wieder schließen, ohne AutoCAD zu beenden?

Vielen Dank schon mal im Vorraus für die Hilfe,
Kai Wecker

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

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 18. Mrz. 2004 15:29    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 KaiW 10 Unities + Antwort hilfreich

Hallo Kai,

das muss an irgendetwas anderem liegen - beides funktioniert problemlos, hier jedenfalls:

Code:

Public Sub test1()
  ThisDrawing.Close False
End Sub

Public Sub test2()
  GetObject(, "AutoCAD.Application.16").ActiveDocument.Close False
End Sub


Das klingt eher nach Auflösungserscheinungen;-)

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 18. Mrz. 2004 15:31    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 KaiW 10 Unities + Antwort hilfreich

hi,
vergiss den activedocument verweis in diesem fall. probiers hiermit:
(vba code, ich denke den rest kannst du selbst umfummeln)
dim jobfile as acaddocument
Set jobfile= ThisDrawing.Application.Documents.Open(pfad, false)
with jobfile
...
...
end with
jobfile.close, true
set jobfile=nothing
...
..

gruss,
harry

[Diese Nachricht wurde von harryk am 18. Mrz. 2004 editiert.]

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

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 18. Mrz. 2004 15:53    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 KaiW 10 Unities + Antwort hilfreich

Bringt ja nix, wenn er nur die Zeichnung zumachen kann, die er gerade aufgemacht hat.

Hab eben erst gesehen, dass es gar nicht um VBA geht, sondern VB. Ein 6er hab ich nicht zur Hand hier, aber auch in VB.NET funktioniert das hier völlig problemlos:

Code:

GetObject(, "AutoCAD.Application.16").ActiveDocument.Close(False)

(der Unterschied zwischen 'altem' und 'neuem' VB äussert sich hier nur in der Klammerung des Arguments)

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 18. Mrz. 2004 16: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 Nur für KaiW 10 Unities + Antwort hilfreich

?!?!
das ist nen auszug aus meinem dwg job programm mit dem ich allerdings so ziemlich alles mache (plotten, xref binden, bereinigen, pack'n go, attribute blabla...) halt alles was acad kann und nochn bissl mehr.

hab ich da was übersehen?

gruss,
harry

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

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 18. Mrz. 2004 16:36    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 KaiW 10 Unities + Antwort hilfreich

Hast du, ja - Kai hat das Problem, dass es mit der einen Methode Laufzeitfehler gibt, und dass AutoCAD bei der anderen Methode selbst geschlossen wird, halte ich auch für einen Absturz. Hilfreich für Kai ist es daher, wenn er hier erfährt, dass sein Vorgehen korrekt ist, jedenfalls soweit es hier zu sehen ist.

Einen Rat wie 'vergiss das mit ActiveDocument' halte ich für wenig hilfreich - man sollte die Probleme lösen statt sie zu umgehen. Workarounds kann man in Fällen verwenden, wo es keine Lösung gibt. Mein Tipp also an Kai: Erstmal meine beiden Funktionen testen, und zwar mit a) leerer und b) vorhandener Zeichnung. Wenn das läuft, kann er seinen eigenen Code hinzufügen. Wenn nicht, dann ist irgendwas faul auf seinem Rechner.

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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

KaiW
Mitglied
Schüler

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

Beiträge: 5
Registriert: 17.03.2004

WinXP pro SP1
AutoCAD 2000
VisualBasic 6.0 SP5

erstellt am: 18. Mrz. 2004 16:38    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,

          GetObject(, "AutoCAD.Application.15").ActiveDocument.Close(True)

schließt immer gesamt AutoCAD; vielleicht geht es ja nur ab AutoCAD 2002 (16) ohne Beenden der Anwendung!?

Bye,
Kai

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 18. Mrz. 2004 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 Nur für KaiW 10 Unities + Antwort hilfreich

na ob ein gedankenansatz anderen hilft lasse ich die leute selber entscheiden, vergessen hilft halt auch manchmal ;-)

2k2 schliesst, mit vb6, mit objektverweis auf das dokument oder nicht. jedenfalls an meinem rechner. lässt sich aber umgehen in dem man ein leeres dokument offen lässt und genau das ist ja auch in meinem vba programm immer vorausgesetzt, möge das ein akzeptabler vorschlag sein.

gruss,
harry

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

KaiW
Mitglied
Schüler

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

Beiträge: 5
Registriert: 17.03.2004

WinXP pro SP1
AutoCAD 2000
VisualBasic 6.0 SP5

erstellt am: 18. Mrz. 2004 18:05    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

Also, ich hab das Ganze mal mit ACAD 2002 probiert und da geht's einwandfrei.
Bei ACAD 2000 wird immer, wenn ich mit
      ACad.Documents.Open Pfad
eine Datei öffne, die schon geöffnete geschlossen, bei ACAD 2002 hingegen nicht. Vielleicht liegt da der Hund begraben.
Wie kann ich denn mit ACAD 2000 mehrere Dateien gleichzeitig geöffnet lassen?

Bye,
Kai

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

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 18. Mrz. 2004 19:58    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 KaiW 10 Unities + Antwort hilfreich

Wir kommen der Sache näher: Deine Systemvariable SDI hat den Wert 1 (Single Document Interface). Die stellt man eigentlich nur an, um nicht MDI-fähige ARXe auszuführen.

Klingt logisch: Dann wird AutoCAD beendet, wenn man das (Single-)Document schliesst - das ist dann aber auch so, wenn du von Hand schliesst. Hättest du ja eigentlich merken können;-)

SDI ist übrigens nicht spezifisch für 2k - gibt's in 2k5 auch noch.

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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