WIP add functions for creating chamfers and fillets to the NURBS kernel#1501
WIP add functions for creating chamfers and fillets to the NURBS kernel#1501phkahler wants to merge 3 commits intosolvespace:masterfrom
Conversation
…ting chamfers and fillets. The function is hooked in Group::Generate but does not modify the shell at this point so it is benign.
|
@phkahler great to see you attempting this. Over the years I've been considering this - most recently at the time Dune3D started. In my head it works similarly to what you started outlining with one more level of abstraction: A chamfer/fillet is:
In the future the patch class can be used to implement generic patch functionality - e.g. close a "random" hole outlined by a contour of any edges (not necessarily straight) in 3d. A general purpose patch tool may/will have to generate new edges on it's own (imagine a corner where a few edges meet and they are all filleted) and I am not sure how this will be handled by this approach. Intersections of the newly created NURBS surfaces will be these new edges. |
Woops you're right. Curves are not duplicated, but there are two TrimBy, one for each surface that meets along a curve. These reference the same underlying curve but one is "backward". So I'll still need to generate 2 new curves, and move both Trims rather than creating a new one. Good news - the PWL points are not in the trims! Assuming all fillets meeting at a point are the same radius, the surface we want there is spherical. It's really hard to find anything (with google) on spherical NURBS patches, never mind triangular ones. But that's for later. Chamfers first and Fillets with 1 or 2 per vertex. I'm both excited and dreading this... |
Indeed :-) |
|
I very welcome the attempt to add this. :) |
…le at the origin and extruded.
|
Getting back to this soon. Here is a sketch to visualize how fillets meet at a corner. Drag the green lines around. For equal radius fillets it forms a spherical triangle. |
|
So, is anyone feeling brave enough to pick this up during the days off and actually push the development forward? |
|
Haha @dodox1 brave is right. Anyone is welcome to attempt this, and I'm happy to answer questions on how the internals work. Such a person would become highly knowledgeable in the solvespace NURBS code. Unfortunately my attempt last year didn't pan out and I wasn't even able to make partial shell modifications without problems. It really takes a deep dive into it to make progress. Next time I try I might limit myself to flat surfaces only just to get the basics down. |
Just an outline at this point (in the code). Hoping to attempt this over the hollidays. Thought people might want to follow along or comment if this goes anywhere.