05-22-2022
03:19 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
05-22-2022
03:19 PM
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
Or if this helped you, please, click (like)
Regards
Alan