/* [OpenSCAD] */
use <threads.scad>
$fn=90;
debug=false;

/* [Teil] */
Teil = 1; // [1:Oben, 2:Unten, 3:Gewindestange]

module Oberteil() {
  difference() {
    intersection() { // Halbe Kugel
      sphere(d=40);
      translate([0,0,30]) cube(60, center=true);
    }
    metric_thread (diameter=12, pitch=1,75, length=12, internal=true, test=debug); // M12 Gewinde
    cylinder(d1=13, d2=12, h=1); // Fase
    translate([0,0,12]) cylinder(d1=12, d2=3, h=3 ); // Konus über Gewinde
    cylinder(d=3, h=40); // Bohrung für Schnur
    cylinder(d=27.5, h=12.5, center=true); // halbe M16 Mutter
  }
}

module Unterteil() {
  difference() {
    intersection() { // Halbe Kugel
      sphere(d=40);
      translate([0,0,30]) cube(60, center=true);
    }
    metric_thread (diameter=12, pitch=1,75, length=12, internal=true, test=debug); // M12 Gewinde
    cylinder(d=27.5, h=12.5, center=true); // halbe M16 Mutter
  }
}

module Gewindestange() {
  difference() {
    metric_thread (diameter=12, pitch=1,75, length=21, internal=false, test=debug); // M12 Gewinde
    cylinder(d=3, h=40); // Bohrung für Schnur
    translate([0,0,21]) sphere(d=6);
  }
}

intersection() {
  if (Teil==1) Oberteil();
  if (Teil==2) Unterteil();
  if (Teil==3) Gewindestange();
  if (debug) cube(100);
}
