Skip to main content

cad

How to Convert 3D CAD Files: STL, STEP, and OBJ Online

robinhood-projects13 min read

The 3D File Format Problem Nobody Talks About

You finish a part in Fusion 360, export it as STEP, and send it to the printer β€” then discover your slicer has no idea what to do with it. Or a colleague hands you an OBJ downloaded from a scan pipeline, and you need to print it, but your slicer only takes STL. Or you need to drop a 3D-printed bracket into a Blender scene, and the STL you have carries no material information whatsoever.

The source of friction is almost always a format mismatch. STL, STEP, and OBJ serve fundamentally different purposes, and tools in different parts of the workflow speak different languages. Understanding which format belongs where β€” and how to cross between them without breaking the geometry β€” is the practical skill that saves hours.

This guide covers the format landscape, the four most common conversions, and the failure modes that catch people out.


The 3D Format Landscape: STL, STEP, and OBJ

Three formats cover the vast majority of non-proprietary 3D model interchange. They are not interchangeable.

STL β€” The 3D Printing Standard

STL (STereoLithography, or Standard Triangle Language) is a triangulated mesh format. It represents geometry as a collection of triangles β€” nothing more. No color, no material, no parametric history, no units embedded in the spec (though most tools assume millimeters). Every commercial slicer β€” PrusaSlicer, Cura, Bambu Studio, IdeaMaker β€” reads STL natively.

STL's strength is its simplicity. Its weakness is the same thing. You lose all the engineering intent the moment you export: dimensions become implicit in the mesh, feature trees disappear, and parametric relationships are gone. STL is a one-way door out of a CAD tool.

STEP β€” Engineering-Grade Parametric Format

STEP (Standard for the Exchange of Product model data, ISO 10303) is the standard for engineering model interchange. Unlike STL, STEP stores exact geometry β€” NURBS surfaces, B-rep solids, dimensional constraints, and assembly relationships. A STEP file from SolidWorks opens in CATIA with the geometry intact and accurate to the original design. Tolerances, surface continuity, and assembly mating conditions all survive the transfer.

STEP is what mechanical engineers use when sharing models between CAD packages. It is not a mesh format β€” slicers cannot read it directly.

OBJ β€” Rendering and Animation

OBJ (Wavefront OBJ) is a mesh format designed with rendering workflows in mind. Where STL carries only raw geometry, OBJ supports UV texture coordinates, vertex colors, and material definitions via a companion .mtl file. Game asset pipelines, Blender, Maya, Cinema 4D, and photogrammetry outputs all commonly produce or consume OBJ.

OBJ is technically printable β€” it is a mesh β€” but it is not a standard slicer input, and the material data it carries has no meaning in a print context. Its home is the rendering and animation side of the pipeline.

FormatGeometry typeMaterials/UVSlicer inputCAD interchangeTypical home
STLTriangulated meshNoYesNo3D printing
STEPB-rep / NURBSNoNoYesEngineering CAD
OBJTriangulated meshYes (.mtl)LimitedNoRendering / animation

STEP to STL β€” Preparing a CAD Model for 3D Printing

STEP to STL β†’

This is the most common conversion in a print workflow. You designed a part in SolidWorks, Fusion 360, FreeCAD, or CATIA. Your slicer will not open the native file, and STEP β€” the logical neutral export β€” is equally unreadable to a slicer. You need a triangulated mesh. STL is the answer.

The conversion process is a tessellation: the converter samples the smooth NURBS surfaces in the STEP file and approximates them with triangles. This is unavoidably lossy β€” you are replacing mathematically exact curves with flat facets β€” but the loss is controllable.

The mesh resolution trade-off. Tessellation is governed by chord deviation (or angular tolerance): how far the midpoint of any triangle edge is allowed to deviate from the ideal surface. A tight tolerance produces more triangles, a larger file, and geometry that is visually smooth and dimensionally accurate. A loose tolerance produces fewer triangles, a smaller file, and visible faceting on curved surfaces.

For most FDM parts, a chord deviation of 0.01–0.05 mm is more than adequate β€” your printer's layer height will be the limiting factor, not the mesh. For resin printing where surface finish matters more, 0.005 mm or tighter makes sense. For a complex assembly with many curved surfaces, a very tight tolerance can produce STL files in the hundreds of megabytes, which some slicers handle poorly.

What survives the conversion. External geometry survives accurately at the chosen tolerance. What does not survive: parametric relationships, feature history, design intent, internal assembly structure (a multi-body STEP becomes a merged or split mesh depending on the converter), and surface color.

Common issues.

  • Internal faces from multi-body assemblies can create non-manifold geometry in the output STL. Preview the result before slicing.
  • STEP files from different CAD packages occasionally carry unit definitions (mm vs inches) that a converter must interpret. If the printed part comes out 25.4Γ— too large or too small, you have a unit mismatch.

STL to OBJ β€” Taking a Print Model into Rendering Software

STL to OBJ β†’

The conversion runs in the other direction when a 3D-printed design needs to appear in a rendered product image, an animation, or a CAD visualization. Blender and Maya can technically import STL, but OBJ is a better starting point for a rendering workflow because:

  • OBJ supports UV maps. You can unwrap the mesh in Blender and apply textures, labels, or material finishes.
  • OBJ supports vertex normals explicitly, which affects how smooth shading is computed in a renderer. STL has per-face normals only, which can produce flat-shaded or artificially faceted appearances.
  • OBJ with a paired .mtl file allows you to define base colors and material properties before you even open a shader editor.

What this conversion does not do. STL to OBJ is a format translation, not a geometry upgrade. The triangulated mesh carries over as-is. You will not get smooth subdivision surfaces out of a coarsely tessellated STL just because you converted to OBJ. If the STL was exported with poor mesh resolution, the OBJ inherits those same flat facets. The right time to fix mesh quality is at the STEP-to-STL stage, before parametric information is gone.

Typical use cases.

  • You printed a product prototype and want to composite a render with it for a pitch deck.
  • You designed a part in CAD, printed it, and now need to show it in a scene β€” not as a technical drawing but as a realistic 3D render.
  • You want to add textures or decals to a 3D printable model in Blender before finalizing the design.

OBJ to STL β€” Printing a Model from a Render Pipeline

OBJ to STL β†’

The reverse path matters when the model originates outside a CAD tool. Game assets, photogrammetry scans, sculpts from ZBrush, and models exported from animation software all commonly arrive as OBJ. If you want to print any of these, you need STL.

The conversion is mechanically simple β€” both formats are triangle meshes, so the geometry transfers directly. The material data in the .mtl file and any UV maps are discarded; they have no meaning in a print context. What matters is whether the mesh is printable.

The manifold geometry requirement. Slicers require watertight, manifold geometry: every edge shared by exactly two faces, no holes, no self-intersections, no zero-area faces. Meshes from game assets and photogrammetry frequently fail this requirement β€” game assets are optimized for rendering, not fabrication, and may have open edges, internal floating faces, or inverted normals. Photogrammetry meshes often have holes from reconstruction artifacts.

Convert the OBJ to STL, then preview the result before slicing. Non-manifold issues that pass invisibly through a renderer will stop a slicer cold.

Scale. OBJ files have no standardized unit. A model that represents a 50 mm bracket might have coordinates in the range 0–50 (millimeters) or 0–1.9685 (inches) or 0–50000 (microns), with no indication in the file which system was intended. Verify scale against a known dimension before printing, or you will waste a print finding out the bracket is 50 centimeters instead of 50 millimeters.


STL Preview β€” Inspect Before You Print

STL Preview β†’

Converting to STL is step one. Inspecting the result before sending it to a slicer is step two, and it consistently saves filament, time, and frustration.

The preview lets you rotate and inspect the mesh, which surfaces issues that are invisible in a file listing:

Non-manifold geometry. Open edges and T-junctions β€” edges shared by three faces instead of two β€” cause slicers to either fail outright or produce incorrect toolpaths. A visual inspection under wireframe view reveals mesh irregularities quickly. Some slicers will attempt to auto-repair these, but the repair can change geometry in ways that are hard to predict.

Inverted normals. STL face normals define which side of a triangle is "outside." If a face has its normal pointing inward, the slicer may treat the corresponding region as negative space instead of solid material. Inverted normal patches show up clearly in a shaded preview as dark or missing surfaces.

Wall thickness. Thin walls below the minimum printable thickness for your process β€” typically 1.2 mm for FDM, less for resin β€” are visually obvious under a proper 3D preview but invisible in a flat thumbnail. Catching these before slicing saves a failed print.

