SolidWorks API: Meldung "Deaktivieren: Möchten Sie es ersetzen?"

Hallo

 

Ich habe ein Makro erstellt, mit dem ich die DXF der Zeichnungen generieren kann, die in einem Verzeichnis enthalten sind.

Wenn die DXF-Datei jedoch bereits vorhanden ist, wird ein Dialogfeld mit der Meldung geöffnet:

"Die Datei "MyFile" existiert bereits, möchten Sie sie ersetzen?

Gibt es eine Methode, um die Datei zu ersetzen, ohne jedes Mal auf Ja klicken zu müssen, wenn die Datei bereits vorhanden ist?

 

Vielen Dank im Voraus,

Gautier

Hallo

Abhängig von der verwendeten Methode scheint es mir, dass die Option "still" das Problem lösen kann

 

Versuchen

Cdlt

Hallo

Sie sollten in der Lage sein, die Funktion "SaveAs3" zu verwenden, hier ist ein Beispiel für ein Makro:

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

 

Herzliche Grüße

Hallo

 

Vielen Dank für Ihre Antworten. d.roger Ich nutze bereits die SaveAs3-Funktion:

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

Be.adl, ich habe nach der Funktion gesucht, die mit der Option Silent aufgenommen werden soll, und dieser Code funktioniert:

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

 

Mit der Option "swSaveAsOptions_Silent" können Sie die Nachricht deaktivieren.

 

Vielen Dank für Ihre Antworten.

 

Gautier.