45 ms·
Chamfers and Fillets are my next major undertaking. Don't expect them any time soon, but they've moved to the top of my list. They are extremely difficult to do
by phkahler 7mo ago
Chamfers and Fillets are my next major undertaking. Don't expect them any time soon, but they've moved to the top of my list. They are extremely difficult to do in the general case - so we will not cover all cases. Several years ago I tried an experiment:
https://github.com/solvespace/solvespace/issues/453#issuecomment-521376948 https://github.com/solvespace/solvespace/issues/453#issuecom...
That could only do the top or bottom of a straight extrusion. This time will be a more general than that. Not looking forward to doing corners where 3 fillets meet ;-)
- MrDOS 7mo agoOh, sorry, I didn't recognize that this had been posted by a SolveSpace maintainer! Rad. I am glad to hear the project is still moving. I also appreciate the difficulty of generalizing chamfers/fillets. There's a reason that basically all FOSS CAD packages have struggled with it.
- echelon 7mo ago> difficulty of generalizing chamfers/fillets. There's a reason that basically all FOSS CAD packages have struggled with it. Could you decompile CAD, run it through an LLM, and call it a day?
- yonatan8070 7mo agoAren't there licesing issues with porting a proprietary implementation into an open-source one that could open up the project to legal issues with the proprietary vendor?
- mordae 7mo agoHi! Thanks for your hard work! I just want you to know it's definitely worth it! I am using SolveSpace for my 3D prints because I just don't have time to learn anything else. With SolveSpace I've been productive in like 2 hours after launching it the first time. So far you've saved me like $500 in things I've printed instead of bought. Just last week I've printed nasal manifold for my DIY sleep monitoring setup. Replacement specs legs a month ago. If you really make fillets and chamfers a reality, please don't forget to open donations.
- huslage 7mo agoDIY sleep monitoring? Tell us more!
- schiffern 7mo ago>corners where 3 fillets meet I would imagine there are a few different possible options (preferably a settable parameter): * Intersection. Conceptually the simplest, the chamfers would just be joined by the solid addition of all three fillet surfaces, creating three new sharp corner edges that meet at a single vertex. * Rolling sphere. Imagine an idealized spherical "thumb" smoothing out caulk. The middle would be joined by a new spherical concave surface, tangent to all three fillets. Also generalizable to convex fillet intersections, smoothing out sharp corners. * NURBS, with adjustable parameters or even control points, eg when you want a little more "meat" in a corners for strength of a part. * Flat corners, for chamfers (what do do when N>3 corners meet?) * What else? Ideally you might be able set the corner type separately for inside vs outside corners, or on a per-vertex or (in the most granular case) per-incoming-edge basis? Is that crazy? How do saddle corners[0] behave? Does it just "work out" and (by some miracle) uniquely resolve for all permutations and corner types? It certainly gets complex quickly! [0] center, where the cubes all intersect https://entitleblogdotorg3.files.wordpress.com/2015/02/escher-metamorphose.png https://entitleblogdotorg3.files.wordpress.com/2015/02/esche...
- throwup238 7mo agoThat’s not even the complex part. Most of what you describe is a user interface issue, not a geometric kernel issue. The hard part of 3 corners fillets is the tolerances. Each of those fillet operations has its own compounding float errors and when they meet, the intersection is so messy that they often do not intersect at all. This breaks almost every downstream algorithm because they depend on point classification to determine whether an arbitrary point is inside the manifold, outside, or sitting on an edge or vertex. And that description of the problem is just scratching the surface. Three corner filets create a singularity in UV space at the common vertex so even when you find a solution to the tolerance problem you still have to deal with the math breaking down and a combinatorial explosion of special cases, almost each of which has to be experimentally derived.
- schiffern 7mo agoThis is why geometric kernels are the gateway to madness. ;) Thanks for the clarification.