-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodel.scad
77 lines (68 loc) · 1.43 KB
/
model.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
$fn = 100;
nothing = 0.025;
module vespa()
{
scale(0.8)
union()
{
translate([1.5, 75, 0])
mirror([0, 1, 0])
import("vespa_repaired.stl", center=true);
// Additional support structure
translate([15, 20, 1.5])
rotate([0, 0, -45])
cube([10, 4, 3], center=true);
}
}
module vespa_bbox()
{
cube([45, 76, 20]);
}
module vespa_half()
{
difference()
{
union()
{
vespa();
// Key-ring
keyring_height = 4;
keyring_radius_outer = 12;
keyring_radius_inner = keyring_radius_outer - 3;
translate([17, 6, 0])
difference()
{
cylinder(
r=keyring_radius_outer,
h=keyring_height/2
);
translate([0, 0, -nothing])
cylinder(
r=keyring_radius_inner,
h=keyring_height/2+2*nothing
);
}
}
mirror([1, 0, 0]) vespa_bbox();
mirror([0, 0, 1]) vespa_bbox();
}
}
module vespa_projection()
{
vespa_half();
mirror([1, 0, 0])
vespa_half();
}
module vespa_assembled()
{
rotate([0, -90, 0])
union()
{
translate([0, 0, -nothing])
vespa_half();
translate([0, 0, nothing])
mirror([0, 0, 1])
vespa_half();
}
}
vespa_half();