-
Notifications
You must be signed in to change notification settings - Fork 0
/
grbl_mill_assemble.scad
119 lines (99 loc) · 4.88 KB
/
grbl_mill_assemble.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
118
119
/**
* junand 08.02.2015
* last update: 27.12.2015
*
* Nachbau der MicroMill-Teile
* rebuild of the micromill parts
*
* assemble
*
*/
module assemble_all ( dist = assemble_dist, with_profile = true ) {
//translate ( [0, -50, -profile_k30_base_size/2] )
rotate ( [90, 0, 0] ) assemble_xy ( dist, with_profile );
//translate ( [0, 120, 50] ) rotate ( [0, 0, 180] )
translate ( [0, -110, profile_k30_base_size/2 + dist] ) rotate ( [0, 0, 180] ) assemble_z ( dist, with_profile, 1.0*z_side_slide_dim [y], 2.0*z_side_slide_dim [y] );
}
module assemble_z ( dist = assemble_dist, with_profile = true, z_movable_profile_length = z_side_slide_dim [y], z_fix_profile_length = z_side_slide_dim [y] ) {
// movable profile with spindle clamp
translate ( [0, -z_side_slide_notch_x_pos [1] - kinetik_k30_notch_width/2, z_fix_profile_length - z_movable_profile_length] ) {
if ( with_profile ) {
color ( "silver" ) kinetik_profile_k30 ( z_profile_count, z_movable_profile_length );
}
color ( "yellow" ) translate ( [0, 0, z_movable_profile_length + nema17_plate_dim [z] + dist] ) rotate ( [0, 180, 0] ) z_motor_end ();
color ( "yellow" ) translate ( [0, -profile_k30_base_size/2 -assemble_dist, 0] ) {
spindle_clamp ( 1 );
spindle_clamp ( 2 );
}
}
// fix profile
translate ( [0, -z_side_slide_notch_x_pos [0] - kinetik_k30_notch_width/2, 0] ) {
if ( with_profile ) {
color ( "silver" ) kinetik_profile_k30 ( z_profile_count, z_fix_profile_length );
}
color ( "yellow" ) translate ( [0, 0, z_fix_profile_length + dist] ) z_end ();
color ( "black" ) translate ( [0, -profile_k30_base_size/2, z_fix_profile_length - z_movable_profile_length -20] ) z_nut ();
}
// side slides
color ( "yellow" )
for ( i = [-1, +1] ) {
translate ( [i*(z_profile_count*profile_k30_base_size/2 + z_side_slide_dim [z]/2 + dist), 0, z_side_slide_dim [y]/2 + z_fix_profile_length - z_movable_profile_length] )
rotate ( [i*90, 0, -90] )
z_side_slide ();
}
// z axes
if ( assemble_show_axes ) {
color ( "red" )
translate ( [0, -3, -25] )
rotate ( [0, 0, 0] )
cylinder ( d = 8, h = len_axes );
}
}
module assemble_y ( dist = assemble_dist, with_profile = true, y_profile_length = y_slide_length ) {
// y slider
union () {
color ( "green" ) y_end_support ();
translate ( [0, 0, part_height + dist] ) {
if ( with_profile ) {
color ( "silver" ) translate ( 2*fudge_dim ) kinetik_profile_k30 ( y_profile_count, y_profile_length +4*fudge );
}
color ( "orange" ) rotate ( [0, 0, 90] ) y_slide ();
translate ( [0, 0, y_profile_length + dist + part_height] ) {
color ( "green" ) rotate ( [0, 180, 0] ) y_motor_end_support ();
}
}
}
}
module assemble_x ( dist = assemble_dist, with_profile = true, x_profile_length = x_slide_length ) {
// x slider
union () {
color ( "green" ) rotate ( [180, 180, 0] ) x_end ();
translate ( [0, 0, part_height + dist] ) {
color ( "silver" )
if ( with_profile ) {
for ( d = [-1, +1] ) {
translate ( [d*(x_profile_count-1)/2*profile_k30_base_size, 0, -2*fudge] ) kinetik_profile_k30 ( 1, x_profile_length +4*fudge );
}
if ( with_t_plate ) {
for ( i = [1 : t_plate_profile_count] ) {
translate ( [(0.5 + t_plate_profile_count/2 - i) * profile_k20_end_dim [x], -(nema17_base_size + profile_k20_end_dim[y])/2], 0 ) rotate ( [0, 0, 180] ) kinetik_profile_k20 ( 1, x_profile_length +4*fudge );
}
}
}
color ( "orange" ) rotate ( [0, 0, 90] ) x_slide ();
translate ( [0, 0, x_profile_length + dist] ) {
color ( "green" ) translate ( [0, 0, part_height] ) rotate ( [180, 0, 0] ) x_motor_end ();
translate ( [0, 0, part_height + dist] ) {
color ( "orange" ) x_motor_end_extension ();
}
}
}
}
}
module assemble_xy ( dist = assemble_dist, with_profile = true, x_profile_length = 1.5*x_slide_length, y_profile_length = 2.0*y_slide_length ) {
x_slide_move_x = part_height + dist + x_slide_length/2;
x_slide_move_y = profile_k30_base_size + slide_inner_width_extra + 2*slide_board_depth + dist;
y_slide_move = part_height + dist + y_slide_length/2;
translate ( [x_slide_move_x, x_slide_move_y, 0] ) rotate ( [0, 90, 180] ) assemble_x ( dist, with_profile, x_profile_length );
translate ( [0, 0, -y_slide_move] ) assemble_y ( dist, with_profile, y_profile_length );
}