Files
snappy-reprap/vitamins.scad
2015-10-10 01:03:01 -07:00

182 lines
4.4 KiB
OpenSCAD

include <config.scad>
include <GDMUtils.scad>
$fa = 2;
$fs = 2;
module arrow(size=10, headpart=0.4) {
color("orange")
yrot(90) {
down(size/2)
union() {
up(size*headpart/2) cylinder(d1=0, d2=size/2, h=size*headpart, center=true, $fn=18);
up(size/2+size*headpart/2) cylinder(d=size/6, h=size*(1-headpart), center=true, $fn=18);
}
}
}
//!arrow(size=200);
module jhead_hotend()
{
jhead_length = 40; // mm
jhead_block_size = [18.7, 16, 9.6];
jhead_block_off = 7; //mm
block_h = jhead_block_size[2];
down(jhead_length/2-jhead_groove_thick-jhead_shelf_thick) {
color([0.3, 0.3, 0.3])
difference() {
cylinder(h=jhead_length, d=jhead_barrel_diam-0.05, center=true);
cylinder(h=jhead_length+1, d=2, center=true, $fn=12);
up(4*4/2-jhead_length/2+0.5*25.4) {
zring(n=4, r=jhead_barrel_diam/2-0.05) {
zspread(4, n=4) {
yspread(6) {
yrot(90) cylinder(h=4*2, d=3, center=true, $fn=12);
}
cube([4*2, 6, 3], center=true);
}
}
}
up(jhead_length/2-jhead_shelf_thick-jhead_groove_thick/2) {
difference() {
cylinder(h=jhead_groove_thick, d=jhead_barrel_diam+1, center=true);
cylinder(h=jhead_groove_thick+1, d=jhead_groove_diam, center=true);
}
}
}
color("silver")
down((jhead_length+block_h)/2) {
difference() {
left(jhead_block_off/2) {
cube(jhead_block_size, center=true);
}
left(jhead_block_off) {
xrot(90) cylinder(h=100, d=6, center=true);
}
cylinder(h=100, d=2, center=true, $fn=12);
}
difference() {
down((block_h+3)/2) {
cylinder(h=3, r=4, center=true);
down((3+1.2)/2) {
cylinder(h=1.2, r1=1, r2=4, center=true);
}
}
cylinder(h=50, d=0.4, center=true, $fn=8);
}
}
}
color("silver")
up(jhead_groove_thick+jhead_shelf_thick) {
difference() {
cylinder(h=jhead_cap_height, d=jhead_cap_diam, $fn=6);
down(0.5) cylinder(h=jhead_cap_height+1, d=2, $fn=12);
}
}
}
//!jhead_hotend();
module extruder_drive_gear()
{
color("silver") {
difference() {
cylinder(h=12, d=extruder_drive_diam);
up(12-3.5) {
torus(ir=extruder_drive_diam/2-1, or=extruder_drive_diam/2+4, $fn=24);
}
down(1) cylinder(h=15, d=motor_shaft_size, $fn=12);
up(3.5) yrot(90) cylinder(h=extruder_drive_diam/2+1, d=3, $fn=12);
}
}
}
//!extruder_drive_gear();
module cooling_fan()
{
up(extruder_fan_thick/2)
color([0.4, 0.4, 0.4]) {
difference() {
chamfcube(size=[extruder_fan_size, extruder_fan_size, extruder_fan_thick], chamfer=3, chamfaxes=[0,0,1], center=true);
cylinder(h=extruder_fan_thick+1, d=extruder_fan_size-2, center=true);
xspread(extruder_fan_size-3-3) {
yspread(extruder_fan_size-3-3) {
cylinder(h=extruder_fan_thick+1, d=3, center=true, $fn=12);
}
}
}
up((2-0.1)/2) {
linear_extrude(height=extruder_fan_thick-2, twist=30, slices=4, center=true, convexity=10) {
circle(r=extruder_fan_size/4, center=true);
zring(r=(extruder_fan_size-3)/4, n=8) {
square([(extruder_fan_size-3)/2, 1], center=true);
}
}
}
cylinder(h=extruder_fan_thick, d=extruder_fan_size/2-3, center=true);
down(extruder_fan_thick/2-1/2) {
cube([extruder_fan_size, 3, 1], center=true);
cube([3, extruder_fan_size, 1], center=true);
}
}
}
//!cooling_fan();
module microswitch()
{
color([0.3, 0.3, 0.3]) {
difference() {
cube([endstop_thick, endstop_length, endstop_depth], center=true);
xrot(-5) {
up(endstop_depth) {
cube([endstop_thick+1, endstop_length, endstop_depth], center=true);
}
}
down(endstop_hole_inset/2-endstop_click_voff/2) {
yspread(endstop_hole_spacing) {
yrot(90) cylinder(h=endstop_thick+1, d=endstop_screw_size, center=true, $fn=12);
}
}
}
}
up(endstop_depth/2) {
color([0.3, 0.3, 0.3]) {
yrot(90) cylinder(h=endstop_thick*0.75, d=1, center=true, $fn=12);
}
color("silver") {
fwd(endstop_length*0.9/2) xrot(5) back(endstop_length*0.9/2) {
cube([endstop_thick, endstop_length*0.9, 0.1], center=true);
back(endstop_length*0.9/2+1) {
top_half() {
yrot(90) {
difference() {
cylinder(h=endstop_thick, r=1, center=true, $fn=12);
cylinder(h=endstop_thick+1, r=0.8, center=true, $fn=12);
}
}
}
}
}
grid_of(ya=[-endstop_length/2+2, -endstop_length/8, endstop_length/2-2]) {
down(endstop_depth+5/2) {
cube([endstop_thick*0.5, 0.2, 5], center=true);
}
}
}
}
}
//!microswitch();
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap