IGES or STEP exporter

I would write an IGES or preferrably, STEP importer myself, but I can’t seem to find a solid example of the file format. STEP seems more defined, seeing as how many IGES flavors there are. I realize they are usually solid model file formats, but in reality, it is a surface that is ultimately rendered. Does anyone have any sources or leads on this? I desperately need to be able to export a STEP file from Blender. Thanks.


I work with STEP files everday (Mechanical Design) but I’ve never found a way to get them to work with Blender (converting to a common format between Blender and my CAD software, ProEnginner). Not that I need to though as I only need to import from ProE to Blender using the inbuilt .slp importer.

As you say STEP is a solid format and doesn’t translate well to surface formats. If you need a sample STEP file to see what information can be gleened for writing a possible exporter then just ask.

Ricky Dee

Surfcam will make a usable Step or IGES out of Blender mesh information, I have found nothing else.

Last year I was trying to run down information on the IGES format, the standard is poorly maintained and sparsly documented and I eventually just gave up on it and worked out other ways to get G code from Blender by way of Python.


I use Autodesk’s Inventor, but sometimes I want to use Blender for my more artistic designs. If I could export a mesh from Blender in STEP format I could use my CAM’s features to do more precise toolpathing. Right now, I simply export the file as STL and do a raster toolpath in my cheap CAM program. I am considering writing a plugin similar to what Rab here: http://www.rainnea.com/cnc.htm has done with 3d studio max or gmax and his script. He wrote a toolpath and gcode generator to work in gmax or 3DSM. thanks.



I was a little pressed for time yesterday when I responded to your query, and did not really send the message that I was trying to express.

Firstly an IGES exporter (in my opinion) would be a really signifigant milestone in Blenders evolution. It would contribute signifigantly to making the program credible in the industrial community. If you really intend to chase this ghost, I applaud you and will help you where I can. If you have some sample files that you would like me to translate (as best I can) feel free to send them to me at [email protected] and I will see what I can do with them.

There must be a whitepaper somewhere explaining the file structure, there are hundreds of applications that use it, but I was scuppered searching the internet for it. Had I continued my next stop would have been the library at a good engineering school.


You say that you would use Blender for your more “artistic” designs. Let’s say that during the arduous process of researching and writing this exporter, the creative side of your brain did not shrivel up turn black and cause you to limp and speak with a southern accent…what have you really got pragmaticly? Now you can output NURBS surfaces, which you could get at by converting to mesh anyhow, and profiling to a NURBS surface is really problematic! IGES (or STEP) will not support metaballs, surfaces deformed with lattices, RVKs ect. All of the stuff that really allows you to make “Art” with Blender. Big can of worms . Certainly a process that will run into years to see thru, during which time you make no chips.

Great! now I’ve gone from terse to preachy…sorry.

This thread is supposed to be about IGES export, and if Ton or any other decision makers are reading here, that would be a REAL good thing!

If you are just trying to make Gcode from Blender , I have some python script that I will be glad to share that do that nicely. Including NURBS surfaces, Meta-anythings, beziers with width, lattice and other deformations, clamping and gouging 100% “look around” & end loops for high speed machining.

These are the IGES Entity Number descriptions:

Copious Data (Forms 20-21, 31-38, 40)


Transformation Matrix (Forms 10-12)


Offset Curve

Connect Point


Finite Element

Nodal Displacement and Rotation

Offset Surface


Bounded Surface

Nodal Results

Element Results


Right Angular Wedge

Right Circular Cylinder

Right Circular Cone Frustum



Solid of Revolution

Solid of Linear Extrusion


Boolean Tree

Selected Component

Solid Assembley

Manifold Solid B-Rep Object

Plane Surface

Right Circular Cylindrical Surface

Right Circular Conical Surface

Spherical Surface

Toroidal Surface

Angular Dimension

Curve Dimension

Diameter Dimension

Flag Note

General Label

General Note

New General Note


Linear Dimension

Ordinate Dimension

Point Dimension

Radius Dimension

General Symbol

Sectioned Area

Associativity Definition

Line Font Definition

Macro Definition

Text Font Definition

Text Display Template

Units Data


Network Subfigure Definition

Attribute Table Definition

Associativity Instance




External Reference

Nodal Load

Network Subfigure Instance

Attribute Table Instance

Solid Instance






Thanks for the reply, Door3. My main thought on an IGES or STEP export is that currently when I do something in blender, I need the surface data for BobCad in order to create my toolpath. Right now, I can export IGES or STEP from Inventor and bring it into BobCad. When I send something to cut from Blender, it is usually as STL. This is alright for 80% of my needs, but BobCad has surface and solid support and I could create more intricate cutting strategies than simply raster cutting the STL file from MillWizard. Did you look at http://www.rainnea.com/cnc.htm ? Rab, has basically created a CNC Toolkit for 3DS Max and gmax. I may attempt the same with Blender. I have to look at the Blender Python API more closely to see how it supports curve data. I can write gcode pretty well, since that is how I originally programmed my machines before I had a Cad/Cam package of any worth. I’d be interested in any python scripts you may have on Nurbs surfaces and gcode. Take a look at what I have done so far with Blender regarding CNC:


Thanks again,


I have never run across the term “raster cutting”. I’m not sure what you mean by that. Please explain.

I have only met one person who actually used the rainnea software, he was dis-satisfied, but that was a few years back. I have 3DS but rarely use it and am not inclined to look to rainnia myself.

For some jobs I bring Blender meshes into Maya and re-interpret them with a collection of MEL scripts that I have assembled so I can output IGES to Surfcam or Mastercam. That approach might be viable with Inventor&BobCad (I don’t know inventor so the “might” is the operative word there). There was an ad at the top of this very page for Maya for $50 (I’m not sure how legitimate that offer is), but if you can find a seat of Maya I can make those scripts available to you.

But as you say the .stl approach will do 80% of it. “Camera tracking” the surface data out of Blender may fill in that 20% satisfactorily for starters. I will post a sample file when I get home tomorrow, I hope it helps.

BTW I have been keeping up with the progress that you have posted here, …that is partly why I am so inclined to be forthcoming with what info I have to offer. Keep up the good work Rherman.


“raster cutting” is a borrowed term referring to the way a tv tube scans, in lines. I can output STEP and IGES from Inventor to BobCad. I am looking for a way to get surfaces out of Blender, so that I can use BobCad to do more sophisticated cutting strategies. All of this, the Photoclinometry and the 3D laser scanner I am prototyping, are all part of a suite of rapid prototyping tools I am trying to put together for my business. I Blend for fun, but the program is so fun and extensible, that I find myself turning to it many times. I also use Processing, www.processing.org, a sort of subset of java for online stuff. I used to own a seat of Surfcam 3-axis many years ago. Great program, but too costly for me now. BobCad came with the 4’x8’ router table I purchased from www.practicalcnc.com. I find Rainnea interesting, since he seems to have taken what appears to be a hobbyist/experimenter’s attempt and turned it into a pretty neat thing. 5-axis machining! Check out his site if you haven’t in a while. His latest machine is awesome. What do you do for fun and making a living? Thanks.


BTW, any examples you have of converting Blender data to surfaces, or MEL scripts might show me what I need to accomplish the same in Blender.



I looked at it briefly. Some questions: Since I’ve never been able to get Blender’s units to correspond with real world coords, how can this be used practically? (to 4 decimal places!) Can you create spiral toolpaths and other cutting strategies? I haven’t looked at the script yet. Cool work.


I’m going to move my answer to
as this thread is getting long and off subject.


Actually it would be nice if Blender could have an import/export of both of those standards. Being able to read/write STEP and IGES files could mean more people using Blender as a rendering engine.

Well if anyone is interested in doing IGES import/export, you can get the specs from http://www.iges5x.org/

I looked into doing an importer myself as I figured blender would be perfect for doing product visualisations but after reading through the spec and looking at the contents of some IGES files at work, I decided I’d never get it finished if I started it.

Yep, I know what you mean. But, it would answer so many needs. Product visualization, cnc work, interchange with some of the serious mid-range cad products…


Actually I have 3d Studio Max r7 and I have found that Blender can do pretty much everything it can do, minus a few really good plugins. Since I use Linux Blender actually works better for me, then having to run a VMWARE with Windows XP. Even Running a Real Windows and 3d Studio Max, Blender seems to render the one scene that I did faster and looks better.

But for CNC and importing from other designer programs would be sweet.

Yes, I am certain Blender is as capable as 3d Studio Max, but the uses of the IGES import I was thinking of were for manufacturing/engineering people. I design toleranced products in Autodesk’s Inventor, which can export IGES or STEP. I would like to be able to bring my model into Blender to create better renderings than I can with Inventor. I have used Blender already for products where fit or tolerance is not the issue as much as the look or design. IGES or STEP would bring a whole other segment into the Blender world.


Sorry to bump this thread, but I just downloaded and tried FreeShip www.freeship.org, and it has IGES export. It is open source, so I am sure someone can figure out how to do the same in Blender. IGES import/export (pretty much surfaces for me). Anyway, I am now looking into this. I have officially removed my copy of 3ds max 8 and I am devoting all of my time to Blender. My Blender “Toy Factory” project will live!


IGES or STEP in or out of blender would be great, I have often thought about this, Although converting meshes to iges is not easy and I dont use the nurbs modelling in blender for concept work as subsurf is sooo easy to make quick concepts.
I have managed to convert a subsurf cage from blender to an iges file using maya although this is a mission for me as I have to bludge time at a friends work place to use maya.
I’m sure surface import/export for blender will come - maybe with the addition of nurbana

I’ve just started using Blender, but I’ve found the .slt exp/imp works real well with Mastercam so far. There is a c-hook for Mastercam called stl2surf.dll which converts stl files to surface files. You can then convert the surfaces in MC to a solid model and export it as needed.

More options for export types (based around CAD/CAM formats like iges, parasolids (x_t or x_b), step,) would be awsome.

by the way this would open the door to belnder for all rhino users out there! precise modeling in rhino, and photorealistic rendering or even animations in blender! Shure you can export to lwo (works good!) but you will always occure troubles with doubled vertices…in perfect meshes and so on…and of course exporting takes much longer than exporting a step file.
I’m lookingh forward to such a plugin! Even Carrera now offers a small engineeering bundle, able to inport step.
By the way that small app (I think its a real concurrent to blender in terms of features ando so) has now a fine feature for designers: the renderer (
) know trasforms sharp edges into small fillets! taht sound s cool to me. instead of modeling all these fillets in rhino, the radius of minor importance are added by the renderer itself! someone knows if something similar is planned for blender?