use <threads-scad/threads.scad>

// 3D-gedruckte Achse
module achse(laser_h,
             brett_bohrung,
             brett_dicke,
             stepper_befestigung_screw_d,
             stepper_befestigung_l,
             stepper_befestigung_screw_abstand,
             gear_abstand_unten,
             bretter_abstand) {
  difference() {
    translate([ 0, 0, -3 * laser_h ]) {
      RodStart(diameter = brett_bohrung,
               height = bretter_abstand + brett_dicke + 3 * laser_h,
               thread_len = 21, thread_diam = 10, thread_pitch = 0);
      linear_extrude(height = laser_h) {
        difference() {
          circle(d = stepper_befestigung_l);
          translate([
            stepper_befestigung_l / 2 - stepper_befestigung_screw_abstand, 0
          ]) circle(d = stepper_befestigung_screw_d);
          translate([
            -stepper_befestigung_l / 2 + stepper_befestigung_screw_abstand, 0
          ]) circle(d = stepper_befestigung_screw_d);
          translate([
            0, stepper_befestigung_l / 2 - stepper_befestigung_screw_abstand
          ]) circle(d = stepper_befestigung_screw_d);
          translate([
            0, -stepper_befestigung_l / 2 + stepper_befestigung_screw_abstand
          ]) circle(d = stepper_befestigung_screw_d);
        }
      }
    }
    translate([ 0, 14.7, gear_abstand_unten - 1 ]) cylinder(h = 3.5, r = 11);
    translate([ 0, -14.7, gear_abstand_unten - 1 ]) cylinder(h = 3.5, r = 11);
    translate([ 0, 0, -3 * laser_h ]) cylinder(h = 20, d = brett_bohrung - 4);
  }
}