5 ms·
Open CASCADE is the geometry kernel that does all the heavy lifting (all the geometry related operations and mathematics etc). FreeCAD is a primarily a user int
by w0utert 6y ago
Open CASCADE is the geometry kernel that does all the heavy lifting (all the geometry related operations and mathematics etc). FreeCAD is a primarily a user interface plus Python script bindings around this kernel. CadQuery implements a Python-based scripting DSL around Open CASCADE to let you build models using code.
File formats between these tools do not necessarily have to be compatible. Open CASCADE ships with exporters for a small number of common CAD file formats, STL being the one that is compatible with most other CAD tools. It also has it's own format for exporting just the geometry (.brep files), and the API provides storage facilities for building your own application-specific container formats (OCAF). I think FreeCAD uses OCAF to implement its native file format.
I know FreeCAD can import/export STL using Open CASCADE, so that's one way transfer models from/to other CAD tools, I would not be surprised of CadQuery can also do this (but I haven't used it so I can't say for sure).
- jononor 6y agoSTL (and .OBJ) are common exchange formats for mesh output. For solids, which FreeCAD and OpenCASCADE mostly deals in, the typical exchange formats would be STEP (and IGES). Solids can have perfect circles, surfaces etc - where as meshes are just a bunch of 3d vertices with straight line between them. But still there is much information not present in a solid exchange format, like how the model was made: Constraints, feature operations, constraints, undo stack etc.
- zucker42 6y agoSTEP doesn't have modeling history though.
- w0utert 6y ago>> STL (and .OBJ) are common exchange formats for mesh output. For solids, which FreeCAD and OpenCASCADE mostly deals in, the typical exchange formats would be STEP (and IGES). Ah yes I meant STEP instead of STL of course, always mix those up. OCCT does not even have support for STL or OBJ import/export.
- zucker42 6y agoThanks for the response! Is stuff like modeling history implemented in the kernel or in the FreeCAD code?
- w0utert 6y agoI’m not super familiar with the FreeCAD file format internals, but I assume it implements history using Open CASCADE API’s, in an application specific format. We have some internally developed CAD tooling based on Open CASCADE that uses the OCAF framework to store history inside a custom container format. Any code that links OCCT can in theory get the contents of the container using API calls, but to interpret it, you would have to write a lot of application specific logic on top of that (we wrote our own wrapper API’s around that to expose the file format to e.g. scripts etc)