Every nesting operator knows the moment: 200 DXF files land in an import folder named Part1.dxf, Part2.dxf, FlatPattern-3.dxf. The cut program runs. Parts come off the machine. Now someone has to match each blank to an installation slot by hand—measuring, comparing, labeling.
This is a manual step that costs 30–90 minutes per nest cycle, scales with order volume, and doesn’t improve no matter how much you spend on nesting software. The root cause is a mismatch between what SOLIDWORKS produces by default and what ProNest, Lantek, and JETCAM expect in order to route parts back to their jobs automatically.
The fix is not complex. It requires SOLIDWORKS custom properties configured correctly, a naming template, and a batch export that applies the template consistently.
Why Nesting Software Cares About Filenames
ProNest, Lantek Expert, and JETCAM all identify a part by the name of the DXF file it came from. This name follows the part through the nest, the cut program, the material utilization report, and the job ticket that travels with the parts to assembly.
When the filename is meaningful—A-102-EAST-ALU2-R1.dxf—the nesting operator can:
- Route that blank directly to position A-102 on the east facade
- Confirm the cut revision matches the shop drawing
- Generate a job label automatically from the name
- Reconcile scrap against the cut plan without manual lookup
When the filename is Part7.dxf, none of this is possible without a separate paper trail.
Lantek Expert v44 introduced attribute-based nesting, which groups parts by embedded DXF text attributes (material, thickness, delivery date). But even attribute nesting still needs the DXF filename to be the part identifier for job traceability—attributes control nesting strategy, filename controls identity.
JETCAM Orders Controller can use text embedded within DXF geometry as filenames when splitting assembled CAD files into individual parts. This is useful for received DXF nests, but does nothing to fix the naming problem at the point of export from SOLIDWORKS.
The problem originates in SOLIDWORKS. Fix it there.
What Custom Properties to Set
A useful DXF filename for nesting purposes contains, at minimum:
| Field | SOLIDWORKS Property | Example Value |
|---|---|---|
| Part/Drawing Number | DrawingNumber or PartNo | A-102 |
| Installation Location | LocationCode or InstallSlot | EAST-PANEL |
| Material | Material | ALU2 |
| Thickness | Thickness | 3MM |
| Revision | Revision or Rev | R1 |
Thickness and material are the properties nesting software uses to assign a material nest. If they’re in the filename, the operator can visually confirm the right nest sheet before committing.
Location code is specific to facade and ACM panel workflows. For standard fabrication shops, part number plus revision is usually enough. For architectural metalwork where each panel has a unique installation position, the location code is essential—it’s the only thing that gets the right panel to the right scaffold bay.
Set custom properties on the Configuration tab (not the File tab) if you’re using configurations. Otherwise set them on the Custom tab. BOM-level custom properties defined in configurations travel correctly through cut-list items when you’re exporting sheet metal flat patterns.
The Native SOLIDWORKS Export Problem
SOLIDWORKS does not expose custom properties in its built-in DXF export filename. When you run File → Save As → DXF, the output filename is the part filename, period. You cannot inject a custom property into the export dialog.
For a single file this is manageable. For an assembly with 150 sheet metal components it is not.
The workarounds:
Option 1: Rename after export. Export all DXFs, then run a separate Python or VBA renaming step that reads custom properties from the SLDPRT files and renames the DXF outputs. This works but adds a fragile pipeline step—if export and rename run out of sync, you get misnamed files.
Option 2: VBA macro with custom naming. A macro iterates the assembly, reads each component’s custom properties via swComp.GetModelDoc2().GetCustomInfoValue("", "PartNo"), builds a filename string, and calls ExportToDWG2 with the constructed path. This gives you full control but requires maintaining a macro per shop’s naming convention.
Option 3: CadShift batch export with naming tokens. CadShift’s export dialog accepts a filename template with token placeholders. You define the template once; every export run applies it to all sheet metal components automatically. No macros, no post-processing step, no rename loop.
VBA Approach: Reading Custom Properties for Filenames
For teams already running VBA automation, here’s the core pattern for custom-property-driven naming:
Function BuildDxfPath(swComp As SldWorks.Component2, outputDir As String) As String
Dim swModel As SldWorks.ModelDoc2
Dim partNo As String
Dim rev As String
Dim mat As String
Dim thk As String
Dim locCode As String
Set swModel = swComp.GetModelDoc2()
' Read from configuration-specific custom properties first, fall back to file-level
Dim cfgName As String
cfgName = swComp.ReferencedConfiguration
Dim swCustInfo As Object
Set swCustInfo = swModel.Extension.CustomPropertyManager(cfgName)
Dim wasResolved As Boolean
Dim linkToProp As Boolean
swCustInfo.Get5 "PartNo", False, partNo, partNo, wasResolved
swCustInfo.Get5 "Rev", False, rev, rev, wasResolved
swCustInfo.Get5 "Material", False, mat, mat, wasResolved
swCustInfo.Get5 "Thickness", False, thk, thk, wasResolved
swCustInfo.Get5 "LocationCode", False, locCode, locCode, wasResolved
' Sanitize: replace spaces, strip invalid path characters
partNo = Replace(partNo, " ", "-")
mat = Replace(mat, " ", "")
thk = Replace(thk, ".", "p") ' 2.5mm -> 2p5mm
Dim fileName As String
If locCode <> "" Then
fileName = partNo & "_" & locCode & "_" & mat & "_" & thk & "mm_" & rev & ".dxf"
Else
fileName = partNo & "_" & mat & "_" & thk & "mm_" & rev & ".dxf"
End If
BuildDxfPath = outputDir & "\" & fileName
End Function
The ICustomPropertyManager.Get5 method is the correct call for SOLIDWORKS 2018+. The two partNo arguments receive the raw value and the evaluated value respectively—use the evaluated value when properties contain linked expressions.
Critically, read from the configuration-specific property manager (cfgName), not from the file-level manager (empty string). Cut-list items with per-configuration thickness values will otherwise give you the wrong thickness.
CadShift Naming Tokens
CadShift’s file naming engine accepts templates using curly-brace tokens. For the pattern above:
{PartNo}_{LocationCode}_{Material}_{Thickness}mm_{Rev}
Tokens resolve from:
- SOLIDWORKS custom properties (file-level and configuration-level)
- Cut-list item properties (for sheet metal:
Sheet Metal Thickness,Bounding Box Length,Bounding Box Width) - System tokens:
{Date},{Time},{AssemblyName},{ConfigName}
For ACM panel workflows, a template like:
{DrawingNumber}_{PanelLocation}_{Material}_{ThicknessMM}mm_{Rev}
produces output like E-047-N-FACE_ACM3MM_BRUSHED-ALU_3mm_B.dxf, which a nesting operator can sort by panel location and assign to the correct nest sheet without opening anything.
If a property is empty for a given component, the token is dropped and the adjacent separator is collapsed. A part with no PanelLocation property set produces E-047_ACM3MM_BRUSHED-ALU_3mm_B.dxf rather than E-047__ACM3MM_BRUSHED-ALU_3mm_B.dxf.
Configuring Nesting Software to Read the Name
The filename is the part identifier—you don’t need to do anything special on the nesting software side, because every nesting application already treats the filename as the part name by default.
ProNest: The part name shown in the nesting workspace is the DXF filename (without extension). Job reports, material utilization reports, and cut plans all reference this name. If you import A-102-EAST-ALU2-R1.dxf, the ProNest job report shows A-102-EAST-ALU2-R1.
Lantek Expert: Same behavior. Parts imported from DXF are identified by filename in the Lantek MES module. When Lantek Manager reconciles material consumption against job orders, it matches by part name—which is the DXF filename.
JETCAM: JETCAM Expert assigns the filename as the part identifier. JETCAM Orders Controller, when generating work orders, uses the part identifier to associate each blank with a step in the manufacturing plan.
The one additional step worth doing in Lantek: under Configuration → DXF Import, enable Layer Filtering (v44+) to strip SOLIDWORKS bend line and sheet metal note layers before import. Bend lines on the wrong layer will add spurious geometry to the nest if not filtered. See what nesting software expects from SolidWorks DXF files for the full layer convention guide.
Handling Assemblies with Mixed Sheet Metal and Machined Parts
Batch DXF export should only process flat-pattern-capable sheet metal components. When you iterate an assembly and attempt ExportToDWG2 on a machined part, SOLIDWORKS returns an error and may produce an empty or corrupted DXF without surfacing an obvious failure.
The correct filter: before adding a component to the export queue, check that it has at least one sheet metal feature:
Function IsSheetMetal(swModel As SldWorks.ModelDoc2) As Boolean
Dim swFeatMgr As SldWorks.FeatureManager
Dim swFeat As SldWorks.Feature
Set swFeatMgr = swModel.FeatureManager
Set swFeat = swFeatMgr.GetFeatureByTypeName_("SheetMetal")
IsSheetMetal = Not (swFeat Is Nothing)
End Function
GetFeatureByTypeName_ searches the feature tree for a feature of a specific internal type name. "SheetMetal" is the type name for the Sheet Metal feature (the gauge/thickness definition at the root of a sheet metal part). If it returns Nothing, the part has no sheet metal features and should be skipped.
CadShift applies this filter automatically—only sheet metal components are included in a flat pattern DXF batch, and the export log records which components were skipped and why.
The Downstream Benefit: Closing the Shop-Floor Loop
When DXF filenames carry job-meaningful identifiers, the traceability chain closes:
- Engineering exports 200 DXF files named by location code and revision
- Nesting imports them; ProNest/Lantek assigns each part to a nest by material/thickness
- Cutting runs the program; machine labels print automatically from the part name
- Assembly receives labeled blanks that sort directly to their installation positions
- QA can reconcile “which revision of E-047-N-FACE was actually cut” against the export log
No manual renaming. No paper lookup table. No “which part is this?” conversation between the shop floor and the office.
For facade and curtain wall shops where each panel is unique, this is the difference between a reliable production handoff and a two-hour sorting session before every nest.
CadShift’s batch DXF export for SOLIDWORKS assemblies handles the component iteration, flat pattern detection, and filename templating in one step. The CAD file naming automation guide covers naming convention design for teams setting this up across multiple projects.