How to convert IGES to OBJ
- Load the IGES fileSelect a .iges or .igs file. The reader walks the D (directory) and P (parameter) sections and collects surface entities, ignoring annotation and drawing entities that carry no geometry.
- Read exact surfacesEach supported entity type — trimmed planes, cylinders, splines, ruled surfaces — is read as exact geometry with its trimming boundary.
- Tessellate per faceSurfaces are triangulated at the chosen detail level. Legacy IGES files frequently contain gaps and duplicated trims, so faces that fail to tessellate are skipped rather than corrupting the rest.
- Write Wavefront OBJVertices and normals go out as v/vn records and faces as f records referencing them — the most widely understood mesh text format on earth.
What happens when IGES is converted to OBJ
What a CAD file really stores
STEP and IGES are boundary representations: exact surfaces (planes, cylinders, splines) with trimming curves that delimit each face. There are no triangles anywhere in the file — any triangle you see was computed on the fly.
Tessellation is the whole conversion
The kernel converts each exact face into triangles by recursive subdivision until the chordal error stays under the detail level's deflection. A cylinder tessellated at Draft may be 32 segments; at Maximum it can exceed 512. The triangle count scales with surface curvature, not file size.
Only position and normal survive
The mesh handed to exporters carries vertex positions and normals. Nothing else in the source has a destination in a plain mesh format: feature history, assembly structure, materials, names and PMI annotations are dropped.
Why IGES results often need cleanup
IGES predates watertight solids. Files from the era mix trimmed surfaces with loose curves, duplicate entities and coordinate-system transforms. The conversion tessellates what is geometrically usable and skips the rest, which occasionally leaves small holes that a slicer or MeshLab can close in seconds.
Why OBJ suits legacy exchange
OBJ is plain ASCII with a spec one page long. Every DCC tool, slicer and viewer reads it. For old IGES data whose destination is inspection or quick editing rather than manufacturing, OBJ is the least-lossy widely-supported landing spot.
IGES vs OBJ
| IGES surfaces | Wavefront OBJ mesh | |
|---|---|---|
| Feature | IGES source | OBJ output |
| Geometry | Exact surfaces as numbered entities | Indexed v/vn/f triangle mesh |
| Format era | 1980s text exchange standard | 1990s text mesh standard |
| Structure | Entity list, no hierarchy | One merged mesh, optional groups dropped |
| Units | Usually inches or mm, declared loosely | None — plain numbers |
| Robustness | Frequently gappy legacy data | Clean text, trivially parseable |
Supported formats
| Format | Read | Write | Notes |
|---|---|---|---|
| STEP (.step .stp) | Yes | – | ISO 10303 B-rep, AP203 / AP214 / AP242 |
| IGES (.iges .igs) | Yes | – | Entity-based surfaces, up to 5.3 |
| BREP (.brep) | Yes | – | OpenCascade native B-rep |
| STL (.stl) | Yes | Yes | Binary and ASCII triangles, no units |
| OBJ (.obj) | Yes | Yes | v / vn / f records; .mtl references ignored |
| PLY (.ply) | Yes | Yes | Binary position and normal arrays |
| GLB / glTF (.glb .gltf) | Yes | Yes | glTF 2.0, binary or JSON with data URI |
| 3MF (.3mf) | Yes | Yes | OPC/ZIP package, declares millimetres |
| FBX (.fbx) | Yes | – | Binary and ASCII, static mesh only |
| DAE (.dae) | Yes | Yes | Collada scene graph is flattened |
| 3DS (.3ds) | Yes | – | Legacy chunk-based 3D Studio format |
| AMF (.amf) | Yes | – | XML, ZIP-compressed packages supported |
| USDZ (.usdz) | Yes | Yes | ZIP containing a USD stage |
Known limitations and why a conversion can fail
This is a one-way flattening
The IGES feature tree, sketches and constraints cannot be recovered from the mesh output. Keep the source file — the conversion cannot be reversed.
Hollow results mean open edges
If the source solid has faces the kernel cannot sew shut, the tessellated shell can come out with open boundaries. Slicers usually repair small gaps, but check the preview.
Detail level changes file size, not accuracy claims
Higher detail means more triangles and a closer fit to the true surface. It does not make the geometry 'more correct' — the underlying B-rep is exact either way.
Inches vs millimetres
IGES files declare units in the global section, but the conversion does not rescale whatever it finds — values pass through as-is. If the file was authored in inches, the OBJ numbers are inches; check the bounding box against the real part.
Unsupported entities are skipped
Annotation, drawing and CSG-tree entities have no mesh representation. A file that is mostly annotation can legitimately produce an empty result — the error message will say so rather than writing a broken OBJ.
Frequently asked questions
Can I convert on this page itself?
No. This page is the reference for the IGES to OBJ path, and the conversion itself runs in the workspace that the button above opens, with both formats already selected. Your file is read in that browser tab and the download is written locally, so there is no upload stage in either place. Keeping the documentation and the engine on separate addresses lets file support and detail levels change behind one workspace without breaking the page you are reading.
My IGES opens with holes in other tools too — will this fix them?
No. The conversion is faithful: surfaces that tessellate cleanly come through cleanly, gaps stay gaps. Use a mesh-repair pass downstream if the source was damaged.
Why is there no scale anyone agrees on?
OBJ stores no unit. IGES does declare one, but rescaling silently is how conversion tools earn distrust — the numbers pass through untouched.
Does group or layer information survive?
No. Layers and groups are flattened; the OBJ is one mesh.
References
- OpenCascade documentation — B-rep, IGES and tessellation
- three.js documentation — loaders and exporters
- How this site is built and tested
Related converters
All converters
Last updated: