mirror of
https://github.com/revarbat/snappy-reprap.git
synced 2025-11-02 15:46:45 -08:00
Added Wiki submodule. Parts tweaks.
This commit is contained in:
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "wiki"]
|
||||
path = wiki
|
||||
url = https://github.com/revarbat/snappy-reprap.wiki.git
|
||||
@@ -552,18 +552,34 @@ module narrowing_strut(w=10, l=100, wall=5, ang=30)
|
||||
//!narrowing_strut();
|
||||
|
||||
|
||||
|
||||
// Makes a wall which thins to a smaller width in the center,
|
||||
// with angled supports to prevent critical overhangs.
|
||||
// Example:
|
||||
// thinning_wall(h=50, l=100, thick=4, ang=30, strut=5, wall=2);
|
||||
module thinning_wall(h=50, l=100, thick=4, ang=30, strut=5, wall=2)
|
||||
module thinning_wall(h=50, l=100, thick=5, ang=30, strut=5, wall=3, bracing=true)
|
||||
{
|
||||
ang = atan((h-2*strut)/(l-2*strut));
|
||||
dlen = (h-2*strut)/sin(ang);
|
||||
union() {
|
||||
xrot_copies([0, 180]) {
|
||||
translate([0, 0, -h/2])
|
||||
narrowing_strut(w=thick, l=l, wall=strut, ang=ang);
|
||||
translate([0, -l/2, 0])
|
||||
xrot(-90) narrowing_strut(w=thick, l=h, wall=strut, ang=ang);
|
||||
if (bracing == true) {
|
||||
intersection() {
|
||||
cube(size=[thick, l, h], center=true);
|
||||
xrot_copies([-ang,ang]) {
|
||||
grid_of(za=[-strut/4, strut/4]) {
|
||||
scale([1,1,1.5]) yrot(45) {
|
||||
cube(size=[thick/sqrt(2), dlen, thick/sqrt(2)], center=true);
|
||||
}
|
||||
}
|
||||
cube(size=[thick, dlen, strut/2], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cube(size=[wall, l-1, h-1], center=true);
|
||||
}
|
||||
@@ -571,6 +587,7 @@ module thinning_wall(h=50, l=100, thick=4, ang=30, strut=5, wall=2)
|
||||
//!thinning_wall();
|
||||
|
||||
|
||||
|
||||
// Example:
|
||||
// sparse_strut(h=40, l=120, thick=4, maxang=30, strut=5, max_bridge=20);
|
||||
module sparse_strut(h=50, l=100, thick=4, maxang=30, strut=5, max_bridge = 20)
|
||||
@@ -823,7 +840,7 @@ module nema17_mount_holes(depth=5, len=5)
|
||||
cylinder(h=depth, r=plinth_diam/2, center=true);
|
||||
}
|
||||
}
|
||||
!nema17_mount_holes(depth=5, len=5);
|
||||
//!nema17_mount_holes(depth=5, len=5);
|
||||
|
||||
|
||||
|
||||
|
||||
87
README.md
87
README.md
@@ -2,3 +2,90 @@ snappy-reprap
|
||||
=============
|
||||
|
||||
A parametric design for a cheap self-replicating 3D printer (reprap) that snaps together to minimize screws and non-printed parts.
|
||||

|
||||
|
||||
Building the STL files
|
||||
----------------------
|
||||
|
||||
The Makefile currently defines $OPENSCAD for building on OS X:
|
||||
```
|
||||
OPENSCAD=/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD
|
||||
```
|
||||
|
||||
Under Linux, you can change that to:
|
||||
```
|
||||
OPENSCAD=openscad
|
||||
```
|
||||
|
||||
Under Windows, you'll probably have to open each ```*_part.scad``` and ```*_parts.scad``` file individually and manually export the STL files.
|
||||
|
||||
|
||||
Printing the parts
|
||||
------------------
|
||||
You will need to print out the following parts:
|
||||
|
||||
|Count| Part File
|
||||
|-----|----------------------
|
||||
| 1 | cap\_parts.stl
|
||||
| 1 | drive\_gear\_parts.stl
|
||||
| 1 | motor\_mount\_plate\_parts.stl
|
||||
| 2 | rail\_with\_motor\_mount\_part.stl
|
||||
| 1 | rails\_90deg\_joint\_part.stl
|
||||
| 2 | rails\_end\_part.stl
|
||||
| 7 | rails\_part.stl
|
||||
| 1 | roller\_parts.stl
|
||||
| 3 | sled\_end\_parts.stl
|
||||
| 2 | support\_leg\_part.stl
|
||||
| 2 | xy\_joiner\_parts.stl
|
||||
| 4 | xy\_sled\_part.stl
|
||||
| 1 | z\_platform\_joint\_part.stl
|
||||
| 1 | z\_sled\_part.stl
|
||||
|
||||
|
||||
Required Vitamins
|
||||
-----------------
|
||||
You'll need the following un-printable parts:
|
||||
|
||||
|Count| Description
|
||||
|-----|----------------------------------------------------
|
||||
| 1 | RAMBo controller electronics.
|
||||
| 1 | 60 Watt 12v Power Supply
|
||||
| 3 | End-stop micro-switches and wiring.
|
||||
| 3 | NEMA17 Stepper Motors, Less than 35mm length
|
||||
| 1 | NEMA17 Stepper Motor, High Torque.
|
||||
| 1 | Wiring for Extruder Heater.
|
||||
| 1 | Wiring for Extruder Thermistor.
|
||||
| 1 | J-Head Extruder.
|
||||
| 1 | Threaded rod, 300mm x 8mm.
|
||||
| 1 | Nut, 8mm.
|
||||
| 2 | M3x15 Socket Screws.
|
||||
| 18 | M3x10 Socket Screws.
|
||||
| 4 | M3 Nuts.
|
||||
| 16 | M3 Washers.
|
||||
| 6 | M2x15 Socket Screws.
|
||||
| 6 | M2 Nuts.
|
||||
| 1 | Spring. _(**TODO:** determine size)_
|
||||
| 2 | M3x20? socket screws. _(**TODO:** determine actual size)_
|
||||
| 2 | M3x20? countersunk screws. _(**TODO:** determine actual size)_
|
||||
| 1 | Extruder Drive Gear.
|
||||
| 1 | M2 Extruder drive gear set screw.
|
||||
| 2Kg | Plastic Filament. _(**TODO:** determine actual amount.)_
|
||||
|
||||
|
||||
Required Tools
|
||||
--------------
|
||||
You will need the following tools to assemble this printer.
|
||||
|
||||
- 3mm hex wrench.
|
||||
- 2mm hex wrench.
|
||||
- Small flathead screwdriver.
|
||||
- Small phillips screwdriver.
|
||||
- Medium-Grit Sandpaper.
|
||||
- Possibly cyanoacrylate glue. (super-glue)
|
||||
|
||||
|
||||
Assembly instructions
|
||||
---------------------
|
||||
TBD
|
||||
|
||||
|
||||
|
||||
10
TODO.md
10
TODO.md
@@ -1,12 +1,14 @@
|
||||
TODO:
|
||||
-----
|
||||
* Z-axis platform threaded screw nut holder.
|
||||
* Z-axis motor mount in 90deg corner part.
|
||||
* Y-axis cable chain.
|
||||
* Z-axis cable chain.
|
||||
* X-axis endstop.
|
||||
* Y-axis endstop.
|
||||
* Z-axis endstop.
|
||||
* Z threaded rod shaft coupler.
|
||||
* Extruder mount.
|
||||
* Extruder base for J-head.
|
||||
* Minimalist Mk7-esque Extruder Parts.
|
||||
* Electronics container.
|
||||
* Extruder mount part.
|
||||
* Motherboard mounts.
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ rack_tooth_size = 5; // mm per tooth.
|
||||
|
||||
rail_length = 150;
|
||||
rail_height = 50;
|
||||
rail_thick = 5;
|
||||
rail_thick = 7;
|
||||
|
||||
motor_rail_length = 100;
|
||||
|
||||
|
||||
14
joiners.scad
14
joiners.scad
@@ -99,23 +99,23 @@ module lock_tab(h=30, wall=3, slop=0.0)
|
||||
|
||||
|
||||
|
||||
module lock_slot(h=30, wall=3, slop=0.2)
|
||||
module lock_slot(h=30, wall=3, backing=0, slop=0.2)
|
||||
{
|
||||
s1 = 2*wall+slop/2;
|
||||
s2 = wall+slop/2;
|
||||
w = 2*s1+2*wall;
|
||||
d = wall*3+slop;
|
||||
ang = atan(((s1-s2)/2)/(h-2));
|
||||
translate([0, d/2, 0]) difference() {
|
||||
translate([0, (d+backing)/2, 0]) difference() {
|
||||
intersection() {
|
||||
yrot( ang) translate([0, 0, (h+5)/2]) cube(size=[w, d, h+10], center=true);
|
||||
yrot(-ang) translate([0, 0, (h+5)/2]) cube(size=[w, d, h+10], center=true);
|
||||
translate([0, 0, h/2]) cube(size=[w, d, h], center=true);
|
||||
yrot( ang) translate([0, 0, (h+5)/2]) cube(size=[w, d+backing, h+10], center=true);
|
||||
yrot(-ang) translate([0, 0, (h+5)/2]) cube(size=[w, d+backing, h+10], center=true);
|
||||
translate([0, 0, h/2]) cube(size=[w, d+backing, h], center=true);
|
||||
}
|
||||
translate([0, d/2+0.05, -0.05]) lock_tab(h=h, wall=wall, slop=-slop);
|
||||
translate([0, (d+backing)/2+0.05, -0.05]) lock_tab(h=h, wall=wall, slop=-slop);
|
||||
}
|
||||
}
|
||||
//lock_slot(h=30, wall=2, slop=0.1);
|
||||
//!lock_slot(h=30, wall=2, slop=0.1);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ use <joiners.scad>
|
||||
module rails_90deg_joint()
|
||||
{
|
||||
joiner_length=10;
|
||||
base_height = rail_height+roller_thick;
|
||||
endstop_delta = platform_length - base_height;
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
@@ -15,9 +17,14 @@ module rails_90deg_joint()
|
||||
translate([0,platform_length/2,rail_thick/2]) yrot(90)
|
||||
sparse_strut(h=rail_width, l=platform_length, thick=rail_thick, maxang=45, strut=10, max_bridge=500);
|
||||
|
||||
// Back.
|
||||
translate([0,rail_thick/2,platform_length/2]) zrot(90) {
|
||||
thinning_wall(h=platform_length, l=rail_width, thick=rail_thick, strut=5);
|
||||
// Lower Back.
|
||||
translate([0,rail_thick/2,rail_height/2]) zrot(90) {
|
||||
thinning_wall(h=rail_height, l=rail_width-joiner_width, thick=rail_thick, strut=rail_thick);
|
||||
}
|
||||
|
||||
// Upper Back.
|
||||
translate([0, rail_thick/2, rail_height+(platform_length-rail_height-rail_thick)/2]) zrot(90) {
|
||||
thinning_wall(h=platform_length-rail_height+rail_thick, l=rail_width-joiner_width, thick=rail_thick, strut=rail_thick);
|
||||
}
|
||||
|
||||
// Side Walls
|
||||
@@ -27,7 +34,7 @@ module rails_90deg_joint()
|
||||
ya=[rail_height/2],
|
||||
za=[(platform_length-rail_height-joiner_length)/2+rail_height]
|
||||
) {
|
||||
thinning_wall(h=platform_length-joiner_length-rail_height+2*rail_thick, l=rail_height, thick=joiner_width, strut=rail_thick);
|
||||
thinning_wall(h=platform_length-joiner_length-rail_height+2*rail_thick, l=rail_height, thick=joiner_width, strut=rail_thick, bracing=false);
|
||||
}
|
||||
|
||||
// Lower Walls.
|
||||
@@ -35,7 +42,7 @@ module rails_90deg_joint()
|
||||
ya=[(platform_length-rail_height-joiner_length)/2+rail_height],
|
||||
za=[rail_height/2]
|
||||
) {
|
||||
thinning_wall(l=platform_length-joiner_length-rail_height+2*rail_thick, h=rail_height, thick=joiner_width, strut=rail_thick);
|
||||
thinning_wall(l=platform_length-joiner_length-rail_height+2*rail_thick, h=rail_height, thick=joiner_width, strut=rail_thick, bracing=false);
|
||||
}
|
||||
|
||||
// Corner Walls.
|
||||
@@ -43,7 +50,7 @@ module rails_90deg_joint()
|
||||
ya=[rail_height/2],
|
||||
za=[rail_height/2]
|
||||
) {
|
||||
thinning_wall(l=rail_height, h=rail_height, thick=joiner_width, strut=rail_thick);
|
||||
thinning_wall(l=rail_height, h=rail_height, thick=joiner_width, strut=rail_thick, bracing=false);
|
||||
}
|
||||
|
||||
// Rail tops.
|
||||
@@ -95,12 +102,48 @@ module rails_90deg_joint()
|
||||
}
|
||||
}
|
||||
|
||||
// Motor clip mounts.
|
||||
translate([0, rail_height+roller_thick/2-1, 0]) {
|
||||
zrot_copies([90, 270]) {
|
||||
translate([(43+joiner_width+10)/2, 0, 30]) {
|
||||
xrot(90) {
|
||||
joiner(h=rail_height, w=joiner_width, l=30, a=joiner_angle);
|
||||
translate([0, -30+rail_thick/2, 0])
|
||||
cube(size=[joiner_width, rail_thick, rail_width-joiner_width], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Side mount slots.
|
||||
translate([0, platform_width/3, 0]) {
|
||||
grid_of(ya=[-platform_width/3/2, platform_width/3/2]) {
|
||||
zrot_copies([0,180]) {
|
||||
translate([rail_width/2-2.5, 0, 0]) {
|
||||
zrot(-90) lock_slot(h=25, wall=3);
|
||||
translate([rail_width/2-joiner_width/2, 0, 0]) {
|
||||
zrot(-90) lock_slot(h=25, wall=3, backing=joiner_width/2-2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Y-axis endstop switch mount
|
||||
translate([-(rail_width-4)/2, endstop_delta/2+base_height-0.05, endstop_delta/2+base_height-0.05]) {
|
||||
difference() {
|
||||
cube(size=[4, endstop_delta+0.05, endstop_delta+0.05], center=true);
|
||||
translate([0, endstop_delta/2, endstop_delta/2]) xrot(45)
|
||||
cube(size=15, center=true);
|
||||
translate([0, endstop_delta/2-5, -endstop_delta/2+15]) {
|
||||
grid_of(za=[-5, 5]) {
|
||||
yrot(90) {
|
||||
cylinder(h=10, r=2.5/2, center=true, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
translate([0, -(endstop_delta/2-15), (endstop_delta/2-5)]) {
|
||||
grid_of(ya=[-5, 5]) {
|
||||
yrot(90) {
|
||||
cylinder(h=10, r=2.5/2, center=true, $fn=12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -108,7 +151,7 @@ module rails_90deg_joint()
|
||||
}
|
||||
}
|
||||
}
|
||||
//!rails_90deg_joint();
|
||||
rails_90deg_joint();
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ module rails_end()
|
||||
|
||||
// Back.
|
||||
translate([0, -joiner_length-rail_thick/2+0.05, base_height/2]) zrot(90)
|
||||
thinning_wall(h=base_height, l=rail_width, thick=rail_thick, strut=5);
|
||||
thinning_wall(h=base_height, l=rail_width, thick=rail_thick, strut=joiner_width);
|
||||
}
|
||||
|
||||
// Clear space out near front clips.
|
||||
|
||||
1
wiki
Submodule
1
wiki
Submodule
Submodule wiki added at e40c00754d
Reference in New Issue
Block a user