summaryrefslogtreecommitdiff
path: root/v1.0/dc-extruder.scad
blob: 67ff727ea7118d2712eb260d44666cd60d4b2225 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// Parametric Mendel DC Motor Extruder Mk2 in SCAD by Vik,
// vik@diamondage.co.nz, 2010-05-21

<mendel.conf>
<mendel.inc>

bearing_clearance_rad=8;
filament_rad=1.6;		// Includes some clearance.
ptfe_rad=9.2;			// 18mm dia PTFE spacer (9.2). May well be 16mm rad for you (8.2)
extruder_thick=31;
filament_x_offset=26.497;
filament_inset=10;
extruder_axle_line=extruder_height*0.45;
extruder_width=62;
gear_separation=38;
pinch_axle_height=18;

filament_oversize=0.5;	// If your extruder is perfect this can be zero :)
module filament_cavity() {
	union () {
		cylinder(100,filament_rad+filament_oversize,filament_rad+filament_oversize,center=true);
		translate ([0.7*filament_rad,0,0]) rotate ([0,0,45]) {
			cube([filament_rad+filament_oversize,filament_rad+filament_oversize,100],center=true);
		}
	}
}

motor_bracket_len=42;
motor_bracket_wid=17;
motor_bracket_height=43;

module extruder_dc_body() {
	difference () {
		union () {
			// Main block of the thing.
	       		translate([extruder_width/2-2,extruder_thick/2,22])cube([extruder_width,extruder_thick,extruder_height], center = true);
			// PTFE holder (for woodscrews instead of epoxy)
			translate([filament_x_offset,extruder_thick/2,0])cube([22,extruder_thick,20], center = true);
			// Chunk out the back to bolt the motor to
			translate([motor_bracket_wid/2+18,extruder_thick+motor_bracket_len/2,motor_bracket_height/2+7])
				difference () {
					box(motor_bracket_wid,motor_bracket_len,motor_bracket_height-12);
					translate([0,0,-motor_bracket_height/2]) rotate ([20,0,0]) box(motor_bracket_wid+1,motor_bracket_len*2,motor_bracket_height-12);
				}
		}
	union()
		{
		// Shoulders.
		translate([53,extruder_thick,40])cube([17,extruder_thick*2.1,21],center=true);
		translate([2.8,35,40])cube([13.399,80,21],center = true);
		//Yer filament.
		translate([filament_x_offset,filament_inset,21.635])rotate([0,0,90]) {
			 filament_cavity();
			cylinder(h=6,r1=filament_rad+filament_oversize,r2=(filament_rad+filament_oversize)*1.7,center=true);
		}
		// Nice & roomy place for the axle covered in nuts to go
		translate ([filament_x_offset,filament_inset+2*filament_rad,pinch_axle_height]) {
			rotate ([90,0,90]) {
				scale(1.8) m8_hole_horiz(60);
				translate([-bearing_608_rad_h,0,0]) cube([bearing_608_rad_h*2,bearing_608_rad_h*2,bearing_608_len*3],center=true);
				translate([0,0,bearing_608_len]) hole_horiz(rad=bearing_608_rad_h,l=bearing_608_len+0.6);
				translate([0,0,-bearing_608_len]) hole_horiz(rad=bearing_608_rad_h,l=bearing_608_len+0.6);
			}
			// Slot to drop axle in through.
			translate([0,-10,0]) box(extruder_width+10,18,14);
			
		}
		// M4 mounting holes
		translate([4,extruder_thick-5,22.0])rotate([0,0,90]) m4_hole_horiz(extruder_height*1.1);
		translate([4+extruder_mount_hole_spacing,extruder_thick-5.09,22])rotate([0,0,90])
			m4_hole_horiz(extruder_height*1.1);
		// PTFE holder
		translate([filament_x_offset,filament_inset,0]) rotate ([90,0,0]) rotate([90,90,0]) hole_horiz(ptfe_rad,23);
		// 3mm holes for woodscrews
		#translate([filament_x_offset-6.5,extruder_thick/2,-2.8]) rotate ([90,0,0]) cylinder(h=extruder_thick*2,r=2.5,center=true);
		#translate([filament_x_offset+6.5,extruder_thick/2,-2.8]) rotate ([90,0,0]) cylinder(h=extruder_thick*2,r=2.5,center=true);


		// Slot for motor screws
		translate([extruder_width/2,filament_inset+gear_separation+4,pinch_axle_height+21])
			box(extruder_width,28,m3_clearance_rad*2);
		}
		// Idler retaining holes
		translate([filament_x_offset,filament_inset+extruder_thick-15,pinch_axle_height]) {
			// Optional hole for nut access
			//translate ([0,8,ei_trans_spacing/2]) rotate ([90,0,90]) hole_horiz(4,300);
			translate ([ei_cis_spacing/2,0,ei_trans_spacing/2]) rotate ([90,30,0]) m4_hole_vert_with_hex(100);
			translate ([-ei_cis_spacing/2,0,ei_trans_spacing/2]) rotate ([90,30,0]) m4_hole_vert_with_hex(100);
			translate ([ei_cis_spacing/2,0,-ei_trans_spacing/2]) rotate ([90,30,0]) m4_hole_vert_with_hex(100);
			translate ([-ei_cis_spacing/2,0,-ei_trans_spacing/2]) rotate ([90,30,0]) m4_hole_vert_with_hex(100);
		}
	}
}

rotate ([90,0,0]) 
	extruder_dc_body();