Revamping IGES converter

If you followed our blog you might have noticed two posts (here and here) dedicated to revamping the STEP component and why we had to do that. Well, essentially the same applies to IGES.

Although IGES support has been existing since day one of the CAD Exchanger release in 2009, its initial implementation has not leveraged all the advantages of the core CAD Exchanger architecture that had been developed and getting mature over those years. Although not perfect, it was ‘good enough’ and had to wait for its re-birth while other formats (ACIS, Parasolid, JT) had been showing up and sharpening the core architecture that powers highly-scalable parallelism, memory efficiency and reliable architectural design. Whenever you are limited in resources (which any good business should be) you have to have clear priorities and rationale on what you invest into at any given moment.

Time for IGES Version2 came in late 2016 when the team strongly stood on its feet, consistently delivering per roadmap. Our customer base has been steadily growing and IGES remained a demanded format.

The sequence of steps to completely replace the version V1 with V2 engine was exactly the same as it was for STEP:

  1. Importer converter (using the old file model)
  2. Exporter converter (using the old file model)
  3. New file model, the parser and the import converter using the new file model
  4. New formatter and the export converter using the new file model

The effort took about 1.5 person-year to gradually re-implement most the sub-components, holistically re-inspect and re-implement all the conversion drivers (functions which perform individual geometry and topology mapping) and to thoroughly test thousands of IGES files to ensure no regressions penetrate the code.

To a great extent this effort has been financially backed by one of our key customers who strongly leverages CAD Exchanger SDK in their app. They largely share the same vision and passion for quality and performance which is in DNA of CAD Exchanger. And earlier ‘good enough’ version was not enough in that case. Guys, thank you for your trust and sharing the same engineering values!

Two folks had been working on this from our side – Eugene and Anton – rolling out new components with every CAD Exchanger release in 2017. Thanks folks!


The advantages of V2 strongly match those of the STEP but I am happy to repeat and extend:

  • leading performance, including use of our patented methods which enable massive scalable parallelism on multi-core systems;
  • Use of B-Rep entities (MSBO/Manifold Solid BRep Object, type 186) in export (by default) to better preserve topology structures and to improve interoperability with CAD/CAM/CAE applications.
  • Use of Bounded Surfaces, type 143 (instead of Trimmed Surfaces, type 144) in export for more reliable geometry and topology transfer.
  • support of user-defined properties;
  • gradual import and conversion (comparing to previous blocking behavior) enabling much more responsive application and better user experience,
  • more efficient memory management and reduced peak memory footprint while keeping working objects during the parsing and conversion phases;
  • various quality improvements to resolve limitations and issues of legacy implementation;
  • faster responsiveness of technical support (addressing issues and enhancement requests).
  • For the last few product releases, we already received various users’ reports on improved reading and writing IGES files, both from quality and performance perspective. These were great external inputs in addition to internal engineering confidence.

Next steps

CAD Exchanger 3.4.1 (released in December 2017) delivered the last piece in this puzzle, the new formatter and re-updated exporter. The release 3.4.2 (in March 2018) featured minor enhancements here and there. The version V1 will be phased out in near upcoming releases.

Thanks for reading! Whenever you try to read or write IGES files with CAD Exchanger and enjoy results you could now recall how this all got to life. If you have bad luck and notice any issues drop me a line at This email address is being protected from spambots. You need JavaScript enabled to view it. or This email address is being protected from spambots. You need JavaScript enabled to view it. and we’ll look into that ;-).