added own OpenScad models
|
@ -1,2 +1,4 @@
|
|||
# 3d-stuff
|
||||
3d-printing stuff
|
||||
---
|
||||
some random 3d-printing stuff like own scad-models, firmware configurations and slicer-setups
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
# Filaments
|
||||
|
||||
| Make | Material | Color/Code | Dia/Volume | Price | Notes |
|
||||
|--- |--- |--- |--- |--- |
|
||||
| Noulei | PLA | Silk Black / #24 | 1.75mm/1kg | 26,99€ | |
|
||||
| ~ | PLA | Silk Blue / #11 | 1.75mm/1kg | 26,99€ | 190°C, Shiny Türkis |
|
||||
| ~ | PLA | Silk Silver Blue /#14 | 1.75mm/1kg | 26,99€ | 190°C, Shiny Lila |
|
||||
| GEEETECH | PLA | Black / 700-001-0426 / Y2005 | 1.75mm/1kg | 24,99€ | |
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
//The inside hole size (diameter) of your filament spool in MM
|
||||
spool_inside_diameter = 38; //min/step/max: [0:0.5:100]
|
||||
//The total height of the spool adapter
|
||||
total_height=8.5; //min/step/max: [0:0.5:100]
|
||||
//The brim width -- how much lip to hold your spool
|
||||
brim_width=85; //min/step/max: [0:0.5:100]
|
||||
// the brim height -- how thick to the make the lip
|
||||
brim_height=3; //min/step/max: [0:0.5:100]
|
||||
//the size (diameter) of your HDD spindle / bearing -- what you mount the adapter to
|
||||
spindle_size=25; //min/step/max: [0:0.5:100]
|
||||
$fn=100;
|
||||
module main_spool() {
|
||||
union() {
|
||||
cylinder(r=brim_width/2, h=brim_height);
|
||||
cylinder(r=spool_inside_diameter/2, h=total_height);
|
||||
}
|
||||
}
|
||||
|
||||
module hollow_center() {
|
||||
translate([0,0,-.5]) {
|
||||
cylinder(r=spindle_size/2, h=total_height+1);
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
main_spool();
|
||||
hollow_center();
|
||||
}
|
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 20 KiB |
|
@ -0,0 +1,83 @@
|
|||
// TP-Link 1043N/ND (v1) Wall mount
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2015-01-17
|
||||
// =====================================================================
|
||||
// Variables
|
||||
|
||||
// material thickness
|
||||
material_t=3;
|
||||
|
||||
// "thickness" of switch
|
||||
thickness=25.5;
|
||||
|
||||
// overall depth
|
||||
d=thickness+material_t*2;
|
||||
|
||||
// width of holder
|
||||
w=15+material_t;
|
||||
|
||||
// length of holder
|
||||
l=50;
|
||||
|
||||
// screwhole diameter
|
||||
hole_d=4.5;
|
||||
big_hole_d=8.5;
|
||||
|
||||
//screwhole slider (set to hole_d to disable; requires printing bridges)
|
||||
hole_slider=10;
|
||||
big_hole_slider=hole_slider+(big_hole_d-hole_d);
|
||||
|
||||
//lip height
|
||||
lip_h=4;
|
||||
|
||||
//lip offset
|
||||
lip_offset=5;
|
||||
|
||||
// radius of switch corner
|
||||
corner_r=15;
|
||||
|
||||
$fn=50;
|
||||
// =====================================================================
|
||||
|
||||
// Code
|
||||
module carving(dia,carving_h){
|
||||
hull(){
|
||||
cylinder(r=dia,h=carving_h,center=true);
|
||||
translate([-dia,0,0]){cylinder(r=dia,h=carving_h,center=true);}
|
||||
translate([0,d,0]){cylinder(r=dia,h=carving_h,center=true);}
|
||||
}
|
||||
}
|
||||
|
||||
module hole(hole_dia,hole_h,slider){
|
||||
hull(){
|
||||
translate([-slider/2+hole_dia/2,0,0])cylinder(r=hole_dia/2,h=hole_h+0.1,center=true);
|
||||
translate([slider/2-hole_dia/2,0,0])cylinder(r=hole_dia/2,h=hole_h+0.1,center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module holder(){
|
||||
difference(){
|
||||
cube([w,l,d],center=true);
|
||||
translate([-corner_r+w/2-material_t,corner_r-l/2+material_t,0]){
|
||||
carving(corner_r,thickness+0.1);
|
||||
}
|
||||
hull(){
|
||||
translate([-corner_r+w/2-material_t,corner_r-l/2+material_t,d/2-lip_h+1]){
|
||||
carving(corner_r,1);
|
||||
}
|
||||
translate([-corner_r+w/2-material_t,corner_r-l/2+material_t,d/2-0.4]){
|
||||
carving(corner_r-lip_offset,1);
|
||||
}
|
||||
}
|
||||
translate([-material_t/2,l/4,-d/2+material_t/2])hole(hole_d,material_t,hole_slider);
|
||||
translate([-material_t/2,l/4,-d/2+material_t])hole(big_hole_d,material_t,big_hole_slider);
|
||||
translate([-material_t/2,-l/8,-d/2+material_t/2])hole(hole_d,material_t,hole_slider);
|
||||
translate([-material_t/2,-l/8,-d/2+material_t])hole(big_hole_d,material_t,big_hole_slider);
|
||||
}
|
||||
}
|
||||
|
||||
mirror([0,0,0]){
|
||||
holder();
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
// some basic 2d-to-2d-extrusion of DXF-Vectorfiles
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2015-05-05
|
||||
|
||||
h=5;
|
||||
$fn=100;
|
||||
|
||||
translate([92.5,115,-h/2*1]){
|
||||
scale([1.0,1.5,1]) cylinder(r=90.0, h=h/2*1);
|
||||
}
|
||||
|
||||
scale([0.4,0.4,1])#linear_extrude(height = h/2*1) import("rose2.dxf");
|
|
@ -0,0 +1,47 @@
|
|||
// rostock igus/traxxas-mod with customized front-belt assembly
|
||||
// front clamp
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
//2014-10-01
|
||||
// ---
|
||||
// some vars:
|
||||
height = 24;
|
||||
hole = 3.5;
|
||||
thickness = 1.5;
|
||||
|
||||
// model
|
||||
module holes() {
|
||||
union() {
|
||||
|
||||
translate([0, 0, 5]){
|
||||
rotate([90, 0, 0]){
|
||||
cylinder(r=hole/2, h=thickness*2, center=true, $fn=12);}}
|
||||
|
||||
translate([0, 0, -5]){
|
||||
rotate([90, 0, 0]){
|
||||
cylinder(r=hole/2, h=thickness*2, center=true, $fn=12);}}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module blocko() {
|
||||
intersection() {
|
||||
translate([0, 0, 0])
|
||||
cube([10, thickness, height-3], center=true);
|
||||
rotate([90,0,0]){
|
||||
cylinder(r=height/2-height*0.1, h=10, center=true, $fn=64);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
translate([0, 0, 0]){
|
||||
difference() {
|
||||
blocko();
|
||||
holes();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,114 @@
|
|||
// rostock igus/traxxas-mod with customized front-belt assembly
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
//2014-10-01
|
||||
|
||||
Fmotor_end_height=44;
|
||||
idler_end_height=28;
|
||||
carriage_height=24;
|
||||
|
||||
rod_length=120;
|
||||
smooth_rod_length=300;
|
||||
tower_radius = 120;
|
||||
platform_hinge_offset=33;
|
||||
carriage_hinge_offset=22;
|
||||
width = 67;
|
||||
height = carriage_height;
|
||||
|
||||
offset = 20;
|
||||
cutout = 15;
|
||||
middle = 2*offset - width/2;
|
||||
|
||||
module parallel_joints(reinforced) {
|
||||
difference() {
|
||||
union() {
|
||||
intersection() {
|
||||
cube([width, 20, 8], center=true);
|
||||
rotate([0, 90, 0]) cylinder(r=5, h=width, center=true);
|
||||
}
|
||||
intersection() {
|
||||
translate([0, 18, 4]) rotate([45, 0, 0])
|
||||
cube([width, reinforced, reinforced], center=true);
|
||||
translate([0, 0, 20]) cube([width, 35, 40], center=true);
|
||||
}
|
||||
translate([0, 8, 0]) cube([width, 16, 8], center=true);
|
||||
}
|
||||
rotate([0, 90, 0]) cylinder(r=1.55, h=80, center=true, $fn=12);
|
||||
|
||||
for (x = [-offset, offset]) {
|
||||
translate([x, 6.6, 0])
|
||||
cylinder(r=cutout/2, h=100, center=true, $fn=36);
|
||||
translate([x, -3.8, 0])
|
||||
cube([cutout, 20, 100], center=true);
|
||||
translate([x, 0, 0]) rotate([0, 90, 0]) rotate([0, 0, 30])
|
||||
cylinder(r=3.5, h=19, center=true, $fn=6);
|
||||
}
|
||||
translate([0, 4, 0])
|
||||
cube([2*offset+7, 20, 100], center=true);
|
||||
//translate([0, 2, 0]) cylinder(r=middle, h=100, center=true);
|
||||
//translate([0, -8, 0]) cube([2*middle, 20, 100], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module lm8uu_mount(d, h) {
|
||||
union() {
|
||||
difference() {
|
||||
intersection() {
|
||||
cylinder(r=11, h=h, center=true);
|
||||
translate([0, -8, 0]) cube([22, 13, h+1], center=true);
|
||||
}
|
||||
cylinder(r=16/2, h=h+1, center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module carriage() {
|
||||
translate([0, 0, height/2])
|
||||
union() {
|
||||
for (x = [-30, 30]) {
|
||||
translate([x, 0, 0]) lm8uu_mount(d=15, h=24);
|
||||
}
|
||||
difference() {
|
||||
union() {
|
||||
translate([0, -5.6, 0])
|
||||
cube([50, 5, height], center=true);
|
||||
|
||||
translate([0, -carriage_hinge_offset, -height/2+4])
|
||||
parallel_joints(16);
|
||||
|
||||
// endstop column
|
||||
translate([15, -10, -height/2+4])
|
||||
cube([6, 5, 8], center=true);
|
||||
translate([15, -15.5, -height/2+4])
|
||||
intersection() {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
translate([-9, -5.6, 5]){
|
||||
rotate([90, 0, 0]){
|
||||
cylinder(r=1.75, h=10, center=true, $fn=12);}}
|
||||
translate([-9, -5.6, -5]){
|
||||
rotate([90, 0, 0]){
|
||||
cylinder(r=1.75, h=10, center=true, $fn=12);}}
|
||||
|
||||
// Screw hole for adjustable top endstop.
|
||||
translate([15, -8, -height/2+4])
|
||||
cylinder(r=1.5, h=15, center=true, $fn=12);
|
||||
for (x = [-30, 30]) {
|
||||
translate([x, 0, 0])
|
||||
cylinder(r=8, h=height+1, center=true);
|
||||
// Zip tie tunnels.
|
||||
for (z = [-height/2+4, height/2-4])
|
||||
translate([x, 0, z])
|
||||
cylinder(r=13, h=3, center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
carriage();
|
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 9.2 KiB |
|
@ -0,0 +1,84 @@
|
|||
// Stanley Tool Organizer Drawers/Separators for the side-panel
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2014-11-25
|
||||
|
||||
// =================================
|
||||
|
||||
//inner width
|
||||
wi=60;
|
||||
//overall width
|
||||
wo=64;
|
||||
//height
|
||||
h=54;
|
||||
//end-cylinder-diameter
|
||||
cd=6.3;
|
||||
//material thickness
|
||||
mt=3;
|
||||
//drawer height
|
||||
dh=h/4;
|
||||
//drawer width
|
||||
dw=wi;
|
||||
|
||||
$fn=50;
|
||||
|
||||
// =================================
|
||||
|
||||
module inner_wall(){
|
||||
translate([0,0,h/2]){
|
||||
cube([wi-mt,mt,h],center=true);
|
||||
}
|
||||
translate([0,0,dh/2]){
|
||||
cube([dw-mt,mt*2,dh],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module outer_half_circle(){
|
||||
translate([0,0,h/2]){
|
||||
difference(){
|
||||
cylinder(r=cd/2+mt,h=h,center=true);
|
||||
cylinder(r=cd/2,h=h+1,center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module cut_edge(){
|
||||
translate([0,0,h/2]){
|
||||
cube([wo,cd*3,h],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
// =================================
|
||||
|
||||
module drawer(){
|
||||
intersection(){
|
||||
union(){
|
||||
inner_wall();
|
||||
for (x=[wi/2+cd/4,-wi/2-cd/4]){
|
||||
translate([x,0,0]){
|
||||
outer_half_circle();
|
||||
}
|
||||
}
|
||||
}
|
||||
cut_edge();
|
||||
}
|
||||
}
|
||||
|
||||
module drawer_flat(){
|
||||
intersection(){
|
||||
union(){
|
||||
inner_wall();
|
||||
translate([wi/2+cd/4,0,0]){
|
||||
outer_half_circle();
|
||||
}
|
||||
translate([-wi/2,0,h/2]){
|
||||
cube([cd/2,cd*3,h],center=true);
|
||||
}
|
||||
}
|
||||
cut_edge();
|
||||
}
|
||||
}
|
||||
|
||||
//drawer_flat();
|
||||
drawer();
|
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 2.0 MiB |
After Width: | Height: | Size: 2.1 MiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,198 @@
|
|||
solid OpenSCAD_Model
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex -35 -1 0
|
||||
vertex -35 -1 10
|
||||
vertex -35 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex -35 11 0
|
||||
vertex -35 -1 10
|
||||
vertex -35 11 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex -35 -1 10
|
||||
vertex -35 -1 0
|
||||
vertex 35 -1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 -1 0
|
||||
outer loop
|
||||
vertex 35 -1 10
|
||||
vertex -35 -1 10
|
||||
vertex 35 -1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex 33 1 0
|
||||
vertex 35 -1 0
|
||||
vertex -33 1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex -35 -1 0
|
||||
vertex -35 11 0
|
||||
vertex -33 1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex -35 -1 0
|
||||
vertex -33 1 0
|
||||
vertex 35 -1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex 35 -1 0
|
||||
vertex 33 1 0
|
||||
vertex 33 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex 35 -1 0
|
||||
vertex 33 11 0
|
||||
vertex 35 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 -1
|
||||
outer loop
|
||||
vertex -33 1 0
|
||||
vertex -35 11 0
|
||||
vertex -33 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex -35 11 0
|
||||
vertex -35 11 10
|
||||
vertex -33 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex -33 11 0
|
||||
vertex -35 11 10
|
||||
vertex -33 11 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -33 1 10
|
||||
vertex -35 -1 10
|
||||
vertex 35 -1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -33 1 10
|
||||
vertex -33 11 10
|
||||
vertex -35 11 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 35 11 10
|
||||
vertex 33 11 10
|
||||
vertex 35 -1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 33 11 10
|
||||
vertex 33 1 10
|
||||
vertex 35 -1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex -35 11 10
|
||||
vertex -35 -1 10
|
||||
vertex -33 1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 0 1
|
||||
outer loop
|
||||
vertex 33 1 10
|
||||
vertex -33 1 10
|
||||
vertex 35 -1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 35 -1 10
|
||||
vertex 35 -1 0
|
||||
vertex 35 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex 35 11 10
|
||||
vertex 35 -1 10
|
||||
vertex 35 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 33 11 0
|
||||
vertex 33 11 10
|
||||
vertex 35 11 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 35 11 0
|
||||
vertex 33 11 10
|
||||
vertex 35 11 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex 33 11 10
|
||||
vertex 33 11 0
|
||||
vertex 33 1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1 0 0
|
||||
outer loop
|
||||
vertex 33 1 10
|
||||
vertex 33 11 0
|
||||
vertex 33 1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex -33 1 0
|
||||
vertex -33 1 10
|
||||
vertex 33 1 0
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0 1 0
|
||||
outer loop
|
||||
vertex 33 1 0
|
||||
vertex -33 1 10
|
||||
vertex 33 1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex -33 11 0
|
||||
vertex -33 11 10
|
||||
vertex -33 1 10
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1 0 0
|
||||
outer loop
|
||||
vertex -33 1 0
|
||||
vertex -33 11 0
|
||||
vertex -33 1 10
|
||||
endloop
|
||||
endfacet
|
||||
endsolid OpenSCAD_Model
|
|
@ -0,0 +1,101 @@
|
|||
// socket outlet mount / steckdosenleistenhalter
|
||||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2014-11-04
|
||||
// ==============================================
|
||||
|
||||
|
||||
holder_w=55; // real size of steckdosenleiste, not holder!
|
||||
holder_h=41; // as above; better add 1mm or so here for not to tight fit
|
||||
holder_d=15;
|
||||
hole_dia=5;
|
||||
material_t=4;
|
||||
$fn=50;
|
||||
|
||||
// ==============================================
|
||||
|
||||
// define which clamp to draw
|
||||
|
||||
//endclamp_closed_flange();
|
||||
//endclamp_closed();
|
||||
endclamp_halfopen();
|
||||
//midclamp_open();
|
||||
//midclamp_allopen();
|
||||
|
||||
// ==============================================
|
||||
|
||||
module endclamp_closed(){
|
||||
difference(){
|
||||
//walls
|
||||
translate([0,0,holder_d/2+material_t/2]){
|
||||
cube([holder_w+2*material_t,holder_h+2*material_t,holder_d+material_t],center=true);}
|
||||
translate([0,0,holder_d/2+material_t]){
|
||||
cube([holder_w,holder_h,holder_d+0.1],center=true);}
|
||||
//holes
|
||||
for (N = [-holder_w/4, holder_w/4]){
|
||||
translate([N,-material_t/2,holder_d/2+material_t/2]){rotate([90,0,0]){
|
||||
cylinder(r=hole_dia,h=holder_h+2*material_t+0.1,center=true);}}
|
||||
translate([N,holder_h/2+material_t/2,holder_d/2+material_t/2]){rotate([90,0,0]){
|
||||
cylinder(r=hole_dia/2,h=material_t+0.1,center=true);}}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module endclamp_closed_flange(){
|
||||
rotate([0,90,0]){
|
||||
difference(){
|
||||
union(){
|
||||
rotate([0,180,0]){ translate([0,0,-holder_h/2+material_t/3]){ endclamp_closed();}}
|
||||
translate([0,holder_h/2+material_t/2,holder_h/1.5-material_t/4]){
|
||||
cube([holder_w+2*material_t,material_t,holder_d],center=true);
|
||||
}
|
||||
}
|
||||
|
||||
for (N = [-holder_w/4, holder_w/4]){
|
||||
translate([N,-material_t/2,holder_d*1.5+material_t]){rotate([90,0,0]){
|
||||
cylinder(r=hole_dia,h=holder_h+2*material_t+0.1,center=true);}}
|
||||
translate([N,holder_h/2+material_t/2,holder_d*1.5+material_t]){rotate([90,0,0]){
|
||||
cylinder(r=hole_dia/2,h=material_t+0.1,center=true);}}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module midclamp_open(){
|
||||
difference(){
|
||||
endclamp_closed();
|
||||
translate([0,0,material_t/2]){
|
||||
cube([holder_w,holder_h,2*material_t+0.1],center=true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module midclamp_allopen(){
|
||||
difference(){
|
||||
endclamp_closed();
|
||||
translate([0,0,material_t/2]){
|
||||
cube([holder_w,holder_h,material_t+0.1],center=true);}
|
||||
translate([0,-holder_h/2-material_t/2,holder_d/2+material_t/2])
|
||||
cube([holder_w-material_t*3.5,material_t*2,holder_d+material_t+0.1],center=true); }
|
||||
|
||||
}
|
||||
|
||||
|
||||
module endclamp_halfopen(){
|
||||
difference(){
|
||||
endclamp_closed();
|
||||
translate([0,0,material_t/2]){
|
||||
cylinder(r=holder_h/2,h=material_t+0.1,center=true);
|
||||
}
|
||||
for ( A = [-20 : 20] ){
|
||||
translate([0,-holder_h/2-material_t/2,holder_d/2+material_t/2]){ rotate([0,A,0]){
|
||||
cube([hole_dia*1.5,material_t*2,holder_d+2*material_t+0.1],center=true); }}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 861 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 1.9 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 1.6 MiB |
After Width: | Height: | Size: 1.9 MiB |
After Width: | Height: | Size: 1.6 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 1.7 MiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,67 @@
|
|||
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||
// -> https://www.thingiverse.com/zeus
|
||||
// -> https://github.com/zeus86
|
||||
// 2014-11-05
|
||||
// remix of "Ashtray" by TrevM 29/04/2014
|
||||
|
||||
/* [Global] */
|
||||
|
||||
// What quality?
|
||||
$fn = 100; // [20,40,60,80,100,120,140,160,180]
|
||||
|
||||
// Outside radius?
|
||||
or = 65; // [20:100]
|
||||
|
||||
// Inside radius?
|
||||
ir = 59; // [20:100]
|
||||
|
||||
// Height?
|
||||
hi = 35; // [10:50]
|
||||
|
||||
// Number of slots?
|
||||
num = 5; // [2:10]
|
||||
|
||||
// Base bevel height?
|
||||
bh = 4; // [2:5]
|
||||
|
||||
/* [Hidden] */
|
||||
|
||||
ang = 360/num;
|
||||
thk = or-ir+2;
|
||||
fr = 3.5;
|
||||
fr2 = fr * 2;
|
||||
|
||||
|
||||
module extinguisher(){
|
||||
difference(){
|
||||
translate([0,0,bh]){cylinder(r1 = 12, r2 = 7, h = hi);}
|
||||
translate([0,0,bh+0.6]){cylinder(r1 = 4.5, r2 = 5.25, h = hi-0.5);}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// base
|
||||
cylinder( r1 = or-bh/2, r2 = or, h = bh);
|
||||
translate([0,0,bh-0.1])
|
||||
difference()
|
||||
{
|
||||
// outside
|
||||
cylinder(r = or, h = hi);
|
||||
// inside
|
||||
translate([0,0,-0.1]) cylinder(r = ir, h = hi+0.2);
|
||||
// fag slots
|
||||
translate([0,0,hi-7]) for (n=[1:num])
|
||||
rotate([0,0,(n-1)*ang]) slot();
|
||||
|
||||
}
|
||||
|
||||
module slot()
|
||||
translate([ir-1,0,0])
|
||||
{
|
||||
rotate([0,90,0]) cylinder(r=3.5,h=thk);
|
||||
translate([0,-fr,0]) rotate([-8,0,0]) cube([thk,fr2,10]);
|
||||
translate([0,-fr,0]) rotate([8,0,0]) cube([thk,fr2,10]);
|
||||
}
|
||||
extinguisher();
|
||||
|
||||
|
After Width: | Height: | Size: 827 KiB |
After Width: | Height: | Size: 980 KiB |
After Width: | Height: | Size: 21 KiB |
|
@ -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();
|
||||
|
After Width: | Height: | Size: 1.2 MiB |