--- /dev/null
+// -*- C -*-
+
+screwrad = 4.3 / 2 + 0.30;
+shaftrad = 7.5 / 2 - 0.30;
+
+diskrad = 12.0 / 2 - 0.25;
+
+csinkpart = 0.5;
+
+csinkdepth = 3.4 * csinkpart;
+screwheadrad = (8.1 * csinkpart + screwrad * (1-csinkpart)) / 2 + 0.30;
+
+shaftlen = 4;
+
+diskthick = 1.5;
+
+disktaperratio = 2;
+
+// computed
+
+disktaperrad = diskrad - diskthick / disktaperratio;
+totallen = shaftlen + diskthick;
+
+echo(disktaperrad, screwheadrad);
+echo(diskrad, disktaperrad, shaftrad, screwheadrad, screwrad);
+
+module SidePlan(){
+ polygon([[-screwheadrad, 0],
+ [-disktaperrad, 0],
+ [-diskrad, -diskthick],
+ [-shaftrad, -diskthick],
+ [-shaftrad, -totallen],
+ [-screwrad, -totallen],
+ [-screwrad, -csinkdepth]]);
+}
+
+SidePlan();