-
Notifications
You must be signed in to change notification settings - Fork 0
/
UP-grade.scad
94 lines (81 loc) · 2.92 KB
/
UP-grade.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
// UP-grade is a customisable roll holder for the UP mini 3D printer
// so this small printer can carry big filament rolls
// https://www.up3d.com/?r=mini
// Written for OpenScad by Bruno Herfst 2016
// http://www.openscad.org
// NOTE: If I added a 0 to a variable it is it doesn't show in the custumizer
// Roll Spec
rollWidth = 70;
// Holder spec
holderDepth = 10;
holderLever = 0;
bevelWidth = 5;
lipTickness = 3;
holderDiameter = 30;
backWallThickness = 5+0;
frontWallThickness = 3+0;
// Printer Spec
pHoleWidth = 22+0; // 24 Actual
pHoleHeiht = 10+0; // 12 Actual
pWall = 2 +0; // 1 Actual
// Short cuts
hDepth = holderDepth/2;
rWidth = rollWidth + bevelWidth;
// Material Saver
ms_Height = ((holderDiameter+holderDepth)/100)*25;
ms_Offset = ((holderDiameter+holderDepth)/100)*25;
// Backwall
bwWidth = holderDiameter + holderDepth;
bwHeight = holderDiameter + (holderDepth*2) + holderLever;
$fn = 100;
module prism(l, w, h){
polyhedron(
points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
);
}
difference() {
// Create holder
union() {
// Create lip
translate([-(pHoleWidth/2),-(pWall+lipTickness),0]) {
cube([pHoleWidth,lipTickness,pHoleHeiht]);
translate([0,0,pHoleHeiht-lipTickness]) {
cube([pHoleWidth,lipTickness+pWall,lipTickness]);
}
}
// Create backWall
translate([-bwWidth/2,0,-(bwHeight-pHoleHeiht)+hDepth]){
cube([bwWidth,backWallThickness,bwHeight]);
}
// Bevel
translate([0,backWallThickness+(bevelWidth/2),pHoleHeiht-hDepth-(holderDiameter/2)]){
rotate([-90,0,0])
cylinder( bevelWidth, d1=holderDiameter+holderDepth, d2=holderDiameter, center=true);
}
// Create holder
translate([0,rWidth/2+backWallThickness,pHoleHeiht-hDepth-(holderDiameter/2)]){
rotate([90,0,0])
cylinder( rWidth, d=holderDiameter, center=true);
}
// Create holder finish
// Bevel
translate([0,rWidth+backWallThickness-(bevelWidth/2),pHoleHeiht-hDepth-(holderDiameter/2)]){
rotate([90,0,0])
cylinder( bevelWidth, d1=holderDiameter+holderDepth, d2=holderDiameter, center=true);
}
translate([0,rWidth+backWallThickness+frontWallThickness-(frontWallThickness/2),pHoleHeiht-hDepth-(holderDiameter/2)]){
rotate([90,0,0])
cylinder( frontWallThickness, d=holderDiameter+holderDepth, center=true);
}
}
// Create material saver
union() {
translate([-bwWidth/2,backWallThickness,pHoleHeiht-hDepth-holderDiameter+ms_Offset]){
prism(bwWidth, rWidth+frontWallThickness+3, ms_Height);
}
translate([-bwWidth/2,backWallThickness,pHoleHeiht-hDepth-holderDiameter-bwHeight+ms_Offset]){
cube([bwWidth, rWidth+frontWallThickness+3, bwHeight]);
}
}
}