Initial commit
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
*.stl
 | 
			
		||||
							
								
								
									
										10
									
								
								Lego.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Lego.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
    "parameterSets": {
 | 
			
		||||
        "Brick_4x2": {
 | 
			
		||||
            "type": "1",
 | 
			
		||||
            "studs_x": "4",
 | 
			
		||||
            "studs_y": "2"
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "fileFormatVersion": "1"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								Lego.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								Lego.scad
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
/* [Lego Type] */
 | 
			
		||||
type = 1; // [1:Standard]
 | 
			
		||||
studs_x = 4;
 | 
			
		||||
studs_y = 2;
 | 
			
		||||
 | 
			
		||||
/* [Hidden] */
 | 
			
		||||
block_height = 9.6; // The height of the block without studs
 | 
			
		||||
length_per_stud = 31.8 / 4;
 | 
			
		||||
stud_details = 4 * ($preview ? 5 : 10);
 | 
			
		||||
wall_width = 1.4;
 | 
			
		||||
ceiling_width = 1;
 | 
			
		||||
 | 
			
		||||
module stud() {
 | 
			
		||||
	cylinder(d = 4.8, h = 1.8, $fn = stud_details);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module studs() {
 | 
			
		||||
	for (x = [0:studs_x-1], y = [0:studs_y-1])
 | 
			
		||||
	translate([(x+0.5) * length_per_stud, (y+0.5) * length_per_stud, 0])
 | 
			
		||||
	stud();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module base() {
 | 
			
		||||
	difference() {
 | 
			
		||||
		cube([ studs_x*length_per_stud, studs_y*length_per_stud, block_height ]);
 | 
			
		||||
		translate([wall_width, wall_width, -ceiling_width]) {
 | 
			
		||||
			cube([
 | 
			
		||||
				studs_x*length_per_stud - wall_width * 2,
 | 
			
		||||
				studs_y*length_per_stud - wall_width * 2,
 | 
			
		||||
				block_height
 | 
			
		||||
			]);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module pillar() {
 | 
			
		||||
	cylinder(h = block_height, d = 6.51, $fn = stud_details);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module pillars() {
 | 
			
		||||
	if (studs_x >= 2 && studs_y >= 2) {
 | 
			
		||||
		for (x = [0:studs_x-2], y = [0:studs_y-2])
 | 
			
		||||
		translate([(x+1) * length_per_stud, (y+1) * length_per_stud, 0])
 | 
			
		||||
		pillar();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module block() {
 | 
			
		||||
	base();
 | 
			
		||||
	pillars();
 | 
			
		||||
	translate([0, 0, block_height])
 | 
			
		||||
		studs();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
block();
 | 
			
		||||
		Reference in New Issue
	
	Block a user