Orientation check. Previewing in 3D lets you assess how the part will need to be oriented on the build plate. A part that requires extensive supports due to a horizontal overhang might be reprintable with a simple 90Β° rotation that is only obvious from a three-dimensional view.


Choosing the Right Conversion

You haveYou needWhyUse
STEPSTLPrint a CAD partSTEP to STL β†’
STLOBJRender or texture in Blender/MayaSTL to OBJ β†’
OBJSTLPrint a game asset, scan, or sculptOBJ to STL β†’
STLInspectVerify geometry before slicingSTL Preview β†’

The most common multi-step workflow: STEP β†’ STL (for printing) β†’ preview in STL Preview β†’ slice. If you also need to render the model: STEP β†’ STL β†’ OBJ β†’ import into Blender.


Common Issues and How to Handle Them

Non-Manifold Geometry

The most frequent reason a slicer rejects an STL. Causes include multi-body STEP exports where internal faces were included, OBJ files from game pipelines with open edges, and coarsely tessellated curved surfaces where adjacent patches share edges incorrectly.

Diagnosis: open the file in STL Preview. Non-manifold edges appear as visual artifacts β€” usually dark patches or holes on a shaded mesh. Some slicers report a specific count of non-manifold edges on import.

Fixes: if the source is STEP, re-export with a slightly looser tolerance or use a CAD tool's built-in "check geometry" function before exporting. If the source is OBJ, repair tools in Meshmixer or Blender's 3D Print Toolbox can fill holes and fix winding.

Inverted Normals

An STL where some faces have outward normals and others have inward normals is ambiguous: the slicer cannot tell which regions are solid. This often comes from Boolean operations in CAD tools where a subtraction left behind reversed faces, or from OBJ models where face winding was inconsistent.

Diagnosis: render the STL in STL Preview. Regions with inverted normals appear dark or hollow in a single-sided shading mode. Blender's Face Orientation overlay colors forward-facing faces blue and backward-facing faces red β€” extremely useful for diagnosis.

Fix: in Blender, select all faces and run Mesh β†’ Normals β†’ Recalculate Outside. In FreeCAD, re-run the Part β†’ Check Geometry operation and repair any reported issues before exporting again.

Scale and Unit Mismatches

STL has no formal unit definition β€” the spec treats coordinates as dimensionless. In practice, the 3D printing community treats STL coordinates as millimeters, but some CAD tools default to exporting in meters or inches, particularly when the document unit is set to imperial.

Symptoms: the slicer shows a part that is 1000Γ— too large (document was in meters, slicer assumed mm) or 25.4Γ— wrong in one dimension (inches treated as millimeters).

Fix: before converting STEP to STL, verify the document units in the CAD tool. Most exporters have an explicit unit setting in the export dialog β€” set it to millimeters. If the STL arrives at the wrong scale and you know the correct size, rescale in the slicer or in Blender before printing.

Large File Sizes

A STEP model with complex freeform surfaces β€” an ergonomic handle, a turbine blade, a generative-design bracket β€” at a tight tessellation tolerance can produce STL files of 50–200 MB or more. Some slicers handle this without complaint; others slow to a crawl or crash.

The fix is almost always to loosen the tessellation tolerance. For FDM printing, a chord deviation of 0.05 mm is indistinguishable from 0.005 mm on the physical part β€” the layer resolution swamps the difference. Use the tighter tolerance only when surface finish precision genuinely matters.


Practical Workflow End to End

Here is the complete path from a CAD model to a rendered image and a physical print, using only a browser:

  1. Export your part from the CAD tool as STEP (neutral format, preserves geometry).
  2. Convert STEP to STL using STEP to STL β†’. Choose a chord deviation appropriate for your print process.
  3. Inspect the result in STL Preview β†’. Check for non-manifold geometry, inverted normals, and orientation.
  4. Send the STL to your slicer.
  5. If you also need a render: convert the STL to OBJ using STL to OBJ β†’, then import into Blender or Maya for texturing and rendering.

If your starting point is an OBJ from a game asset or scan:

  1. Convert OBJ to STL using OBJ to STL β†’.
  2. Preview in STL Preview β†’ β€” pay particular attention to non-manifold geometry, which is common in OBJs not designed for fabrication.
  3. Repair if needed, then send to slicer.

No CAD license required for any of these steps. Files are uploaded for processing and deleted automatically after about an hour.