Verbessern Sie die Makro X_T um einen Ordner zu erstellen, der in Solidworks so nicht vorhanden ist?

Ich habe bereits ein Makro (das ich als Anhang anhänge), mit dem ich ein Teil oder eine Baugruppe in X_T in einem Unterordner "X_T FILES" exportieren kann.

Ich bräuchte, dass, wenn der Ordner "X_T FILES" nicht existiert, er einen erstellen kann, um die exportierte Datei darin einzufügen, wie soll ich das programmieren?

Das aktuelle Programm:

 

Eingewechselt Sauvegarde_X_T()


Dimmen swApp als Objekt
Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Dim Locatie As String
Locatie_aangepast als Zeichenfolge dimmen
OpenDoc als Objekt dimmen
Extensie_nieuw als Zeichenfolge dimmen
Dimmen Extensie_oud als Zeichenfolge
Dim retval As String
Dim Naam Als Saite
Naam_aangepast als Zeichenfolge dimmen

 

Set swApp = CreateObject("SldWorks.Application")
Festlegen von swModel = swApp.ActiveDoc
Setze OpenDoc = swApp.ActiveDoc()

Extensie_oud = ". SLDASM"
Extensie_nieuw = ". X_T"
Locatie = OpenDoc.GetPathName
Locatie_aangepast = Links(Lage, Länge(Lage) - 7)
retval = Dir$(Locatie_aangepast & Extensie_oud)
Naam = dir$(Ort)
Naam_aangepast = Links(Naam, Len(Naam) - 7)
Titel = OpenDoc.GetTitle
Titel = Left(Titel, (Len(Titel)))


    
Set Part = swApp.ActiveDoc

Dim FilePath As String, FileName As String

FilePath = Left(Locatie, InStrRev(Locatie, "\"))
MsgBox DateiPfad & "X_T DATEIEN" & Naam_aangepast & Extensie_nieuw
longstatus = Part.SaveAs3(Dateipfad & "DATEIEN X_T\" & Naam_aangepast & Extensie_nieuw, 0, 0)

Ende Sub


save_x_t_-_fichiers_x_t.zip

Diese Seite ansehen

http://www.beta.lynkoa.com/forum/3d/macro-enregistrement-en-pdf-dans-un-dossier-specifique

Ein Makro @ JFARADON, der theoretisch jemand ist, der weiß, wovon er spricht
 
kann der Anfang der Ausrichtung eines Snippets sein
 
@+ ;-))
 
 
 

Hallo, wir müssen nach dieser Zeile hinzufügen:

FilePath = Left(Locatie, InStrRev(Locatie, "\"))

Wenn dir$(FilePath) ="" dann

Mkdir DateiPfad

Ende, wenn

@ PL füge einfach was hinzu, da du sagst, fügst du einfach nach dieser Zeile hinzu, aber es gibt nichts

@+

1 „Gefällt mir“
Ja GT tut mir leid, die Antwort ging zu schnell, ich habe nachträglich bearbeitet.
1 „Gefällt mir“

und ja @ PL das Problem ist da

die Neuauflage der Antworten ohne jegliche Neuauflage ref

und doch x mal fragte unser CM

Es ist notwendig, eine erneute Veröffentlichung einer Antwort so weit wie möglich zu vermeiden

Um eine Antwort zu geben

@+ ;-))

@ PL, wenn man sich den Kommunikationsfaden der Antworten anschaut

Ihre neu bearbeitete Antwort behält die gleiche Zeit bei

Also was die Zeit betrifft, so kam meine Antwort nachher und doch ist es nicht der Fall

also Unverständnis für das Lesen der Antworten in diesem Kommunikationsthread

Der Begriff der Neuveröffentlichung sollte zur besseren Klarheit des Kommunikationsfadens mitgeteilt werden

Und das ist oft der Fall

welches von + oft auf eine Frage ohne Antwort auf den ersten Blick beantwortet wird

Und wenn Sie es veröffentlichen, sind Sie immer der Erste, der es veröffentlicht

Aber wenn wir eine Auffrischung vornehmen, stellen wir fest, dass dies nicht der Fall ist und dass eine Person bereits geantwortet hat

Das Unbehagen ist am häufigsten da

@+ ;-))

 

@+ ;-))

Es funktioniert nicht...

Es wird keine Datei erstellt, wenn sie nicht vorhanden ist.

