diff --git a/Matekiste_Laser_Stencil.scad b/Matekiste_Laser_Stencil.scad index da577b0..dcb817c 100644 --- a/Matekiste_Laser_Stencil.scad +++ b/Matekiste_Laser_Stencil.scad @@ -84,6 +84,18 @@ module round_psu_cable_plane(width, height, hole_size, hole_spacing_x, hole_spac } } +/* + * Base plane with combined cutouts: for PSU and mainboard bearings + */ +module round_psu_mainboard_plane(width, height, hole_size, hole_spacing_x, hole_spacing_y, radius, psu_width, psu_height) { + difference() { + round_psu_plane(width, height, hole_size, hole_spacing_x, hole_spacing_y, radius, psu_width, psu_height); + rotate([0, 0, 180]) + translate([-310, -244]) + __mainboard_bearings(230, 244); + } +} + /* * Base plane with cutouts for two fans in the center */ @@ -179,4 +191,46 @@ module __fan_cutout(outer_size, inner_size, bearing_size) { rotate([0, 0, 270]) __radius_cutout(2.5); */ +} + +module __mainboard_bearings(mainboard_width, mainboard_height) { + // measured from a microATX (970M Pro3): + // * mainboard_width=230; + // * mainboard_height=244; + bearing_size=4; + + // bottom row + translate([0, 5]) { + // inofficial hole added by ASROCK (970M Pro3) + // translate([5, 0]) + // circle(d=bearing_size, $fn=RESOLUTION); + + translate([63, 0]) + circle(d=bearing_size, $fn=RESOLUTION); + + translate([195, 0]) + circle(d=bearing_size, $fn=RESOLUTION); + } + + // middle row + translate([0, mainboard_height-80]) { + translate([63, 0]) + circle(d=bearing_size, $fn=RESOLUTION); + + translate([mainboard_width-10, 0]) + circle(d=bearing_size, $fn=RESOLUTION); + } + + // middle top row + translate([63, mainboard_height-14]) + circle(d=bearing_size, $fn=RESOLUTION); + + // nearly top left hole + translate([mainboard_width-10, mainboard_height-34]) + circle(d=bearing_size, $fn=RESOLUTION); + + // top left hole + // inofficial hole added by ASROCK (970M Pro3) + // translate([5, mainboard_height-5]) + // circle(d=bearing_size, $fn=RESOLUTION); } \ No newline at end of file