added own OpenScad models
|
@ -1,2 +1,4 @@
|
||||||
# 3d-stuff
|
# 3d-stuff
|
||||||
3d-printing 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 |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.2 MiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 770 KiB |
After Width: | Height: | Size: 578 KiB |
After Width: | Height: | Size: 550 KiB |
After Width: | Height: | Size: 804 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 494 KiB |
After Width: | Height: | Size: 1.4 MiB |
After Width: | Height: | Size: 833 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 22 KiB |
|
@ -0,0 +1,47 @@
|
||||||
|
// 40mm fan adapter for delta frames
|
||||||
|
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||||
|
// -> https://www.thingiverse.com/zeus
|
||||||
|
// -> https://github.com/zeus86
|
||||||
|
// 2016-02-26
|
||||||
|
// ---
|
||||||
|
//some vars
|
||||||
|
|
||||||
|
$fn=24;
|
||||||
|
|
||||||
|
mnt_hole_dia=5.1;
|
||||||
|
fan_hole_dia=4;
|
||||||
|
fan_hole_dist=32.5;
|
||||||
|
fan_dia_effective=40;
|
||||||
|
base_w=40*1.75;
|
||||||
|
base_t=3;
|
||||||
|
base_h=40+2*mnt_hole_dia;
|
||||||
|
standoff_h=7;
|
||||||
|
|
||||||
|
//====================================
|
||||||
|
|
||||||
|
module standoff(){
|
||||||
|
translate([0,0,standoff_h/2+base_t/2]){
|
||||||
|
difference(){
|
||||||
|
cylinder(r1=fan_hole_dia,r2=fan_hole_dia*0.75,h=standoff_h,center=true);
|
||||||
|
cylinder(r=fan_hole_dia/2,h=standoff_h+1,center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module base(){
|
||||||
|
difference(){
|
||||||
|
cube([base_w,base_h,base_t],center=true);
|
||||||
|
cylinder(r=fan_dia_effective/2,h=base_t+1,center=true,$fn=48);
|
||||||
|
translate([-(base_w/2-mnt_hole_dia),+(base_h/2-mnt_hole_dia),0])cylinder(r=mnt_hole_dia/2,h=base_t+1,center=true);
|
||||||
|
translate([+(base_w/2-mnt_hole_dia),+(base_h/2-mnt_hole_dia),0])cylinder(r=mnt_hole_dia/2,h=base_t+1,center=true);
|
||||||
|
translate([-(base_w/2-mnt_hole_dia),-(base_h/2-mnt_hole_dia),0])cylinder(r=mnt_hole_dia/2,h=base_t+1,center=true);
|
||||||
|
translate([+(base_w/2-mnt_hole_dia),-(base_h/2-mnt_hole_dia),0])cylinder(r=mnt_hole_dia/2,h=base_t+1,center=true);
|
||||||
|
}
|
||||||
|
translate([-(fan_hole_dist/2),+(fan_hole_dist/2),0])standoff();
|
||||||
|
translate([+(fan_hole_dist/2),+(fan_hole_dist/2),0])standoff();
|
||||||
|
translate([-(fan_hole_dist/2),-(fan_hole_dist/2),0])standoff();
|
||||||
|
translate([+(fan_hole_dist/2),-(fan_hole_dist/2),0])standoff();
|
||||||
|
}
|
||||||
|
|
||||||
|
base();
|
After Width: | Height: | Size: 22 KiB |
|
@ -0,0 +1,38 @@
|
||||||
|
// euro platine pcb framing
|
||||||
|
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||||||
|
// -> https://www.thingiverse.com/zeus
|
||||||
|
// -> https://github.com/zeus86
|
||||||
|
// 2014-11-20
|
||||||
|
// 160x100mm is 1 full-sized euro platine
|
||||||
|
// 80x100mm is 1 half-sized euro platine
|
||||||
|
// 80x50mm is 1 quarter-sized euro platine
|
||||||
|
|
||||||
|
// =====================================
|
||||||
|
|
||||||
|
// height
|
||||||
|
h=15; // [1:200]
|
||||||
|
// length
|
||||||
|
l=80; // [1:200]
|
||||||
|
// width
|
||||||
|
b=50; // [1:200]
|
||||||
|
// material thickness
|
||||||
|
mt=2; // [1:200]
|
||||||
|
// standoff spacing (10mm is good for m3 and m4 standoffs)
|
||||||
|
spare=10; // [1:200]
|
||||||
|
|
||||||
|
// =====================================
|
||||||
|
|
||||||
|
translate([0,0,h/2]){
|
||||||
|
difference(){
|
||||||
|
cube([l,b,h],center=true);
|
||||||
|
cube([l-mt*2,b-mt*2,h+1],center=true);
|
||||||
|
}
|
||||||
|
for(x=[-l/2+spare/2+mt,l/2-spare/2-mt],y=[-b/2+spare/2+mt,b/2-spare/2-mt]){
|
||||||
|
translate([x,y,0]){
|
||||||
|
difference(){
|
||||||
|
cube([spare+mt*2,spare+mt*2,h],center=true);
|
||||||
|
cube([spare,spare,h+1],center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 7.6 KiB |