Added parts for vacuum cleaner attachment (work in progress)
parent
0c087568a8
commit
06e598c4d8
|
@ -0,0 +1,87 @@
|
|||
|
||||
tube_diameter = 17;
|
||||
tube_len = 29;
|
||||
corrugation_depth = 1;
|
||||
|
||||
vacuum_cleaner_diam = 32;
|
||||
vacuum_cleaner_tube_len = 50;
|
||||
adapter_len = 20;
|
||||
|
||||
part_diam = vacuum_cleaner_diam+10;
|
||||
|
||||
tube_separation = vacuum_cleaner_diam-tube_diameter+5;
|
||||
tube_angle = 0;
|
||||
|
||||
$fn=60;
|
||||
|
||||
module corrugated_tube_shape() {
|
||||
$fn=40;
|
||||
union() {
|
||||
cylinder(r=tube_diameter/2-corrugation_depth,h=tube_len);
|
||||
for (i = [0:3.75:tube_len-0.1]) {
|
||||
translate([0,0,i])
|
||||
cylinder(r=tube_diameter/2, h=3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module corrugated_tube_attachment() {
|
||||
difference() {
|
||||
//cylinder(r=tube_diameter/2+5, h=30, $fn=30, center=true);
|
||||
cube([tube_diameter+10,tube_diameter+10,30],center=true);
|
||||
cylinder(r=tube_diameter/2-corrugation_depth, h=31, $fn=30, center=true);
|
||||
for (i = [-4:4]) {
|
||||
translate([0,0,i*3.75])
|
||||
cylinder(r=tube_diameter/2, h=3, $fn=30, center=true);
|
||||
}
|
||||
translate([50,0,0])
|
||||
cube([100,100,100],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
*translate([0,-(tube_diameter+10)/2,0]) {
|
||||
corrugated_tube_attachment();
|
||||
translate([0,tube_diameter+10,0])
|
||||
corrugated_tube_attachment();
|
||||
}
|
||||
|
||||
|
||||
module vacuum_cleaner_adapter_shape() {
|
||||
translate([0,tube_separation/2,0])
|
||||
rotate([-tube_angle,0,0])
|
||||
corrugated_tube_shape();
|
||||
translate([0,-tube_separation/2,0])
|
||||
rotate([tube_angle,0,0])
|
||||
corrugated_tube_shape();
|
||||
|
||||
hull() {
|
||||
translate([0,tube_separation/2,0])
|
||||
rotate([-tube_angle,0,0])
|
||||
cylinder(r=tube_diameter/2,h=0.01);
|
||||
translate([0,0,-adapter_len])
|
||||
cylinder(r=vacuum_cleaner_diam/2,h=0.01);
|
||||
}
|
||||
|
||||
hull() {
|
||||
translate([0,-tube_separation/2,0])
|
||||
rotate([tube_angle,0,0])
|
||||
cylinder(r=tube_diameter/2,h=0.01);
|
||||
translate([0,0,-adapter_len])
|
||||
cylinder(r=vacuum_cleaner_diam/2,h=0.01);
|
||||
}
|
||||
|
||||
hull() {
|
||||
translate([0,0,-adapter_len])
|
||||
cylinder(r=vacuum_cleaner_diam/2,h=0.01);
|
||||
translate([0,0,-adapter_len-vacuum_cleaner_tube_len])
|
||||
cylinder(r=2+vacuum_cleaner_diam/2,h=0.01);
|
||||
}
|
||||
|
||||
//translate([0,0,-adapter_len-vacuum_cleaner_tube_len]) cylinder(r=vacuum_cleaner_diam/2,h=vacuum_cleaner_tube_len);
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([-part_diam/2,-part_diam/2,-adapter_len-vacuum_cleaner_tube_len]) cube([part_diam,part_diam,tube_len+adapter_len+vacuum_cleaner_tube_len]);
|
||||
vacuum_cleaner_adapter_shape();
|
||||
translate([0,-part_diam/2,-adapter_len-vacuum_cleaner_tube_len]) cube([part_diam,part_diam,tube_len+adapter_len+vacuum_cleaner_tube_len]);
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,88 @@
|
|||
|
||||
tube_diameter = 17;
|
||||
tube_len = 16.5;
|
||||
corrugation_depth = 1;
|
||||
|
||||
vacuum_cleaner_diam = 30;
|
||||
vacuum_cleaner_tube_len = 1;
|
||||
adapter_len = 25-6;
|
||||
|
||||
part_diam = 60+15;
|
||||
|
||||
tube_separation = tube_diameter+26+5;
|
||||
tube_angle = 5;
|
||||
|
||||
$fn=60;
|
||||
|
||||
module corrugated_tube_shape(incL=0) {
|
||||
$fn=40;
|
||||
union() {
|
||||
cylinder(r=tube_diameter/2-corrugation_depth,h=tube_len+incL);
|
||||
for (i = [0:3.75:tube_len+incL-0.1]) {
|
||||
translate([0,0,i])
|
||||
cylinder(r=tube_diameter/2, h=3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module corrugated_tube_attachment() {
|
||||
difference() {
|
||||
//cylinder(r=tube_diameter/2+5, h=30, $fn=30, center=true);
|
||||
cube([tube_diameter+10,tube_diameter+10,30],center=true);
|
||||
cylinder(r=tube_diameter/2-corrugation_depth, h=31, $fn=30, center=true);
|
||||
for (i = [-4:4]) {
|
||||
translate([0,0,i*3.75])
|
||||
cylinder(r=tube_diameter/2, h=3, $fn=30, center=true);
|
||||
}
|
||||
translate([50,0,0])
|
||||
cube([100,100,100],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
*translate([0,-(tube_diameter+10)/2,0]) {
|
||||
corrugated_tube_attachment();
|
||||
translate([0,tube_diameter+10,0])
|
||||
corrugated_tube_attachment();
|
||||
}
|
||||
|
||||
|
||||
module vacuum_cleaner_adapter_shape() {
|
||||
translate([0,tube_separation/2,0])
|
||||
rotate([-tube_angle,0,0])
|
||||
corrugated_tube_shape(5);
|
||||
translate([0,-tube_separation/2,0])
|
||||
rotate([tube_angle,0,0])
|
||||
corrugated_tube_shape(5);
|
||||
|
||||
hull() {
|
||||
translate([0,tube_separation/2,0])
|
||||
rotate([-tube_angle,0,0])
|
||||
cylinder(r=tube_diameter/2,h=0.01);
|
||||
translate([0,0,-adapter_len])
|
||||
cylinder(r=vacuum_cleaner_diam/2,h=0.01);
|
||||
}
|
||||
|
||||
hull() {
|
||||
translate([0,-tube_separation/2,0])
|
||||
rotate([tube_angle,0,0])
|
||||
cylinder(r=tube_diameter/2,h=0.01);
|
||||
translate([0,0,-adapter_len])
|
||||
cylinder(r=vacuum_cleaner_diam/2,h=0.01);
|
||||
}
|
||||
|
||||
translate([0,0,6])
|
||||
cylinder(r=27/2,h=50);
|
||||
|
||||
cylinder(r=(27-3)/2,h=100,center=true);
|
||||
|
||||
translate([0,0,-adapter_len-vacuum_cleaner_tube_len])
|
||||
cylinder(r=vacuum_cleaner_diam/2,h=vacuum_cleaner_tube_len);
|
||||
|
||||
//translate([0,0,-adapter_len-vacuum_cleaner_tube_len]) cylinder(r=vacuum_cleaner_diam/2,h=vacuum_cleaner_tube_len);
|
||||
}
|
||||
|
||||
difference() {
|
||||
translate([-part_diam/4,-part_diam/2,-adapter_len-vacuum_cleaner_tube_len]) cube([part_diam,part_diam,tube_len+adapter_len+vacuum_cleaner_tube_len]);
|
||||
vacuum_cleaner_adapter_shape();
|
||||
translate([0,-part_diam/2,-adapter_len-vacuum_cleaner_tube_len]) cube([part_diam,part_diam,tube_len+adapter_len+vacuum_cleaner_tube_len]);
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,121 @@
|
|||
|
||||
|
||||
|
||||
dremel_accessory_diam = 20+1;
|
||||
dremel_accesory_height = 12-2;
|
||||
|
||||
aspirator_thickness_thick = 4;
|
||||
aspirator_thickness_slim = 1;
|
||||
|
||||
aspirator_tube_diam = 15;
|
||||
aspirator_tube_holder_height = 15;
|
||||
|
||||
aspirator_hole_height = 15+5;
|
||||
aspirator_hole_diam = 30;
|
||||
|
||||
dremel_wrench_diam = 25;
|
||||
dremel_wrench_hole_offset = 10;
|
||||
|
||||
dremel_accessory_screw_separation = 25.6;
|
||||
|
||||
dremel_accessory_tube_offset = dremel_accessory_diam-aspirator_tube_diam;
|
||||
aspirator_tube_separation = dremel_accessory_diam+aspirator_tube_diam+aspirator_thickness_thick*2+1.5;
|
||||
dremel_accessory_hole_offset = 0;//dremel_accessory_diam-aspirator_hole_diam;
|
||||
|
||||
// Useful MCAD functions reference
|
||||
|
||||
//use <MCAD/motors.scad>
|
||||
//stepper_motor_mount(nema_standard=17, slide_distance=10, $fn=40, mochup=true);
|
||||
|
||||
//use <MCAD/boxes.scad>
|
||||
//roundedBox([10,20,30], radius=2, sidesonly=false, $fn=60);
|
||||
|
||||
//include <MCAD/stepper.scad>
|
||||
//motor(Nema17, size=NemaMedium, dualAxis=false);
|
||||
|
||||
|
||||
//use <MCAD/teardrop.scad>
|
||||
//teardrop(radius=10, length=20, angle=90);
|
||||
|
||||
//use <MCAD/nuts_and_bolts.scad>
|
||||
//nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
//boltHole(size=3, length=10, tolerance=0.5, proj=-1, $fn=40);
|
||||
|
||||
use <MCAD/teardrop.scad>
|
||||
use <MCAD/nuts_and_bolts.scad>
|
||||
|
||||
module aspirator_accessory_2Dshape() {
|
||||
hull() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
circle(r=aspirator_thickness_thick+dremel_accessory_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_filledshape() {
|
||||
linear_extrude(height=dremel_accesory_height,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_thickness_slim+aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_2Dholes() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
circle(r=dremel_accessory_diam/2, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
}
|
||||
|
||||
module screwHole() {
|
||||
translate([0,-8,0])
|
||||
rotate([90,0,0])
|
||||
hull() {
|
||||
translate([0,0,20])
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
}
|
||||
translate([0,10,0])
|
||||
rotate([90,0,0])
|
||||
boltHole(size=3, length=30, tolerance=0.4, proj=-1, $fn=40);
|
||||
}
|
||||
|
||||
module aspirator_accessory_holes() {
|
||||
linear_extrude(height=dremel_accesory_height+0.01,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2+0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height+1-0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=2+0.1,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
// Hole for the tightener
|
||||
translate([0,-dremel_accessory_tube_offset/4,0])
|
||||
cube([aspirator_tube_separation,1,dremel_accesory_height+0.01],center=true);
|
||||
// Frontal hole for the wrench
|
||||
translate([0,(dremel_accessory_diam+aspirator_thickness_thick)/2,-(dremel_accesory_height+aspirator_hole_height)/2-dremel_wrench_hole_offset])
|
||||
cube([dremel_wrench_diam,10,aspirator_hole_height+0.01],center=true);
|
||||
// Holes for the nut/screws
|
||||
#translate([dremel_accessory_screw_separation/2,0,0])
|
||||
screwHole();
|
||||
#translate([-dremel_accessory_screw_separation/2,0,0])
|
||||
screwHole();
|
||||
}
|
||||
|
||||
difference() {
|
||||
aspirator_accessory_filledshape();
|
||||
aspirator_accessory_holes();
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
|
||||
|
||||
dremel_accessory_diam = 20;
|
||||
dremel_accesory_height = 12;
|
||||
|
||||
aspirator_thickness_thick = 4;
|
||||
aspirator_thickness_slim = 2;
|
||||
|
||||
aspirator_tube_diam = 15;
|
||||
aspirator_tube_holder_height = 15;
|
||||
|
||||
aspirator_hole_height = 15;
|
||||
aspirator_hole_diam = 15;
|
||||
|
||||
dremel_wrench_diam = 25;
|
||||
|
||||
// Useful MCAD functions reference
|
||||
|
||||
//use <MCAD/motors.scad>
|
||||
//stepper_motor_mount(nema_standard=17, slide_distance=10, $fn=40, mochup=true);
|
||||
|
||||
//use <MCAD/boxes.scad>
|
||||
//roundedBox([10,20,30], radius=2, sidesonly=false, $fn=60);
|
||||
|
||||
//include <MCAD/stepper.scad>
|
||||
//motor(Nema17, size=NemaMedium, dualAxis=false);
|
||||
|
||||
|
||||
//use <MCAD/teardrop.scad>
|
||||
//teardrop(radius=10, length=20, angle=90);
|
||||
|
||||
//use <MCAD/nuts_and_bolts.scad>
|
||||
//nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
//boltHole(size=3, length=10, tolerance=0.5, proj=-1, $fn=40);
|
||||
|
||||
|
||||
use <MCAD/boxes.scad>
|
||||
|
||||
|
||||
difference() {
|
||||
roundedBox([dremel_accessory_diam+aspirator_tube_diam*2+aspirator_thickness_thick*3,
|
||||
dremel_accessory_diam+aspirator_thickness_thick*2,
|
||||
dremel_accesory_height],
|
||||
radius=(dremel_accessory_diam+aspirator_thickness_thick*2)/2,
|
||||
sidesonly=true, $fn=60);
|
||||
|
||||
cylinder(r=dremel_accessory_diam/2, h=dremel_accesory_height+0.1, $fn=60,center=true);
|
||||
translate([dremel_accessory_diam/2+aspirator_tube_diam/2+aspirator_thickness_thick,0,0])
|
||||
cylinder(r=aspirator_tube_diam/2, h=dremel_accesory_height+0.1, $fn=60,center=true);
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,125 @@
|
|||
|
||||
|
||||
|
||||
dremel_accessory_diam = 20;
|
||||
dremel_accesory_height = 12-2;
|
||||
|
||||
aspirator_thickness_thick = 2;
|
||||
aspirator_thickness_slim = 1;
|
||||
aspirator_thickness_screw = aspirator_thickness_slim;
|
||||
|
||||
aspirator_tube_diam = 15;
|
||||
aspirator_tube_holder_height = 15;
|
||||
|
||||
aspirator_hole_height = 15+5-6;
|
||||
aspirator_hole_diam = 30;
|
||||
|
||||
dremel_wrench_diam = 0;
|
||||
dremel_wrench_hole_offset = 8;
|
||||
|
||||
dremel_accessory_screw_separation = dremel_accessory_diam+aspirator_thickness_screw+1.25;
|
||||
dremel_accessory_angle = 8;
|
||||
|
||||
dremel_accessory_tube_offset = dremel_accessory_diam-aspirator_tube_diam;
|
||||
aspirator_tube_separation = dremel_accessory_diam+aspirator_tube_diam+aspirator_thickness_screw*2+1.5;
|
||||
dremel_accessory_hole_offset = 0;//dremel_accessory_diam-aspirator_hole_diam;
|
||||
|
||||
// Useful MCAD functions reference
|
||||
|
||||
//use <MCAD/motors.scad>
|
||||
//stepper_motor_mount(nema_standard=17, slide_distance=10, $fn=40, mochup=true);
|
||||
|
||||
//use <MCAD/boxes.scad>
|
||||
//roundedBox([10,20,30], radius=2, sidesonly=false, $fn=60);
|
||||
|
||||
//include <MCAD/stepper.scad>
|
||||
//motor(Nema17, size=NemaMedium, dualAxis=false);
|
||||
|
||||
|
||||
//use <MCAD/teardrop.scad>
|
||||
//teardrop(radius=10, length=20, angle=90);
|
||||
|
||||
//use <MCAD/nuts_and_bolts.scad>
|
||||
//nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
//boltHole(size=3, length=10, tolerance=0.5, proj=-1, $fn=40);
|
||||
|
||||
use <MCAD/teardrop.scad>
|
||||
use <MCAD/nuts_and_bolts.scad>
|
||||
|
||||
module aspirator_accessory_2Dshape() {
|
||||
hull() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
circle(r=aspirator_thickness_thick+dremel_accessory_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_filledshape() {
|
||||
linear_extrude(height=dremel_accesory_height,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_thickness_slim+aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_2Dholes() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
circle(r=dremel_accessory_diam/2, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
}
|
||||
|
||||
module screwHole() {
|
||||
translate([0,-7,0])
|
||||
rotate([90,0,0])
|
||||
hull() {
|
||||
translate([0,0,20])
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
}
|
||||
translate([0,7,0])
|
||||
rotate([90,0,0])
|
||||
boltHole(size=3, length=30, tolerance=0.4, proj=-1, $fn=40);
|
||||
}
|
||||
|
||||
module aspirator_accessory_holes() {
|
||||
linear_extrude(height=dremel_accesory_height+0.01,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2+0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height+1-0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=2+0.1,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
// Hole for the tightener
|
||||
*translate([0,-dremel_accessory_tube_offset/4,0])
|
||||
cube([aspirator_tube_separation,1,dremel_accesory_height+0.01],center=true);
|
||||
// Frontal hole for the wrench
|
||||
*translate([0,(dremel_accessory_diam+aspirator_thickness_thick)/2,-(dremel_accesory_height+aspirator_hole_height)/2-dremel_wrench_hole_offset])
|
||||
cube([dremel_wrench_diam,10,aspirator_hole_height+0.01],center=true);
|
||||
// Holes for the nut/screws
|
||||
*translate([dremel_accessory_screw_separation/2,0,0])
|
||||
rotate([0,0,-dremel_accessory_angle])
|
||||
screwHole();
|
||||
*translate([-dremel_accessory_screw_separation/2,0,0])
|
||||
rotate([0,0,dremel_accessory_angle])
|
||||
screwHole();
|
||||
}
|
||||
|
||||
difference() {
|
||||
aspirator_accessory_filledshape();
|
||||
aspirator_accessory_holes();
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
|
||||
|
||||
dremel_accessory_diam = 20;
|
||||
dremel_accesory_height = 12-2;
|
||||
|
||||
aspirator_thickness_thick = 2;
|
||||
aspirator_thickness_slim = 2;
|
||||
aspirator_thickness_screw = 4;
|
||||
|
||||
aspirator_tube_diam = 20;
|
||||
aspirator_tube_holder_height = 15;
|
||||
|
||||
aspirator_hole_height = 20;
|
||||
aspirator_hole_diam = 33-3;
|
||||
|
||||
dremel_accessory_tube_offset = 0;//dremel_accessory_diam-aspirator_tube_diam;
|
||||
aspirator_tube_separation = aspirator_tube_diam+aspirator_thickness_screw*2+1.5;
|
||||
dremel_accessory_hole_offset = 0;//dremel_accessory_diam-aspirator_hole_diam;
|
||||
|
||||
vacuum_cleaner_diam = 33;
|
||||
vacuum_cleaner_tube_len = 40;
|
||||
|
||||
// Useful MCAD functions reference
|
||||
|
||||
//use <MCAD/motors.scad>
|
||||
//stepper_motor_mount(nema_standard=17, slide_distance=10, $fn=40, mochup=true);
|
||||
|
||||
//use <MCAD/boxes.scad>
|
||||
//roundedBox([10,20,30], radius=2, sidesonly=false, $fn=60);
|
||||
|
||||
//include <MCAD/stepper.scad>
|
||||
//motor(Nema17, size=NemaMedium, dualAxis=false);
|
||||
|
||||
|
||||
//use <MCAD/teardrop.scad>
|
||||
//teardrop(radius=10, length=20, angle=90);
|
||||
|
||||
//use <MCAD/nuts_and_bolts.scad>
|
||||
//nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
//boltHole(size=3, length=10, tolerance=0.5, proj=-1, $fn=40);
|
||||
|
||||
use <MCAD/teardrop.scad>
|
||||
use <MCAD/nuts_and_bolts.scad>
|
||||
|
||||
module aspirator_accessory_2Dshape() {
|
||||
hull() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_filledshape() {
|
||||
linear_extrude(height=dremel_accesory_height,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_thickness_slim+aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_thickness_slim+aspirator_hole_diam/2, $fn=60);
|
||||
translate([0,0,-dremel_accesory_height/2-aspirator_hole_height-vacuum_cleaner_tube_len])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_thickness_slim+vacuum_cleaner_diam/2, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_2Dholes() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
}
|
||||
|
||||
module screwHole() {
|
||||
translate([0,-5,0])
|
||||
rotate([90,0,0])
|
||||
hull() {
|
||||
translate([0,0,20])
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
}
|
||||
translate([0,aspirator_tube_diam/2,0])
|
||||
rotate([90,0,0])
|
||||
boltHole(size=3, length=30, tolerance=0.4, proj=-1, $fn=40);
|
||||
}
|
||||
|
||||
module aspirator_accessory_holes() {
|
||||
linear_extrude(height=dremel_accesory_height+0.01,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2+0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height+1-0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2-aspirator_hole_height+0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
translate([0,0,-dremel_accesory_height/2-aspirator_hole_height-vacuum_cleaner_tube_len-0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=vacuum_cleaner_diam/2, $fn=60);
|
||||
}
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=2+0.1,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
// Hole for the tightener
|
||||
cube([aspirator_tube_separation,2.5,dremel_accesory_height+0.01],center=true);
|
||||
// Holes for the nut/screws
|
||||
#screwHole();
|
||||
}
|
||||
|
||||
difference() {
|
||||
aspirator_accessory_filledshape();
|
||||
aspirator_accessory_holes();
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,125 @@
|
|||
|
||||
|
||||
|
||||
dremel_accessory_diam = 20;
|
||||
dremel_accesory_height = 12-2;
|
||||
|
||||
aspirator_thickness_thick = 2;
|
||||
aspirator_thickness_slim = 1;
|
||||
aspirator_thickness_screw = 4;
|
||||
|
||||
aspirator_tube_diam = 20;
|
||||
aspirator_tube_holder_height = 15;
|
||||
|
||||
aspirator_hole_height = 15;
|
||||
aspirator_hole_diam = 35;
|
||||
|
||||
dremel_wrench_diam = 0;
|
||||
dremel_wrench_hole_offset = 8;
|
||||
|
||||
dremel_accessory_screw_separation = dremel_accessory_diam+aspirator_thickness_screw+0.8;
|
||||
dremel_accessory_angle = 0;
|
||||
|
||||
dremel_accessory_tube_offset = dremel_accessory_diam-aspirator_tube_diam;
|
||||
aspirator_tube_separation = dremel_accessory_diam+aspirator_tube_diam+aspirator_thickness_screw*2+1.5;
|
||||
dremel_accessory_hole_offset = 0;//dremel_accessory_diam-aspirator_hole_diam;
|
||||
|
||||
// Useful MCAD functions reference
|
||||
|
||||
//use <MCAD/motors.scad>
|
||||
//stepper_motor_mount(nema_standard=17, slide_distance=10, $fn=40, mochup=true);
|
||||
|
||||
//use <MCAD/boxes.scad>
|
||||
//roundedBox([10,20,30], radius=2, sidesonly=false, $fn=60);
|
||||
|
||||
//include <MCAD/stepper.scad>
|
||||
//motor(Nema17, size=NemaMedium, dualAxis=false);
|
||||
|
||||
|
||||
//use <MCAD/teardrop.scad>
|
||||
//teardrop(radius=10, length=20, angle=90);
|
||||
|
||||
//use <MCAD/nuts_and_bolts.scad>
|
||||
//nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
//boltHole(size=3, length=10, tolerance=0.5, proj=-1, $fn=40);
|
||||
|
||||
use <MCAD/teardrop.scad>
|
||||
use <MCAD/nuts_and_bolts.scad>
|
||||
|
||||
module aspirator_accessory_2Dshape() {
|
||||
hull() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
circle(r=aspirator_thickness_thick+dremel_accessory_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_thickness_thick+aspirator_tube_diam/2, h=dremel_accesory_height, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_filledshape() {
|
||||
linear_extrude(height=dremel_accesory_height,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dshape();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_thickness_slim+aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
}
|
||||
|
||||
module aspirator_accessory_2Dholes() {
|
||||
translate([aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
circle(r=dremel_accessory_diam/2, $fn=60);
|
||||
translate([-aspirator_tube_separation/2,-dremel_accessory_tube_offset/2])
|
||||
circle(r=aspirator_tube_diam/2, $fn=60);
|
||||
}
|
||||
|
||||
module screwHole() {
|
||||
translate([0,-7,0])
|
||||
rotate([90,0,0])
|
||||
hull() {
|
||||
translate([0,0,20])
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
nutHole(size=3, tolerance=0.5, proj=-1);
|
||||
}
|
||||
translate([0,aspirator_tube_diam/2,0])
|
||||
rotate([90,0,0])
|
||||
boltHole(size=3, length=30, tolerance=0.4, proj=-1, $fn=40);
|
||||
}
|
||||
|
||||
module aspirator_accessory_holes() {
|
||||
linear_extrude(height=dremel_accesory_height+0.01,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
hull() {
|
||||
translate([0,0,-dremel_accesory_height/2+0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
aspirator_accessory_2Dholes();
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height+1-0.01])
|
||||
linear_extrude(height=0.001,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
}
|
||||
translate([0,dremel_accessory_hole_offset/2,-dremel_accesory_height/2-aspirator_hole_height])
|
||||
linear_extrude(height=2+0.1,center=true)
|
||||
circle(r=aspirator_hole_diam/2, $fn=60);
|
||||
// Hole for the tightener
|
||||
translate([0,-dremel_accessory_tube_offset/4,0])
|
||||
cube([aspirator_tube_separation,2.5,dremel_accesory_height+0.01],center=true);
|
||||
// Frontal hole for the wrench
|
||||
translate([0,(dremel_accessory_diam+aspirator_thickness_thick)/2,-(dremel_accesory_height+aspirator_hole_height)/2-dremel_wrench_hole_offset])
|
||||
cube([dremel_wrench_diam,10,aspirator_hole_height+0.01],center=true);
|
||||
// Holes for the nut/screws
|
||||
#translate([dremel_accessory_screw_separation/2,0,0])
|
||||
rotate([0,0,-dremel_accessory_angle])
|
||||
screwHole();
|
||||
#translate([-dremel_accessory_screw_separation/2,0,0])
|
||||
rotate([0,0,dremel_accessory_angle])
|
||||
screwHole();
|
||||
}
|
||||
|
||||
difference() {
|
||||
aspirator_accessory_filledshape();
|
||||
aspirator_accessory_holes();
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue