VBA vs C# for SolidWorks API — When to Use Which (and What Portfolio Projects Actually Get Interviews)

A question that surfaces repeatedly on r/MechanicalEngineering and r/SolidWorks: how much C# vs VBA do you actually need for a SolidWorks CAD automation role? The answers in those threads range from “VBA is enough” to “you need modern .NET”—and both are correct, depending on what the role actually involves. The real answer is architectural: VBA macros and C# COM add-ins solve different problems. Understanding the boundary between them—and being able to explain it—is what separates candidates who have run a few macros from those who can design production automation systems. ...

22 August 2026 · 8 min · CadShift

SOLIDWORKS Sheet Metal: Direct Modeling vs Convert to Sheet Metal — When Each Approach Works

The SOLIDWORKS sheet metal environment has two entry points: you either start with a sketch and build the part as sheet metal from the beginning, or you convert an existing solid into a sheet metal body. The second path—Convert to Sheet Metal—is the right tool for STEP imports and inherited legacy parts with no sketches. But it fails silently on a specific class of solid bodies, and understanding why matters both for fixing production parts and for writing API macros that won’t break on edge cases. ...

21 August 2026 · 10 min · CadShift

Automating 3DEXPERIENCE Compatibility Updates in SOLIDWORKS — API Gap and Task Scheduler Workaround

A question on the SOLIDWORKS 3DEXPERIENCE forum asked whether there is an API method to trigger the Update for 3DEXPERIENCE Compatibility command programmatically. The team needed to process several thousand legacy part files before uploading to a 3DEXPERIENCE tenant — running the command manually was not an option. The short answer: no such API method exists. The compatibility update command is a UI-level operation with no public IFeatureManager, IModelDocExtension, or ISldWorks equivalent. IModelDocExtension::UpgradeLegacyCustomProperties sounds like it might cover this, but it does something narrower and unrelated to the 3DX compatibility update. ...

20 August 2026 · 9 min · CadShift

SOLIDWORKS DXF Flat Pattern: Why Elliptical Holes Become Splines (and the R14 Fix)

A user on the SOLIDWORKS 3DEXPERIENCE forum posted a question about elliptical cutouts in a sheet metal flat pattern. After exporting the flat pattern to DXF, every elliptical hole appeared as a SPLINE entity in the file. The laser cutter’s controller — a Trumpf TruTops installation — rejected the file. TruTops can cut true ellipses from native ELLIPSE entities but has no NURBS solver for arbitrary-degree SPLINE entities, so the holes were silently dropped from the cutting plan. ...

19 August 2026 · 9 min · CadShift

Python Web Mapping in 2026: Folium vs Lonboard vs PyDeck vs Kepler.gl

The r/gis thread from August 2026 asked a question that comes up every few months: which Python web mapping library handles large datasets? The common answer — “use PyDeck” — is partly right but misses the key distinction that determines whether your map loads in two seconds or crashes the browser. The real question is not “which library is faster” but “where does the data go and in what format?” Each library makes a different choice. That choice determines the practical upper limit of what you can render. ...

18 August 2026 · 8 min · CadShift

Automated SOLIDWORKS Sheet Metal to DWG Export — SLDDRW as Silent Background Partner

Every sheet metal shop with more than a handful of active parts runs into the same gap. The model changes — a bend radius is revised, a hole pattern shifts, a flange length is adjusted — and the SLDDRW already has everything: dimensions, bend notes, tolerances, title block, revision table. But the DWG that goes to fabrication is still sitting at the old revision. Someone has to open the drawing, let it rebuild, and export. Every time. ...

17 August 2026 · 10 min · CadShift

EUDR Compliance and GIS Coordinate Systems — Why Your Forest Boundaries Need to Be in WGS84

The EU Deforestation Regulation applies from 30 December 2026. For operators placing timber, cocoa, coffee, palm oil, soy, cattle, and rubber on the EU market, compliance requires a Due Diligence Statement submitted through the TRACES NT system. That statement must include plot-level geolocation data — and the format specification is not flexible. TRACES accepts GeoJSON in WGS84 (EPSG:4326) with coordinates expressed as decimal degrees to at least six decimal places. Plots over 4 hectares require a complete boundary polygon. Plots under 4 hectares may be represented by a single point. ...

16 August 2026 · 9 min · CadShift

DXF File Naming for Laser Cutting Nesting Software — Automate Part Routing from SOLIDWORKS Custom Properties

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. ...

15 August 2026 · 8 min · CadShift

SOLIDWORKS API: Copying a Face with Move Face — Working Around the InsertMoveFace3 Translate-Copy Gap

The Move Face command in SOLIDWORKS has three modes: Offset, Translate, and Rotate. In Translate mode, the PropertyManager shows a Copy checkbox. When checked, the original face stays in place and a translated copy is created alongside it — useful for generating offset geometry, creating clearance ledges, or duplicating a surface patch to use as a reference. The API tells a different story. IFeatureManager.InsertMoveFace3 is the method that drives Move Face programmatically. Its signature accepts a move type from swMoveFaceType_e (0 = Translate, 1 = Rotate, 2 = Offset), the faces to move, and the transformation values. There is no copy parameter. IMoveFaceFeatureData, the data accessor for reading back a Move Face feature, has properties for MoveType, Distance, Rotation, TranslationX/Y/Z, and the face arrays — but no Copy or bCopy flag anywhere in the interface. ...

14 August 2026 · 7 min · CadShift

Autodesk Inventor: Migrating Files Between Versions — What Actually Happens and How to Do It Right

Autodesk Inventor has no backward compatibility. Open an .ipt or .iam file from Inventor 2020 in Inventor 2025, save it, and that file will never open in 2020 again — not with any workaround, not with a trial license, not with a downgrade export. The migration is a one-way door. This matters because version upgrades in Inventor are not transparent events. Each new release updates the internal file format. When you open and save a file, Inventor rewrites it in the current format. If your team is spread across two Inventor versions — which happens whenever a seat upgrades before the rest of the organization — that saved file is now unreachable to anyone still on the old version. ...

13 August 2026 · 9 min · CadShift