-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsmallhead.scad
117 lines (107 loc) · 3.7 KB
/
smallhead.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
include <constants.scad>
use <scaddy/nema.scad>
translate([0,60,0])rotate(90)union(){
//spine
translate([-22.5,0,70])difference(){
translate([0,0,10])cube([5,30,120],center=true);
hull(){
translate([0,0,-45])rotate([90,0,90])cylinder(d=3.5,h=6,center=true);
translate([0,0,20])rotate([90,0,90])cylinder(d=3.5,h=5,center=true);
}
translate([0,-10,35])rotate([90,0,90])cylinder(d=3.5,h=6,center=true);
}
//motor holder
translate([0,0,62.5])linear_extrude(5)difference(){
translate([-10,0])square([20,30],center=true);
circle(d=23);
translate([0,0])square([30,10],center=true);
for(th=[0:90:359])rotate(th)translate([23/2,23/2])circle(d=2.5);
}
//camera platform
translate([0,0,35])linear_extrude(5)difference(){
hull()for(x=[-20:35:15])for(y=[-12.5:25:12.5])
translate([x-2.5,y])circle(d=5);
for(x=[-12:24:12])
translate([x,x])circle(d=2.5);
for(y=[-3:6:3])translate([-5,8+y])circle(d=2.5);
}
//bearing holder
translate([0,0,130])difference(){
union(){
translate([0,0,5])cylinder(d=35,h=10,center=true);
translate([-15,0,5])cube([10,20,10],center=true);
}
translate([0,0,2])cylinder(d=26,h=8+ep);
for(th=[0:120:360])rotate([90,0,90+th])translate([0,7.5,10])cylinder(d=4,h=10);
}
}
//motor
%translate([0,60,68])rotate([0,180,0])nema_11(51);
//rotating section:
translate([0,60,40])rotate(0+90){
difference(){
union(){
translate([26,0,55])cube([5,15,115],center=true);
translate([10,0,16.5])cube([35,15,8],center=true);
translate([10,0,110])cube([35,15,5],center=true);
translate([0,0,95])cylinder(d=7.95,h=14.5);
translate([12,-6,16.5])cylinder(d=7.5,h=8,center=true);
translate([36,-17,64])cube([15,2,10],center=true);
translate([26,-12.75,64])cube([5,10.5,10],center=true);
}
for(y=[-3.5:7:3.5])for(z=[0:48:48])translate([26,y,z+2.5])rotate([0,90,0])cylinder(d=3,h=5+epp,center=true);
translate([0,0,16.5])cylinder(d=5.5,h=8+epp,center=true);
translate([12,-6,16.5])cylinder(d=4,h=8+epp,center=true);
translate([0,0,16.5]) rotate([0,-90,0])cylinder(d=4,h=7.5+ep);
translate([28,-16,64])for(y=[-3:6:3])rotate([90,90,0])translate([0,10+y])cylinder(h=5+epp,d=2.5,center=true);
}
translate([53,0,50])difference(){
//Body:
translate([2.5,-2.5,-2.5])cube([35,25,25],center=true);
//Cutouts for slider:
translate([-17.5,-2.5,-2.5])cube([25,25+epp,10],center=true);
translate([-3.5,-2.5,-6])cube([25,25+epp,3],center=true);
//Cutout for guide rods:
for(y=[-5:10:5]){
linear_extrude(30+epp,center=true)hull(){
translate([-13,y])circle(d=3.6);
translate([-18,y])circle(d=3.2);
}
}
//Cutout for lead screw / slider clamp (bottom):
translate([0,0,-11.25])linear_extrude(7.5+epp,center=true)hull(){
translate([6,0])circle(d=3.5);
translate([-8,0])circle(d=4);
translate([-18,0])circle(d=4);
}
//Cutout for lead screw (top):
translate([0,0,8.75])linear_extrude(12.5+epp,center=true)hull(){
translate([-8,0])circle(d=4);
translate([-18,0])circle(d=4);
}
//Vertical screwholes:
for(y=[-6:12:6]){
translate([-1.5,y,5])cylinder(h=20+epp,d=4,center=true);
}
//Needle hole/valve:
translate([65-53,0,5])cylinder(d=11,h=5+ep);
translate([65-53,0])cylinder(d=1.6,h=30+epp,center=true);
}
//Sock:
translate([65,0,10]) difference(){
cylinder(d=5,h=5,center=true);
translate([0,0,1.5])cylinder(d2=2.5,d1=1.35,h=2+epp,center=true);
translate([0,0,1])cylinder(d2=1.35,d1=1.35,h=4.6+epp,center=true);
translate([0,0,0])cylinder(d2=1,d1=1,h=10+epp,center=true);
//translate([0,0,-2.25])cylinder(d2=3,d1=3,h=1+epp,center=true);
}
}
*union(){
translate([0,15,0])difference(){
linear_extrude(10,convexity=2)difference(){
square(15,true);
circle(d=5.5);
}
translate([0,0,5])rotate([90,0,0])cylinder(h=7.5+epp,d=4);
}
}