3
1
Back

DistanceBetweenKnurls = 3*1; TimerKnobConst = 1.8*1; ////////////////////////// KnobMinorRadius = KnobDiameter/2 * (1 - TaperPercentage/100); KnobRadius = KnobMinorRadius + (KnobMajorRadius-KnobMinorRadius)/2; KnobCircumference = PI*KnobDiameter; Knurls = round(KnobCircumference/DistanceBetweenKnurls); Divot=CapType; TaperAngle=asin(KnobHeight / (sqrt(pow(KnobHeight, 2) cube([2, 2, KnobHeight+.001], center=true); cube([RingWidth*.5, MarkingWidth, 2], center=true); if (RingMarkings>0 for (i=[0 : RingMarkings-1] rotate([0, 0, i * (360/Knurls)] rotate([0, TaperAngle, 0]) rotate([0, 0, i * (360/Knurls)] rotate([0, TaperAngle, 0]) rotate([0, 0, 180] // Left side: meta-step controls } module title(string, size=12, halign="center", font=font_for_title) { } module cherry_mx_button() { union(){ cube([14,14,thickness]); // 1HP = 1/5" = 5.08mm // u[nits] function units_mm(u) = u * U; // h[p] function hp_mm(h) = h * HP; Sat 28 Aug 2021 07:18:14.

New Pull Request