| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- $fn=60;
- use <threads.scad>
- include <honeycomb.scad>
- Teil = 2; // [1:Dose, 2:Deckel]
- Durchmesser=40;
- Wandstaerke=1.5;
- Laenge_Gewinde=5;
- Laenge_Dose=15;
- Raendel=3; // Durchmesser
- module Gewinde(dia, len, int) {
- clearance=(int) ? 1 : 0; // int==true = Innengewinde mit 1mm Spiel
- metric_thread(diameter=dia+clearance, pitch=2, thread_size=1.5, length=len, leadin=2, n_starts=1, internal=int);
- }
- module Raendelung(h) {
- for (i=[0:360/16:359]) rotate([0,0,i]) translate([(Durchmesser)/2-1,0,0]) hull() {
- sphere(d=Raendel);
- translate(v = [0,0,h]) sphere(d=Raendel);
- }
- }
- module Dose() {
- difference() {
- union() {
- Gewinde(Durchmesser-2*Wandstaerke, len=5, int=false);
- translate([0,0,Laenge_Gewinde]) union() {
- cylinder(d=Durchmesser, h=Laenge_Dose);
- translate([0,0,2]) Raendelung(Laenge_Dose-4);
- }
- translate([0,0,Laenge_Gewinde+Laenge_Dose]) Gewinde(Durchmesser-2*Wandstaerke, len=Laenge_Gewinde, int=false);
- }
- cylinder(d=Durchmesser-5*Wandstaerke, h=100, center=true);
- }
- intersection() {
- cylinder(d=Durchmesser-5*Wandstaerke, h=10, center=true);
- x=50;
- translate([-x/2,-x/2,0]) linear_extrude(height=1.25) honeycomb(x, x, 3.75, 2, whole_only=true);
- }
- }
- module Deckel() {
- Rundung=5; // Durchmesser!
- difference() {
- union() {
- hull() rotate_extrude() translate([(Durchmesser-Rundung)/2,0]) circle(d=Rundung);
- Raendelung(3);
- cylinder(d=Durchmesser, h=Laenge_Gewinde);
- }
- Gewinde(dia=Durchmesser-2*Wandstaerke, len=6, int=true);
- }
- }
- if (Teil==1) render() Dose();
- if (Teil==2) render() Deckel();
|