Macro to import foreign file into active part using SOLIDWORKS API

Edit ArticleEdit Article

File imported to an active part document
File imported to an active part document

This VBA macro demonstrates how to import foreign file with bodies (e.g. parasolid, step, iges, etc.) directly into the active part document.

Change the path to the import file in the INPUT_FILE constant

This macro only supports foreign files which are imported as part document.

Const INPUT_FILE As String = "D:\Model.x_t"

Dim swApp As SldWorks.SldWorks

Sub main()

    Set swApp = Application.SldWorks
    On Error GoTo catch_
    Dim swModel As SldWorks.ModelDoc2
    Set swModel = swApp.ActiveDoc
    swApp.DocumentVisible False, swDocumentTypes_e.swDocPART

    Dim swImpPart As SldWorks.PartDoc
    Dim errs As Long
    Set swImpPart = swApp.LoadFile4(INPUT_FILE, "", Nothing, errs)
    Dim vBodies As Variant
    vBodies = swImpPart.GetBodies2(swBodyType_e.swAllBodies, True)
    Dim i As Integer
    For i = 0 To UBound(vBodies)
        Dim swBody As SldWorks.Body2
        Set swBody = vBodies(i)
        Set swBody = swBody.Copy
        Dim swBodyFeat As SldWorks.Feature
        Set swFeat = swModel.CreateFeatureFromBody3(swBody, False, swCreateFeatureBodyOpts_e.swCreateFeatureBodySimplify)
        If swFeat Is Nothing Then
            Err.Raise vbError, "", "Failed to create feature from body"
        End If
    swApp.CloseDoc swImpPart.GetTitle
    GoTo finally_
    Debug.Print "Error: " & Err.Number & ":" & Err.Source & ":" & Err.Description
    GoTo finally_

    swApp.DocumentVisible True, swDocumentTypes_e.swDocPART
End Sub

Product of Xarial Product of Xarial