Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Dateinamen auslesen

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 SOLIDWORKS
  
Cloud for All - Neue Vorteile in Ihrer SOLIDWORKS Lizenz
Autor Thema:  API: Dateinamen auslesen (5189 mal gelesen)
pi-design
Mitglied
Design Engineer


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

Beiträge: 950
Registriert: 09.08.2002

WIN 10 / 64bit
SWX 2018 SP5 64 Bit
MS Office 2013
HP Z420
Intel Xeon E5-1620 3,66GHz
16 GB RAM
2x HP LA2405wg (24")
NVIDIA Quadro 2000
Space Explorer

erstellt am: 05. Feb. 2008 10:42    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,
es gibt ja ein Makro von Andreas Bacher aus Stefan's Makrosammlung, welches dxf, pdf und jpg's automatisch speichert.


' ******************************************************************************
' C:\DOKUME~1\ast06\LOKALE~1\Temp\swx2140\Macro1.swb - macro recorded on 14/04/04 by Andreas Bacher
' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim saveFileName As String
Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
Part.EditSketch

If (swApp.ActiveDoc.GetPathName = "") Then          'Abfrage ob Name vergeben wurde
    MsgBox ("Bitte zuerst Zeichnung speichern!")
    Exit Sub
End If

saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".dxf" ' Speichern als DXF-Datei
Part.SaveAs2 saveFileName, 0, True, False
saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".pdf" ' Speichern als PDF-Datei
Part.SaveAs2 saveFileName, 0, True, False
saveFileName = Left(swApp.ActiveDoc.GetPathName, Len(swApp.ActiveDoc.GetPathName) - 7) + ".jpg" ' Speichern als JPG-Datei
Part.SaveAs2 saveFileName, 0, True, False

End Sub


Was muß geändert werden, wenn diese Dateien in ein anderes Verzeichnis (k:\mechanik\zeichnungen) als das der *.slddrw gespeichert werden soll.

Gruß Pille

------------------
pi-design

ACD Gruppe

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 05. Feb. 2008 10: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 pi-design 10 Unities + Antwort hilfreich

Hallo Pille,

du musst den Pfad deines Dokument aufteilen und somit Verzeichnis, Dokumentname und Extension zu ermitteln.
Da gibt es mehrere Möglichkeiten durch die verschiedenen String Funktionen. Schau dir mal diesen Tipp an!

------------------
Mfg Daniel

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

pi-design
Mitglied
Design Engineer


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

Beiträge: 950
Registriert: 09.08.2002

WIN 10 / 64bit
SWX 2018 SP5 64 Bit
MS Office 2013
HP Z420
Intel Xeon E5-1620 3,66GHz
16 GB RAM
2x HP LA2405wg (24")
NVIDIA Quadro 2000
Space Explorer

erstellt am: 06. Feb. 2008 08:26    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 Daniel,
gibt es nicht einen "kürzeren" Befehl um den Namen des aktiven Dokuments auszulesen?

Mein Softi (ich bin ein Laie) meint, das Dein Tip zwar funktioniert, aber doch ein größerer Programmieraufwand bedeutet.

Gruß Pille

------------------
pi-design

ACD Gruppe

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 06. Feb. 2008 08:34    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 pi-design 10 Unities + Antwort hilfreich

Das kommt darauf an, wie der neue Dateipfad definiert ist. Wenn es immer der gleiche Pfad ist, ist es natürlich einfach. Wenn der Pfad ständig wechselt, kannst du ein neues Formular aufmachen und dorthin browsen. Beschreib doch mal, was du machen willst.

Piet

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

pi-design
Mitglied
Design Engineer


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

Beiträge: 950
Registriert: 09.08.2002

WIN 10 / 64bit
SWX 2018 SP5 64 Bit
MS Office 2013
HP Z420
Intel Xeon E5-1620 3,66GHz
16 GB RAM
2x HP LA2405wg (24")
NVIDIA Quadro 2000
Space Explorer

erstellt am: 06. Feb. 2008 08:43    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 Piet,

meine Zeichnungen sind immer in verschiedenen Verzeichnissen. Die erstellten PDF's sollen dann
in ein gemeinsames Verzeichnis z.B. k:\mechanik\zeichnungen

Gruß Pille

------------------
pi-design

ACD Gruppe

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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 06. Feb. 2008 09:23    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 pi-design 10 Unities + Antwort hilfreich

Hallo Pille
Einfach den Dateiname ohne Endung mit der Funktion von Andreas Müller ermitteln und den Speicherpfad für dein PDF neu zusammensetzen.

Code:
Public Function GetFileNameNoExt(SwxModel As Object) As String
' aus dem übergebenen modell (=SwxModel) wird der Dateiname ohne Extension gefiltert
' wenn das Modell noch nicht gespeichert wurde, wird ein 0-String zurückgegeben

' by Andreas Müller; 5503 Schafisheim; Tel. +41 (0)62 891 19 63

Dim strDateipfad    As String
Dim vDummy          As Variant

GetFileNameNoExt = ""
strDateipfad = SwxModel.GetPathName()
If strDateipfad = "" Then Exit Function 'das Modell wurde noch nicht gespeichert
Do
    vDummy = InStr(strDateipfad, "\")
    strDateipfad = Right(strDateipfad, Len(strDateipfad) - vDummy)
Loop While vDummy <> 0
If UCase(Right(strDateipfad, 7)) = ".SLDPRT" Or UCase(Right(strDateipfad, 7)) = ".SLDASM" Then
  GetFileNameNoExt = Left(strDateipfad, Len(strDateipfad) - 7)
Else
  GetFileNameNoExt = strDateipfad
End If

End Function


Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 06. Feb. 2008 09:33    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 pi-design 10 Unities + Antwort hilfreich

Hallo pi-design

 

Zitat:
Original erstellt von pi-design:
Mein Softi (ich bin ein Laie) meint, das Dein Tip zwar funktioniert, aber doch ein größerer Programmieraufwand bedeutet.

Uh, oh, größerer Programmieraufwand ... da hab ich als Hobbyprogrammierer ja sogar keine Ausreden mehr  

Hier der "größere Programmieraufwand" (in drwpath steht dein kompletter Pfad drin):

Code:

    ' Pfad abschneiden
    zielname = Mid(drwpath, InStrRev(drwpath, "\") + 1, Len(drwpath))
    ' Extension abschneiden, einfache Variante
    zielname = Left(zielname, Len(zielname) - 7)

Nach diesem 2 Zeilen großem Programmieraufwand hast du in Zielname den Dateiname ohne Pfad und Extension drinstehen.

Größerer Programmieraufwand, tststs ...

Nimm doch lieber gleich du-weißt-schon-was  

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

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

pi-design
Mitglied
Design Engineer


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

Beiträge: 950
Registriert: 09.08.2002

WIN 10 / 64bit
SWX 2018 SP5 64 Bit
MS Office 2013
HP Z420
Intel Xeon E5-1620 3,66GHz
16 GB RAM
2x HP LA2405wg (24")
NVIDIA Quadro 2000
Space Explorer

erstellt am: 06. Feb. 2008 10:11    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 Stefan,
mir als Laie kann ein Softi viel erzählen. Da bin ich sehr gutgläubig.
Hab ihm das mal weitergeleitet.
Danke an alle und gruß Pille

------------------
pi-design

ACD Gruppe

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 06. Feb. 2008 11:26    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 pi-design 10 Unities + Antwort hilfreich

Wenn ihr sowieso den Pfad abschneidet, könnt ihr auch gleich mit Part.Gettitle den Namen ohne Pfad holen. Dann hinten die Endung ab und in den festen Pfad als ... speichern. Aufwand ist das nicht.

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 06. Feb. 2008 12:04    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 pi-design 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von Lutz Federbusch:
Wenn ihr sowieso den Pfad abschneidet, könnt ihr auch gleich mit Part.Gettitle den Namen ohne Pfad holen. Dann hinten die Endung ab und in den festen Pfad als ... speichern. Aufwand ist das nicht.


Hihi, von wegen, großer Aufwand sogar. Du müsstest ja dann prüfen, ob schon eine Endung dranhängt und die nur dann ggf. abschneiden, je nach Einstellung im Windows Explorer ("Erweiterungen bei bekannten Dateitypen ausblenden").

SCNR  

Ciao,
Stefan


------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 06. Feb. 2008 12:08    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 pi-design 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Lutz Federbusch:
Wenn ihr sowieso den Pfad abschneidet, könnt ihr auch gleich mit Part.Gettitle den Namen ohne Pfad holen. Dann hinten die Endung ab und in den festen Pfad als ... speichern. Aufwand ist das nicht.


Ich hab mich nun schon einige Zeit nicht mehr mit diesem Thema befasst, aber: in dieser Form stimmt Deine Aussage nicht, Lutz. Bis SWX 05 oder 06 brachte "Gettitle" je nach Einstellung des Windowsexplorers unterschiedliche Resultate hervor!! Soweit ich mich erinnern kann, wurde der Name mit oder ohne Extension gebracht. Kann natürlich sein, dass sich das zwischenzeitlich geändert hat.

------------------
Gruss
Andreas
bachmann engineering ag

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 06. Feb. 2008 12:14    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 pi-design 10 Unities + Antwort hilfreich

Stimmt, aber das kann man ja wohl abfangen.
Entscheidend ist, ob der Explorer die bekannten Dateitypen ausblendet. Wenn man das Ergebnis von Gettitle auf Punkt abfragt, weiß man aber Bescheid. Da sowieso der Dateityp hinten weg und ein neuer fürs Speichern_unter dran soll, ist die Abfrage ohnehin nötig.

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

[Diese Nachricht wurde von Lutz Federbusch am 06. Feb. 2008 editiert.]

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)2024 CAD.de | Impressum | Datenschutz