Added parts for vacuum cleaner attachment (work in progress)

pull/20/head
Carlos Garcia Saura 2014-06-17 12:01:17 +02:00
parent 0c087568a8
commit 06e598c4d8
13 changed files with 113716 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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();
}

View File

@ -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

View File

@ -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();
}

View File

@ -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

View File

@ -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