This might work!
... testing.
For the polyholes lib check: http://hydraraptor.blogspot.com/2011/02/polyholes.html
It does!
OpenSCAD code
// Author: Tiago Charters de Azevedo // Maintainer: Tiago Charters de Azevedo // URL: http://diale.org/ // Version: * // Copyright (c) - 2018 Tiago Charters de Azevedo // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3, or (at your option) // any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, // Boston, MA 02110-1301, USA. // Commentary: include <../utils/polyholes.scad> x1=[[1.0000000E+01,0.0000000E+00], [1.0580019E+01,6.7237996E-01], [1.1027136E+01,1.4072740E+00], [1.1264505E+01,2.1710554E+00], [1.1243887E+01,2.9173856E+00], [1.0953411E+01,3.5974472E+00], [1.0418914E+01,4.1711040E+00], [9.6987187E+00,4.6166103E+00], [8.8728952E+00,4.9367463E+00], [8.0290475E+00,5.1599555E+00], [7.2472695E+00,5.3360514E+00], [6.5870181E+00,5.5271645E+00], [6.0782335E+00,5.7955839E+00], [5.7181895E+00,6.1908273E+00], [5.4744510E+00,6.7384946E+00], [5.2931497E+00,7.4331887E+00], [5.1108104E+00,8.2370557E+00], [4.8673272E+00,9.0844478E+00], [4.5175449E+00,9.8920435E+00], [4.0392424E+00,1.0572696E+01], [3.4360885E+00,1.1050534E+01], [2.7351726E+00,1.1274535E+01], [1.9798078E+00,1.1228048E+01], [1.2192426E+00,1.0932424E+01], [4.9750951E-01,1.0444010E+01], [-1.5621939E-01,9.8449567E+00], [-7.3374158E-01,9.2294536E+00], [-1.2491217E+00,8.6878326E+00], [-1.7349084E+00,8.2913930E+00], [-2.2340628E+00,8.0806586E+00], [-2.7892959E+00,8.0591413E+00], [-3.4320694E+00,8.1936686E+00], [-4.1736211E+00,8.4211207E+00], [-5.0000000E+00,8.6602540E+00], [-5.8723074E+00,8.8263748E+00], [-6.7323033E+00,8.8461432E+00], [-7.5124415E+00,8.6698197E+00], [-8.1484735E+00,8.2787990E+00], [-8.5921862E+00,7.6872088E+00], [-8.8217391E+00,6.9374923E+00], [-8.8474611E+00,6.0910316E+00], [-8.7117953E+00,5.2157795E+00], [-8.4831763E+00,4.3733814E+00], [-8.2447908E+00,3.6082937E+00], [-8.0801739E+00,2.9409428E+00], [-8.0582396E+00,2.3661126E+00], [-8.2205085E+00,1.8566837E+00], [-8.5729330E+00,1.3717663E+00], [-9.0839051E+00,8.6740776E-01], [-9.6889046E+00,3.0756377E-01], [-1.0301026E+01,-3.2699490E-01], [-1.0825533E+01,-1.0337131E+00], [-1.1175845E+01,-1.7882616E+00], [-1.1288087E+01,-2.5495269E+00], [-1.1131620E+01,-3.2685385E+00], [-1.0713679E+01,-3.8994601E+00], [-1.0077378E+01,-4.4103170E+00], [-9.2935327E+00,-4.7911491E+00], [-8.4478729E+00,-5.0577683E+00], [-7.6260705E+00,-5.2501657E+00], [-6.8993228E+00,-5.4256874E+00], [-6.3131028E+00,-5.6481712E+00], [-5.8810242E+00,-5.9750845E+00], [-5.5847732E+00,-6.4451718E+00], [-5.3798905E+00,-7.0690936E+00], [-5.2060939E+00,-7.8250223E+00], [-5.0000000E+00,-8.6602540E+00], [-4.7077111E+00,-9.4987548E+00], [-4.2948331E+00,-1.0253417E+01], [-3.7520633E+00,-1.0840875E+01], [-3.0954135E+00,-1.1196185E+01], [-2.3612250E+00,-1.1284656E+01], [-1.5971750E+00,-1.1108596E+01], [-8.5125755E-01,-1.0707642E+01], [-1.6109989E-01,-1.0152526E+01], [4.5412881E-01,-9.5333369E+00], [9.9752138E-01,-8.9443452E+00], [1.4931558E+00,-8.4681073E+00], [1.9800062E+00,-8.1616965E+00], [2.5023190E+00,-8.0475111E+00], [3.0984820E+00,-8.1102609E+00], [3.7907554E+00,-8.3005964E+00], [4.5780943E+00,-8.5446194E+00], [5.4336990E+00,-8.7574529E+00], [6.3079885E+00,-8.8583304E+00], [7.1366024E+00,-8.7844347E+00], [7.8519987E+00,-8.5010068E+00], [8.3964473E+00,-8.0059963E+00], [8.7338707E+00,-7.3285877E+00], [8.8581357E+00,-6.5221071E+00], [8.7960232E+00,-5.6528608E+00], [8.6040923E+00,-4.7871884E+00], [8.3598121E+00,-3.9792880E+00], [8.1484446E+00,-3.2621451E+00], [8.0480112E+00,-2.6432218E+00], [8.1150871E+00,-2.1055742E+00], [8.3740691E+00,-1.6139695E+00], [8.8119599E+00,-1.1245750E+00], [9.3797150E+00,-5.9609843E-01], [1.0000000E+01,-2.4492936E-15]] ;x2=[[-1.0000000E+01,0.0000000E+00], [-9.4032668E+00,5.4699554E-01], [-8.8586147E+00,1.0159488E+00], [-8.3949861E+00,1.5455589E+00], [-8.1029387E+00,2.1838625E+00], [-8.0447476E+00,2.8688422E+00], [-8.1677418E+00,3.5063433E+00], [-8.3697939E+00,4.0985505E+00], [-8.6040416E+00,4.7927838E+00], [-8.7886845E+00,5.6967582E+00], [-8.8032275E+00,6.6716202E+00], [-8.6486850E+00,7.4658016E+00], [-8.4045751E+00,7.9976032E+00], [-8.0285873E+00,8.3793495E+00], [-7.3740031E+00,8.6743293E+00], [-6.4461723E+00,8.8176655E+00], [-5.4518251E+00,8.7544859E+00], [-4.5942009E+00,8.5432205E+00], [-3.8853713E+00,8.2923350E+00], [-3.2084512E+00,8.0918479E+00], [-2.5060360E+00,8.0463763E+00], [-1.8340098E+00,8.2308361E+00], [-1.2765823E+00,8.6052594E+00], [-8.3937187E-01,9.0566830E+00], [-4.1350524E-01,9.5594600E+00], [1.6602110E-01,1.0154853E+01], [9.5204828E-01,1.0735238E+01], [1.7803219E+00,1.1121777E+01], [2.4519979E+00,1.1271971E+01], [2.9796526E+00,1.1238240E+01], [3.5249445E+00,1.0974452E+01], [4.1283816E+00,1.0390583E+01], [4.6597321E+00,9.5509121E+00], [5.0000000E+00,8.6602540E+00], [5.1753454E+00,7.8699702E+00], [5.3091448E+00,7.1638109E+00], [5.5359864E+00,6.4974918E+00], [5.9427498E+00,5.9254195E+00], [6.5068640E+00,5.5325346E+00], [7.1204533E+00,5.3203002E+00], [7.7343458E+00,5.1991788E+00], [8.4526933E+00,5.0549267E+00], [9.3278796E+00,4.7628450E+00], [1.0179406E+01,4.2880085E+00], [1.0789916E+01,3.7570802E+00], [1.1128415E+01,3.2797740E+00], [1.1271023E+01,2.7632858E+00], [1.1199191E+01,2.0489093E+00], [1.0859408E+01,1.1737162E+00], [1.0307520E+01,3.4417605E-01], [9.6957464E+00,-2.9291556E-01], [9.1240585E+00,-7.8133722E-01], [8.6119714E+00,-1.2673237E+00], [8.2213843E+00,-1.8528973E+00], [8.0451181E+00,-2.5271190E+00], [8.0906644E+00,-3.1970770E+00], [8.2630035E+00,-3.8014242E+00], [8.4854878E+00,-4.4216239E+00], [8.7113498E+00,-5.2212048E+00], [8.8209647E+00,-6.1921170E+00], [8.7415803E+00,-7.1026924E+00], [8.5358144E+00,-7.7594780E+00], [8.2427747E+00,-8.1995747E+00], [7.7416824E+00,-8.5399177E+00], [6.9343180E+00,-8.7705749E+00], [5.9414664E+00,-8.8109024E+00], [5.0000000E+00,-8.6602540E+00], [4.2279214E+00,-8.4169657E+00], [3.5494699E+00,-8.1797598E+00], [2.8589998E+00,-8.0430507E+00], [2.1601889E+00,-8.1092820E+00], [1.5378835E+00,-8.4013769E+00], [1.0472885E+00,-8.8266435E+00], [6.3544804E-01,-9.2977294E+00], [1.5134831E-01,-9.8477105E+00], [-5.3919509E-01,-1.0459603E+01], [-1.3761789E+00,-1.0959629E+01], [-2.1412313E+00,-1.1222882E+01], [-2.7238400E+00,-1.1277377E+01], [-3.2424359E+00,-1.1142635E+01], [-3.8251880E+00,-1.0723239E+01], [-4.4132361E+00,-9.9913817E+00], [-4.8556947E+00,-9.0986620E+00], [-5.1015455E+00,-8.2503049E+00], [-5.2386871E+00,-7.5109978E+00], [-5.4035202E+00,-6.8245242E+00], [-5.7153483E+00,-6.1934790E+00], [-6.2111083E+00,-5.7037171E+00], [-6.8140821E+00,-5.4081824E+00], [-7.4236316E+00,-5.2552589E+00], [-8.0719826E+00,-5.1378360E+00], [-8.8773708E+00,-4.9336478E+00], [-9.7730130E+00,-4.5431210E+00], [-1.0521902E+01,-4.0190844E+00], [-1.0987812E+01,-3.5124931E+00], [-1.1222427E+01,-3.0386650E+00], [-1.1266627E+01,-2.4345347E+00], [-1.1062700E+01,-1.6200081E+00], [-1.0601199E+01,-7.4000964E-01]]; $fn=4*64; phi=(1+sqrt(5))/2; p1=6.0000000E+00; p2=-6.0000000E+00; alpha=-4*360/(p1*p2); l=50; r1=10; r2=r1; d=.4; thickness=3*.4; rd=3.7/2; module rotor1(l){ translate([0,-r1,0]){difference(){ linear_extrude(height=l, center=true, convexity=10, twist=alpha*p2){polygon(x1);} poly_cylinder(h=l+1,r=rd,center=true);}}} module rotor2(l){ translate([0,r2,0]){difference(){ linear_extrude(height=l, center=true, convexity=10, twist=alpha*p1){polygon(x2);} poly_cylinder(h=l+1,r=rd,center=true);}}} module box(){ difference(){ difference(){ hull(){ translate([0,-r1,0]){ cylinder(h=l+2*thickness+2*d,r=r1+phi+thickness+2*d,center=true);} translate([0,r2,0]){ cylinder(h=l+2*thickness+2*d,r=r1+phi+thickness+2*d,center=true);}} hull(){ translate([0,-r1,0]){ cylinder(h=l+2*d,r=r1+phi+2*d,center=true);} translate([0,r2,0]){ cylinder(h=l+2*d,r=r1+phi+2*d,center=true);}}} translate([-(r1+r2+6*thickness)/2,0,0]){ cube([(r1+r2+6*thickness),2*(r1+r2+4*thickness),l+4*thickness],center=true);} translate([0,r2,0]){ poly_cylinder(h=2*l,r=rd,center=true);} translate([0,-r1,0]){ poly_cylinder(h=2*l,r=rd,center=true);} translate([2*r1-(1-sqrt(2)/2)*(r1+thickness),0,0]) { cube([r1,2*(r1+r2+4*thickness),l+4*thickness],center=true);}}} module show(){ rotor1(l); rotor2(l); box();} module print(){ translate([0,-2,0]) rotor1(l); translate([0,2,0]) rotor2(l); } !print(); show(); box();Palavras chave/keywords: 3DPrinting, openscad, reprap
Criado/Created: 20-06-2018 [19:17]
Última actualização/Last updated: 10-10-2022 [14:26]
(c) Tiago Charters de Azevedo