forked from familab/simple-syringe-pump
-
Notifications
You must be signed in to change notification settings - Fork 0
/
inline_syringe_body.scad
82 lines (69 loc) · 2.24 KB
/
inline_syringe_body.scad
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
include <syringePumpConstants.scad>
wall_thickness = 5;
part_thickness = 8;
frame_width = motor_width + (wall_thickness + 1)*2;
bolt = 4;
height= threadedAxisHeight;
module fake_extrusion(){
translate([wall_thickness+1,-50,-(extrusionThickness/2 +wall_thickness)]) //voodoo
{
rotate([0,0,90]){
cube([100,extrusionThickness,extrusionThickness]);
}
}
translate([wall_thickness+nemaWidth+extrusionThickness+1,-55,-(extrusionThickness/2 +wall_thickness)])
{
rotate([0,0,90]){
cube([100,extrusionThickness,extrusionThickness]);
}
}
}
rotate([90,0,0]){
translate([0,0,wall_thickness]){
barrel_mount();
}
}
module barrel_mount()
{
//center the whole thing in X
translate([-frame_width/2, 0, 0])
{
difference()
{
//positive
union()
{
translate([0,0,-(frame_width+10)/2]){
cube([frame_width, part_thickness, frame_width]);
translate([-12,0,10]){
cube([frame_width+24, part_thickness, frame_width/2]);
}
}
}
//negative
fake_extrusion();
rotate([90, 0, 0])
// todo remove that rotation
{
translate([frame_width/2+0.5, height - 5, -wall_thickness])
{
translate([0, 0, -10]) //wtf? double voodoo
cylinder(r=barrelDiameter/2, h=4*wall_thickness+1);
}
translate([(barrelDiameter/2)-0.6,-5,-10]){
cube([barrelDiameter,barrelDiameter,barrelDiameter]);
}
translate([-frame_width, -wall_thickness, -part_thickness/2]){
rotate([0,90,0]){
#cylinder(r=screwRadius,h=frame_width);
}
}
translate([frame_width, -wall_thickness, -part_thickness/2]){
rotate([0,90,0]){
#cylinder(r=screwRadius,h=frame_width);
}
}
}
}
}
}