Extracting some source code.

Hi all,

I'd like to make a GPLd library to read STEP solid model data, as I think this would be useful to a lot of people. It would make sense to base it on the OpenCascade code, but the code base is overwhelming.

Can anyone help me extract the STEP reading code from OpenCascade? I can see that there are several directories called StepGeom etc, but still, it's overwhelming.

Many thanks for any help.

Hugo Elias

Denis Barbier's picture

Please read its license first, AFAICT you are not allowed to license derived work under GPL.

rocketmagnet's picture

Can I create a library with the same license as OpenCascade?


Denis Barbier's picture


Roman Lygin's picture

Hi Hugo,

I'm wondering what is a need in that library ? What kind of API will it offer ? What will be the resulting *entity* to hold the result ? OpenCASCADE's TopoDS_Shape or your own ? Or will it be just a parser that recognizes the file and stores file data into structures like for instance StepGeom_* ?
The more you will want from your library the more close it will be to OCC's, the more "overwhelming" it will be. Ultimately you can end up with a clone. So, will your time be worth investing ?

rocketmagnet's picture

Hi Roman,
Thanks for your reply, those are all good questions which I haven't totally answered yet. At the moment, what I would like from the library is to be able to load STEP solid models, so that I can a) do some automatic feature recognition, and b) create a polygonal mesh. I'm not (yet) so interested in the million other things that STEP files can contain. Maybe the resulting entity would be a TopoDS_Shape. I don't know enough about that class to know if it satisfies my needs. Googling for it doesn't return much information.

There are many open source CAD applications around (including my own), and I think that many of them could benefit from a library to handle STEP solids, which doesn't also require a ton of OpenCascade.

I'm not really looking to reinvent what's already in the OpenCascade code. What I'm really looking to do is to extract the STEP handling code from it. Perhaps simplify it a little. Perhaps end up with an entity of my own creation. Perhaps create a class which people can inherit from, and override functions to create solids of their own format.

Many thanks for your patience