Resources

Making Polygons in Scratch

Making Lego in OpenSCAD

// 2x2 Lego Cube 
// OpenSCAD version

difference() {
    cube([10,10,6]);
    translate([1,1,-1]) {
        cube([8,8,6]);
    }
}
translate([2.5,2.5,6]) {
    cylinder(1,1.5,1.5, $fn=20);
}
translate([7.5,2.5,6]) {
    cylinder(1,1.5,1.5, $fn=20);
}
translate([2.5,7.5,6]) {
    cylinder(1,1.5,1.5, $fn=20);
}
translate([7.5,7.5,6]) {
    cylinder(1,1.5,1.5, $fn=20);
}

translate([5,5,0]) {
    difference() {
        cylinder(5,2.035,2.035, $fn=20);
        translate([0,0,-1]) {
            cylinder(6,1.5,1.5, $fn=20);
        }
    }                          
}
// 2x2 Lego Cube 
// OpenJSCAD version

function main() {
    return union (
        difference (
            cube([10,10,6]),
            translate([1,1,-1],
                cube([8,8,6])
            )
        ),
        translate([2.5,2.5,5],
            cylinder({h:2,r:1.5})
        ),
        translate([7.5,7.5,5],
            cylinder({h:2,r:1.5})
        ),
        translate([2.5,7.5,5],
            cylinder({h:2,r:1.5})
        ),
        translate([7.5,2.5,5],
            cylinder({h:2,r:1.5})
        ),
        translate([5,5,0],
                difference(
                    cylinder({h:6,r:2.035}),
                    cylinder({h:6,r:1.5})
                )                            
          )
        )
}