Versuchen Sie es mit dir$ anstelle von dir

Ich verstehe es nicht wirklich ...

Ich sollte keine Dinge zwischen den "s?

Wie der Name des Ordners, den es erstellen soll? Weil ich nicht verstehe, wie das Programm den Ordner mit dem richtigen Namen erstellt?

 

Wenn dir$(FilePath) ="" dann

Mkdir DateiPfad

Ende, wenn

Hallo

Die MkDir-Funktion akzeptiert es nicht, ein anderes Repository auf einem anderen Laufwerk als demjenigen zu erstellen, auf dem das Makro ausgeführt wird.

Bevorzugen Sie die Methode: My.Computer.FileSystem.CreateDirectory

Lesen Sie hier mehr: https://msdn.microsoft.com/fr-fr/library/2wwkaadb%28v=vs.90%29.aspx

Und funktioniert das stattdessen?

if dir$(DATEIPFAD, vbDirectory) = "" dann
    Shell ("cmd /c mkdir """ & FILEPATH & """")
Ende, wenn

Es funktioniert auch nicht. Ich glaube, ich werde die Idee aufgeben.

Wenn jemand einen anderen Vorschlag hat, bin ich immer interessiert.

Trotzdem vielen Dank an alle, die sich die Zeit genommen haben, zu suchen.

Ich habe das gerade erfolgreich getestet:

Sub main()
   
Dim swApp als Objekt, Teil als Objekt, OpenDoc als Objekt
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Dim Locatie As String, Locatie_aangepast As String, Extensie_nieuw As String, Extensie_oud As String, retval As String
Dim Naam As String, Naam_aangepast As String, FilePath As String, FileName As String, FolderPath As String

Set swApp = CreateObject("SldWorks.Application")
Festlegen von swModel = swApp.ActiveDoc
Setze OpenDoc = swApp.ActiveDoc()

Extensie_oud = ". SLDASM"
Extensie_nieuw = ". X_T"
Locatie = OpenDoc.GetPathName
Locatie_aangepast = Links(Lage, Länge(Lage) - 7)
retval = Dir$(Locatie_aangepast & Extensie_oud)
Naam = dir$(Ort)
Naam_aangepast = Links(Naam, Len(Naam) - 7)
Titel = OpenDoc.GetTitle
Titel = Left(Titel, (Len(Titel)))
    
Set Part = swApp.ActiveDoc

FilePath = Left(Locatie, InStrRev(Locatie, "\"))
FolderPath = DateiPfad & "X_T DATEIEN"

Wenn Dir(FilePath, vbDirectory + vbHidden) <> "" dann
        if Dir(FolderPath, vbDirectory + vbHidden) = "" then _
            MkDir OrdnerPfad
Ende, wenn

longstatus = Part.SaveAs3(Dateipfad & "DATEIEN X_T\" & Naam_aangepast & Extensie_nieuw, 0, 0)

Ende Sub

 

Der Codeausschnitt stammt aus: http://excel.developpez.com/faq/?page=FichiersDir#MkDir

Das www.developpez.com Forum ist ein sehr gutes Forum, in dem man viele Informationen und ernsthafte Teilnehmer finden kann. Ich kann es nur empfehlen.


sauvegarder_xt.swp

Ich habe gerade das Makro getestet, das Sie eingegeben haben, es buggt und es gibt mir Folgendes:


sans_titre.jpg

Es gibt keinen Grund, warum es nicht funktionieren sollte! Was sind die Fehler, wenn Sie meinen Code getestet haben?

Und im letzten Beispiel sieht es so aus, als hätten Sie keine Datei in SolidWorks geöffnet.

 

1 „Gefällt mir“

Haben Sie einen offenen Raum?

Es ist in Ordnung, dass ich das Problem gelöst habe, das ich in einem Forum gefunden habe:

"Dies ist eigentlich ein ziemlich häufiger Fehler, aber er hängt mit einer fehlenden Referenz im VBA-Projekt zusammen (er tritt auf, wenn die Arbeits-/Heimversionen unterschiedlich oder nicht vorhanden sind)

Extras>Referenzen im VBE-Editor deaktivieren Sie die fehlenden Referenzen und/oder ersetzen Sie sie durch die verfügbaren Versionen."

 

Ducou macht es möglich!!!!!!!!!!!!

Danke Jungs!

1 „Gefällt mir“