added OpenScad pump designs
This commit is contained in:
parent
78ffd920d6
commit
fedb77789d
1
.vscode/extensions.json
vendored
1
.vscode/extensions.json
vendored
|
@ -4,5 +4,6 @@
|
||||||
"jnoortheen.nix-ide",
|
"jnoortheen.nix-ide",
|
||||||
"kamadorueda.alejandra",
|
"kamadorueda.alejandra",
|
||||||
"antyos.openscad",
|
"antyos.openscad",
|
||||||
|
"juliangmp.openscad-formatter",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ This project follows the [REUSE Specification](https://reuse.software/spec/) and
|
||||||
|
|
||||||
## Acknowledgements
|
## Acknowledgements
|
||||||
|
|
||||||
To all contributors to the following open-source community for their ongoing support:
|
To all the contributors to the following open source communities for their continued support:
|
||||||
|
|
||||||
- [OpenFlexure Project](https://openflexure.org/)
|
- [OpenFlexure Project](https://openflexure.org/)
|
||||||
- [Planktoscope Project](https://www.planktoscope.org/)
|
- [Planktoscope Project](https://www.planktoscope.org/)
|
||||||
|
|
57
hardware/peristaltic-pump/libs/base.scad
Normal file
57
hardware/peristaltic-pump/libs/base.scad
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
$fn = 100;
|
||||||
|
|
||||||
|
case_size = 31;
|
||||||
|
case_corner = 5;
|
||||||
|
|
||||||
|
motor_screw_y = 8;
|
||||||
|
motor_screw_x = 17.5;
|
||||||
|
|
||||||
|
screws_socket = 4.5;
|
||||||
|
screws_hole = 2;
|
||||||
|
|
||||||
|
module base_layout()
|
||||||
|
{
|
||||||
|
minkowski()
|
||||||
|
{
|
||||||
|
square(case_size - (case_corner * 2), center = true);
|
||||||
|
circle(r = case_corner);
|
||||||
|
}
|
||||||
|
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
hull()
|
||||||
|
{
|
||||||
|
translate([ motor_screw_x, motor_screw_y, 0 ])
|
||||||
|
{
|
||||||
|
circle(r = screws_socket);
|
||||||
|
}
|
||||||
|
|
||||||
|
mirror([ 1, 0, 0 ])
|
||||||
|
{
|
||||||
|
translate([ motor_screw_x, motor_screw_y, 0 ])
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
circle(r = screws_socket);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([ motor_screw_x, motor_screw_y, 0 ])
|
||||||
|
{
|
||||||
|
circle(r = screws_hole);
|
||||||
|
}
|
||||||
|
|
||||||
|
mirror([ 1, 0, 0 ])
|
||||||
|
{
|
||||||
|
translate([ motor_screw_x, motor_screw_y, 0 ])
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
circle(r = screws_hole);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
45
hardware/peristaltic-pump/pump-body.scad
Normal file
45
hardware/peristaltic-pump/pump-body.scad
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
|
||||||
|
use <./libs/base.scad>
|
||||||
|
|
||||||
|
$fn = 100;
|
||||||
|
|
||||||
|
// translate([ 0, 40, 0 ])
|
||||||
|
// {
|
||||||
|
// rotate([ 180, 180, 0 ])
|
||||||
|
// {
|
||||||
|
// import("../../../peristaltic-pump/old/body.stl");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
body_thickness = 9;
|
||||||
|
motor_body_radius = 5;
|
||||||
|
|
||||||
|
insert_radius = 12;
|
||||||
|
insert_height = 7;
|
||||||
|
|
||||||
|
tubing_radius = 14;
|
||||||
|
tubing_height = 4;
|
||||||
|
|
||||||
|
tube_radius = 2;
|
||||||
|
|
||||||
|
module body()
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
linear_extrude(body_thickness)
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
base_layout();
|
||||||
|
circle(motor_body_radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([ 0, 0, body_thickness - insert_height ])
|
||||||
|
cylinder(insert_height, insert_radius, insert_radius);
|
||||||
|
|
||||||
|
translate([ 0, 0, body_thickness - tubing_height ])
|
||||||
|
cylinder(tubing_height, tubing_radius, tubing_radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body();
|
20
hardware/peristaltic-pump/pump-cover.scad
Normal file
20
hardware/peristaltic-pump/pump-cover.scad
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
$fn = 100;
|
||||||
|
|
||||||
|
use <./libs/base.scad>
|
||||||
|
|
||||||
|
cover_thickness = 2;
|
||||||
|
motor_axis_cutout = 2.5;
|
||||||
|
|
||||||
|
module cover()
|
||||||
|
{
|
||||||
|
linear_extrude(cover_thickness)
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
base_layout();
|
||||||
|
circle(motor_axis_cutout);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cover();
|
58
hardware/peristaltic-pump/pump-insert.scad
Normal file
58
hardware/peristaltic-pump/pump-insert.scad
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
$fn = 100;
|
||||||
|
|
||||||
|
use <./libs/base.scad>
|
||||||
|
|
||||||
|
insert_radius = 11;
|
||||||
|
insert_depth = 6;
|
||||||
|
|
||||||
|
axis_diameter = 5;
|
||||||
|
axis_height = 3;
|
||||||
|
|
||||||
|
bearing_radius = 5;
|
||||||
|
bearing_depth = 4.5;
|
||||||
|
bearing_axis = 1.5;
|
||||||
|
bearing_shift = 9;
|
||||||
|
|
||||||
|
module bearing()
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
linear_extrude(bearing_depth)
|
||||||
|
{
|
||||||
|
circle(bearing_radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
linear_extrude(bearing_depth - 1)
|
||||||
|
{
|
||||||
|
circle(bearing_axis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module insert()
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
linear_extrude(insert_depth)
|
||||||
|
{
|
||||||
|
difference()
|
||||||
|
{
|
||||||
|
circle(insert_radius);
|
||||||
|
square([ axis_diameter, axis_height ], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([ bearing_shift, 0, insert_depth - bearing_depth ])
|
||||||
|
bearing();
|
||||||
|
|
||||||
|
rotate([ 0, 0, 120 ])
|
||||||
|
translate([ bearing_shift, 0, insert_depth - bearing_depth ])
|
||||||
|
bearing();
|
||||||
|
|
||||||
|
rotate([ 0, 0, 240 ])
|
||||||
|
translate([ bearing_shift, 0, insert_depth - bearing_depth ])
|
||||||
|
bearing();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
insert();
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
pre-commit,
|
pre-commit,
|
||||||
nixpkgs,
|
|
||||||
...
|
...
|
||||||
}: system:
|
}: system:
|
||||||
with self.pkgs.${system}; {
|
with self.pkgs.${system}; {
|
||||||
|
@ -14,11 +13,6 @@ with self.pkgs.${system}; {
|
||||||
statix.enable = true;
|
statix.enable = true;
|
||||||
deadnix.enable = true;
|
deadnix.enable = true;
|
||||||
actionlint.enable = true;
|
actionlint.enable = true;
|
||||||
shellcheck = {
|
|
||||||
enable = true;
|
|
||||||
types_or = lib.mkForce [];
|
|
||||||
};
|
|
||||||
shfmt.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
with self.pkgs.${system};
|
with self.pkgs.${system};
|
||||||
mkShell {
|
mkShell {
|
||||||
name = "flowflexure-nix";
|
name = "flowflexure-nix";
|
||||||
nativeBuildInputs = [
|
packages = [
|
||||||
alejandra
|
alejandra
|
||||||
deadnix
|
deadnix
|
||||||
git
|
git
|
||||||
|
@ -13,6 +13,7 @@ with self.pkgs.${system};
|
||||||
statix
|
statix
|
||||||
vscode-extensions.antyos.openscad
|
vscode-extensions.antyos.openscad
|
||||||
vscodium-fhs
|
vscodium-fhs
|
||||||
|
clang-tools
|
||||||
];
|
];
|
||||||
|
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
|
|
Loading…
Reference in a new issue