SolidWorks API : désactiver message : Souhaitez vous le remplacer

Bonjour,

 

J'ai fait une macro me permettant de générer les DXF des mises en plan contenu dans un répertoire.

Cependant lorsque le DXF existe déjà, j'ai une boite de dialogue qui s'ouvre avec le message :

"Le fichier "Monfichier" existe déjà, Souhaitez vous le remplacer"

Est ce qu'il y a une méthode afin de remplacer le fichier sans devoir cliquer sur oui à chaque fois que le fichier existe déjà ?

 

D'avance merci,

Gautier

Bonjour,

suivant la méthode employée, il me semble que l' option "silent" peut resoudre le problème

 

A tester

Cdlt

Bonjour,

Tu dois pouvoir utiliser la fonction "SaveAs3", voici un exemple de macro :

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swmodel As SldWorks.ModelDoc2
    Dim stPath As String
    Dim lgFichier As Long
    Dim blretval As Boolean
    Dim Errors As Long
    Dim Warnings As Long
    
    
    Set swApp = Application.SldWorks

    Set Part = swApp.ActiveDoc
    Dim myModelView As Object
    Set myModelView = Part.ActiveView
    myModelView.FrameState = swWindowState_e.swWindowMaximized
    
    Set swApp = Application.SldWorks
    
    'on récupére le document actif
    Set swmodel = swApp.ActiveDoc
    
    If Not swmodel Is Nothing Then
       'on vérifie que le fichier est enregisté
        If swmodel.GetPathName = "" Then
            MsgBox "Veuillez enregistrer votre document avant de lancer la macro", vbInformation
            End
        Else
            'on récupére l'emplacement du fichier
            stPath = swmodel.GetPathName

            'on récupére le nombre de caractére jusqu'au . de l'extension
            lgFichier = InStrRev(stPath, ".", -1, vbTextCompare) - 1
            'on récupére le chemin sans l'extention
            If lgFichier > 0 Then
                  stPath = Left(stPath, lgFichier)
            End If
        End If

        'si le document est une mise en plan
        If swmodel.GetType = swDocDRAWING Then
            'on créer le DXF
            Dim nameDXF As String
            nameDXF = stPath & "_drw.DXF"
            blretval = swmodel.SaveAs3(nameDXF, 0, 0)
            
            MsgBox "Traitement terminé"

        End If

    End If

End Sub

 

Cordialement,

Bonjour,

 

Merci pour vos réponses. d.roger j'utilise déjà la fonction SaveAs3 :

"longstatus = swModel.SaveAs3(nom_Fichier & " EXT.DXF", 0, 0)"

Be.adl, j'ai cherché la fonction pour enregistrer avec l'option Silent et ce code marche :

longstatus = swModel.Extension.SaveAs(nom_Fichier & " EXT.DXF", swSaveAsOptions_Silent, 0, swExportPDFData, nErrors, nWarnings)

 

L'option "swSaveAsOptions_Silent" permet de désactiver le message.

 

Merci pour vos réponses.

 

Gautier.