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 base dimensions
|
||||||
cartridge_width = 102;
|
cartridge_width = 102;
|
||||||
cartridge_length = 133;
|
cartridge_length = 133;
|
||||||
|
|
@ -61,8 +59,6 @@ nfc_coin_depth = 1;
|
||||||
nfc_coin_diameter = 25;
|
nfc_coin_diameter = 25;
|
||||||
nfc_coin_tolerance = 0.1;
|
nfc_coin_tolerance = 0.1;
|
||||||
|
|
||||||
cartridge();
|
|
||||||
|
|
||||||
module cartridge() {
|
module cartridge() {
|
||||||
difference() {
|
difference() {
|
||||||
base();
|
base();
|
||||||
|
|
@ -189,37 +185,29 @@ module nfc_coin() {
|
||||||
|
|
||||||
module footprint() {
|
module footprint() {
|
||||||
hull() {
|
hull() {
|
||||||
translate([
|
one_side_vertical_fillets();
|
||||||
cartridge_length - back_vertical_fillet_radius,
|
translate([0, cartridge_width]) mirror([0, 1]) one_side_vertical_fillets();
|
||||||
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);
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module one_side_vertical_fillets() {
|
||||||
|
translate([
|
||||||
|
cartridge_length - back_vertical_fillet_radius,
|
||||||
|
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([
|
||||||
|
front_vertical_fillet_radius,
|
||||||
|
tape_guide_width + front_vertical_fillet_radius * tan(0.5 * atan(1 / tape_guide_slope)),
|
||||||
|
])
|
||||||
|
circle(front_vertical_fillet_radius);
|
||||||
|
}
|
||||||
|
|
||||||
module tracks() {
|
module tracks() {
|
||||||
track_interval = cartridge_width - 2 * track_side_inset;
|
track_interval = cartridge_width - 2 * track_side_inset;
|
||||||
translate([track_front_inset, track_side_inset, cartridge_height])
|
translate([track_front_inset, track_side_inset, cartridge_height])
|
||||||
|
|
|
||||||
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