Autor
|
Thema: Aufruf Dateieigenschaften in VBA (7223 mal gelesen)
|
wwwilli Mitglied Ingenieur
 
 Beiträge: 305 Registriert: 21.03.2006 ACAD MAP 3D 2009. VestraCAD. Win XP SP3, FD 150 GB, Pentium4, 3,2 GHz, 4 GB.
|
erstellt am: 16. Mai. 2006 12:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo @ Stelli, ich komme nochmal auf den Speichern-Unter-Dialog zurück. Das funktioniert gut, vielen Dank dafür. Eine Zusatzfrage: Kann man beim Filter (erster Parameter der Function) auch mehrere zur Auswahl angeben? ACAD bietet ja in diesem Feld auch mehrere DWG-Versionen und auch Speichern als DXF an.Dateiname = GetSaveName("AutoCAD DWG|*.dwg|", "dwg", "C:\TEMP\", "Mein Speichern", "TEST.DWG") MfG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wwwilli Mitglied Ingenieur
 
 Beiträge: 305 Registriert: 21.03.2006 ACAD MAP 3D 2009. VestraCAD. Win XP SP3, FD 150 GB, Pentium4, 3,2 GHz, 4 GB.
|
erstellt am: 16. Mai. 2006 13:20 <-- editieren / zitieren --> Unities abgeben:         
Also so scheint es jedenfalls nicht zu funktionieren:Filter1 = "DWG-Datei (*.dwg)|*.dwg|DXF-Datei (*.dxf)|*.dxf|" '??? Dann gibt es zwar eine Auswahl DWG/DXF, aber gespeichert wird doch DWG, nämlich meinname.dxf.dwg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied Holztechniker
   
 Beiträge: 1096 Registriert: 24.07.2002 ACA 2011 / Solidworks 2011 SP3.0 Solidworks EnterprisePDM 2011 SP2.0 Windows 7 Core i7 2600K , 8192MB Nvidia Quadro FX 3800 2x Apple Cinema Display 23"
|
erstellt am: 16. Mai. 2006 13:23 <-- editieren / zitieren --> Unities abgeben:         
Hallo wwwilli,Du kannst die verschiedenen Dateitypen bei einem CommonDialog einfach aneinander reihen: "DXF Files (*.dxf)|*.dxf|DWG Files (*.dwg)|*.dwg". Getrennt werden diese nur durch folgendes Zeichen : | (AltGr+< ). Diese Dateien werden dir dann getrennt angezeigt. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied Holztechniker
   
 Beiträge: 1096 Registriert: 24.07.2002 ACA 2011 / Solidworks 2011 SP3.0 Solidworks EnterprisePDM 2011 SP2.0 Windows 7 Core i7 2600K , 8192MB Nvidia Quadro FX 3800 2x Apple Cinema Display 23"
|
erstellt am: 16. Mai. 2006 19:23 <-- editieren / zitieren --> Unities abgeben:         
Hi wwwilli,Bei Stellis Version ohne Formular kannst du die Angaben wie folgt aneinander reihen: dateiname = GetSaveName("AutoCAD DWG|*.dwg|DXF-File|*.dxf|", "dwg|dxf", "C:\TEMP\", "Mein Speichern", "TEST.DWG") Dann gibt dir der Dateiname bei Wahl DXF-File auch den Dateinamen mit der Endung DXF zurück. Bei einem Formular mit dem CoomonDialog musst du über me.Commondialog1.Filename gehen. Da wird dir die Endung auch mit Angegeben. Danach musst du halt ein Abfrage machen und die Datei unter dem Namen und der Dateiendung speichern. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
   
 Beiträge: 1195 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net
|
erstellt am: 02. Jun. 2006 16:17 <-- editieren / zitieren --> Unities abgeben:         
Hallo,besser als PM ist es hier im Board zu fragen, hier können direkt alle das Problem lösen und die Antwort ist dann alle zugänglich. schöne Pfingsten Stelli ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
   
 Beiträge: 1195 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net
|
erstellt am: 02. Jun. 2006 16:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo wwwilli,Lösung siehe unten. Musst du nur noch in deine Funktion einbauen. Z.B. als Parameter der geändert wird.
Code:
If GetSaveFileName(OFN) Then Temp$ = OFN.lpstrFile 'Alles nach dem NULL-Zeichen verwerfen n = InStr(Temp$, vbNullChar) If n > 1 Then GetSaveName = Left$(Temp$, n - 1) Else GetSaveName = "" End If Else GetSaveName = "" End If ' Hier kannst du die gewählte Option abfragen Debug.Print "gewählter Index: " & OFN.nFilterIndex End Function
Stelli------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wwwilli Mitglied Ingenieur
 
 Beiträge: 305 Registriert: 21.03.2006 ACAD MAP 3D 2009. VestraCAD. Win XP SP3, FD 150 GB, Pentium4, 3,2 GHz, 4 GB.
|
erstellt am: 06. Jun. 2006 10:31 <-- editieren / zitieren --> Unities abgeben:         
Super, Stelli1! Das funktioniert. Für die Allgemeinheit: Es ging darum beim besprochenen Speichern-Unter-Dialog verschiedene DWG-Versionen zu unterscheiden, die alle mit dem gleichen Namen "... .dwg" zurückgegeben werden. Mit der Rückgabe vom Filter-Index kann so ermittelt werden, an welcher Stelle des Filters der Benutzer eigentlich "DWG" gewählt hat. Der Wert muss dann natürlich noch wieder in geeigneter Weise ausgewertet werden.Tschulgulung für unangebrachtes PMen ("Tschulgulung" sagt mein Dreijähriger). Ich wollte die Allgemeinheit nicht mit dem so aufgewärmten Thread belästigen. Wenn ich das mit PM ausreichend oft abgeschrieben habe, poste ichs als Anhang. Bei der Gelegenheit: Weiß jemand, wie in AC 2007 die SaveAs-Parameter für Speichern unter DWG und DXF 2007 heißen? Vermutlich doch ac2007_dwg und ac2007_dxf? Ich habe 2007 auf dem Tisch liegen, aber mich noch nicht getraut. MfG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wwwilli Mitglied Ingenieur
 
 Beiträge: 305 Registriert: 21.03.2006 ACAD MAP 3D 2009. VestraCAD. Win XP SP3, FD 150 GB, Pentium4, 3,2 GHz, 4 GB.
|
erstellt am: 06. Jun. 2006 10:38 <-- editieren / zitieren --> Unities abgeben:         
... Und woran kann ich erkennen, ob einer AC 2007 laufen hat? Application.Version=...?Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied Holztechniker
   
 Beiträge: 1096 Registriert: 24.07.2002 ACA 2011 / Solidworks 2011 SP3.0 Solidworks EnterprisePDM 2011 SP2.0 Windows 7 Core i7 2600K , 8192MB Nvidia Quadro FX 3800 2x Apple Cinema Display 23"
|
erstellt am: 06. Jun. 2006 11:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo wwwilli,Du liegst schon richtig. Die Hilfe gibt dieses Beispiel: Sub Example_Version() ' This example returns AutoCAD version as a string Dim version As String version = ThisDrawing.Application.version MsgBox "This is AutoCAD Version " & version, , "Version Example" End Sub Bei mir gibt Autocad "16.2s (LMS Tech)" wieder, was der Version 2006 entsprechen sollte. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
   
 Beiträge: 1195 Registriert: 17.08.2005 Map 2000-2010, Rasterdesign MapGuide 6.5 - 2010 Oracle 9i,10g Enterprise autodesk Topobase 2-2010 VS6, VS.net
|
erstellt am: 06. Jun. 2006 15:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo wwwilli,schön das es mit dem Filterindex geklappt hat. Die AutoCAD Version kannst du auch so bestimmen. Stelli ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |