3D printen met OpenSCAD

We hebben een tijdje geleden een nieuwe microgolfoven gekocht. Die is iets hoger dan de vorige, dus het houten afwerkplankje boven de oven moest ingekort. Maar dat betekende dat de clips die het op z’n plaats hielden, niet meer zouden passen. Wat gedaan?!

Een tijd geleden leerde ik al OpenSCAD kennen, en dit bleek het ideale project om er eens iets nuttigs mee te doen.

Met een schuifmaat nam ik de precieze afmetingen van de oude clips, en in OpenSCAD maakte ik dan de aangepaste versies.

Links (groen) de nieuwe clip, rechts (wit) de oude
Het ontwerp in OpenSCAD voor de linker- en rechterclip

Ik vind het zelf een van de grote voordelen van OpenSCAD dat je een 3D object beschrijft in code, waardoor het heel makkelijk is om alles aanpasbaar te houden.

Hieronder vind je de clips in code. Ik had één extra library nodig om de wat complexere vormen te maken voor de afgeronde rechthoekige gaten.

include <BOSL2/std.scad>

h=27.5;
d=25.6;
w=10;
t=3;
hole_w=4.5;
hole_h=6.8;
studpos=(41.7/2)-2;
studbase=15;
studtop=9;
grabber_l=5.5;
grabber_t=2;
grabber_hole = 5.2;
grabber_w=6;
tophole_dist=2.9;

module Hole(hw,hh) {
    cuboid([hw,hh,t*2], rounding=hw/3);
}

module Grabber(gt,gd){
    grabpos1 = gt-studtop/2+grabber_t/2;
    grabpos2 = grabpos1+studtop-grabber_t;
    translate([0,gd,-grabpos1])
        cube([t,grabber_l,grabber_t],center=true);
    translate([0,gd,-grabpos2])
        cube([t,grabber_l,grabber_t],center=true);
}

module GrabberRound(gt,gd,hole){
    translate([0,gd-hole/2,gt])
    difference() {
        rotate([90,0,90])
            cylinder(h=grabber_w,d=hole+grabber_t*2, center=true, $fs=1);
        rotate([90,0,90])
            cylinder(h=grabber_w*2,d=hole, center=true,$fs=1);
        rotate([90,0,0])
            prismoid(size1=[grabber_w*2,hole-hole/3], size2=[t*2,hole+hole/3], h=hole*2);
    }
}

module Holder(){
    difference() {
        cube([w,t,h], center=true);
        rotate([90,0,0])
        // translate([0,(h/2)-tophole_dist,0])
        translate([0,(h/2)-hole_h/2-tophole_dist,0])
            Hole(hole_w,hole_h);
            // cuboid([hole_w,hole_h,t*2], rounding=hole_w/3);
            // cylinder(h=t*2, d=hole_d, center=true, $fs=0.5);
    }
    //stud
    rotate([90,90,0])
    translate([studpos-h/2,0,-t/2])
        prismoid(size1=[studbase,grabber_w], size2=[studtop,grabber_w], h=d);
    // Grabber(studpos-h/2,-d+t/2-grabber_l/2);
    GrabberRound(h/2-studpos,-d+t/2,grabber_hole);

    difference() {
    translate([-w/2,-t/2,-h/2])
        cube([h/2+hole_w+t,t,hole_h+2*t]);
        rotate([90,0,0])
        translate([h/2-t,-h/2+w/2+t/2,0])
            Hole(hole_w,hole_h);
    }
}

Holder();

translate([-h,0,0])
mirror([1,0,0]) 
    Holder();

Zelf heb ik (nog 👀) geen 3D printer, maar een vriend gelukkig wel. Vanuit OpenSCAD kon ik een STL bestand maken, dat hij probleemloos kon printen. De clips bleken perfect te passen.

Het vastschroeven van de clip op het plankje
De schapdragers waar de clip op moet vastklikken

Het plankje zit nu weer perfect op z’n plaats, hopelijk voor vele jaren. De oorspronkelijke clips zijn van een taai plastic, wellicht ABS. Het is nog afwachten of de nieuwe uit PLA even duurzaam zijn, maar de belasting is ook beperkt. Ik heb er alvast goeie hoop op.

Plankje op z’n plaats

Als je zelf aan de slag wil, kan je hieronder de OpenSCAD file en de STL downloaden. Het ontwerp is volledig geparametriseerd, dus kan aangepast worden aan je omstandigheden.