added own OpenScad models
BIN
openscad/own/roomba clamp/img/IMG_20140919_133211.jpg
Normal file
After Width: | Height: | Size: 2.0 MiB |
BIN
openscad/own/roomba clamp/img/IMG_20140919_133248.jpg
Normal file
After Width: | Height: | Size: 1.9 MiB |
BIN
openscad/own/roomba clamp/img/IMG_20140919_133349.jpg
Normal file
After Width: | Height: | Size: 2.0 MiB |
BIN
openscad/own/roomba clamp/img/IMG_20140919_134213.jpg
Normal file
After Width: | Height: | Size: 2.0 MiB |
BIN
openscad/own/roomba clamp/img/IMG_20140919_134228.jpg
Normal file
After Width: | Height: | Size: 2.1 MiB |
BIN
openscad/own/roomba clamp/img/roomba_clamp.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
openscad/own/roomba clamp/img/roomba_clamp_v2.png
Normal file
After Width: | Height: | Size: 13 KiB |
109
openscad/own/roomba clamp/roomba_clamp.scad
Normal file
@@ -0,0 +1,109 @@
|
||||
// roomba dock mount
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2014-09-19
|
||||
// some base measures of the original charger:
|
||||
// overall width: 132mm
|
||||
// effective upper width: 118.5mm
|
||||
// effective upper depth: 44mm
|
||||
// offset to wall: ~8mm
|
||||
|
||||
$fn=25;
|
||||
measured_w=118.5;
|
||||
measured_d=44;
|
||||
bracket_h=10;
|
||||
bracket_gap=50;
|
||||
charger_d=measured_d;
|
||||
wall_offset=5;
|
||||
material_t=3;
|
||||
bracket_spacing=1.5;
|
||||
hole_dia=4;
|
||||
bighole_dia=10;
|
||||
charger_width=measured_w+bracket_spacing;
|
||||
dock_width=charger_width+material_t*2;
|
||||
helper_w=measured_w-charger_d+bracket_spacing;
|
||||
|
||||
//mounting plate
|
||||
mnt_t=material_t*2;
|
||||
mnt_w=60;
|
||||
mnt_h=30;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
||||
|
||||
module dock_mount_side(){
|
||||
cube([helper_w,material_t,bracket_h],center=true);
|
||||
translate([0,wall_offset/2+material_t/2,0]){
|
||||
cube([mnt_w,wall_offset,bracket_h],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module hole(){
|
||||
translate([-4*hole_dia,0,1*hole_dia]){
|
||||
rotate([90,180,0]){
|
||||
cylinder(h=mnt_t+0.2,r=hole_dia/2);
|
||||
translate([0,hole_dia*2,0]){
|
||||
cylinder(h=mnt_t+0.2,r=bighole_dia/2);
|
||||
}
|
||||
translate([0,hole_dia,mnt_t/2+0.1]){
|
||||
cube([hole_dia,hole_dia*2,mnt_t+0.2],center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module holes(){
|
||||
for(x=[0:1])
|
||||
translate([x*(hole_dia * 8), mnt_t/2+0.1, 5]) hole();
|
||||
}
|
||||
|
||||
|
||||
module mount_plate(){
|
||||
difference(){
|
||||
cube([mnt_w,mnt_t,mnt_h],center=true);
|
||||
holes(center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module gap_side(){
|
||||
difference(){
|
||||
cube([helper_w,material_t,bracket_h],center=true);
|
||||
cube([bracket_gap,material_t+1,bracket_h+1],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module clamp(){
|
||||
difference(){
|
||||
cylinder(h=bracket_h,r=charger_d/2+material_t,center=true);
|
||||
union(){
|
||||
cylinder(h=bracket_h+1,r=charger_d/2,center=true);
|
||||
translate([0,-charger_d/2-material_t,-bracket_h/2-0.5]){
|
||||
cube([charger_d/2+material_t,charger_d+material_t,bracket_h+1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
dock_mount_side();
|
||||
|
||||
translate([0,wall_offset+material_t,mnt_h/2-bracket_h/2]){
|
||||
mount_plate();
|
||||
}
|
||||
|
||||
translate([0,-charger_d-material_t,0]){
|
||||
gap_side();
|
||||
}
|
||||
|
||||
|
||||
translate([-helper_w/2,-charger_d/2-material_t/2,0]){
|
||||
clamp(); //left
|
||||
}
|
||||
|
||||
translate([helper_w/2,-charger_d/2-material_t/2,0]){
|
||||
mirror([1,0,0]){
|
||||
clamp(); //right
|
||||
}
|
||||
}
|
||||
|