-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathframe_motor.scad
113 lines (96 loc) · 3.95 KB
/
frame_motor.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
include <configuration.scad>;
use <vertex.scad>;
use <nema17.scad>;
$fn = 280;
fin_w=5;
fin_d=4; // 5x4 for the vertical extrusion fins
fins=1; // Yes use fins
motor_frame_height = 2.5*extrusion;
motor_z_offset = 1.5; // use 1.5 for 40mm height
module frame_motor() {
difference() {
// No idler cones.
vertex(motor_frame_height, idler_offset=0, idler_space=100, fin_w=fin_w, fin_d=fin_d, fins=fins, fn=200);
// KOSSEL logotype.
translate([23, -11, 0]) rotate([90, -90, 30])
scale([0.11, 0.11, 1]) import("logotype.stl");
// Motor cable paths.
for (mirror = [-1, 1]) scale([mirror, 1, 1]) {
translate([-35, 45, 0]) rotate([0, 0, -30])
cube([4, 15, 15], center=true);
translate([-6-3, 0, 0]) cylinder(r=3.5, h=40);
translate([-11, 0, 0]) cube([15, 5.2, 15], center=true);
}
translate([0, motor_offset, motor_z_offset]) {
// Motor shaft/pulley cutout.
rotate([90, 0, 0]) cylinder(r=12, h=20, center=true);
// NEMA 17 stepper motor mounting screws.
for (x = [-1, 1]) for (z = [-1, 1]) {
scale([x, 1, z]) translate([31/2, -5, 31/2]) {
rotate([90, 45, 0]) cylinder(r=1.65, h=20, center=true);
/*{
cube([1.65*2,2,20],center=true);
translate([0,1,0])cylinder(r=1.65, h=20, center=true);
translate([0,-1,0])cylinder(r=1.65, h=20, center=true);
}*/
// Easier ball driver access.
rotate([75, -25, 0]) cylinder(r=3, h=motor_frame_height);
}
}
}
translate([0, motor_offset, motor_z_offset]) rotate([90, 0, 0]) % nema17();
}
}
translate([0, 0, motor_frame_height/2]) frame_motor();
//translate([0, 0, extrusion*2.5/2]) import("../kossel-master/BOM_tight/frame_motor.stl");
//add fins to the sides
//translate([(extrusion+thickness)/2+fin_d,vertex_offset/2,fin_w/2]) rotate([0,0,-30]) cube([1,50,fin_w]);
/*
color("gray")rotate(-30)translate([vertex_x_offset+0.25,vertex_y_offset/2,0])
translate([10,0,10+30])rotate([-90,0,0])
difference(){
import("./assembly/2020_1000mm.stl", convexity=10);
translate([-12,-12,240])cube([24,24,(1000-240)+2]);
}
color("gray")rotate(-30)translate([vertex_x_offset+0.25,vertex_y_offset/2,0])
translate([10,0,10])rotate([-90,0,0])
difference(){
import("./assembly/2020_1000mm.stl", convexity=10);
translate([-12,-12,240])cube([24,24,(1000-240)+2]);
}
color("gray")rotate(30)translate([-vertex_x_offset-0.25,vertex_y_offset/2,0])
translate([-10,0,10+30])rotate([-90,0,0])
difference(){
import("./assembly/2020_1000mm.stl", convexity=10);
translate([-12,-12,240])cube([24,24,(1000-240)+2]);
}
color("gray")rotate(30)translate([-vertex_x_offset-0.25,vertex_y_offset/2,0])
translate([-10,0,10])rotate([-90,0,0])
difference(){
import("./assembly/2020_1000mm.stl", convexity=10);
translate([-12,-12,240])cube([24,24,(1000-240)+2]);
}
*/
/*
%rotate(-30)cube([45,vertex_offset/2,25]);
color("gray")rotate(-30)translate([(extrusion-thickness)/2,vertex_offset/2,0])
difference(){
cube([extrusion,240,extrusion]);
translate([(extrusion-extrusion_channel_w)/2,-1,extrusion-6]) cube([extrusion_channel_w,241,extrusion]);
}
*/
/*color("gray")rotate(-30)translate([(extrusion-thickness)/2,vertex_offset/2,extrusion*1.5])
difference(){
cube([extrusion,240,extrusion]);
translate([(extrusion-extrusion_channel_w)/2,-1,extrusion-6]) cube([extrusion_channel_w,241,extrusion]);
}
color("gray")rotate(30) translate([-extrusion*1.5+thickness/2,vertex_offset/2,0])
translate([0,0,0])
difference(){
cube([extrusion,240,extrusion]);
translate([(extrusion-extrusion_channel_w)/2,-1,extrusion-6]) cube([extrusion_channel_w,241,extrusion]);
}
#translate([sin(30)*(vertex_offset+240),cos(30)*(vertex_offset+240),0])rotate(120)
translate([0, 0, extrusion*2.5/2]) vertex(extrusion*2.5, idler_offset=0, idler_space=10, fin_w=5.5);
//translate([sin(30)*(vertex_offset/2+240),cos(30)*(vertex_offset/2+240),-1])%rotate(-30)cube([45,vertex_offset/2,25]);
*/