Folge 16 – Formular erweitern: STEP

In diesem Video mache ich an der Stelle weiter, wo ich in Folge 15 aufgehört habe.
Ich werde das Formular um Funktionen erweitern, damit STEP Daten exportiert werden können.

Und an dieser Stelle der Code der im Makro vorhanden ist.

{MainForm}

Option Explicit
Private Sub btnABBRECHEN_Click()
    End
End Sub
Private Sub btnSPEICHERN_Click()
    If ckbPDF.Value = True Then
        mod_pdf.speichern
    End If
    If ckbDXF.Value = True Then
        mod_dxf.speichern
    End If
    If ckbSTEP.Value = True Then
        mod_step.speichern
    End If
    End
End Sub
Private Sub UserForm_Initialize()
    mod_swx.modell_pruefen
    If mod_swx.IsModelPartDoc = True Or mod_swx.IsModelAssemblyDoc = True Then
        ckbSTEP.Enabled = True
        optn_step214.Enabled = True
        optn_step203.Enabled = True
    Else
        ckbSTEP.Enabled = False
        optn_step214.Enabled = False
        optn_step203.Enabled = False
    End If
    tbxDATEINAME.Text = mod_swx.dateiname_auslesen
End Sub

{mod_swx}

Option Explicit
Public swApp As SldWorks.SldWorks
Public swModel As ModelDoc2
Sub modell_pruefen()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        swApp.SendMsgToUser "Keine Dokument geladen."
        End
    End If
    If GetFullName = "" Then
        swApp.SendMsgToUser "Die Datei wurde noch nie gespeichert." & vbCrLf & "Makrolauf wird abgebrochen."
        End
    End If
End Sub
Function dateiname_auslesen()
    Dim Dateiname As String
    Dim temp As Variant
    temp = Split(GetFullName, "\")
    Dateiname = temp(UBound(temp))
    dateiname_auslesen = Left(Dateiname, Len(Dateiname) - 7)
End Function
Private Function GetFullName()
    GetFullName = swModel.GetPathName
End Function
Function IsModelPartDoc()
    If swModel.GetType = swDocumentTypes_e.swDocPART Then
        IsModelPartDoc = True
    Else
        IsModelPartDoc = False
    End If
End Function
Function IsModelAssemblyDoc()
    If swModel.GetType = swDocumentTypes_e.swDocASSEMBLY Then
        IsModelAssemblyDoc = True
    Else
        IsModelAssemblyDoc = False
    End If
End Function
Function IsModelDrawingDoc()
    If swModel.GetType = swDocumentTypes_e.swDocDRAWING Then
        IsModelDrawingDoc = True
    Else
        IsModelDrawingDoc = False
    End If
End Function

{mod_step}

Option Explicit
Sub speichern()
    Dim NameUndPfad As String
    NameUndPfad = swModel.GetPathName
    Dim NurPfad As String
    Dim temp As Variant
    temp = Split(NameUndPfad, "\")
    Dim i As Integer
    For i = LBound(temp) To UBound(temp) - 1
        NurPfad = NurPfad & temp(i) & "\"
    Next i
    NameUndPfad = NurPfad & MainForm.tbxDATEINAME.Text & ".stp"
    Dim tempUserPref As Integer
    tempUserPref = swApp.GetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swStepAP)
    Dim stepVersion As Integer
    If MainForm.optn_step214.Value = True Then
        stepVersion = 214
    Else
        stepVersion = 203
    End If
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepAP, stepVersion
    Dim Errors As Long
    Dim Warnings As Long
    Dim ReturnValue As Boolean
    ReturnValue = swModel.Extension.SaveAs3(NameUndPfad, swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, Nothing, Errors, Warnings)
    Debug.Print "Errors: " & Errors
    Debug.Print "Warnings: " & Warnings
    Debug.Print "Return Value: " & ReturnValue
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepAP, tempUserPref
End Sub

{mod_pdf}

Option Explicit
Sub speichern()
    Debug.Print "PDF speichern"
End Sub

{mod_dxf}

Option Explicit
Sub speichern()
    Debug.Print "DXF speichern"
End Sub

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert