Create initial receptacle design
This commit is contained in:
parent
561427774a
commit
26c5a213df
3 changed files with 119 additions and 32 deletions
|
|
@ -1,5 +1,3 @@
|
|||
$fn = $preview ? 32 : 128;
|
||||
|
||||
// Cartridge base dimensions
|
||||
cartridge_width = 102;
|
||||
cartridge_length = 133;
|
||||
|
|
@ -61,8 +59,6 @@ nfc_coin_depth = 1;
|
|||
nfc_coin_diameter = 25;
|
||||
nfc_coin_tolerance = 0.1;
|
||||
|
||||
cartridge();
|
||||
|
||||
module cartridge() {
|
||||
difference() {
|
||||
base();
|
||||
|
|
@ -189,35 +185,27 @@ module nfc_coin() {
|
|||
|
||||
module footprint() {
|
||||
hull() {
|
||||
one_side_vertical_fillets();
|
||||
translate([0, cartridge_width]) mirror([0, 1]) one_side_vertical_fillets();
|
||||
}
|
||||
}
|
||||
|
||||
module one_side_vertical_fillets() {
|
||||
translate([
|
||||
cartridge_length - back_vertical_fillet_radius,
|
||||
back_vertical_fillet_radius,
|
||||
]) {
|
||||
])
|
||||
circle(back_vertical_fillet_radius);
|
||||
// translate([0, cartridge_width - back_vertical_fillet_radius])
|
||||
// circle(back_vertical_fillet_radius);
|
||||
}
|
||||
translate([
|
||||
cartridge_length - back_vertical_fillet_radius,
|
||||
cartridge_width - back_vertical_fillet_radius,
|
||||
]) circle(back_vertical_fillet_radius);
|
||||
translate([
|
||||
tape_guide_depth + side_vertical_fillet_radius * tan(0.5 * atan(tape_guide_slope)),
|
||||
side_vertical_fillet_radius,
|
||||
]) circle(side_vertical_fillet_radius);
|
||||
translate([
|
||||
tape_guide_depth + side_vertical_fillet_radius * tan(0.5 * atan(tape_guide_slope)),
|
||||
cartridge_width - side_vertical_fillet_radius,
|
||||
]) circle(side_vertical_fillet_radius);
|
||||
])
|
||||
circle(side_vertical_fillet_radius);
|
||||
translate([
|
||||
front_vertical_fillet_radius,
|
||||
tape_guide_width + front_vertical_fillet_radius * tan(0.5 * atan(1 / tape_guide_slope)),
|
||||
]) circle(front_vertical_fillet_radius);
|
||||
translate([
|
||||
front_vertical_fillet_radius,
|
||||
cartridge_width - tape_guide_width - front_vertical_fillet_radius * tan(0.5 * atan(1 / tape_guide_slope)),
|
||||
]) circle(front_vertical_fillet_radius);
|
||||
}
|
||||
])
|
||||
circle(front_vertical_fillet_radius);
|
||||
}
|
||||
|
||||
module tracks() {
|
||||
|
|
|
|||
6
justfile
Normal file
6
justfile
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
default: (build "cartridge") (build "receptacle")
|
||||
|
||||
build target:
|
||||
echo 'use <{{target}}.scad>; $fn = 128; {{target}}();' > part.scad
|
||||
openscad -o {{target}}.stl part.scad
|
||||
rm part.scad
|
||||
93
receptacle.scad
Normal file
93
receptacle.scad
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
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],
|
||||
]);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue