From c97ba9787feeea2c5b3c717b5c77592030573c96 Mon Sep 17 00:00:00 2001 From: Przemek Grondek Date: Mon, 31 Jan 2022 22:18:14 +0100 Subject: [PATCH] Add new type - center stud --- LEGO_wtolerance.scad | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/LEGO_wtolerance.scad b/LEGO_wtolerance.scad index 1880efc..fb37546 100644 --- a/LEGO_wtolerance.scad +++ b/LEGO_wtolerance.scad @@ -16,7 +16,7 @@ block_length = 6; block_height_ratio = 1; // [.33333333333:1/3, .5:1/2, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:10] // What type of block should this be? For type-specific options, see the "Wings," "Slopes," "Curves", and "Baseplates" tabs. -block_type = "brick"; // [brick:Brick, tile:Tile, wing:Wing, slope:Slope, curve:Curve, baseplate:Baseplate] +block_type = "center"; // [brick:Brick, tile:Tile, wing:Wing, slope:Slope, curve:Curve, baseplate:Baseplate, center:Center Stud] // What brand of block should this be? LEGO for regular LEGO bricks, Duplo for the toddler-focused larger bricks. block_brand = "lego"; // [lego:LEGO, duplo:DUPLO] @@ -276,7 +276,7 @@ module block( } // The studs on top of the block (if it's not a tile). - if ( type != "tile" && !real_dual_bottom ) { + if ( type != "tile" && type != "center" && !real_dual_bottom ) { translate([stud_diameter * stud_rescale / 2, stud_diameter * stud_rescale / 2, 0]) translate([(overall_length - total_studs_length)/2, (overall_width - total_studs_width)/2, 0]) { for (ycount=[0:real_width-1]) { @@ -288,6 +288,16 @@ module block( } } } + // Center Stud + if (type == "center"){ + translate([axle_diameter / 2, axle_diameter / 2, 0]) { + translate([(overall_length - total_axles_length)/2, (overall_width - total_axles_width)/2, 0]) { + ycount = (real_width )/2; + xcount = (real_length)/2; + translate([(xcount-1)*stud_spacing,(ycount-1)*stud_spacing,block_height*real_height]) stud("hollow"); + } + } + } // Interior splines to catch the studs. translate([stud_spacing / 2 - wall_play - (spline_thickness/2), 0, 0]) for (xcount = [0:real_length-1]) { @@ -692,7 +702,7 @@ module block( } } - module stud() { + module stud(stud_type = stud_type) { difference() { cylinder(r=(stud_diameter*stud_rescale)/2,h=stud_height,$fs=cylinder_precision);