more designs
This commit is contained in:
142
cnc_shoe_mount.scad
Normal file
142
cnc_shoe_mount.scad
Normal file
@@ -0,0 +1,142 @@
|
||||
// spindle params
|
||||
inner_dia = 80;
|
||||
dia_offset = 1;
|
||||
|
||||
// threaded insert params
|
||||
insert_height = 7;
|
||||
insert_dia = 5;
|
||||
insert_bottom_dia = 4.2;
|
||||
|
||||
// magnet params
|
||||
magnet_dia = 3;
|
||||
magnet_height = 1;
|
||||
magnet_number = 10;
|
||||
|
||||
// shape params
|
||||
extra_offset = 4;
|
||||
width = magnet_dia+extra_offset;
|
||||
wedge_size = insert_dia + 3;
|
||||
thickness = insert_dia + 3;
|
||||
wedge_width = insert_height;
|
||||
spacing_distance = 5;
|
||||
|
||||
$fn=100;
|
||||
|
||||
module ring(){
|
||||
difference(){
|
||||
linear_extrude(height=thickness, center=false, convexity=10, twist=0) {
|
||||
difference(){
|
||||
union(){
|
||||
radius = (inner_dia+dia_offset)/2+width;
|
||||
circle(r=radius);
|
||||
|
||||
squ_width = wedge_size+width;
|
||||
squ_height = 2*wedge_width + spacing_distance + 1;
|
||||
translate([-wedge_size/2-radius,0,0])
|
||||
square(size=[squ_width, squ_height], center=true);
|
||||
}
|
||||
|
||||
union(){
|
||||
radius = (inner_dia+dia_offset)/2;
|
||||
circle(r=radius);
|
||||
|
||||
squ_width = wedge_size+width+20;
|
||||
squ_height = spacing_distance + 1;
|
||||
translate([-wedge_size/2-radius,0,0])
|
||||
square(size=[squ_width, squ_height], center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(i = [0:magnet_number]){
|
||||
rotate([0,0,i*36])
|
||||
translate([0, (inner_dia+dia_offset)/2+width/2-0.5, -0.01])
|
||||
cube(size=[15, 5, 3], center=true);
|
||||
}
|
||||
|
||||
// threaded insert hole
|
||||
translate([-(inner_dia+dia_offset)/2-width-wedge_size/1.5, (spacing_distance + 1)/2-0.005, thickness/2])
|
||||
threaded_insert();
|
||||
|
||||
// bolt hole
|
||||
translate([-(inner_dia+dia_offset)/2-width-wedge_size/1.5, -(spacing_distance + 1)/2+0.005, thickness/2])
|
||||
rotate([90,0,0])
|
||||
cylinder(h=insert_height+0.01, r=3.5/2, center=false);
|
||||
}
|
||||
}
|
||||
|
||||
module threaded_insert(){
|
||||
rotate([-90,0,0])
|
||||
cylinder(h=insert_height+0.01, r1=insert_bottom_dia/2, r2=insert_dia/2, center=false);
|
||||
}
|
||||
|
||||
// vacuum params
|
||||
vacuum_pipe_dia_start = 32;
|
||||
vacuum_pipe_dia_end = 30;
|
||||
pipe_thickness = 2;
|
||||
pipe_length = 50;
|
||||
rotation_angle = 60;
|
||||
|
||||
pipe_height = 50;
|
||||
|
||||
module pipe(){
|
||||
// hollow pipe for vacuum cleaner
|
||||
rotate([0,rotation_angle,0])
|
||||
difference(){
|
||||
cylinder(h=pipe_length, r1=vacuum_pipe_dia_end/2+pipe_thickness, r2=vacuum_pipe_dia_start/2+pipe_thickness, center=false);
|
||||
translate([0,0,-0.005])
|
||||
cylinder(h=pipe_length+0.01, r1=vacuum_pipe_dia_end/2, r2=vacuum_pipe_dia_start/2, center=false);
|
||||
}
|
||||
}
|
||||
|
||||
module vacuum_vent() {
|
||||
rotate([180,0,0])
|
||||
difference(){
|
||||
linear_extrude(height=pipe_height, center=false, convexity=10, twist=0) {
|
||||
difference(){
|
||||
union(){
|
||||
radius = (inner_dia+dia_offset)/2+width;
|
||||
circle(r=radius);
|
||||
}
|
||||
|
||||
union(){
|
||||
radius = (inner_dia+dia_offset)/2+2;
|
||||
circle(r=radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(i = [0:magnet_number]){
|
||||
rotate([0,0,i*36])
|
||||
translate([0, (inner_dia+dia_offset)/2+width/2, -0.01])
|
||||
cylinder(r=(magnet_dia+0.5)/2, h=magnet_height+0.5, center=false);
|
||||
}
|
||||
|
||||
// Ring for metal
|
||||
translate([0,0,-8])
|
||||
cylinder(r=(inner_dia+dia_offset)/2+6, h=10, center=false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ring();
|
||||
// pipe_x = cos(rotation_angle)*(vacuum_pipe_dia_end+pipe_thickness)/2;
|
||||
// difference(){
|
||||
// vacuum_vent();
|
||||
// translate([-pipe_x+(inner_dia+dia_offset)/2+2,0,-30])
|
||||
// hull(){pipe();}
|
||||
|
||||
// // threaded insert holes
|
||||
// for(i = [0:magnet_number]){
|
||||
// rotate([0,0,i*36])
|
||||
// translate([0, (inner_dia+dia_offset)/2+width+0.9-7, -pipe_height+5])
|
||||
// rotate([0,0,0])
|
||||
// threaded_insert();
|
||||
// }
|
||||
// }
|
||||
// difference(){
|
||||
// translate([-pipe_x+(inner_dia+dia_offset)/2+2,0,-30])
|
||||
// pipe();
|
||||
// translate([0,0,-pipe_height/2])
|
||||
// cylinder(r=(inner_dia+dia_offset)/2+2, h=pipe_height, center=true);
|
||||
// }
|
||||
Reference in New Issue
Block a user