OpenSCAD supports spheres, cylinders, cones, and stretching/scaling them --- granted, they get exported as a triangle mesh, but with small enough triangles and clever enough 3D CAM software things can look pretty smooth, and for projects of an inexpensive CNC there is inevitably some post-processing/sanding.