added own OpenScad models

This commit is contained in:
zeus86
2020-10-11 02:27:48 +02:00
parent c03b4f7da6
commit c0c916ae12
237 changed files with 860987 additions and 0 deletions

View 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();

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff