Améliorer Macro Enregistrer X_T dans un sous dossier?

Suite à mon ancienne question, je souhaiterais améliorer ma macro pour enregistrer mon X_T dans un sous-dossier de l'emplacement de la pièce ?

On aurait un fichier pièce ou en assemblage dans un dossier et dans ce dossier un sous-dossier qui s'appelerait "FICHIERS X_T" ou notre macro viendrait enregistrer mon fichier exporté.

Comment faire pour faire ces changements ?

 

Programme actuel :

 

Sub Sauvegarde_X_T()

 

   
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Locatie As String
Dim Locatie_aangepast As String
Dim OpenDoc As Object
Dim Extensie_nieuw As String
Dim Extensie_oud As String
Dim retval As String
Dim Naam As String
Dim Naam_aangepast As String

 

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

Extensie_oud = ".SLDASM"
Extensie_nieuw = ".X_T"
Locatie = OpenDoc.GetPathName
Locatie_aangepast = Left(Locatie, Len(Locatie) - 7)
retval = Dir$(Locatie_aangepast & Extensie_oud)
Naam = Dir$(Locatie)
Naam_aangepast = Left(Naam, Len(Naam) - 7)
Titel = OpenDoc.GetTitle
Titel = Left(Titel, (Len(Titel)))


   ' If retval = Naam Then
        'nRetval = swApp.SendMsgToUser2(Naam_aangepast & " DXF créé !!!!", swMbWarning, swMbOk)
  '  End If
    
    
Set Part = swApp.ActiveDoc
longstatus = Part.SaveAs3(Naam_aangepast & Extensie_nieuw, 0, 0)

End Sub


save_x_t.swp

Essaye de remplacer

longstatus = Part.SaveAs3(Naam_aangepast & Extensie_nieuw, 0, 0)

Par cela :

FilePath = Left(PathName, InStrRev(PathName, "\"))
FileName = Right(PathName, Len(PathName) - InStrRev(PathName, "\"))
longstatus = Part.SaveAs3(FilePath & "\Fichier_XT\" & Extensie_nieuw, 0, 0)

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

Au passage profite en pour supprimer :

  ' If retval = Naam Then
        'nRetval = swApp.SendMsgToUser2(Naam_aangepast & " DXF créé !!!!", swMbWarning, swMbOk)
  '  End If

 

2 « J'aime »

ok je vais tester :) Merci, je te tiens au courant.

ATTENTION :

J'ai fait un oubli !

Dim FilePath As String, FileName As String

FilePath = Left(Locatie, InStrRev(Locatie, "\"))
MsgBox FilePath & "Fichiers_XT\" & Naam_aangepast & Extensie_nieuw
longstatus = Part.SaveAs3(FilePath & "Fichiers_XT\" & Naam_aangepast & Extensie_nieuw, 0, 0)

1 « J'aime »

ok je regarderais de toute façon ce soir ou demain ...

Je viens d'essayer, c'est parfait mise à part le nom de mon dossier que j'ai nommé : "FICHIERS X_T"

Ce qui donne :

 

Sub Sauvegarde_X_T()


Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Locatie As String
Dim Locatie_aangepast As String
Dim OpenDoc As Object
Dim Extensie_nieuw As String
Dim Extensie_oud As String
Dim retval As String
Dim Naam As String
Dim Naam_aangepast As String

 

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

Extensie_oud = ".SLDASM"
Extensie_nieuw = ".X_T"
Locatie = OpenDoc.GetPathName
Locatie_aangepast = Left(Locatie, Len(Locatie) - 7)
retval = Dir$(Locatie_aangepast & Extensie_oud)
Naam = Dir$(Locatie)
Naam_aangepast = Left(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 FilePath & "FICHIERS X_T\" & Naam_aangepast & Extensie_nieuw
longstatus = Part.SaveAs3(FilePath & "FICHIERS X_T\" & Naam_aangepast & Extensie_nieuw, 0, 0)

End Sub


save_x_t_-_fichiers_x_t.zip

Allez tant qu'on y est, si j'ai envi que quand le dossier "FICHIERS X_T" n'existe pas, que ça puisse le créer pour insérer le fichier exporté dedans, comment faut-il programmer cela ?

Créer des dossiers ou sous dossiers c'est bien en auto c'est mieux

le seul problème a mon avis c'est que dans ton fichiers pièces si tu te retrouve avec X sous dossiers

parasolid, iges, sat etc.....

la manipe sera moins aise je pense pour savoir si tu as bien converti tel ou tel fichiers

tu sera obliger d'ouvrir ces dits sous dossiers pour savoir si oui ou non il sont la et correspondent bien a ta pièce ou assemblage

automatisme c'est bien mais peu à mon avis être dangereux pour les vérifier  donc en fin de compte perte de temps

@+;-))

Je fonctionne déjà comme cela avec mes pdf et dxf pour mes plans et ça me va très bien. Toute façon c'est comme BatchConverter sauf en regardant la date et si ça à bien été créer, il n'y a pas vraiment de moyen de voir si c'est ok.

Donc si quelqu'un à une proposition ?

1 « J'aime »

Par contre je pense que rien ne t'empêche d'enregistrer les diverses version dans le fichiers pièces 

et de faire une copie de ceux ci dans un dossiers bien séparé ( bon pour fab ou autre) en différantes  

extensions un fichiers par extension et par objectif

@+ ;-))

Une nouvelle question ?

Ba le but c'est de faire ça en auto avec une macro.

Je vois pas trop le soucis ...

Je fonctionne déjà comme cela pour des plans 2D. J'ai jamais eu de problème, moi de toute façon je vérifie très régulièrement ce que je fais.

Après chacun sa méthode de travail. Moi c'est la mienne :)

Donc si quelqu'un à une proposition ?

1 « J'aime »