Hier heb je de complete code: ReuleauxB.scad .... gewoon aanklikken om OpenSCAD te openen.
Dit werkstuk zou het heel goed doen als "leerwerkstuk" op een ambachtschool of een bedrijfsschool, ergens in de jaren 1950. Dan zou het helemaal met de hand gemaakt worden. De blokvorm zou aan alle zijden perfect haaks gevijld zijn. De twee cilindrische borsten werden op een A.I. draaibankje gedraaid en het doorlopende gat op een kolomboormachine geboord. De werkplaatsbaas, meestal een oudere man, met een ervaring van veertig of vijftig jaar in de metaal, zou het werkstuk knorrig bekeken hebben en (uiteraard) nog wel wat aan te merken vinden. Niet het minste krasje mocht er op zitten.
In de echte werkplaats was vijlen uit den boze. Kostte te veel tijd en de resultaten waren niet consistent. Het blok werd daarom alzijdig geschaafd op een sterke-arm schaafbank. Zes keer omspannen en steeds één vlak bewerken. De evenwijdigheid van de tegenover elkaar liggende zijden was gegarandeerd omdat het blokje in de machineklem op pasblokken werd gelegd. Na het aandraaien van de klem WEL controleren en zo nodig corrigeren (aantikken met een hamer). Trof je een oude, "sloppy" machineklem, dan wilde het werk wel eens opwippen bij het aandraaien. Zou je dan aan het schaven gaan, dan klopte het werkstuk niet .... Bij het schaven wordt, in de zesde zijde, de klem-uitsparing mee ingeschaafd. Door dit pas als laatste bewerking te doen, voorkom je vervorming door het inklemmen in de machineklem.
Na het schaven kwamen de borsten aan de beurt. Alle zijden van het blokje zijn rechthoekig (niet vierkant) en dus was het inspannen in de vierklauw met onafhankelijk van elkaar aan te draaien klauwen een lastig werkje. Het viel echt niet mee om de hartlijnen van de borsten precies op elkaar te krijgen. En dat was - blijkens de tekening - wel de bedoeling van de constructeur.
Nu het blokje goed ingespannen is, kunnen we het gat ook gelijk op de draaibank boren. Dan staat de boring zeker haaks op het grondvlak. Dus fluks de boorkop met Morse-conus in de losse kop geschoven, boor van de juiste diameter in de kop gespannen, de losse kop van de draaibank op het bed aangeschoven tot bij het werk en dan maar aan het handwiel van de losse kop draaien. Vergat je de losse kop eerst vast te klemmen op het bed, dan kwam er van het boren niets terecht: de kop schoof achteruit en de boor boorde niet ....
Gelukkig heeft de constructeur het gat precies in het hart van het blok geplaatst. Zou het excentrisch geplaatst zijn, dan kunnen we het op de draaibank niet boren.
Tenslotte wordt de sleuf ingezaagd. Deze dient om het blok aan te kunnen spannen met de spandraadstang, ring en moer.
Hier wordt het blok gewoon als "cube" gecreëerd c.q. gezaagd. Het is dan gelijk aan de maat en haaks, dat spaart een heel gedoe aan nabewerken. De oppervlakteruwheid is ook gelijk perfect. De twee borsten draaien we niet uit het blok, zoals we dat vroeger gedaan zouden hebben. Nee, we maken ze apart als "cylinder" en plakken ze gewoon met "translate"s op hun plaats.
Voor het schaven (de klem-uitsparing), boren (het gat) en zagen (de zaagsnede) moeten we de borsten en het blokje wel tot een eenheid maken met een "union". Daarna werkt een "difference" inderdaad op het geheel.
color ("gray")
difference() {
union() {
cube ([40,18,28],true);
translate ([0,0,14]) cylinder (2,7,7);
translate ([0,0,-16]) cylinder (2,9,9);
};
translate ([0,8,4]) cube ([60,6,12],true); // schaven
translate ([0,5,9.6]) cube ([60,20,0.8],true); // zagen
translate ([0,0,-20]) cylinder (40,3,3); // boren
};
De spanner is niet meer dan een draadstang met zeskantmoer en vlakke ring. De zeskantmoer is heel eenvoudig uit een cilinder te frezen (voor fijne moeren) of te smeden (voor grove moeren) middels $fn=6;. De zes sleutelvlakken liggen automatisch goed. Toen we moeren nog echt maakten, gaf dat altijd ellende.
Het aanbrengen van de schroefdraad op de draadstang (met een snij-ijzer, of door draadrollen) en het tappen van dito in de moer (met een setje van drie opvolgende draadtappen) laten we hier achterwege. Schroefdraad dient in de echte wereld om de moer op de klem vast te draaien. Virtueel bereiken we dat doel met een "translate". Althans - we zetten de moer netjes precies tegen de ring. Er wordt niets aangedrukt. Druk bestaat namelijk virtueel niet. Maar dat hoeft ook niet, want de klem houdt het ingeklemde "als vanzelf" precies in positie. Wat voor gedachte kracht je er ook op los laat.
color ("Silver")
difference() {
union() {
translate ([0,0,16]) cylinder (1.5,6,6); // ring
translate ([0,0,17.5]) cylinder (4.5,5,5,$fn=6); // moer
};
translate ([0,0,25]) cylinder (18,2.5,2.5); // boren
};
translate ([0,0,-35]) cylinder (58,2.5,2.5); // draadstang
};