| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /* [Teil] */
- Teil = 1; // [1:Überblick, 2:Basisblock, 3:Klemmblock_fest, 4:Klemmblock_Rippen, 5:Klemmblock_Variabel]
- Klemmblock_Position = 150; // [150:1:280]
- Klemmblock_Hoehe = 70; // [50:1:90]
- /* [Hidden] */
- $fn = 45;
- Delta = 0.005;
- Block = [300,120,23];
- Rippe = [3,120,2]; // x,y,z
- Rippen = [44, 6];
- Raster = 80;
- Nutenstein = [8, 16]; // 8mm wegen der Hammer-Muttern.
- Schraube = [6.5, 20, 3]; // Schaft, Kopf, Tiefe
- Schulter=5;
- Langloch = [40,260];
- Steigung=5;
- module Basisblock() {
- difference() {
- // Block mit Rippen
- union() {
- cube([Block.x, Block.y, Block.z]);
- color("Red") translate([0,0,Block.z]) {
- for (i=[1:1:Rippen[0]]) translate([Block.x-(2*i-1)*Rippe.x, 0, 0]) cube(Rippe);
- // Rippe
- translate([10,0,0]) cube([5,Block.y,Rippe.z]);
- }
- }
-
-
- // Bohrungen und Langlöcher
- for (i=[(Block.y-Raster)/2, (Block.y+Raster)/2]) translate([0,i,-Delta]) union() {
- union() {
- // M6 Gewinde
- color("Blue") translate([10+5,0,0]) cylinder(d=5, h=Block.z+Rippe.z+1);
- // Am Ende je ein einzelnes Loch für Verankerung
- color("Orange") translate([285,0,0]) {
- cylinder(d=Schraube[0], h=Block.z+5);
- translate([0,0,Block.z-Schraube[2]]) cylinder(d=Schraube[1], h=Schraube[2]+1+Rippe.z);
- }
- color("Orange") {
- // Innen für M6 Schraube
- hull() { for (i=Langloch) translate([i,0,0]) cylinder(d=Schraube[0], h=Block.z+5); }
- // 8mm unten Schulter vom Nutenstein
- hull() { for (i=[Langloch[0]-Nutenstein[1]/2, Langloch[1]+Nutenstein[1]/2]) translate([i,0,0]) cylinder(d=Nutenstein[0], h=7); }
- // 16mm unten Nutenstein Breite
- hull() { for (i=[Langloch[0]-Nutenstein[1]/2, Langloch[1]+Nutenstein[1]/2]) translate([i,0,0]) cylinder(d=Nutenstein[1], h=5); }
- // Oben für Schraubenkopf
- translate([0,0,Block.z-Schraube[2]]) hull() { for (i=Langloch) translate([i,0,0]) cylinder(d=Schraube[1], h=Schraube[2]+1+Rippe.z); }
- }
- }
- }
- }
- }
- module Klemmblock_Variabel_Rippen() {
- Breite_unten = Rippe.x*2*Rippen[1];
- difference() {
- union() {
- hull() {
- translate([0,0,Block.z-1]) cube([Breite_unten, Block.y, 1]);
- translate([Steigung,0,0]) cube([Breite_unten-2*Steigung, Block.y, Delta]);
- }
- color("Red") translate([0,0,Block.z]) for (i=[1:1:Rippen[1]]) translate([Breite_unten-(2*i-1)*Rippe.x, 0, 0]) cube(Rippe);
- }
- color("Blue") for (i=[(Block.y-Raster)/2, (Block.y+Raster)/2]) translate([0,i,-Delta]) union() {
- translate([Breite_unten/2,0,0]) union() {
- cylinder(d=Schraube[0], h=Block.z+Rippe.z+1);
- cylinder(d=Schraube[1], h=5);
- }
- }
- }
- }
- module Klemmblock_Variabel() {
- Breite_unten = 30;
- difference() {
- union() {
- hull() {
- translate([0,0,Block.z]) cube([Breite_unten-Steigung, Block.y, Delta]);
- cube([Breite_unten, Block.y, 1]);
- }
- }
- color("Blue") for (i=[(Block.y-Raster)/2, (Block.y+Raster)/2]) translate([0,i,-Delta]) union() {
- translate([25/2,0,0]) union() {
- cylinder(d=Schraube[0], h=Block.z+Rippe.z+1);
- cylinder(d=Schraube[1], h=5);
- }
- }
- translate([0,Block.y/2,-Delta]) cylinder(d=2*Schulter, h=Block.z+Rippe.z+Delta, $fn=4);
- }
- }
- module Klemmblock_Fest() {
- difference() {
- cube([35, Block.y, Block.z+Rippe.z]);
- color("Red") translate([10,-Delta,Block.z]) cube([5,Block.y+2*Delta,Rippe.z+Delta]);
- color("Blue") for (i=[(Block.y-Raster)/2, (Block.y+Raster)/2]) translate([0,i,-Delta]) union() {
- translate([10+5,0,0]) union() {
- cylinder(d=Schraube[0], h=Block.z+Rippe.z+1);
- cylinder(d=Schraube[1], h=5);
- }
- }
- color("Orange") translate([35-Schulter+Delta,-Delta,-Delta]) cube([Schulter,Block.y+2*Delta,3+Delta]);
- translate([35,Block.y/2,0]) cylinder(d=2*Schulter, h=Block.z+Rippe.z+Delta, $fn=4);
- }
- }
- // Datei öffnen und Customizer anzeigen, dann Teil auswählen, F6 und STL Export:
- if (Teil == 1) {
- Basisblock();
- translate([Klemmblock_Position,0,55]) rotate([0,180,0]) Klemmblock_Variabel_Rippen();
- translate([90,120,Klemmblock_Hoehe]) rotate([180,0,0]) Klemmblock_Variabel();
- translate([0,120,55]) rotate([180,0,0]) Klemmblock_Fest();
- }
- if (Teil == 2) Basisblock();
- if (Teil == 3) Klemmblock_Fest();
- if (Teil == 4) Klemmblock_Variabel_Rippen();
- if (Teil == 5) Klemmblock_Variabel();
|