diff --git a/trunk/workspace/09_3D-Draws/MSX/LICENSE.txt b/trunk/workspace/09_3D-Draws/MSX/LICENSE.txt new file mode 100644 index 00000000..bff03678 --- /dev/null +++ b/trunk/workspace/09_3D-Draws/MSX/LICENSE.txt @@ -0,0 +1 @@ +This thing was created by Thingiverse user papipapito, and is licensed under Creative Commons - Attribution \ No newline at end of file diff --git a/trunk/workspace/09_3D-Draws/MSX/README.txt b/trunk/workspace/09_3D-Draws/MSX/README.txt new file mode 100644 index 00000000..99461751 --- /dev/null +++ b/trunk/workspace/09_3D-Draws/MSX/README.txt @@ -0,0 +1,4 @@ +MSX cartridge for FBlabs SD mapper V2 by papipapito on Thingiverse: https://www.thingiverse.com/thing:6056918 + +Summary: +cartridge for the Fbals SD mapper V2 board, very basic, but it does its job \ No newline at end of file diff --git a/trunk/workspace/09_3D-Draws/MSX/files/bottom4.scad b/trunk/workspace/09_3D-Draws/MSX/files/bottom4.scad new file mode 100644 index 00000000..6cc26f49 --- /dev/null +++ b/trunk/workspace/09_3D-Draws/MSX/files/bottom4.scad @@ -0,0 +1,216 @@ +$fn = 128; + +height = 8.5; +width = 109; +box_height = 71; +wall = 3; +lowered = 6.8; // height of indented wall at bottom of cartridge + +fixation1_x = 11.8; +fixation_y = 35.5; +fixation2_x = 97; + +abutment_size = 7; + + + + + +module base() +{ + cube([width, box_height, wall]); +} + +module wall() +{ + difference(){ + cube([wall,box_height,height]); + //translate ([-1,51,5]) + //cube(15); + } +} + +module wall1() +{ + + cube([wall,box_height,height]); + +} +module abutment(height=lowered) +{ + cube([abutment_size,wall, height]); +} + + +module top() +{ + difference(){ + translate([00,box_height-wall,0]) + cube([width, wall, height]); + translate ([18,60,5]) + cube (27); + } +} + +module bottom() +{ + cube([15.5, wall, height]); + translate([width-5.5, 0,0]) + cube([5.5, wall, height]); +} + +module fixations() +{ + translate([fixation1_x,fixation_y,0]) + cylinder(h=lowered, r=3.5); + translate([fixation2_x,fixation_y,0]) + cylinder(h=lowered, r=3.5); +} + +module fixations_holes() +{ + translate([fixation1_x,fixation_y,-1]) + { + cylinder(h=height-3+1, r=2.5); + cylinder(h=height+1, r=1.2); + } + translate([fixation2_x,fixation_y,-1]) + { + cylinder(h=height-3+1, r=2.5); + cylinder(h=height+1, r=1.2); + } +} + +module indent_wall() +{ + translate([0,18,0]) + cube([22,wall,lowered]); + translate([27.1, 13.4, 0]) + rotate([0,0,125]) + cube([9.3, wall, lowered]); + translate([24.4, 11.8, ]) + cube([70.2,wall,lowered]); + translate([width-14.4, 11.8, 0]) + rotate([0,0,55]) + cube([8.3, wall, lowered]); + translate([width-12,18,0]) + cube([12,wall,lowered]); + #fixations(); +} + +module marker_box() +{ + translate([4,0,0]) + cube([9,13,5]); +} + +module marker_wall() +{ + translate([13-wall, 0, 0]) + cube([wall, 18, lowered]); +} + + +module eye_box() +{ + translate([8.5,19.25,0]) + cylinder(h=height, r=5.1); // larger hole, for mark +} + +module eye_hole() +{ + translate([8.5,19.25,-1]) + cylinder(h=height+2, r=3.1); // larger hole, for mark +} + +module reinformcements() +{ + translate([0,32,0]) + abutment(); + translate([0,54,0]) + abutment(0); + translate([width-abutment_size,32,0]) + abutment(); + translate([width-abutment_size,54,0]) + abutment(); + + translate([width-28,box_height-abutment_size, 0]) + rotate([0,0,90]) + abutment(); + translate([width/2+1,box_height-abutment_size, 0]) + rotate([0,0,90]) + abutment(); + translate([40,11.8, 0]) + rotate([0,0,90]) + abutment(); + translate([80,11.8, 0]) + rotate([0,0,90]) + abutment(); +} + +module support_pin() +{ + difference() + { + cylinder(h=lowered, r=6.5/2); + translate([0,0,wall]) + cylinder(h=lowered, r=4.5/2); + } +} + +module support_pins() +{ + translate([31,19.25+5,0]) + support_pin(); + translate([31+56,19.25, 0]) + support_pin(); +} + +module block() +{ + base(); + wall(); + reinformcements(); + translate([width-wall,0,0]) + wall1(); + top(); + bottom(); + indent_wall(); + marker_box(); + marker_wall(); + eye_box(); + support_pins(); +} + + +module marker_hole() +{ + translate([8.5,13,height]) + rotate([90,0,0]) + cylinder(h=13+1, r=3.5); +} + +module outer_marker_hole() +{ + translate([9.0,12/2-1,-1.5]) + rotate([0,40,0]) + cube([height, 12, height], center=true); + translate([8.0,12/2-1,-1.5]) + rotate([0,50,0]) + cube([height, 12, height], center=true); +} + +module holes() +{ + marker_hole(); + eye_hole(); + #fixations_holes(); + outer_marker_hole(); +} + + +difference() +{ + block(); + holes(); +} diff --git a/trunk/workspace/09_3D-Draws/MSX/files/bottom4.stl b/trunk/workspace/09_3D-Draws/MSX/files/bottom4.stl new file mode 100644 index 00000000..aced8acb Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/files/bottom4.stl differ diff --git a/trunk/workspace/09_3D-Draws/MSX/files/top4.scad b/trunk/workspace/09_3D-Draws/MSX/files/top4.scad new file mode 100644 index 00000000..872ed135 --- /dev/null +++ b/trunk/workspace/09_3D-Draws/MSX/files/top4.scad @@ -0,0 +1,295 @@ +$fn = 128; + +height = 8.5; +width = 109; +box_height = 71; +wall = 3; +lowered = 7; // height of indented wall at bottom of cartridge + +fixation1_x = 11.8; +fixation_y = 35.5; +fixation2_x = 97; + +abutment_size = 8; + +module base() +{ + difference(){ + cube([width, box_height, wall]); + translate([46,57,-1]) + cube([5,10,15]); + } +} + +module wall() +{ + cube([wall,box_height,height]); +} + +module abutment(height=lowered) +{ + cube([abutment_size,wall, height]); +} + + +module top() +{ + difference(){ + translate([0,box_height-wall,0]) + cube([width, wall, height]); + translate ([18,60,5]) + cube(27); + translate ([73,60,5]) + cube(20); + } +} + +module close_top() +{ + difference(){ + translate([2*wall,box_height-2*wall,0]) + cube([width-4*wall, wall, height+1]); + translate ([18,60,5]) + cube(27); + translate ([73,60,5]) + cube(20); +} +} + +module bottom() +{ + cube([15.5, wall, height]); + translate([width-5.5, 0,0]) + cube([5.5, wall, height]); +} + +module close_bottom() +{ + translate([2*wall,wall,0]) + cube([13.5-wall, wall, height+1]); + translate([width-wall-3.5, wall,0]) + cube([3.5-wall, wall, height+1]); +} + +module close_corners() +{ + translate([wall,wall,0]) + { + intersection() + { + translate([wall,wall,0]) + cylinder(h=height+1, r=wall); + cube([wall,wall,height+1]); + } + cube([wall,wall,height]); + } + translate([wall,box_height-2*wall,0]) + { + intersection() + { + translate([wall,0,0]) + cylinder(h=height+1, r=wall); + cube([wall,wall,height+1]); + } + cube([wall,wall,height]); + } + translate([width-2*wall,box_height-2*wall,0]) + { + intersection() + { + cylinder(h=height+1, r=wall); + cube([wall,wall,height+1]); + } + cube([wall,wall,height]); + } + translate([width-2*wall,wall,0]) + { + intersection() + { + translate([0,wall,0]) + cylinder(h=height+1, r=wall); + cube([wall,wall,height+1]); + } + cube([wall,wall,height]); + } +} + + +module fixations() +{ + translate([fixation1_x,fixation_y,0]) + { + cylinder(h=height, r=3.5); + //cylinder(h=12.4, r=2.25); + } + translate([fixation2_x,fixation_y,0]) + { + cylinder(h=height, r=2.5); + //cylinder(h=12.4, r=2.25); + } +} + +module fixations_holes() +{ + translate([fixation1_x,fixation_y,wall]) + { + cylinder(h=height+1, r=1); + } + translate([fixation2_x,fixation_y,wall]) + { + cylinder(h=height+1, r=1); + } +} + +module indent_wall() +{ + translate([0,18,0]) + cube([22,1,height]); + #translate([25.1, 12.3, 0]) + rotate([0,0,125]) + cube([8.3, 1, height]); + translate([24.4, 11.8, ]) + cube([70.2,1,height]); + #translate([width-14.4, 11.8, 0]) + rotate([0,0,55]) + cube([7.3, 1, height]); + translate([width-12,18,0]) + cube([12,1,height]); + #fixations(); +} + +module marker_box() +{ + translate([4,0,0]) + cube([9,13,5]); +} + +module marker_wall() +{ + translate([13-wall, 0, 0]) + cube([wall, 18, lowered]); +} + + +module eye_box() +{ + translate([8.5,19.25,0]) + cylinder(h=height, r=5.1); // larger hole, for mark +} + +module eye_hole() +{ + translate([8.5,19.25,-1]) + cylinder(h=height+2, r=3.1); // larger hole, for mark +} + +module reinformcements() +{ + translate([0,32,0]) + abutment(); + translate([0,54,0]) + abutment(); + translate([width-abutment_size,32,0]) + abutment(); + translate([width-abutment_size,54,0]) + abutment(); + + translate([width/2+1,box_height-abutment_size, 0]) + rotate([0,0,90]) + abutment(); + translate([40,11.8, 0]) + rotate([0,0,90]) + abutment(); + translate([80,11.8, 0]) + rotate([0,0,90]) + abutment(); +} + +module support_pin() +{ + cylinder(h=height/2, r=6.5/2); + cylinder(h=height+height-wall, r=3.8/2); +} + +module support_pins() +{ + translate([31,19.25+5,0]) + support_pin(); + translate([31+56,19.25, 0]) + support_pin(); +} + +module close_wall() +{ + translate([0,wall,0]) + cube([wall,box_height-4*wall,height+1]); +} + +module block() +{ + base(); + wall(); + //translate([wall,wall,0]) + //close_wall(); + //translate([width-2*wall,wall,0]) + //close_wall(); + reinformcements(); + translate([width-wall,0,0]) + wall(); + top(); + //close_top(); + bottom(); + //close_bottom(); + //close_corners(); + indent_wall(); + marker_box(); + marker_wall(); + eye_box(); + support_pins(); + +} + + +module marker_hole() +{ + translate([8.5,13,height]) + rotate([90,0,0]) + cylinder(h=13+1, r=3.5); +} + +module outer_marker_hole() +{ + translate([9.0,12/2-1,-1.5]) + rotate([0,40,0]) + cube([height, 12, height], center=true); + translate([8.0,12/2-1,-1.5]) + rotate([0,50,0]) + cube([height, 12, height], center=true); +} + + +module close_wall_eye_hole_cutout() +{ + translate([8.5,19.25,height]) + cylinder(h=2, r=5.3); // larger hole, for mark, cutout in close_wall + // Make it a tiny bit larger for better fit. +} + +module holes() +{ + marker_hole(); + eye_hole(); + fixations_holes(); + close_wall_eye_hole_cutout(); + //outer_marker_hole(); +} + + +mirror([1,0,0]) +{ + difference() + { + block(); + holes(); + } +} diff --git a/trunk/workspace/09_3D-Draws/MSX/files/top4.stl b/trunk/workspace/09_3D-Draws/MSX/files/top4.stl new file mode 100644 index 00000000..143f8520 Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/files/top4.stl differ diff --git a/trunk/workspace/09_3D-Draws/MSX/images/6be4d2d5-a5bc-411d-a344-e38085d823a4.png b/trunk/workspace/09_3D-Draws/MSX/images/6be4d2d5-a5bc-411d-a344-e38085d823a4.png new file mode 100644 index 00000000..45067fa6 Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/images/6be4d2d5-a5bc-411d-a344-e38085d823a4.png differ diff --git a/trunk/workspace/09_3D-Draws/MSX/images/6eaf41b9-a06f-4b04-9f1e-5d5490e84d95.jpeg b/trunk/workspace/09_3D-Draws/MSX/images/6eaf41b9-a06f-4b04-9f1e-5d5490e84d95.jpeg new file mode 100644 index 00000000..70b3c03f Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/images/6eaf41b9-a06f-4b04-9f1e-5d5490e84d95.jpeg differ diff --git a/trunk/workspace/09_3D-Draws/MSX/images/700272a4-b122-4ee6-8bc6-e71c9c9e0eb1.png b/trunk/workspace/09_3D-Draws/MSX/images/700272a4-b122-4ee6-8bc6-e71c9c9e0eb1.png new file mode 100644 index 00000000..f6313426 Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/images/700272a4-b122-4ee6-8bc6-e71c9c9e0eb1.png differ diff --git a/trunk/workspace/09_3D-Draws/MSX/images/ba06ab50-ad82-4d75-be8a-9668bf4e70ad.jpeg b/trunk/workspace/09_3D-Draws/MSX/images/ba06ab50-ad82-4d75-be8a-9668bf4e70ad.jpeg new file mode 100644 index 00000000..3bd23b78 Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/images/ba06ab50-ad82-4d75-be8a-9668bf4e70ad.jpeg differ diff --git a/trunk/workspace/09_3D-Draws/MSX/images/f24bac90-61dc-4c1c-9151-ef7fa39535f8.jpeg b/trunk/workspace/09_3D-Draws/MSX/images/f24bac90-61dc-4c1c-9151-ef7fa39535f8.jpeg new file mode 100644 index 00000000..05bfc2fb Binary files /dev/null and b/trunk/workspace/09_3D-Draws/MSX/images/f24bac90-61dc-4c1c-9151-ef7fa39535f8.jpeg differ