// Afmetingen voor de buitenvorm
buitenste_diameter_start = 38;
buitenste_diameter_einde = 32;
totale_hoogte = 20; // Totale hoogte ingesteld op 20 mm
// Afmetingen voor het binnengat
gat_diameter_start = 15;
gat_diameter_einde = 12;
// Aantal zijden voor de cilinder om hem rond te maken
fn = 100;
// Creëer de buitenvorm met afgeronde hoeken
module conische_cilinder(d1, d2, h) {
verschil() {
cilinder(h = h, d1 = d1, d2 = d2, $fn = fn);
translate([0, 0, -0.5]) // Laat de binnencilinder iets zakken om volledige aftrekking te garanderen
cilinder(h = h + 1, d1 = d1 - 2, d2 = d2 - 2, $fn = fn); // Trek iets kleinere cilinder af tot ronde randen
}
}
// Maak het binnenste gat
modulegat(d1, d2, h) {
cilinder(h = h, d1 = d1, d2 = d2, $fn = fn);
}
// Combineer de vormen met vergrendelingsfuncties
module object_with_hole() {
verschil() {
taps toelopende_cilinder(buiten_diameter_begin, buiten_diameter_einde, totale_hoogte / 2);
translate([0, 0, -1]) // Begin het gat iets lager voor volledige penetratie
gat(gat_diameter_start, gat_diameter_einde, totale_hoogte / 2 + 2); // Zorg ervoor dat het gat er volledig doorheen gaat
}
}
// Splitsen en vergrendelingsmechanisme toevoegen
module split_and_lock() {
snijpunt() {
object_met_gat();
vertalen([-20, -20, 0]) kubus([40, 40, 10]); // Onderste helft
}
snijpunt() {
object_met_gat();
vertalen([-20, -20, 10]) kubus([40, 40, 10]); // Bovenste helft
vertalen([0, 0, 10])
cilinder(h = 2, d = 5, $fn = fn); // Borgpen
}
}
// Render de onderdelen
vertalen([0, -50, 0]) split_and_lock();
vertalen([0, 50, 0]) split_and_lock();