Für einige günstige Motore habe ich eine Wellenanbindung in Openscad gebaut. Ist recht simpel und kann als Basis für eigene Abtriebe dienen.
Code: Alles auswählen
// Anbindung einer Motorwelle.
// andreas6, 11/2023
//
// Für Motor Minebea 17PM-K374BN01CN, Pollin 310690.
// Vierkantwelle mit runder Basis.
// Bis zu 4x M3x10 halten den Abtrieb auf der
// Vierkantwelle fest. Gewinde M3 selber bohren.
// Oder Treibschrauben rein drehen, hält auch.
//
module vierkantwelle()
{
wd=5.0+0.4; // runde Welle
wv=3.2+0.1; // Vierkant
wvu4=wv/1.41*2; // Umkreis für Vierkant
wvl=8.8; // Vierkant Länge
wrl=5.5; // runde Länge
sd=18; // Sockeldurchmesser
wld=8-0.5; // Wellenlochdurchmesser im Gehäuse, geschätzt
wgl=17.4; // Gesamtlänge Welle von Spitze bis Lager
ul=wgl-wrl-wvl; // Untere Länge
ld=3.0; // Lochdurchmesser
v1=2.6; // Längsversatz Schraubloch
v2=14.7; // Längsversatz gegenüber
f=1;
$fn=24;
//
difference()
{
union()
{ // positiv
// Unterbau
translate([0,0,-ul])
cylinder(h=f/2,d1=wld-f,d2=wld);
translate([0,0,-ul+f/2])
cylinder(h=ul-f/2,d=wld);
// Außenkontur
translate([0,0,0])
cylinder(h=f,d1=sd-f*2,d2=sd);
translate([0,0,f])
cylinder(h=wvl+wrl-f*2,d=sd);
translate([0,0,wvl+wrl-f])
cylinder(h=f,d1=sd,d2=sd-f*2);
}
// negativ
// runde Welle
translate([0,0,-ul-0.1])
cylinder(h=wrl+ul-f+0.2,d=wd);
translate([0,0,wrl-f-0.1])
cylinder(h=f+0.2,d1=wd,d2=wvu4);
// eckige Welle
translate([0,0,wrl-0.1])
cylinder(h=wvl+0.2,d=wvu4,$fn=4);
translate([0,0,wrl+wvl-f-0.1])
cylinder(h=f+0.2,d1=wvu4,d2=wvu4+f*2,$fn=4);
// Schraublöcher
// Loch
translate([-sd/2+v1,-sd/2+v1,wrl+wvl/2])
rotate(a=90,v=[1,0,0])
rotate(a=45+90,v=[0,1,0])
cylinder(h=sd+0.1,d=ld,$fn=4);
// Anfasung
translate([-sd/2+v1,-sd/2+v1,wrl+wvl/2])
rotate(a=90,v=[1,0,0])
rotate(a=45+90,v=[0,1,0])
cylinder(h=f,d1=ld+f*2,d2=ld,$fn=4);
// Anfasung
translate([-sd/2+v2,-sd/2+v2,wrl+wvl/2])
rotate(a=90,v=[1,0,0])
rotate(a=45+90,v=[0,1,0])
cylinder(h=f,d1=ld,d2=ld+f*2,$fn=4);
// Loch
translate([-sd/2+v1,sd/2-v1,wrl+wvl/2])
rotate(a=90,v=[1,0,0])
rotate(a=45,v=[0,1,0])
cylinder(h=sd+0.1,d=ld,$fn=4);
// Anfasung
translate([-sd/2+v1,sd/2-v1,wrl+wvl/2])
rotate(a=90,v=[1,0,0])
rotate(a=45,v=[0,1,0])
cylinder(h=f,d1=ld+f*2,d2=ld,$fn=4);
// Anfasung
translate([-sd/2+v2,sd/2-v2,wrl+wvl/2])
rotate(a=90,v=[1,0,0])
rotate(a=45,v=[0,1,0])
cylinder(h=f,d1=ld,d2=ld+f*2,$fn=4);
// Schnittansicht, NICHT DRUCKEN!
// translate([0,-10,-5])
// cube([10,20,20]);
}
}
//
// umgedreht drucken
mirror(v=[0,0,1])
vierkantwelle();
//
// Abdeckscheibe für Rückseite,
// muss eingedrückt werden.
//
module scheibe()
{
innen=5.5;
aussen=17.9; //
dick=2.0;
hoch=1; // Höhe Loch für Welle
//
f=0.4;
$fn=24;
//
difference()
{
union()
{ // positiv
translate([0,0,0])
cylinder(h=f,d1=aussen-f*2,d2=aussen);
translate([0,0,f])
cylinder(h=dick-f*2,d=aussen);
translate([0,0,dick-f])
cylinder(h=f,d1=aussen,d2=aussen-f*2);
}
// negativ
// für Teil-Mittelloch
translate([0,0,dick-hoch-0.1])
cylinder(h=hoch-f+0.2,d=innen);
translate([0,0,dick-f-0.1])
cylinder(h=f+0.2,d1=innen,d2=innen+f*2);
// Schnittansicht, NICHT DRUCKEN!
// translate([0,-20,-1])
// cube([10,40,10]);
}
}
// scheibe();
//
Bei Bedarf gibt es weitere.
MfG. Andreas