Added Wiki submodule. Parts tweaks.

This commit is contained in:
Revar Desmera
2014-08-29 19:03:22 -07:00
parent 86f94ed2b8
commit 0f5cd56ce8
10 changed files with 177 additions and 24 deletions

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "wiki"]
path = wiki
url = https://github.com/revarbat/snappy-reprap.wiki.git

View File

@@ -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);

View File

@@ -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.
![Snappy Full Rendering](https://github.com/revarbat/snappy-reprap/wiki/snappy_small.png)
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
View File

@@ -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.

View File

@@ -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;

View File

@@ -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);

View File

@@ -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();

View File

@@ -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

Submodule wiki added at e40c00754d

View File