summaryrefslogtreecommitdiff
path: root/experimental/vik's kiwi mendel/mendel_extruder.scad
blob: d385c462531b31d699d20dc4d1369fef3adeaaa8 (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
100
101
// Parametric Mendel Extruder in SCAD by Vik, based on SCAD conversion by rbisping
// vik@diamondage.co.nz, 2010-01-02
// Pinch bearing & filament size is parametric. Also added pointy tops to horizontal holes.
// 2010-04-05
// Now using mendel_misc.inc, moved anchor holes to fit carriage better,
// made extruder body thicker and added a space for one mounting screw
// washer to go in.

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

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.6*filament_rad,0,0]) rotate ([0,0,45])
			cube([filament_rad+filament_oversize,filament_rad+filament_oversize,100],center=true);
	}
}

module pinchwheel()
{
translate([-40,10,0])rotate(90,[1,0,0])
{
difference()
	{
	union()
		{
		// Main block of the thing.
       		translate([29,extruder_thick/2,22])cube([61,extruder_thick,extruder_height], center = true);
		// Side piece for motor anti-slippage screw.
		translate ([52,0,(extruder_height-15)/2-8]) cube([12,extruder_clamp_thick,25]);
		// PTFE holder (for woodscrews instead of epoxy)
		translate([filament_x_offset,extruder_thick/2,0])cube([22,extruder_thick,20], center = true);
		}
	union()
		{
		// Shoulders.
		translate([58.5,extruder_thick/2,40])cube([17,extruder_thick*2.1,21],center=true);
		translate([ 3.75 ,extruder_thick/2, 40])cube([11.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);
		// Slots for NEMA 17 M3 mounting screws
		translate([14.374,extruder_thick,5.5]) m3_slot(extruder_thick*2.1);
		translate([45.374,extruder_thick,5.5]) m3_slot(extruder_thick*2.1);
		translate([14.374,extruder_thick,36.5]) m3_slot(extruder_thick*2.1);
		translate([45.374,extruder_thick,36.5]) m3_slot(extruder_thick*2.1);

		translate([30.5,9,21])rotate(90,[1,0,0])cylinder(24,6,6,center=true);
		translate([30.492,17.756,20.988])cube([27.975,7.486,23.035],center=true);

		// Cutout for bearing
		translate([29-bearing_clearance_rad-filament_rad,extruder_thick-3,21]) {
			// Circular recess for bearing
			rotate(90,[1,0,0])
				cylinder(21.63,bearing_clearance_rad,bearing_clearance_rad,center=true);
			// Bolt hole for bearing (bit of slack)
			rotate(90,[1,0,0]) cylinder(80,m4_clearance_rad_v+0.2,m4_clearance_rad_v+0.2,center=true);
			// Slants tangental to bearing edge.
			rotate(10,[0,1,0]) translate([0,-21.63/2,0])
				cube([13.258,21.63,bearing_clearance_rad],center=false);
			rotate(-10,[0,1,0]) translate([0,-21.63/2,-bearing_clearance_rad])
				cube([13.258,21.63,bearing_clearance_rad],center=false);
		}

		//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.5,center=true);
		}

		// Horizontal M4 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);
		// Hex cavity for sideways compression screw.
		translate([55,extruder_clamp_thick-6,extruder_height/2]) rotate([90,0,180]) rotate([0,-90,0])  m4_hole_horiz_with_hex(20);
		// Brace for compression screw block (we *want* washers on it)
		translate([58,extruder_clamp_thick,extruder_height/2-6]) rotate ([90,0,0]) m4_hole_vert(extruder_thick*4);
		// 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);
		}
	}
}
}

// Put it in X+ve, Y+ve
translate ([40,45,0]) pinchwheel();