Rhino also has really nice and performant curvature analysis tools, and a whole host of other tools for implementing Nurbs.
Alias is at least $5,000 / year per seat. Rhino is $995 for a perpetual license, with new versions coming out every 2.5 - 3 years and significant functionality upgrades each time.
McNeel also maintains OpenNurbs [1], an open source library [2] for the construction and use of Nurbs. This powers Rhino of course and is used in other software. I'm still waiting for someone to implement OpenNurbs natively and robustly on Linux. But I like the Rhino platform and McNeel as a company so much that I run it using wine.
[0] https://www.rhino3d.com/ Developed by McNeel Software [1] https://www.rhino3d.com/features/developer/opennurbs/ [2] https://github.com/mcneel/opennurbs
So you run into a weird situation where CAD software may pass around NURBS or B-splines with multiply inserted (or even fully inserted) knots, seriously reducing the need for using splines in the first place.
The problem is that splines are a really inconvenient and even unstable basis for doing numerical work... which is what all of CAD is.
include <BOSL2/nurbs.scad>
$fn=16;
back(400) cuboid([200,200,100],rounding=50,edges="Z");
pts=subdivide_path(square([200,200],center=true),8);
linear_extrude(100) polygon(nurbs_curve(pts,2,splinesteps=$fn/4,type="closed"));While dreaming up Apple-like objects I quickly discovered 3D-printing them with good surface finish is nearly impossible. Best we can do is Mac mini-like flat tops. Like most other manufacturing methods, its limitations heavily influence the design.
> G3 continuous corners mean that the print head experiences smooth acceleration while printing such corners.
Axial acceleration is the key here, not just acceleration, that however does not matter if the controller does not output feedrate profiles with smooth acceleration to go along with it.
G0 Positional Continuity: The surfaces touch without gap, but there may be a sharp corner. Example: the corners of a cube
G1 Tangential Continuity: G0 but additionally the surfaces have the same slope (are tangential) at the point where they touch. Example: adding a circular fillet to the corners of a cube
This is where most basic CAD modellers would stop. The problem with just putting a cylindrical or a spherical fillet in a corner is that you basically go from a flat surface (zero curvature) to a surface with some curvature on a whim. If your surface is reflective that means you go from a flat mirror to a strongly distorting one instantly, this will visually appear as a edge even if there is none. Curvature btw. is just the reciprocal of radius (1/r)If we talk about forces (e.g. imagine a skateboard ramp) you go flat (no centripetal force) to circular (constant centripetal force) without any transition inbetween. In effect this will feel like a bump that can throw inexperienced skateboarders of their feet.
This means tangential transitions often do not cut it.
G2 Continuity: In addition to being G0 and G1 you additionally ensure the curvature is the same where both surfaces meet. This usually means instead of going from a flat surface into a circle you go into a curve that starta out flat and then bends slowly into a radius.
Now the curvature of a curve can be drawn as a curvature comb. You basically take the curvature at any point of the curve and draw the value as the length of a line that is perpendicular to the curve.G1 is if the perpendicular lines at the ends of the two curves align. G2 is if the curvature comb at the end of the two lines additionally has the same height (indicating the same curvature at the transition point).
G3 is basically just ensuring that the two curvature combs are tangential at the point where they meet. G4 is ensuring that the curvature combs are not only tangential, but have the same curvature. G5 is taking the curvature of the curvature...
By this point you may be able to sense a pattern.
(is plural of radius radiuses? or radii?)
In the end the position of the elevator is 3-continuous (why is it called G3? in France we call this C3). And the apple corner is just a graph of the position of an elevator wrt time. Mind blowing