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
|
// Parametric Frame Vertex by Tonokip
// 2009.02.08
// Vertex Body derived from: frame-vertex_6off.aoi::body - edges
// http://reprap.svn.sourceforge.net/viewvc/reprap/trunk/mendel/mechanics/solid-models/cartesian-robot-m4/printed-parts/
// Fixed body geometry flaw per http://dev.forums.reprap.org/read.php?1,30132,30398
// License GNU GPL v2 or newer.
M3=4.3;
M8=9.6;
vertex_height=20;
with_foot=1; // Comment out for no foot.
FN=80;
translate ([0,0,vertex_height/2])difference()
{
union () {
dxf_linear_extrude(file = "frame-vertex.dxf",height=vertex_height,center=true);
//import_stl("vertex-body-fixed.stl");
if (with_foot==1) {
translate([40,-15,0]) vertex_foot();
}
}
translate([11.013,59.912]) zhole(M8);
translate([35.013,39.999,0]) zhole(M8);
translate([40.274,9.249,0]) zhole(M8);
translate([40.217,30.992]) zhole(M3);
translate([29.829,48.986]) zhole(M3);
translate([0,21,0])
xteardrop(M8,200);
translate([13.687,41.010,0]) rotate(a=60,v=[0,0,1])
xteardrop(M8,200);
}
module zhole(diameter) cylinder(h=100,r=(diameter/2),center=true,$fn=FN);
module xteardrop(diameter,length) rotate(a=-90,v=[0,1,0]) rotate(a=-90,v=[0,0,1]) zteardrop(diameter,length);
module yteardrop(diameter,length) rotate(a=90,v=[1,0,0]) zteardrop(diameter,length);
module zteardrop(diameter,height)
{
rotate(a=45, v=[0,0,1]) union()
{
translate([0,0,-height/2]) cube(size=[diameter/2,diameter/2,height],center=false);
cylinder(r=diameter/2, h = height,center=true,$fn=FN);
}
}
module vertex_foot() {
difference () {
union () {
cube([18,4,vertex_height],center=true);
translate ([-5,8,0]) cube([5,18,vertex_height],center=true);
translate ([5,9,0]) cube([5,18,vertex_height],center=true);
}
translate ([0,8,0]) xteardrop(7,200);
}
}
|