This commit is contained in:
1
trunk/workspace/09_3D-Draws/MSX/LICENSE.txt
Normal file
1
trunk/workspace/09_3D-Draws/MSX/LICENSE.txt
Normal file
@@ -0,0 +1 @@
|
||||
This thing was created by Thingiverse user papipapito, and is licensed under Creative Commons - Attribution
|
||||
4
trunk/workspace/09_3D-Draws/MSX/README.txt
Normal file
4
trunk/workspace/09_3D-Draws/MSX/README.txt
Normal file
@@ -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
|
||||
216
trunk/workspace/09_3D-Draws/MSX/files/bottom4.scad
Normal file
216
trunk/workspace/09_3D-Draws/MSX/files/bottom4.scad
Normal file
@@ -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();
|
||||
}
|
||||
BIN
trunk/workspace/09_3D-Draws/MSX/files/bottom4.stl
Normal file
BIN
trunk/workspace/09_3D-Draws/MSX/files/bottom4.stl
Normal file
Binary file not shown.
295
trunk/workspace/09_3D-Draws/MSX/files/top4.scad
Normal file
295
trunk/workspace/09_3D-Draws/MSX/files/top4.scad
Normal file
@@ -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();
|
||||
}
|
||||
}
|
||||
BIN
trunk/workspace/09_3D-Draws/MSX/files/top4.stl
Normal file
BIN
trunk/workspace/09_3D-Draws/MSX/files/top4.stl
Normal file
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 290 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 290 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.3 MiB |
Reference in New Issue
Block a user