6 ms·
The problem with FreeCAD and every other free/open source MCAD project of note is the Open Cascade kernel they are built on. While Open Cascade is fairly mature
by jwagenet 11mo ago
The problem with FreeCAD and every other free/open source MCAD project of note is the Open Cascade kernel they are built on. While Open Cascade is fairly mature, it has dealbreaker issues in a few key areas: fillets cannot consume connected faces and may fail for a number of other reasons, cylindrical and spherical faces require seams which often cause issues with boolean operations, and shapes like helixes are also often troublesome.
- JoshTriplett 11mo agoOn a scale from "big chunk of work" to "complete rewrite", how much work would it take to fix those issues in Open Cascade?
- throwup238 11mo agoIt would probably fall somewhere between "substantial architectural overhaul" and "partial rewrite" because it’d require redesigning the topological representation to eliminate seam edges. Some of these issues are long standing and really hard to solve. Someone could probably defend an entire PhD thesis on “redesigning the topological representation to eliminate seam edges” without making much practical progress
- loftsy 11mo agoHow do the other kernels e.g. Parasolid work without seam edges? Without a seam the 2D parametric boundary is not closed.
- throwup238 11mo agoIt’s not about seams in 2d but 3d curved surfaces. OpenCascade’s kernel forces you to deal with periodicity in topology (the shape structure), while Parasolid handles it in geometry (the math). A cylinder is mathematically continuous because there's no actual "seam" where it starts and ends. But in OpenCascade there’s a seam from 0 to 2π and this seam edge becomes a real topological entity that every algorithm has to deal with. In Parasolid the cylinder is periodic so when you query a point at U=2.1π, the kernel just knows that's equivalent to U=0.1π. The periodicity is a property of the surface math, not the shape structure. It’s not using polygons/edges/vertexes but a system of equations to calculate the surfaces. This is why boolean ops fail so often in FreeCAD: it’s asking the kernel to intersect with an artificial edge that shouldn't exist. The seam creates edge cases in intersection calculations, makes filleting near seams a nightmare, and complicates things. Parasolid's implicit handling requires smarter surface evaluation code upfront, but then everything else just works.
- thenobsta 11mo agoIs there any canonical literature on this? I've been interested in what's inside the brep kernels recently.
- throwup238 11mo agoBoundary Representation Modelling Techniques by Stroud is probably the most popular one. It's expensive but Anna has it in her archive.
- thenobsta 11mo agoThanks!
- bsder 11mo agoSandia seems to have some form of kernel, but only Federal-associated entities can get access to it. It would be interesting to see if they would license that out further for some amount of money.
- bgoated01 11mo agoIf you're referring to Cubit, they license the ACIS kernel under the hood.
- CoreformGreg 11mo agoThey’re (possibly) referring to “Scalable Geometric Modeler” (SGM) https://github.com/sandialabs/sgm https://github.com/sandialabs/sgm Originally open-source, but since taken back in-house. As I understand, which should not be construed as an accurate accounting, Sandia wants to flesh out the basics further before (potentially) open-sourcing it again.
- bsder 11mo agoI was referring to Cubit. Phooey on the fact that it's ACIS.
- KeplerBoy 11mo ago> fillets cannot consume connected faces and may fail for a number of other reasons I can't recall a single CAD system which did this differently. Has modern solidworks figured this out?