93 lines
1.9 KiB
OpenSCAD
93 lines
1.9 KiB
OpenSCAD
include <cartridge.scad>;
|
|
|
|
cartridge_clearance = 0.3;
|
|
|
|
module receptacle() {
|
|
difference() {
|
|
box();
|
|
hole();
|
|
feet_grooves();
|
|
track_grooves();
|
|
}
|
|
tape_guides();
|
|
}
|
|
|
|
module box() {
|
|
translate([
|
|
-5,
|
|
-cartridge_clearance - 5,
|
|
-cartridge_clearance - 10,
|
|
])
|
|
cube([
|
|
cartridge_length + 5 - grip_count * grip_wedge_width - back_vertical_fillet_radius,
|
|
cartridge_width + 10,
|
|
cartridge_height + 20,
|
|
]);
|
|
}
|
|
|
|
module hole() {
|
|
translate([
|
|
-cartridge_clearance,
|
|
-cartridge_clearance,
|
|
-cartridge_clearance,
|
|
])
|
|
cube([
|
|
cartridge_length + cartridge_clearance,
|
|
cartridge_width + 2 * cartridge_clearance,
|
|
cartridge_height + 2 * cartridge_clearance,
|
|
]);
|
|
}
|
|
|
|
module feet_grooves() {
|
|
foot_groove_interval = cartridge_width - 2 * foot_side_inset - foot_width + cartridge_clearance;
|
|
foot_groove();
|
|
translate([0, foot_groove_interval]) foot_groove();
|
|
}
|
|
|
|
module foot_groove() {
|
|
translate([
|
|
foot_front_inset - cartridge_clearance,
|
|
foot_side_inset - cartridge_clearance,
|
|
-foot_height,
|
|
])
|
|
cube([
|
|
cartridge_length + 2 * cartridge_clearance,
|
|
foot_width + cartridge_clearance,
|
|
foot_height,
|
|
]);
|
|
}
|
|
|
|
module track_grooves() {
|
|
translate([
|
|
track_back_inset + cartridge_clearance,
|
|
0,
|
|
cartridge_height + cartridge_clearance
|
|
])
|
|
rotate([0, 90, 0]) {
|
|
translate([0, track_side_inset]) track_groove();
|
|
translate([0, cartridge_width - track_side_inset]) track_groove();
|
|
}
|
|
}
|
|
|
|
module track_groove() {
|
|
cylinder(
|
|
h=cartridge_length + cartridge_clearance,
|
|
r=track_radius + cartridge_clearance,
|
|
);
|
|
}
|
|
|
|
module tape_guides() {
|
|
translate([0, cartridge_width])
|
|
mirror([0, 1])
|
|
tape_guide();
|
|
tape_guide();
|
|
}
|
|
|
|
module tape_guide() {
|
|
linear_extrude(cartridge_height + 2 * cartridge_clearance)
|
|
polygon([
|
|
[0, 0],
|
|
[0, tape_guide_width - cartridge_clearance],
|
|
[tape_guide_depth - cartridge_clearance, 0],
|
|
]);
|
|
}
|