Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
A.Acheson
in reply to: A.Acheson

For the VBA equivalent. Here is some reference information for the System Object to check if the folder exist in windows.  To make it easier I added the  reference to "Microsoft Scripting Runtime" under Tools>References. This article  shows how to do add this reference. Without this reference you will need to know the exact method rather than having full access to the list of methods available under the object. 

Public Sub ExportiFactorytoDXF()
   Dim oDoc As PartDocument
   Set oDoc = ThisApplication.ActiveDocument
   
   Dim oDef As SheetMetalComponentDefinition
   Set oDef = oDoc.ComponentDefinition

    'Read the folder in Windows
    '*********************Early bindings*****************
 
    'Add reference to "Microsoft Scripting Runtime" under tools>References (https://wellsr.com/vba/2018/excel/introduction-to-the-vba-filesystemobject/)
    
    'Early bindings allows access to the object collection
    Dim fs As FileSystemObject
    Set fs = New FileSystemObject
     '******************Late bindings*********
    'Dim fs As Object
    'Set fs = CreateObject("Scripting.FileSystemObject")
     
     'Create the folder path
     Dim oPath As String
     oPath = fs.GetParentFolderName(oDoc.FullFileName) & "\DXF"
    
    'check if the folder exist and if not create
    If fs.FolderExists(oPath) = False Then
        fs.CreateFolder (oPath)
    End If
    
    Dim oRow As iPartTableRow
    For Each oRow In oDef.iPartFactory.TableRows
    
    'Change the member
    oDef.iPartFactory.DefaultRow = oRow
   ' MsgBox(oRow.MemberName, "Name of the Member")

    If oDoc.SubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then

        If oDef.HasFlatPattern = False Then
            oDef.Unfold
        Else
            oDef.FlatPattern.Edit
        End If

        Dim odxf, odxfname As String
       
        odxf = "FLAT PATTERN DXF?OuterProfileLayer=0&OuterProfileLayerColor=0;0;0&InteriorProfilesLayer=0&InteriorProfilesLayerColor=0;0;0&BendDownLayerLineType=37633&BendDownLayerColor=0;0;255&BendUpLayerLineType=37633&BendUpLayerColor=0;0;255IV_BEND;IV_BEND_DOWN;IV_OUTER_PROFILE;IV_INTERIOR_PROFILES;IV_FEATURE_PROFILES;IV_FEATURE_PROFILES_DOWN;IV_ALTREP_FRONT;IV_ALTREP_BACK;IV_ROLL_TANGENT;IV_ROLL&InvisibleLayers=IV_TANGENT;IV_TOOL_CENTER;IV_TOOL_CENTER_DOWN;IV_ARC_CENTERS;IV_UNCONSUMED_SKETCHES" _
        + "&RebaseGeometry=True" _
        + "&SimplifySplines=True" _
        + "&SplineTolerance=0.01" _

        odxfname = oPath & "\" & oRow.MemberName & ".dxf"
        Call oDef.DataIO.WriteDataToFile(odxf, odxfname)
        oDef.FlatPattern.ExitEdit

        MsgBox ("DXF has been saved in this location: " + odxfname)
    Else
        MsgBox ("There must be a sheetmetal component to get the dxf file!")
    End If
Next
End Sub

 

If this solved a problem, please click (accept) as solution.‌‌‌‌
Or if this helped you, please, click (like)‌‌
Regards
Alan