Handboek · hoofdstuk 37Parametrisch ontwerpen
Een ontwerp als functie: verander één maat en de rest volgt
In Fundamental tekende je de sensorhouder met vaste maten: wie een andere sensor kiest, begint opnieuw. Een parametrisch ontwerp legt vast hoe de maten van elkaar afhangen. Je verandert de printplaat, en de doos, het deksel, de gaten, de massa en de werktekening passen zich aan. Je leert schetsen met beperkingen, bewerkingen die op elkaar bouwen, toleranties en verbindingen die werken op een 3D-printer, en je ontwerpt de regelkast van de klimaatmodule als een functie, in Python en in OpenSCAD.

- Je kan invoermaten en afgeleide maten onderscheiden en hun afhankelijkheden als formules schrijven.
- Je kan een schets volledig bepalen met geometrische beperkingen en maten, en de vrijheidsgraden tellen.
- Je kan extruderen, uitsparen, draaien, afronden, afschuinen, uithollen en patronen gebruiken, en met de regel van Pappus het volume van een draaideel berekenen.
- Je kan speling-, overgangs- en perspassing uitleggen, gaten maatvoeren voor je eigen printer en een tolerantiestapeling in het slechtste geval doorrekenen.
- Je kan een schroef-, klik- of persverbinding kiezen en een klikvinger dimensioneren met de toegelaten rek.
- Je kan een parametrisch model in Python of OpenSCAD schrijven dat maten, massa, printtijd en prijs berekent en ontwerpregels controleert.
- Je kan een ontwerpruimte verkennen, varianten vergelijken en een werktekening afleiden uit dezelfde parameters.
Een lichtpen die meedenkt
In 1963 beschreef Ivan Sutherland in zijn doctoraat aan het MIT een programma dat hij Sketchpad noemde. Hij tekende met een lichtpen rechtstreeks op het scherm van de TX-2, een grote experimentele computer van het Lincoln Laboratory. Nieuw was niet dat je kon tekenen, maar wat de computer met de tekening deed. Je kon zeggen dat twee lijnen evenwijdig moesten zijn, dat een hoek recht was of dat twee lijnen even lang waren, en Sketchpad zocht zelf een tekening die aan al die voorwaarden voldeed. Je kon ook één 'moedertekening' maken en er kopieën van plaatsen: veranderde je de moeder, dan veranderden alle kopieën mee. Sutherland kreeg er in 1988 de Turingprijs voor, de hoogste onderscheiding in de informatica.
Het duurde nog een kwarteeuw voor het idee in de fabrieken aankwam. Eind jaren 1980 bracht het Amerikaanse bedrijf PTC het programma Pro/ENGINEER uit: een onderdeel is er een reeks bewerkingen met maten en beperkingen, en wie één maat verandert, laat het hele model opnieuw opbouwen. Vandaag werkt bijna elk CAD-programma zo, ook de gratis programma's FreeCAD (sinds 2002) en OpenSCAD (sinds 2010), waarin je een onderdeel schrijft als een programma.
De klimaatmodule heeft kasten, klemmen, houders en kapjes nodig, en elk ervan verandert nog: een andere printplaat, een extra kabel, een dikkere wand. Wie parametrisch ontwerpt, past één getal aan in plaats van alles opnieuw te tekenen, en maakt minder fouten. In dit hoofdstuk wordt de regelkast RK-1 zo'n model; in het integratieproject (hoofdstuk 40) bouw je de module ermee.

