Initial design
This commit is contained in:
parent
3b96c514ad
commit
7e14a1e117
44
.gitignore
vendored
44
.gitignore
vendored
|
@ -2,50 +2,6 @@
|
||||||
# -*- mode: gitignore; -*-
|
# -*- mode: gitignore; -*-
|
||||||
*~
|
*~
|
||||||
\#*\#
|
\#*\#
|
||||||
/.emacs.desktop
|
|
||||||
/.emacs.desktop.lock
|
|
||||||
*.elc
|
*.elc
|
||||||
auto-save-list
|
auto-save-list
|
||||||
tramp
|
|
||||||
.\#*
|
.\#*
|
||||||
|
|
||||||
# Org-mode
|
|
||||||
.org-id-locations
|
|
||||||
*_archive
|
|
||||||
|
|
||||||
# flymake-mode
|
|
||||||
*_flymake.*
|
|
||||||
|
|
||||||
# eshell files
|
|
||||||
/eshell/history
|
|
||||||
/eshell/lastdir
|
|
||||||
|
|
||||||
# elpa packages
|
|
||||||
/elpa/
|
|
||||||
|
|
||||||
# reftex files
|
|
||||||
*.rel
|
|
||||||
|
|
||||||
# AUCTeX auto folder
|
|
||||||
/auto/
|
|
||||||
|
|
||||||
# cask packages
|
|
||||||
.cask/
|
|
||||||
dist/
|
|
||||||
|
|
||||||
# Flycheck
|
|
||||||
flycheck_*.el
|
|
||||||
|
|
||||||
# server auth directory
|
|
||||||
/server/
|
|
||||||
|
|
||||||
# projectiles files
|
|
||||||
.projectile
|
|
||||||
|
|
||||||
# directory configuration
|
|
||||||
.dir-locals.el
|
|
||||||
|
|
||||||
# network security
|
|
||||||
/network-security.data
|
|
||||||
|
|
||||||
|
|
||||||
|
|
78
storz.scad
Normal file
78
storz.scad
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
/*
|
||||||
|
* Storz - Generate Storz style couplings
|
||||||
|
*
|
||||||
|
* Copyright (C) 2023 Matthias Neeracher <microtherion@gmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
$fn = $preview ? 32 : 64;
|
||||||
|
|
||||||
|
min_radius = 0.5;
|
||||||
|
|
||||||
|
function corner(radius, scale) = max(radius*scale, min_radius);
|
||||||
|
|
||||||
|
module base_profile(scale=1.0) {
|
||||||
|
outer_rim = 19*scale;
|
||||||
|
tight_corner = corner(0.5, scale);
|
||||||
|
medium_corner = corner(1.5, scale);
|
||||||
|
wide_corner = corner(2.0, scale);
|
||||||
|
hull() {
|
||||||
|
translate([tight_corner, tight_corner]) circle(r=tight_corner);
|
||||||
|
translate([tight_corner, 4*scale-tight_corner]) circle(r=tight_corner);
|
||||||
|
translate([outer_rim-wide_corner, wide_corner]) circle(r=wide_corner);
|
||||||
|
translate([outer_rim-0.01, 4*scale-0.01]) square(size=0.01);
|
||||||
|
}
|
||||||
|
hull() {
|
||||||
|
translate([outer_rim-wide_corner, 17*scale-wide_corner]) circle(r=wide_corner);
|
||||||
|
translate([outer_rim-6*scale+medium_corner, 17*scale-medium_corner]) circle(r=medium_corner);
|
||||||
|
translate([outer_rim-6*scale, 4*scale]) square([6*scale, 0.01]);
|
||||||
|
}
|
||||||
|
translate([outer_rim-6*scale-wide_corner, 4*scale]) difference() {
|
||||||
|
square(size=wide_corner);
|
||||||
|
translate([0, wide_corner]) circle(r=wide_corner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module knagge_profile(scale=1.0) {
|
||||||
|
tight_corner = corner(0.5, scale);
|
||||||
|
medium_corner = corner(1.5, scale);
|
||||||
|
wide_corner = corner(2.0, scale);
|
||||||
|
base = sqrt(25-4.55*4.55);
|
||||||
|
|
||||||
|
square([10*scale+medium_corner, 13*scale]);
|
||||||
|
translate([0.0, 13*scale]) square([6.0*scale, 5.0*scale]);
|
||||||
|
translate([0.0, 18*scale]) square([9.1*scale, (1.5+base)*scale]);
|
||||||
|
translate([4.55*scale, 19.5*scale]) difference() {
|
||||||
|
circle(r=5.0*scale);
|
||||||
|
translate([-5.0*scale, -5.0*scale]) square([10.0*scale, (5.0+base)*scale]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module knagge(diameter=60.0, scale=1.0) {
|
||||||
|
rotate_extrude(angle=30.0) translate([diameter*0.5+3*scale, 4.0*scale]) knagge_profile(scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
module lip_profile(scale=1.0) {
|
||||||
|
tight_corner = corner(0.5, scale);
|
||||||
|
medium_corner = corner(1.5, scale);
|
||||||
|
wide_corner = corner(2.0, scale);
|
||||||
|
|
||||||
|
hull() {
|
||||||
|
translate([medium_corner, 4.5*scale-medium_corner]) circle(r=medium_corner);
|
||||||
|
translate([3.5*scale, 0.0]) square([medium_corner, 4.5*scale]);
|
||||||
|
square(size=medium_corner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module lip(diameter=60.0, scale=1.0) {
|
||||||
|
rotate_extrude(angle=100.0) translate([diameter*0.5+9.5*scale, 12.5*scale]) lip_profile(scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
module storz(diameter=60.0, scale=1.0) {
|
||||||
|
rotate_extrude() translate([diameter*0.5, 0]) base_profile(scale);
|
||||||
|
rotate([0, 0, 75]) knagge(diameter, scale);
|
||||||
|
rotate([0, 0, -105]) knagge(diameter, scale);
|
||||||
|
rotate([0, 0, 120]) lip(diameter, scale);
|
||||||
|
rotate([0, 0, -60]) lip(diameter, scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
storz(diameter=20.0, scale=0.5);
|
97592
storz_0.6n_0.15mm_PLA_MK3S_54m.gcode
Normal file
97592
storz_0.6n_0.15mm_PLA_MK3S_54m.gcode
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user