added own OpenScad models
188
openscad/own/camp-capsule/capsule.scad
Normal file
@@ -0,0 +1,188 @@
|
||||
// =====================================================
|
||||
// Seidenstrasse Specs according to CCC-Congress-Wiki:
|
||||
// minimal: maximal: optimal:
|
||||
// Diameter:75mm 90mm 85mm
|
||||
// Length: 100mm 220mm 180mm
|
||||
// Weight: >0g 550g 250g
|
||||
//=====================================================
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2015-08-05
|
||||
// =====================================================
|
||||
// DEFINITIONS
|
||||
// =====================================================
|
||||
// Capsule itself
|
||||
h_overall=200;
|
||||
h_velcro=15;
|
||||
h_bulk=30;
|
||||
d_bulk=85;
|
||||
d_middle=67;
|
||||
mt=3;
|
||||
d_inner=d_middle-2*mt;
|
||||
|
||||
// holes for mounting some LED-Stripes
|
||||
led_pos_t=1; //ledstripe near top
|
||||
led_pos_m=0; //ledstripe near middle
|
||||
led_pos_b=1; //ledstripe near bottom
|
||||
cable_holes=1; // 1=yes, 0=no
|
||||
cablehole_dia=3;
|
||||
cablehole_width=2; // multiplicator to the diameter, e.g. 3 means the hole is 9 wide when its height it 3, must be >=1
|
||||
ziptie_holes=1; // 1=yes, 0=no
|
||||
ziptiehole_dia=2;
|
||||
ziptiehole_width=3; // multiplicator to the diameter, e.g. 3 means the hole is 9 wide when its height it 3 , must be >=1
|
||||
ledstripe_width=12; // in mm
|
||||
|
||||
// Screws
|
||||
scr_hole_num=3;
|
||||
scr_bighole_dia=8;
|
||||
scr_body_dia=4;
|
||||
scr_top_dia=4.3;
|
||||
scr_block_w=11+mt;
|
||||
scr_block_d=scr_block_w;
|
||||
|
||||
// Insert
|
||||
insert=1; //1=yes
|
||||
ins_gap=2.5;
|
||||
ins_mt=1.5;
|
||||
ins_wall_offset=4;
|
||||
ins_height=105; //should be enought for raspberry PIs and most arduinos
|
||||
ins_h_offset=40; //z-offset from middle
|
||||
ins_v_offset=10; //vertical offset from middle (i assume otherwise a PI won't fit without because of its height)
|
||||
// Top
|
||||
h_top=50;
|
||||
top_cam_hole=1; // 1=yes
|
||||
top_cam_hole_dia=12;
|
||||
|
||||
// Modules
|
||||
// ====================================================
|
||||
|
||||
module bulk(){
|
||||
$fn=100;
|
||||
difference(){
|
||||
hull() {
|
||||
cylinder(r=d_middle/2+(mt*1.5),h=1,center=true);
|
||||
translate([0,0,h_bulk/2])cylinder(r=d_bulk/2,h=h_velcro,center=true);
|
||||
translate([0,0,h_bulk])cylinder(r=d_middle/2,h=1,center=true);
|
||||
}
|
||||
translate([0,0,h_bulk/2+mt/2])cylinder(h=h_bulk,r=d_inner/2,center=true);
|
||||
}
|
||||
}
|
||||
// ====================================================
|
||||
module blockring(){
|
||||
$fn=100;
|
||||
intersection(){
|
||||
hull() {
|
||||
cylinder(r=d_middle/2,h=1,center=true);
|
||||
translate([0,0,h_bulk/2])cylinder(r=d_bulk/2,h=h_velcro,center=true);
|
||||
}
|
||||
|
||||
for (x = [0,120,240]){
|
||||
rotate([0,0,x]){
|
||||
translate([d_bulk/2-scr_block_w/2,0,((h_bulk-h_velcro)/2+h_velcro)/2]){
|
||||
difference(){
|
||||
cube([scr_block_w,scr_block_d,(h_bulk-h_velcro)/2+h_velcro],center=true);
|
||||
translate([0,0,(h_bulk-h_velcro)/3]) cylinder(r=scr_body_dia/2,h=h_velcro,center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
// ====================================================
|
||||
module top(){
|
||||
$fn=100;
|
||||
difference(){
|
||||
bulk();
|
||||
translate([0,0,h_bulk/2+h_velcro/2+mt/4]) cylinder(h=h_bulk,r=d_middle/2+1.5,center=true);
|
||||
for (x = [0, 120,240])rotate([0,0,x]){
|
||||
translate([d_bulk/2-scr_block_w/2,0,((h_bulk-h_velcro)/2+h_velcro)/2]) cylinder(r=scr_top_dia/2,h=h_bulk,center=true);
|
||||
translate([d_bulk/2-scr_block_w/2,0,mt/2]) cylinder(r=scr_bighole_dia/2,h=(h_bulk-h_velcro)/2,center=true);
|
||||
translate([d_bulk/2-scr_block_w/2,0,(h_bulk-h_velcro/2-3)]) cube([scr_block_w,scr_block_d+0.5,h_bulk-h_velcro/2],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// ====================================================
|
||||
module insert(){
|
||||
difference(){
|
||||
union(){
|
||||
hull(){
|
||||
translate([d_inner/2-ins_wall_offset,0,0])cube([1,2*ins_mt+ins_gap,ins_height+1],center=true);
|
||||
translate([d_inner/2,0,-ins_wall_offset])cube([1,2*ins_mt+ins_gap,ins_height+1+ins_wall_offset*2],center=true);
|
||||
}
|
||||
hull(){
|
||||
translate([-d_inner/2+ins_wall_offset,0,0])cube([1,2*ins_mt+ins_gap,ins_height+1],center=true);
|
||||
translate([-d_inner/2,0,-ins_wall_offset])cube([1,2*ins_mt+ins_gap,ins_height+1+ins_wall_offset*2],center=true);
|
||||
}
|
||||
}
|
||||
translate([0,0,1])cube([d_inner,ins_gap,ins_height],center=true);
|
||||
}
|
||||
}
|
||||
//insert();
|
||||
// ====================================================
|
||||
module cableholes(){
|
||||
$fn=50;
|
||||
rotate([90,0,0]){
|
||||
hull(){
|
||||
translate([0,-cablehole_dia*(cablehole_width-1)/2,0])cylinder(r=cablehole_dia/2,h=d_bulk,center=true);
|
||||
translate([0,cablehole_dia*(cablehole_width-1)/2,0])cylinder(r=cablehole_dia/2,h=d_bulk,center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====================================================
|
||||
module singletie(){
|
||||
$fn=50;
|
||||
rotate([90,90,0]){
|
||||
hull(){
|
||||
translate([ledstripe_width/2,-ziptiehole_dia*(ziptiehole_width-1)/2,0])cylinder(r=ziptiehole_dia/2,h=d_bulk,center=true);
|
||||
translate([ledstripe_width/2,ziptiehole_dia*(ziptiehole_width-1)/2,0])cylinder(r=ziptiehole_dia/2,h=d_bulk,center=true);
|
||||
}
|
||||
hull(){
|
||||
translate([-ledstripe_width/2,-ziptiehole_dia*(ziptiehole_width-1)/2,0])cylinder(r=ziptiehole_dia/2,h=d_bulk,center=true);
|
||||
translate([-ledstripe_width/2,ziptiehole_dia*(ziptiehole_width-1)/2,0])cylinder(r=ziptiehole_dia/2,h=d_bulk,center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====================================================
|
||||
module ziptieholes(){
|
||||
rotate([0,0,45])singletie();
|
||||
rotate([0,0,-45])singletie();
|
||||
}
|
||||
// ====================================================
|
||||
module holes(){
|
||||
|
||||
if (cable_holes == 1) { cableholes(); }
|
||||
if (ziptie_holes == 1) { ziptieholes(); }
|
||||
}
|
||||
// ====================================================
|
||||
module centerpart(){
|
||||
$fn=50;
|
||||
translate([0,0,-(h_overall/2-mt/2)]) bulk();
|
||||
difference(){
|
||||
union(){
|
||||
cylinder(r=d_middle/2,h=h_overall-mt,center=true);
|
||||
translate([0,0,h_overall/2-h_bulk*0.8]) blockring();
|
||||
}
|
||||
translate([0,0,mt/2]) cylinder(r=d_inner/2,h=h_overall-mt*2+0.1,center=true, $fn=32);
|
||||
|
||||
if (led_pos_t == 1){
|
||||
translate([0,0,h_overall/4+ledstripe_width/2])holes(); }
|
||||
if (led_pos_b == 1){
|
||||
translate([0,0,-h_overall/4+ledstripe_width/2])holes(); }
|
||||
if (led_pos_m == 1){
|
||||
translate([0,0,ledstripe_width/2])holes(); }
|
||||
|
||||
}
|
||||
if (insert == 1){
|
||||
for (x = [ins_v_offset, -ins_v_offset]){
|
||||
translate([0,x,ins_h_offset])insert();
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====================================================
|
||||
|
||||
translate([0,0,h_overall/2-mt/2]) centerpart();
|
||||
translate([0,0,h_overall+50])mirror([0,0,1]) top();
|
||||
|
BIN
openscad/own/camp-capsule/img/IMG_20150803_012508.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012537.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012548.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012553.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012652.jpg
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012701.jpg
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012725.jpg
Normal file
After Width: | Height: | Size: 770 KiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012735.jpg
Normal file
After Width: | Height: | Size: 578 KiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012853.jpg
Normal file
After Width: | Height: | Size: 550 KiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012901.jpg
Normal file
After Width: | Height: | Size: 804 KiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012911.jpg
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012916.jpg
Normal file
After Width: | Height: | Size: 1.3 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012921.jpg
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_012943.jpg
Normal file
After Width: | Height: | Size: 494 KiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_013353.jpg
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
openscad/own/camp-capsule/img/IMG_20150803_013442.jpg
Normal file
After Width: | Height: | Size: 833 KiB |
BIN
openscad/own/camp-capsule/img/capsule_160.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
openscad/own/camp-capsule/img/capsule_200.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
openscad/own/camp-capsule/img/capsule_cpl_200.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
openscad/own/camp-capsule/img/capsule_plain_200.png
Normal file
After Width: | Height: | Size: 22 KiB |