API SolidWorks: Komunikat Wyłącz: Czy chcesz go zastąpić

Witam

 

Wykonałem makro pozwalające mi na wygenerowanie pliku DXF rysunków zawartych w katalogu.

Jednakże, gdy DXF już istnieje, pojawia się okno dialogowe z komunikatem:

"Plik "MyFile" już istnieje, czy chcesz go zastąpić?

Czy istnieje metoda zastąpienia pliku bez konieczności klikania tak za każdym razem, gdy plik już istnieje?

 

Z góry dziękujemy,

Gautier

Witam

W zależności od zastosowanej metody wydaje mi się, że opcja "cicha" może rozwiązać problem

 

Spróbować

Cdlt powiedział:

Witam

Powinieneś być w stanie użyć funkcji "SaveAs3", oto przykład makra:

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

 

Pozdrowienia

Witam

 

Dziękuję za odpowiedzi. d.roger Używam już funkcji SaveAs3:

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

Be.adl, szukałem funkcji do nagrywania z opcją Silent i ten kod działa:

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

 

Opcja "swSaveAsOptions_Silent" pozwala na wyłączenie komunikatu.

 

Dziękuję za odpowiedzi.

 

Gautier.