Wat je al weet, en wat parametrisch verandert
Je kent de ontwerpcyclus, je kan tekenen in aanzichten en je hebt in CAD een sensorhouder gemaakt. Wat er nu bij komt, is één idee: een ontwerp is een functie (hoofdstuk 4). De invoer is een handvol invoermaten of parameters: hoe groot is de printplaat, hoe hoog het hoogste onderdeel, hoe dik de wand. De uitvoer is al de rest: de binnen- en buitenmaten, de plaats van de gaten, de massa, de printtijd, en of het ontwerp aan de regels voldoet.
| wat je al kan | waar | wat er nu bij komt |
|---|---|---|
| een programma van eisen: moet, wens, meetbaar | F30 | eisen worden regels die het model zelf controleert |
| aanzichten, maatvoering, stuklijst | F31 | een werktekening die volgt uit de parameters |
| CAD in de browser, 45°-regel, speling 0,2 mm, printtijd uit het volume | F32 | beperkingen, bewerkingsboom, tolerantiestapeling |
| een functie: de uitvoer hangt af van de invoer | I4 | een ontwerp als functie van een paar maten |
| zwaartepunt van samengestelde vormen | I10 | het volume van een draaideel (regel van Pappus) |
| PETG in de kas, Tg minstens 15 °C boven de hoogste temperatuur | I17 | het materiaal van de regelkast |
| Python-functies met standaardwaarden, woordenboeken | I28 | behuizing() geeft alle maten in één woordenboek |
Het voorbeeld van dit hoofdstuk is de regelkast RK-1 van de klimaatmodule: een doos voor het stuurdeel, de Arduino Mega 2560 met een shield, de klok en de SD-kaart (hoofdstuk 30) op een montageplaat. Het vermogensdeel met de MOSFETs, de H-bruggen en de zekeringen zit in een aparte kast. De regelkast hangt in de kweekruimte, waar het warm en vochtig is.
Van invoermaten naar alle maten van de regelkast
De montageplaat van de regelkast is 140 × 90 × 3 mm. Het hoogste onderdeel (Mega met shield) staat 28 mm boven de plaat. De plaat rust op afstandsbussen van 6 mm; rond de plaat blijft 1,0 mm speling; boven de onderdelen 12 mm ruimte voor kabels. Wand en bodem zijn 2,0 mm, het deksel 2,0 mm. Schrijf de afhankelijkheden als formules en bereken de binnen- en buitenmaten.
- plaat_l = 140, plaat_b = 90, plaat_d = 3, comp_h = 28 (mm)
- bus_h = 6, speling = 1,0, boven = 12, wand = 2,0, deksel_d = 2,0 (mm)
- formules en waarden voor de binnen- en buitenmaten, de hoogte van de bak en de totale hoogte
- 1Lengte en breedte. Binnen komt de plaat met aan elke kant de speling: en . Buiten komt er aan elke kant een wand bij: , .
- 2Hoogte. De binnenhoogte is een ketting van maten van onder naar boven: .
- 3Bak en totaal. De bodem is even dik als de wand: ; met het deksel erbij .
- 4Welke maten zijn invoer? Alleen de negen gegeven maten. Elke andere maat is een afgeleide maat: je typt ze nooit in, je berekent ze.
Schetsen met beperkingen
Elk CAD-model begint met een schets: een vlakke tekening die je daarna optrekt of draait. In een parametrisch programma teken je de schets eerst ruw, en leg je daarna vast wat je bedoelt met beperkingen (constraints). Er zijn twee soorten:
- Geometrische beperkingen leggen de vorm vast zonder getallen: deze lijn is horizontaal, die twee lijnen zijn evenwijdig, deze boog raakt aan die lijn, de vier stralen zijn gelijk. Ze vangen de ontwerpintentie: wat moet er altijd waar blijven, welke maat je ook kiest?
- Maatbeperkingen leggen getallen vast: een afstand, een straal, een hoek. In een goed model verwijst zo'n maat naar een parameter (
buiten_l) in plaats van naar een getal (146).
| beperking | betekenis | neemt weg |
|---|---|---|
| samenvallend | twee punten liggen op elkaar (het eind van een lijn op het begin van de volgende) | 2 |
| horizontaal / verticaal | een lijn ligt waterpas of loodrecht | 1 |
| evenwijdig / loodrecht | twee lijnen maken 0° of 90° | 1 |
| raaklijn | een lijn en een boog gaan zonder knik in elkaar over | 1 |
| gelijk | twee lengtes of twee stralen zijn gelijk | 1 |
| symmetrisch | twee punten liggen gespiegeld rond een lijn | 2 |
| maat (afstand, straal, hoek) | een getal, of beter: een parameter | 1 |
| vastzetten | een punt ligt op een vaste plaats (de oorsprong) | 2 |
Een schets die nog kan bewegen, heeft vrijheidsgraden. Elke beperking neemt er één of meer weg. Het doel is een volledig bepaalde schets: nul vrijheidsgraden. FreeCAD kleurt zo'n schets groen. Te weinig beperkingen en de schets verspringt als je een parameter verandert; te veel of tegenstrijdige (overbepaald) en het programma weigert.
Zet eerst de geometrische beperkingen (horizontaal, symmetrisch, raaklijn), dan de maten. Leg een symmetrische schets rond de oorsprong: dan blijft het midden in het midden, welke lengte je ook kiest, en kan een latere bewerking (een gat in het midden) daarop steunen.
Vrijheidsgraden tellen: is de schets bepaald?
(a) Een rechthoek wordt getekend als vier punten met vier lijnen ertussen. Hoeveel vrijheidsgraden heeft hij, en welke beperkingen maken hem volledig bepaald? (b) De buitenomtrek van de regelkast bestaat uit vier lijnen en vier bogen. Tel de vrijheidsgraden en de beperkingen.
- een punt in het vlak: 2 vrijheidsgraden (x en y)
- een lijn: 4 (twee eindpunten); een boog: 5 (middelpunt 2, straal 1, begin- en eindhoek 2)
- de tabel met beperkingen
- het aantal vrijheidsgraden vóór en na de beperkingen
- 1(a) De rechthoek als vier punten: vrijheidsgraden. Twee horizontale en twee verticale lijnen nemen er 4 weg: over blijven 4, namelijk verschuiven in en in , breedte en hoogte (figuur). Twee maten (146 en 96) nemen er 2 weg, de hoek op de oorsprong vastzetten nog 2: .
- 2(b) Vier lijnen en vier bogen: vrijheidsgraden. De acht plaatsen waar een lijn en een boog elkaar raken, krijgen elk 'samenvallend' (2) en 'raaklijn' (1): . Over: 12.
- 3Twee horizontale en twee verticale lijnen: nog 8 over (plaats 2, breedte, hoogte en vier stralen). 'Gelijk' tussen de vier stralen: 3 weg, nog 5.
- 4Drie maten (, , ) en het middelpunt vast op de oorsprong (symmetrisch rond de twee assen, of één punt vastzetten): .
Bewerkingen: extruderen, draaien, afronden
Uit een schets maak je een lichaam met een bewerking (feature). De twee basisbewerkingen zijn extruderen (de schets optrekken over een afstand, zoals een koekjesvorm door het deeg) en draaien (een profiel rond een as draaien, zoals op een draaibank). Daarna werk je het lichaam af: materiaal weghalen, ribben afronden of afschuinen, uithollen tot een wand, herhalen in een patroon.
| bewerking | wat ze doet | in de regelkast |
|---|---|---|
| extruderen (pad) | een schets over een afstand optrekken tot een lichaam | de buitenvorm, 51 mm hoog |
| uitsparen (pocket) | een schets weghalen uit een lichaam | de wartelgaten, het venster |
| draaien (revolve) | een profiel rond een as draaien | de afstandsbussen, een wartel |
| afronden (fillet) | een rib vervangen door een boog | de verticale hoeken, R4 |
| afschuinen (chamfer) | een rib schuin afsnijden | de onderrand op het printbed |
| uithollen (shell) | een massief lichaam hol maken met een vaste wanddikte | de bak, wand 2 mm |
| patroon (array) | een bewerking herhalen op een lijn, een raster of een cirkel | drie wartelgaten, vier bussen |
| spiegelen | een bewerking spiegelen rond een vlak | de twee klikvingers |
Het volume van een extrusie is eenvoudig: oppervlakte van de schets maal de hoogte. Voor een afgeronde rechthoek met straal gaat er in elke hoek een stukje af, samen een vierkant van min een cirkel:
Een afronding langs de onderste rand begint op het bed als een bijna horizontale overhang: de eerste lagen hangen in de lucht. Een afschuining van 45° print zonder problemen (F32). Rond dus de verticale ribben en de bovenrand af, en schuin de onderrand af.
Het volume van een draaideel: de regel van Pappus
Een afstandsbus van de regelkast is een draaideel: een buisje Ø 7 mm met een gat Ø 2,5 mm, 6 mm hoog, met onderaan een voetje van 45° (2 mm breed en 2 mm hoog) dat de bus steviger op de bodem zet. Bereken het volume met de regel van Pappus en controleer met de formules van een cilinder.
- profiel: rechthoek van tot , hoogte
- driehoek met rechthoekszijden 2 mm aan de voet
- regel van Pappus:
- in mm³
- 1Waarom de regel werkt. Elk stukje van het profiel op afstand van de as beschrijft een ring met volume . Tel je alle ringen op, dan krijg je , met de afstand van het zwaartepunt tot de as (hoofdstuk 10).
- 2Rechthoek. , .
- 3Driehoek. ; het zwaartepunt ligt op een derde van de rechthoekszijde: .
- 4Samen. .
De bewerkingsboom en de spreadsheet
Een CAD-model onthoudt niet de vorm, maar de weg ernaartoe: de bewerkingsboom. Elke bewerking bouwt op de vorige. Verander je een parameter, dan voert het programma de hele boom opnieuw uit, van boven naar onder. Zo werkt het in FreeCAD:
- Maak een spreadsheet met de parameters, en geef elke cel een naam (alias), bv.
plaat_l. Afgeleide maten zijn formules in de spreadsheet:=plaat_l + 2*speling + 2*wand. - Teken de schets van de buitenomtrek, symmetrisch rond de oorsprong, en typ in de maatbeperking
=Spreadsheet.buiten_lin plaats van 146. - Extrudeer tot
bak_h, hol uit metwand, en zet de bussen en de wartelgaten met schetsen die ook naar de spreadsheet verwijzen. - Test het model: zet
plaat_lop 100 en op 200. Klopt alles nog? Dan zit de ontwerpintentie in het model.
De volgorde doet ertoe. Rond je de hoeken af vóór het uithollen, dan krijgt de binnenkant vanzelf de juiste straal (). Zet je de wartelgaten op 30, 60 en 90 mm van de rand, dan staan ze bij een kleinere kast buiten de wand; zet je ze op , dan verdelen ze zich altijd gelijk.
Een model met ingetypte getallen ziet er even goed uit, tot iemand een maat verandert. Dan blijft een gat op 60 mm staan terwijl de kast korter werd, of verwijst een afronding naar een rib die niet meer bestaat. Dat laatste heet het topologische naamprobleem: een latere bewerking hangt aan een vlak of een rib van een eerdere, en die krijgt na de wijziging een ander nummer. FreeCAD heeft dat sinds versie 1.0 (2024) grotendeels opgelost, maar de regel blijft: verwijs naar schetsen, vlakken van de oorsprong en parameters, niet naar losse ribben.
Het model in Python: behuizing.py
Een parametrisch model is een functie, dus je kan het ook gewoon programmeren (hoofdstuk 28). De functie behuizing() krijgt de invoermaten, met standaardwaarden voor alles wat meestal niet verandert, en geeft een woordenboek terug met alle afgeleide maten, de volumes, de massa, de printtijd en de prijs. Een tweede functie, controleer(), toetst de ontwerpregels. Onderaan rekent het programma vier varianten door.
# behuizing.py - een parametrische behuizing: alle maten volgen uit een handvol invoermatenimport math RHO = 1.27 # g/cm³, PETG (hoofdstuk 17)DEBIET = 3.0 # mm³/s, gemiddeld debiet van de printer (rekenwaarde)PRIJS = 20.0 # euro per kg filamentBED = (220, 220, 250) # bouwvolume van de printer in mm (rekenwaarde) def hoekvlak(l, b, r): """Oppervlakte (mm²) van een rechthoek l x b met vier afgeronde hoeken met straal r.""" return l * b - (4 - math.pi) * r ** 2 def ring(d_buiten, d_binnen, h): """Volume (mm³) van een buisje: een cilinder met een gat erin.""" return math.pi / 4 * (d_buiten ** 2 - d_binnen ** 2) * h def behuizing(plaat_l, plaat_b, comp_h, wand=2.0, speling=1.0, bus_h=6.0, plaat_d=3.0, boven=12.0, hoek_r=4.0, deksel_d=2.0, lip_h=5.0, lip_b=1.6, lip_speling=0.3, wartels=3, wartel_d=12.5): """Alle maten (mm), de volumes (mm³), de massa (g), de printtijd (h) en de prijs (euro).""" m = {} m["binnen_l"] = plaat_l + 2 * speling m["binnen_b"] = plaat_b + 2 * speling m["binnen_h"] = bus_h + plaat_d + comp_h + boven m["buiten_l"] = m["binnen_l"] + 2 * wand m["buiten_b"] = m["binnen_b"] + 2 * wand m["bak_h"] = m["binnen_h"] + wand # de bodem is even dik als de wand m["totaal_h"] = m["bak_h"] + deksel_d r_binnen = max(hoek_r - wand, 0.0) bak = (hoekvlak(m["buiten_l"], m["buiten_b"], hoek_r) * m["bak_h"] - hoekvlak(m["binnen_l"], m["binnen_b"], r_binnen) * m["binnen_h"]) bak += 4 * ring(7.0, 2.5, bus_h) # vier afstandsbussen, gat voor een schroef M3 bak -= wartels * ring(wartel_d, 0, wand) # gaten voor de kabelwartels lip_l = m["binnen_l"] - 2 * lip_speling lip_bb = m["binnen_b"] - 2 * lip_speling r_lip = max(r_binnen - lip_speling, 0.0) deksel = hoekvlak(m["buiten_l"], m["buiten_b"], hoek_r) * deksel_d deksel += (hoekvlak(lip_l, lip_bb, r_lip) - hoekvlak(lip_l - 2 * lip_b, lip_bb - 2 * lip_b, max(r_lip - lip_b, 0.0))) * lip_h m["volume_bak"], m["volume_deksel"] = bak, deksel m["massa"] = (bak + deksel) / 1000 * RHO m["printtijd"] = (bak + deksel) / DEBIET / 3600 m["prijs"] = m["massa"] / 1000 * PRIJS return m def controleer(m, wand=2.0, wartels=3, wartel_d=12.5, lip_speling=0.3): """De ontwerpregels: geeft een lijst met wat niet klopt (een lege lijst = in orde).""" fout = [] if wand < 1.2: fout.append("wand dunner dan drie lijnen van 0,4 mm") if max(m["buiten_l"], m["buiten_b"]) > BED[0] or m["bak_h"] > BED[2]: fout.append("past niet op de printer") if wartel_d + 10 > m["bak_h"]: fout.append("wand te laag voor het wartelgat") if wartels * (wartel_d + 10) > m["buiten_b"]: fout.append("te veel wartels voor de korte zijde") if lip_speling < 0.3: fout.append("deksel kan klemmen") return fout varianten = { # naam: (plaat_l, plaat_b, comp_h, wartels) "meetkas (Uno)": (68.6, 53.4, 15, 2), "regelkast RK-1": (140, 90, 28, 3), "relaiskast": (100, 60, 20, 4), "alles samen": (220, 150, 30, 5),}print(f"{'variant':15} {'buiten (mm)':>17} {'massa':>7} {'print':>6} {'prijs':>6} regels")for naam, (l, b, h, n) in varianten.items(): m = behuizing(l, b, h, wartels=n) fouten = controleer(m, wartels=n) maten = f"{m['buiten_l']:.0f} x {m['buiten_b']:.0f} x {m['totaal_h']:.0f}" print(f"{naam:15} {maten:>17} {m['massa']:5.0f} g {m['printtijd']:4.1f} h {m['prijs']:5.2f} {'; '.join(fouten) or 'in orde'}")Uitvoer:
variant buiten (mm) massa print prijs regels meetkas (Uno) 75 x 59 x 40 49 g 3.5 h 0.97 in orde regelkast RK-1 146 x 96 x 53 134 g 9.8 h 2.69 in orde relaiskast 106 x 66 x 45 73 g 5.3 h 1.46 te veel wartels voor de korte zijde alles samen 226 x 156 x 55 283 g 20.7 h 5.67 past niet op de printer
Eén functie, vier kasten. De meetkas-Uno en RK-1 zijn in orde. De relaiskast met vier wartels faalt: vier gaten van 12,5 mm met elk 5 mm materiaal ernaast vragen 90 mm, en de korte zijde is maar 66 mm. De kast 'alles samen' is 226 mm lang en past niet op een bed van 220 mm. Het programma vindt die fouten voor je iets print. De massa volgt uit het volume maal de dichtheid: de wanden van 2 mm print de slicer massief (vijf lijnen van 0,4 mm), dus vulling telt hier niet mee. RK-1: bak 94 g, deksel 40 g.
De werktekening, de stuklijst en de figuren van dit hoofdstuk zijn met dezelfde functie gemaakt. Zo kunnen tekening en berekening nooit uit elkaar lopen: verander een parameter en alles volgt.
Ontwerpregels: wat de printer en de montage vragen
Een parametrisch model kan elke maat aan, ook onzin: een wand van 0,3 mm of een kast van een halve meter. Daarom hoort bij het model een lijst ontwerpregels: grenzen die uit de printer, het materiaal en de montage komen. Een deel ken je uit hoofdstuk 32 van Fundamental; andere volgen verder in dit hoofdstuk.
| regel | waarde | waarom |
|---|---|---|
| wanddikte | minstens 1,2 mm (3 lijnen van 0,4 mm); een kast die je vastschroeft en vastpakt: 2,0 mm | F32: minstens twee lijnen; stijfheid groeit met de dikte tot de derde |
| bodem | even dik als de wand | gelijke afkoeling, geen kromtrekken |
| speling rond een printplaat | 1,0 mm per kant | printplaten zijn niet exact; de plaat moet er schuin in kunnen |
| gat voor een pen of schroef | 0,2 mm groter tekenen dan nodig | de printer maakt gaten 0,2 mm kleiner (F32) |
| deksel in bak | 0,3 mm speling per kant | twee geprinte delen: stapeling van afwijkingen (verder in dit hoofdstuk) |
| overhang, bruggen | hoogstens 45° van de verticale; bruggen tot ±10 mm | anders support (F32) |
| rand op het printbed | afschuinen, niet afronden | een afronding onderaan begint met een bijna horizontale overhang |
| wartelgat | Ø 12,5 voor een wartel M12; minstens 5 mm wand rondom | de moer en de dichting moeten plat aanliggen |
| schroefbus voor een zelftappende M3 | gat Ø 2,5, bus Ø 7 | de schroef snijdt zelf draad; genoeg materiaal rond het gat |
| klikvinger | rek hoogstens 2 % | geprint PETG breekt eerst tussen de lagen |
| bouwvolume | 220 × 220 × 250 mm (rekenwaarde voor de schoolprinter) | groter: in delen ontwerpen |
| materiaal | PETG, lichte kleur | vochtige, warme kweekruimte (I17) |
Sommige regels zijn harde grenzen (het bouwvolume), andere vuistregels (2 mm voor een kast die je vastpakt). Schrijf bij elke regel waar ze vandaan komt: zo weet de volgende ontwerper of hij ze mag aanpassen. In controleer() staan de regels die je met de maten alleen kan toetsen; de printrichting en de keuze van de verbinding blijven een beslissing van de ontwerper.
De bak print je met de bodem op het bed, het deksel met de buitenkant op het bed. Dan staan de klikvingers van het deksel rechtop: de lagen liggen dwars op de vinger, de zwakke richting (F32, I17). Daarom rekenen we met een voorzichtige toegelaten rek en een afronding aan de voet van de vinger.
Toleranties en passingen
Geen enkele maat wordt precies zoals getekend. Een tolerantie zegt hoeveel ze mag afwijken. Bij twee delen die in elkaar passen, bepaalt de combinatie van hun toleranties de passing:
- spelingspassing: het gat is altijd groter dan de as; ze draaien of schuiven;
- overgangspassing: soms speling, soms een beetje overmaat; nauwkeurig centreren;
- perspassing: de as is altijd dikker dan het gat; ze zitten vast zonder schroef of lijm.
In de metaalbewerking beschrijft de ISO-norm passingen met een letter en een cijfer: een hoofdletter voor het gat, een kleine letter voor de as. H7/g6 voor Ø 8 mm betekent: het gat ligt tussen 8,000 en 8,015 mm, de as tussen 7,986 en 7,995 mm, dus 5 tot 29 µm speling. Dat is honderd keer fijner dan wat een FDM-printer haalt: daar werk je met tienden van een millimeter.
Voor je eigen printer maak je daarom een eigen passingstabel, met een testprint (F32). Met de metingen van dat testplaatje:
| passing | teken het gat | testplaatje F32 (pen 5,00 mm) | voorbeeld |
|---|---|---|---|
| pers (vast, niet meer los) | getekend 5,2: gemeten 5,01, past met duwen | een metalen pen in een scharnier | |
| glij (draait of schuift, weinig speling) | getekend 5,4: gemeten 5,19, schuift | een as in een lager van kunststof | |
| ruim (vrije doorgang) | of meer | getekend 5,6: gemeten 5,40, schuift ruim | een schroef door een deksel |
Die tabel geldt voor een metalen pen in een geprint gat. Passen twee geprinte delen in elkaar, dan wijken ze allebei af: dat rekent het volgende voorbeeld door.
Past het deksel? Een tolerantiestapeling
De lip van het deksel moet in de bak passen, zonder te klemmen en zonder veel te rammelen. De printer maakt binnenmaten (een holte, een gat) gemiddeld 0,2 mm kleiner; buitenmaten komen gemiddeld juist uit. Daarbovenop wijkt elke maat toevallig tot 0,1 mm af (rekenwaarden). Welke speling per kant moet je tekenen: 0,2 of 0,3 mm?
- binnenmaat van de bak getekend: 142,0 mm
- lip getekend: met de speling per kant
- holte: −0,2 mm ± 0,1 mm; buitenmaat: ± 0,1 mm
- de kleinste en de grootste totale speling voor en
- 1Bak. Na het printen ligt de binnenmaat tussen en .
- 2Lip met . Getekend 141,6 mm, geprint tussen 141,5 en 141,7 mm.
- 3Slechtste gevallen. Kleinste speling: kleinste bak min grootste lip . Grootste speling: . Bij een ongelukkige print klemt het deksel.
- 4Lip met . Getekend 141,4 mm, geprint 141,3 tot 141,5 mm: speling tot , dus 0,1 tot 0,3 mm per kant.
Verbindingen: schroef, klik en pers
Een kast bestaat uit delen, en de verbinding bepaalt hoe je ze monteert, hoe vaak je ze kan openen en of je ze later nog kan herstellen of scheiden voor recyclage (hoofdstuk 38).
| verbinding | los en vast | extra onderdeel | sterk genoeg voor | let op |
|---|---|---|---|---|
| zelftappende schroef in een bus | enkele keren; daarna slijt de draad | schroef | montageplaat, deksels die zelden open gaan | bus Ø ±2,5 × de schroef |
| inzetmoer (messing, warm ingedrukt) | honderden keren | inzetmoer + bout | een deksel dat vaak open moet | gat volgens de fabrikant, +0,2 voor de printer |
| moer in een zeskantige holte | vaak | moer + bout | zware delen | holte net iets ruimer dan de moer |
| klikvinger (snap-fit) | tientallen keren, als de rek klein blijft | geen | lichte deksels, kapjes | vinger liefst in de lengte van de lagen |
| perspassing | eigenlijk niet | pen of lager | assen, scharnierpennen | overmaat klein houden: een print scheurt |
| lijmen | niet | lijm | delen die nooit meer uit elkaar moeten | slecht voor herstel en recyclage (hoofdstuk 38) |
In RK-1 zit de montageplaat met vier zelftappende schroeven M3 in de afstandsbussen: die gaat zelden los. Het deksel moet vaak open (een sensor vervangen, een SD-kaart wisselen) en klikt vast met twee klikvingers: geen schroeven die in de kweekruimte verloren gaan, geen gereedschap nodig. Moet de kast later waterdicht worden, dan komen er vier inzetmoeren en een rubberen dichting.
Hoe minder losse onderdelen, hoe sneller de montage en hoe minder er misloopt. Vraag bij elke schroef: kan dit ook met een klik, een uitsparing of een vorm die zichzelf op zijn plaats houdt? En zorg dat een onderdeel maar op één manier past (een schuine hoek, een nokje): dan kan niemand het verkeerd monteren.
Een klikvinger dimensioneren
Het deksel van RK-1 krijgt twee klikvingers: 1,6 mm dik (zoals de lip) en 8 mm breed, met een haak van 0,8 mm. Bij het monteren buigt de vinger 0,8 mm door. Hoe lang moet de vinger minstens zijn als de rek hoogstens 2 % mag zijn?
- dikte , doorbuiging
- toegelaten rek
- klikvinger met constante dikte:
- , de gekozen lengte en haar rek
- 1De formule. Een vinger die aan één kant vastzit en aan het uiteinde doorbuigt, wordt aan de voet het sterkst uitgerekt. Die rek groeit met de dikte en de doorbuiging, en daalt met het kwadraat van de lengte: een twee keer zo lange vinger rekt vier keer minder.
- 2Omvormen naar . .
- 3Kiezen met marge. We nemen : .
- 4De prijs van een lange vinger. De kracht om de vinger 0,8 mm te buigen (en dus de houdkracht) daalt met : van 10 naar 12 mm is , 42 % minder. Een klik die te makkelijk gaat, houdt ook slecht.
Hoe lang moet een klikvinger zijn?
Vanaf welke lengte overleeft een geprinte klikvinger van 1,6 mm dikte twintig klikken, en hoe verandert de houdkracht?
- 3D-printer met PETG
- proefstrook met vijf klikvingers (6, 8, 10, 12 en 14 mm lang, 8 mm breed, 1,6 mm dik, haak 0,8 mm) en een raampje met vijf vensters
- keukenweegschaal (of een veerunster tot 50 N)
- loep
- 1Print de proefstrook (proefstrook.scad) met de voet plat op het bed: de vingers staan dan rechtop, zoals de klikvingers van het deksel. Print het raampje apart.
- 2Schuif het raampje langs de vingers tot elke haak in zijn venster klikt, en duw de haken weer los; doe dat twintig keer. Kijk na elke vijf klikken met de loep naar de voet van de vinger: wordt hij wit (verstrekt)? Breekt hij?
- 3Duw na twintig klikken met de weegschaal zijdelings tegen de haak tot hij uit zijn venster loskomt (0,8 mm opzij), en noteer de grootste kracht (1 kg op de weegschaal is ongeveer 9,8 N).
- 4Bereken voor elke vinger de rek met de formule van het vorige blad en vergelijk.
Een voorbeeld van een meetreeks (PETG, lagen van 0,2 mm):
| L (mm) | rek ε | na 20 klikken | kracht om los te duwen |
|---|---|---|---|
| 6 | 5,3 % | breekt bij de eerste klik | – |
| 8 | 3,0 % | wit na 3 klikken, breekt na 9 | – |
| 10 | 1,9 % | heel licht wit aan de voet | ±14 N |
| 12 | 1,3 % | geen sporen | ±8 N |
| 14 | 1,0 % | geen sporen | ±5 N |
De rek aan de voet groeit met : bij 6 en 8 mm ligt ze ver boven wat de laaghechting verdraagt, en de vinger scheurt tussen twee lagen. Rond 2 % begint het materiaal te verstrekken (het wordt wit), daaronder blijft het elastisch. De kracht om de haak 0,8 mm opzij te duwen daalt met : van 10 naar 14 mm valt ze terug tot ongeveer van de kracht bij 10 mm, wat de meting bevestigt. Omdat de bovenkant van de haak vlak is, gaat het deksel niet los door eraan te trekken: je opent het door de haak door het venster naar binnen te duwen. Voor RK-1 is 12 mm een goede keuze: veilig, en de haak blijft stevig genoeg in zijn venster zitten.
Hoe dik moet de wand? De ontwerpruimte verkennen
De regelkast moet stevig aanvoelen als je ze vastpakt en tegen de wand schroeft, maar zo licht en snel te printen als redelijk is. Vergelijk wanddiktes van 1,0 tot 3,2 mm met behuizing.py. De buigstijfheid van een wand is evenredig met haar dikte tot de derde (waarom: Expert, hoofdstuk 12).
- behuizing.py
- stijfheid ; referentie
- regel: wand minstens 1,2 mm
- massa, printtijd en relatieve stijfheid per wanddikte, en een keuze
- 1Programma. Een lus over de wanddiktes, met dezelfde functie:
# verken.py - de wanddikte van de regelkast: massa, printtijd en stijfheid naast elkaar from behuizing import behuizing, controleer print("wand massa printtijd stijfheid regels") for wand in [1.0, 1.2, 1.6, 2.0, 2.4, 2.8, 3.2]: m = behuizing(140, 90, 28, wand=wand) stijf = (wand / 2.0) ** 3 # buigstijfheid van een wand: evenredig met de dikte tot de derde fout = controleer(m, wand=wand) print(f"{wand:4.1f} {m['massa']:6.0f} g {m['printtijd']:7.1f} h {stijf:9.2f} {'; '.join(fout) or 'in orde'}")wand massa printtijd stijfheid regels 1.0 86 g 6.2 h 0.12 wand dunner dan drie lijnen van 0,4 mm 1.2 95 g 6.9 h 0.22 in orde 1.6 115 g 8.4 h 0.51 in orde 2.0 134 g 9.8 h 1.00 in orde 2.4 155 g 11.3 h 1.73 in orde 2.8 175 g 12.7 h 2.74 in orde 3.2 195 g 14.3 h 4.10 in orde
- 2Massa en tijd groeien ongeveer evenredig met de dikte: elke 0,4 mm extra kost ±20 g en ±1,5 h.
- 3Stijfheid groeit met de derde macht: 1,6 mm is maar half zo stijf als 2,0 mm (); 2,4 mm is 1,73 keer zo stijf. Onder 1,2 mm faalt de regel.
- 4Keuze. 2,0 mm: stevig genoeg om vast te pakken, 134 g en 9,8 h. Moet het stijver, dan helpt een ribbe langs de lange wand meer dan een dikkere wand overal.
Varianten en de ontwerpruimte
De ontwerpruimte is de verzameling van alle parametercombinaties die je kan kiezen. De regels snijden er stukken af. In de figuur staan de twee belangrijkste invoermaten van de regelkast, lengte en breedte van de montageplaat, tegen elkaar uit. De lijnen verbinden kasten met dezelfde massa, zoals hoogtelijnen op een kaart. De gekleurde stroken zijn verboden: te lang of te breed voor het bed, of te smal voor drie wartels naast elkaar.
Een variant is één punt in die ruimte. Met één model maak je een hele familie:
| variant | plaat (mm) | buiten (mm) | massa | printtijd | regels |
|---|---|---|---|---|---|
| meetkas (Uno) | 68,6 × 53,4 | 75 × 59 × 40 | 49 g | 3,5 h | in orde |
| regelkast RK-1 | 140 × 90 | 146 × 96 × 53 | 134 g | 9,8 h | in orde |
| relaiskast | 100 × 60 | 106 × 66 × 45 | 73 g | 5,3 h | te veel wartels voor de korte zijde |
| alles samen | 220 × 150 | 226 × 156 × 55 | 283 g | 20,7 h | past niet op de printer |
Zo werken ook fabrikanten van behuizingen, profielen of kasten: één parametrisch model, een tabel met varianten (in FreeCAD een spreadsheet met een kolom per variant, in OpenSCAD een lijst met voorinstellingen), en een tekening per variant die automatisch volgt. Vast leggen welke variant waar in het project zit, heet configuratiebeheer (Expert, hoofdstuk 45).
Hetzelfde model in OpenSCAD
In OpenSCAD schrijf je het onderdeel als een programma: bovenaan de parameters, dan de afgeleide maten, dan de vorm als bewerkingen op lichamen. difference() haalt weg (uitsparen, uithollen), hull() spant een vorm rond andere vormen (hier vier cilinders: een afgeronde rechthoek), een for-lus maakt een patroon. Met F6 berekent OpenSCAD het model, met F7 bewaar je een STL voor de slicer. Het venster Customizer toont de parameters als schuifjes.
// rk1_bak.scad - regelkast RK-1 van de klimaatmodule: de bak, parametrischplaat_l = 140; // montageplaat (mm)plaat_b = 90;comp_h = 28; // hoogste onderdeel boven de montageplaatwand = 2.0;speling = 1.0; // rond de montageplaat, per kantbus_h = 6; // afstandsbussen onder de montageplaatplaat_d = 3;boven = 12; // vrije ruimte voor kabelshoek_r = 4;wartels = 3;wartel_d = 12.5; // gat voor een wartel M12 binnen_l = plaat_l + 2 * speling;binnen_b = plaat_b + 2 * speling;binnen_h = bus_h + plaat_d + comp_h + boven;buiten_l = binnen_l + 2 * wand;buiten_b = binnen_b + 2 * wand;bak_h = binnen_h + wand;e = wand + speling + 5; // middelpunt van een bus vanaf de buitenrand module afgerond(l, b, h, r) { // blok l x b x h met afgeronde verticale ribben hull() for (x = [r, l - r], y = [r, b - r]) translate([x, y, 0]) cylinder(r = r, h = h, $fn = 48);} difference() { afgerond(buiten_l, buiten_b, bak_h, hoek_r); translate([wand, wand, wand]) // uithollen: open aan de bovenkant afgerond(binnen_l, binnen_b, bak_h, max(hoek_r - wand, 0.01)); for (i = [1 : wartels]) // wartelgaten in de korte zijde x = 0 translate([-1, i * buiten_b / (wartels + 1), wand + binnen_h / 2]) rotate([0, 90, 0]) cylinder(d = wartel_d, h = wand + 2, $fn = 64);}for (x = [e, buiten_l - e], y = [e, buiten_b - e]) // vier afstandsbussen op de bodem translate([x, y, wand]) difference() { cylinder(d = 7, h = bus_h, $fn = 32); cylinder(d = 2.5, h = bus_h + 1, $fn = 24); }Vergelijk met behuizing.py: dezelfde parameters, dezelfde formules voor de afgeleide maten, dezelfde wartelposities . Het verschil: OpenSCAD maakt de vorm, Python rekent en controleert. Veel ontwerpers doen beide: een rekenprogramma dat de regels toetst en de parameters kiest, en een CAD-model dat ze gebruikt. Let op de kleine truc bij het uithollen: het binnenblok is even hoog als de bak maar begint op hoogte wand, dus steekt het er bovenaan uit en is de bak open.
OpenSCAD is ideaal voor onderdelen die je met formules beschrijft (kasten, klemmen, houders) en om varianten te maken. FreeCAD werkt met schetsen en muis, en is sterker voor vrije vormen en samenstellingen. Het idee is hetzelfde: parameters, afhankelijkheden, een boom van bewerkingen.
De werktekening uit dezelfde parameters
Een werktekening (F31) zegt de maker wat hij moet maken. Bij een parametrisch ontwerp volgt ze uit het model: de maten op de tekening zijn de uitkomsten van dezelfde formules. Toch kies je bewust welke maten je op de tekening zet: functionele maten, die er voor het gebruik toe doen (de afstand tussen de bussen, die de montageplaat moet volgen), in plaats van maten die toevallig uit de constructie volgen. Elke maat staat één keer op de tekening; wat volgt uit andere maten, laat je weg.
In de tekening van RK-1 staan de buitenmaten (146 × 96 × 51), de plaats van de bussen gemeten van de rand (8) en tussen de middelpunten (130 en 80), de wartelgaten met hun steek (24) en hoogte (26,5), het venster voor de klikvinger en de afronding. Een algemene tolerantie (±0,2 mm) staat onderaan; alleen de passende maten krijgen een eigen tolerantie. Het nummer HAB-I37-01 volgt de afspraak van F31.
De regelkast RK-1 in doorsnede
De gesloten kast, schematisch in doorsnede: bussen, wartel en klikvinger liggen in werkelijkheid niet in één vlak, maar staan hier samen om te tonen hoe alles in elkaar past.
- 1Wand en bodem, 2,0 mm
Vijf lijnen van 0,4 mm, massief geprint. Stijf genoeg om de kast vast te pakken; de bodem is even dik, zodat alles gelijk afkoelt.
- 2Afstandsbus en schroef
Bus Ø 7 mm, 6 mm hoog, met een gat Ø 2,5 mm: de zelftappende schroef M3 snijdt er zelf draad in. De bussen staan 8 mm van de rand, 5 mm van de hoek van de montageplaat.
- 3Montageplaat
140 × 90 × 3 mm, met de Mega, de klok en de SD-kaart erop. Rondom 1,0 mm speling: de plaat moet er schuin in kunnen.
- 4Mega met shield
Het hoogste onderdeel staat 28 mm boven de plaat: de parameter comp_h.
- 5Ruimte voor kabels
12 mm vrij boven de onderdelen (boven): voor de draden naar de klemmen en een lusje in elke kabel.
- 6Deksel met lip
2 mm dik, met een lip van 5 mm die 0,3 mm per kant ruimte heeft in de bak: de uitkomst van de tolerantiestapeling.
- 7Klikvinger
12 mm lang, 1,6 mm dik, met een haak van 0,8 mm die in een venster van 9 × 3 mm valt. Rek 1,3 %: veilig, ook voor een print.
- 8Kabelwartel M12
In een gat van Ø 12,5 mm; de wartel klemt de kabel en dicht het gat af. Drie wartels in de korte zijde, die naar onder hangt: druppels lopen van de kast weg.
Formules, regels en passingen
| symbool | betekenis | eenheid |
|---|---|---|
| invoermaat: lengte van de montageplaat | mm | |
| invoermaten | mm |
| symbool | betekenis | eenheid |
|---|---|---|
| lengte en breedte | mm | |
| hoekstraal | mm |
| symbool | betekenis | eenheid |
|---|---|---|
| afstand zwaartepunt van het profiel tot de as | mm | |
| oppervlakte van het profiel | mm² |
| symbool | betekenis | eenheid |
|---|---|---|
| dikte | mm | |
| doorbuiging (haak) | mm | |
| lengte | mm |
| symbool | betekenis | eenheid |
|---|---|---|
| totale speling | mm |
| symbool | betekenis | eenheid |
|---|---|---|
| 0 = volledig bepaald | – |
| passing | teken het gat | testplaatje F32 (pen 5,00 mm) | voorbeeld |
|---|---|---|---|
| pers (vast, niet meer los) | getekend 5,2: gemeten 5,01, past met duwen | een metalen pen in een scharnier | |
| glij (draait of schuift, weinig speling) | getekend 5,4: gemeten 5,19, schuift | een as in een lager van kunststof | |
| ruim (vrije doorgang) | of meer | getekend 5,6: gemeten 5,40, schuift ruim | een schroef door een deksel |
| regel | waarde | waarom |
|---|---|---|
| wanddikte | minstens 1,2 mm (3 lijnen van 0,4 mm); een kast die je vastschroeft en vastpakt: 2,0 mm | F32: minstens twee lijnen; stijfheid groeit met de dikte tot de derde |
| bodem | even dik als de wand | gelijke afkoeling, geen kromtrekken |
| speling rond een printplaat | 1,0 mm per kant | printplaten zijn niet exact; de plaat moet er schuin in kunnen |
| gat voor een pen of schroef | 0,2 mm groter tekenen dan nodig | de printer maakt gaten 0,2 mm kleiner (F32) |
| deksel in bak | 0,3 mm speling per kant | twee geprinte delen: stapeling van afwijkingen (verder in dit hoofdstuk) |
| overhang, bruggen | hoogstens 45° van de verticale; bruggen tot ±10 mm | anders support (F32) |
| rand op het printbed | afschuinen, niet afronden | een afronding onderaan begint met een bijna horizontale overhang |
| wartelgat | Ø 12,5 voor een wartel M12; minstens 5 mm wand rondom | de moer en de dichting moeten plat aanliggen |
| schroefbus voor een zelftappende M3 | gat Ø 2,5, bus Ø 7 | de schroef snijdt zelf draad; genoeg materiaal rond het gat |
| klikvinger | rek hoogstens 2 % | geprint PETG breekt eerst tussen de lagen |
| bouwvolume | 220 × 220 × 250 mm (rekenwaarde voor de schoolprinter) | groter: in delen ontwerpen |
| materiaal | PETG, lichte kleur | vochtige, warme kweekruimte (I17) |
Waar parametrisch ontwerpen vandaan komt en naartoe gaat
Parametrisch ontwerpen is waar wiskunde en maken elkaar raken: een ontwerp wordt een functie, een eis wordt een ongelijkheid, een tekening wordt een uitkomst. Het steunt op technisch tekenen en CAD uit Fundamental, op functies en zwaartepunten uit Intermediate, en op de materiaalkennis van hoofdstuk 17. In Expert wordt het systematisch: optimaliseren (de beste parameters zoeken in plaats van proberen), sterkteleer (hoe stijf is een wand echt) en configuratiebeheer in grote projecten.
Het programma van eisen: hier worden eisen regels die het model zelf toetst.
Aanzichten, maatvoering en stuklijst van de werktekening.
De 45°-regel, speling, de maatafwijking van de printer en de printtijd.
Een functie met invoer en uitvoer: hier is het ontwerp zelf de functie.
Het zwaartepunt van samengestelde vormen, nodig voor de regel van Pappus.
Waarom PETG in de kweekruimte, en waarom een print tussen de lagen breekt.
Functies met standaardwaarden en woordenboeken: de bouwstenen van behuizing.py.
Klikken of lijmen, hoeveel materiaal: de keuzes van dit hoofdstuk op hun milieu-impact gewogen.
De regelkast en de andere kasten van de module worden gebouwd.
De beste parameters berekenen in plaats van een tabel doorlopen.
Waarom de stijfheid met de dikte tot de derde groeit, en hoe ver een wand doorbuigt.
Eisen, varianten en configuratiebeheer in een groot project.
In het kort
- Een parametrisch ontwerp is een functie: een paar invoermaten erin, alle afgeleide maten, de massa en de controles eruit.
- Een schets krijgt geometrische beperkingen (de vorm, de ontwerpintentie) en maatbeperkingen (liefst gekoppeld aan parameters) tot ze volledig bepaald is: 0 vrijheidsgraden.
- Extruderen en draaien maken een lichaam; uitsparen, afronden, afschuinen, uithollen en patronen werken het af. De volgorde in de bewerkingsboom doet ertoe.
- Een draaideel heeft volume (regel van Pappus).
- Passingen: speling, overgang, pers. Maak een passingstabel voor je eigen printer, en reken bij twee geprinte delen de stapeling van de afwijkingen door (deksel: 0,3 mm per kant).
- Een klikvinger rekt aan de voet; langer is veiliger maar houdt slechter vast.
- Ontwerpregels (wand, speling, bed, wartels) horen bij het model; een programma kan ze toetsen voor je iets print.
- Werktekening, stuklijst en berekening komen uit dezelfde parameters: één bron van waarheid.
Wat je nu kent
- parametrisch ontwerp
- Ontwerp waarin de maten afhangen van een paar invoermaten (parameters) via formules en beperkingen, zodat een wijziging overal doorwerkt.
- ontwerpintentie
- Wat de ontwerper bedoelt met een maat of een plaats (het gat staat in het midden, de bus volgt de printplaat), vastgelegd zodat het bij elke wijziging blijft kloppen.
- beperking (constraint)
- Voorwaarde in een schets: geometrisch (horizontaal, evenwijdig, raaklijn, gelijk) of een maat.
- vrijheidsgraad
- Een manier waarop een schets nog kan bewegen of vervormen; een volledig bepaalde schets heeft er nul.
- extruderen
- Een tweedimensionale schets over een afstand optrekken tot een lichaam.
- draaien (revolve)
- Een profiel rond een as draaien tot een rond lichaam.
- bewerkingsboom
- De reeks bewerkingen waaruit een CAD-model is opgebouwd; een latere bewerking bouwt op een eerdere.
- passing
- Hoe twee passende delen samengaan: met speling, als overgang of met overmaat (pers).
- tolerantiestapeling
- Het optellen van de maatafwijkingen van meerdere delen om de kleinste en de grootste speling te vinden.
- klikvinger (snap-fit)
- Een buigzaam lipje met een haak dat bij het monteren doorbuigt en daarna vastklikt.
- regel van Pappus
- Het volume van een draaideel is de oppervlakte van het profiel maal de omtrek die het zwaartepunt van het profiel beschrijft.
- ontwerpruimte
- Alle combinaties van parameters die je kan kiezen, met de grenzen die de regels opleggen.