summaryrefslogtreecommitdiff
path: root/experimental/vik's kiwi mendel/mendel_dc_extruder.scad
blob: 4aa202731af073a1cc8c935adc32debf37fc75c3 (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
// Parametric Mendel DC Motor Extruder in SCAD by Vik,
// vik@diamondage.co.nz, 2010-04-19

<mendel_misc.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_clamp_thick=30;
filament_x_offset=26.497;
dc_motor_rad=11.6;
pinchwheel_rad=3.5;
extruder_axle_line=extruder_height*0.45;
extruder_width=62;

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

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);
			// Motor holder
			translate ([filament_x_offset-1,extruder_thick+16,extruder_axle_line]) {
				translate ([-dc_motor_rad-3,0,0]) box(12,32,12);
				difference () {
					box(dc_motor_rad*2+8,32,dc_motor_rad*2+7);
					translate ([13,-1,0]) rotate ([0,0,45]) translate ([0,-dc_motor_rad*2,0]) box(dc_motor_rad*3,38,dc_motor_rad*3);
				}
			}
		}
	union()
		{
		// Holes for screwing terminal strip to
		translate([extruder_width/2-2,0,extruder_height-5]) rotate([90,0,0]) {
			translate([-8,0,0]) cylinder(h=30,r=1.7,center=true);
			translate([8,0,0]) cylinder(h=30,r=1.7,center=true);
		}
		// Shoulders.
		translate([58.5,extruder_thick/2,40])cube([17,extruder_thick*2.1,21],center=true);
		translate([ 2.8 ,extruder_thick/2, 40])cube([13.399,extruder_thick*2.1,21],center = true);
		// Cutout for 10mm mounting screw washer
		translate ([4+extruder_mount_hole_spacing,extruder_thick/2,39.5]) cylinder(h=20,r=5,center=true);

		translate ([filament_x_offset,0,extruder_axle_line]) {
			// M8 threaded shaft with bearing on the end - oversize
			translate ([bearing_608_rad_v+filament_rad-1,0,0]) {
				rotate ([90,0,0]) scale(1.22) m8_hole_vert(extruder_thick*2);
				translate ([0,extruder_thick*0.25,0]) rotate ([-90,0,0]) cylinder(h=100,r=bearing_608_rad_v+1);
			}
			// Motor cavity
			translate ([1-filament_rad-pinchwheel_rad,0,0]) {
				##translate([0,extruder_thick*0.72,0]) rotate ([-90,0,0]) cylinder(h=44,r=dc_motor_rad);
				// Oversize hole for gear to enter through
				rotate ([90,0,0]) scale(1.1) m8_hole_vert(extruder_thick*2);
			}
			// Tidy-up of centre
			translate([0,extruder_thick-6,0]) box(9,16,9);
		}

		//Yer filament.
		translate([filament_x_offset,extruder_thick/2,21.635])rotate([0,0,90]) {
			 filament_cavity();
			// Conical hole to make filament feed easier.
			translate ([0,0,-7])
			cylinder(h=6,r1=filament_rad+filament_oversize,r2=(filament_rad+filament_oversize)*1.7,center=true);
		}
		// M4 motor clamp.
		translate([filament_x_offset+9,extruder_thick+22,extruder_axle_line])rotate([0,0,90])
			m4_hole_horiz(extruder_height*1.1);

		// M4 mounting holes
		translate([4,extruder_thick/2,22.0])rotate([0,0,90]) m4_hole_horiz(extruder_height*1.1);
		translate([4+extruder_mount_hole_spacing,extruder_thick/2.09,22])rotate([0,0,90])
			m4_hole_horiz(extruder_height*1.1);
		// Split PTFE holder
		translate([filament_x_offset,extruder_thick/2,-2.5]) rotate ([90,0,0]) rotate([90,0,0])cylinder(h=20,r=ptfe_rad,center=true);
		translate([filament_x_offset ,extruder_thick/2, -2.5])cube([3.4,20.889,18],center = true);
		// 3mm holes for woodscrews
		translate([filament_x_offset-6.5,extruder_thick/2,-1.4]) rotate ([90,0,0]) cylinder(h=extruder_thick*2,r=2.5,center=true);
		translate([filament_x_offset+6.5,extruder_thick/2,-1.4]) rotate ([90,0,0]) cylinder(h=extruder_thick*2,r=2.5,center=true);
		}
	}
}

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