-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcamera_pivot.scad
More file actions
112 lines (90 loc) · 2.2 KB
/
camera_pivot.scad
File metadata and controls
112 lines (90 loc) · 2.2 KB
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
include<threads.scad>;
use<knurledFinishLib_v2.scad>;
use<fan_corner_mount.scad>;
zero=0.001;
top_h=zero;
top=15.5;
base=25;
bolt=12;
pitch=2.5;
pivot=25;
bolt_shoulder=bolt+pitch;
bolt_head=bolt_shoulder+3;
base_h=1;
pivot_h=pivot/2+base_h;
pad=0.1;
padd=pad*2;
knob=bolt_head+4;
knob_h=knob/2;
tooth=5;
bolt_shoulder_gap=0.3;
bolt_gap=1;
stopper=20-1;
stopper_pitch=2.5;
stopper_h=10;
//RENDER stl
module base() {
difference() {
union() {
hull() {
translate([0,0,pivot_h])
sphere(d=base);
cylinder(d=base,h=zero);
}
translate([tooth/2+pad,0,pivot_h])
rotate([0,90])
cylinder(d=bolt_head,h=pivot/2-tooth/2-pad);
}
bolt(bolt_shoulder_gap);
translate([-tooth/2,-pivot/2-base/2,pivot_h-pivot/2])
cube([tooth,base+pivot,pivot+pad]);
}
translate([0,0,-stopper_h])
metric_thread(stopper,stopper_pitch,stopper_h);
}
module top_platform() {
translate([0,0,pivot_h+pivot/2])
cylinder(d=top,h=top_h);
}
//RENDER stl
module top() {
difference() {
intersection() {
hull() {
translate([0,0,pivot_h])
sphere(d=pivot);
top_platform();
}
translate([-tooth/2,-pivot/2-top/2,pivot_h-pivot/2-pad])
cube([tooth,pivot+top,pivot+pad*2]);
}
translate([0,0,pivot_h])
rotate([0,90])
cylinder(d=bolt_shoulder+bolt_shoulder_gap*2,h=tooth+pad*2,center=true);
}
top_platform();
translate([0,0,pivot_h+pivot/2+top_h])
fan_mount();
}
threaded=(pivot-tooth)/2+1;
$fn=50;
//RENDER stl
module bolt(extra=0) {
translate([-pivot/2,0,pivot_h])
rotate([0,90]) {
if(extra){
translate([0,0,-extra])
metric_thread(bolt,pitch,threaded+extra,internal=true);
} else {
metric_thread(bolt-bolt_gap,pitch,threaded);
}
translate([0,0,threaded])
cylinder(d=bolt_shoulder+extra,h=pivot-threaded+extra);
if(!extra)
translate([0,0,pivot])
knurl(k_cyl_hg=knob_h,k_cyl_od=knob);
}
}
bolt();
color("lime") top();
color("cyan") base();