hannobraun / fornjot

Early-stage b-rep CAD kernel, written in the Rust programming language.
https://www.fornjot.app/
Other
2.06k stars 118 forks source link

The possibility of Fornjot as an alternative CAD kernel for CadQuery #2316

Closed huskier closed 7 months ago

huskier commented 7 months ago

CadQuery is an intuitive, easy-to-use Python module for building parametric 3D CAD models. At present, the underlying CAD kernel for CadQuery is OpenCascade. Multiple CAD kernels supporting was considered in the initial design of CadQuery. However, the open source CAD kernel is rare. To experiment with adaptation to other CAD kernels, I've created a minimal CadQuery. IMO, another kernel may benefit the development of CadQuery.

To make the adaption, we firstly need to create a Python binding for Fornjot. I wonder whether somebody has done the Python binding thing? Through the web search, I have found no work on the binding.

On top of the above mentioned Python binding, Fornjot should support the following CAD types: Vertex Edge Wire Face Shell Solid CompSolid Compound

A STEP exporting function should be there for output.

@hannobraun I'd like to see that the CadQuery could work with Fornjot, and I'd like to make this happen, even if only a simplest prototype at the first beginning.

hannobraun commented 7 months ago

Hey @huskier, thank you for your interest in Fornjot!

I think using Fornjot as a kernel for CadQuery is an exciting possibility, but I worry that the project is not ready for that. Specifically, the geometry that Fornjot can represent is very limited, which is something I'm working on fixing.

To make the adaption, we firstly need to create a Python binding for Fornjot. I wonder whether somebody has done the Python binding thing? Through the web search, I have found no work on the binding.

To my knowledge, no Python binding exists for Fornjot.

On top of the above mentioned Python binding, Fornjot should support the following CAD types: Vertex Edge Wire Face Shell Solid CompSolid Compound

Fornjot supports most of those. It doesn't represent wires, and I don't know what CompSolid and Compound are.

A STEP exporting function should be there for output.

This is not supported. And I don't think it makes sense to work on that until https://github.com/hannobraun/fornjot/issues/2118 is done.


Since this doesn't track actionable work that needs to be done within this repository (except for STEP support, which is on the feature wishlist, I'm converting this to a discussion.