// scalloped knob diameter = 30; // very rough overall diameter s = 6; // number of scallops /////////// d=diameter/(s); $fn=100; //offset = d*2.3; // for s=4 //md=3; // for s=4 //offset = d*2.68; // for s=4 //md=3.7; // for s=4 //offset=d*3.05;// for s=5 //md=4.5; // for s=5 //offset = d*3.4; //for s=6 //md=5.3 ;//for s=6 //offset = d*3.75; //for s=7 //md=5.8 ;//for s=7 //offset = d*4.09; //for s=8 //md=6.6 ;//for s=8 //offset=d*4.42; // for s=9 //md= 7.25; // for s=5 // formula calculated by chatgpt offset = -0.0043 * s * s + 0.4034 * s + 1.1363; md = -0.0134 * s * s + 0.8755 * s + 0.4389; echo(offset,md); // basic shape generation module profile(){ difference(){ union(){ rotate([0,0,360/(s*2)]) for (j = [0 : 360 / s : 360]) { rotate([0, 0, j]) translate([s * d / PI, 0, 0]) circle(d = d * 2); } circle(d=md*d); } for (j = [0 : 360 / s : 360]) { rotate([0, 0, j]) translate([offset*d,0,0]) circle(d = d * 2); } } } profile(); //linear extrude and round off (or chamfer)