It is not very easy to learn but has many features of commercial applications including scripting via python.
It is not very easy to learn but has many features of commercial applications including scripting via python.
I think that OpenCASCADE is very difficult to maintain. At least half the variable names are "aMPBLPB" and "aMPBLI", the other half are some strange combination of Russian, English and French. I think that to insulate yourself from the actual CAD engine it would be a good idea to use cadquery, a python library that is aiming to let you switch out the actual CAD implementation without (dramatically) rewriting your source code.
At the moment, I think the two biggest players in the CAD kernel landscape are verbnurbs ( http://verbnurbs.com/ ) and solvespace ( http://solvespace.com ) (which includes parametric modeling and constraint solving, btw). Both are very well written, well documented, and well tested. BRLCAD also has surface-surface intersection for NURBS, although I don't remember all the caveats....
Solvespace is a genuine joy to use. If making chamfers, path-based operations, and other such features were better supported, I'd gladly make it my primary CAD package.
It was released as open source pretty recently. I really hope some more development takes off.
As mentionned there is a python interface for FreeCAD. There is no need to know OpenCascade.
I didn't know verbnurbs and solvespace.
Verbnurbs is only a simple NURBS library. Solvespace seems to be more comparable to OpenCascade. I will look deeper into it.
Ha, well someone has to know OpenCASCADE to maintain FreeCAD. And someone has to fix OpenCASCADE when bugs are found, and when it's time to refactor legacy junk...