[feature request] expand pipe support
- Dominant language
- Python
- Stars
- 5.8k
- Forks
- 541
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 5
Description
I'd love to get to the point where I start with a solid and a wire and I can somehow get a representation of the space the solid moves through if it was moved along the wire. This would be useful for me because then I can model up a non-standard CNC cutting tool bit shape, move it along a generalized path to find the actual material that would be removed from my part if the CNC cutter was moved in some specific way and then if I'd like, boolean subtract it from a stock shape.
In theory, the OCCT kernel can make pipes [1,2] by sweeping various things (vertices, edges, wires, faces, shells) along an arbitrary (smooth) path (an edge or wire). Today, cadquery seems to limit the sweepable types to just pending wires:
https://github.com/CadQuery/cadquery/blob/36d417802420632806ac046ea65517edef5cc9a7/cadquery/cq.py#L3241-L3251
I think because the underlying OCCT call being used is `BRepOffsetAPI_MakePipeShell`. If we were able to switch to or add `BRepOffsetAPI_MakePipe` then more profile types can be handled, including shells it seems, although there may be reasons or tradeoffs preventing actually switching the sweep method (for example, in my testing I'm getting a bunch of segfaults that I don't yet understand here).
I've done a little bit already on trying to get this to work and I'll post what I've learned and tried in this issue. Solving https://github.com/CadQuery/cadquery/issues/606 will be very helpful since linear extrusion of shells seems to create a resulting object type not yet supported by cadquery.
[1] : https://dev.opencascade.org/doc/overview/html/occt_user_guides__modeling_algos.html#occt_modalg_4_2
[2] : https://dev.opencascade.org/doc/overview/html/occt_user_guides__modeling_algos.html#occt_modalg_7_4
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.