/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/WINDGAUGE02A_L01.scad |
---|
File deleted |
\ No newline at end of file |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/WINDGAUGE02A_R01.scad |
---|
65,6 → 65,6 |
} |
} |
//WINDGAUGE02A_R01(R02_sila_mateiralu_pod_lopatkami,L01_hloubka_zapusteni_drzaku,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,prumer_pomocne_trubicky,zapusteni_pomocne_trubicky,vule_mezi_statorem_rotorem,R01_vyska_preryti_statoru,R01_sila_materialu_pro_prekriti,S01_sila_materialu); |
WINDGAUGE02A_R01(R02_sila_mateiralu_pod_lopatkami,L01_hloubka_zapusteni_drzaku,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,prumer_pomocne_trubicky,zapusteni_pomocne_trubicky,vule_mezi_statorem_rotorem,R01_vyska_preryti_statoru,R01_sila_materialu_pro_prekriti,S01_sila_materialu); |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/WINDGAUGE02A_R03.scad |
---|
39,4 → 39,5 |
} |
//WINDGAUGE02A_R03(R03_sila_materialu,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,vule_mezi_statorem_rotorem,R01_sila_materialu_pro_prekriti,R02_sila_mateiralu_pod_lopatkami,S01_sila_materialu); |
WINDGAUGE02A_R03(R03_sila_materialu,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,vule_mezi_statorem_rotorem,R01_sila_materialu_pro_prekriti, |
R02_sila_mateiralu_pod_lopatkami,S01_sila_materialu); |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/WINDGAUGE02A_R02.scad |
---|
1,46 → 1,46 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
module WINDGAUGE02A_R02(R02_sila_mateiralu_pod_lopatkami,L01_hloubka_zapusteni_drzaku,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,prumer_pomocne_trubicky,zapusteni_pomocne_trubicky) |
{ |
difference() |
{ |
cylinder (h = R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku, r=(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2, center = true, $fn=100); |
//otvor pro lopatku 1 |
rotate(a=[0,0,0]) |
translate([(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2-L01_hloubka_zapusteni-L01_sila_zapusteni_drzaku/2,0,((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-L01_hloubka_zapusteni_drzaku/2]) |
cube([L01_sila_zapusteni_drzaku+L01_tolerance_drzaku,L01_hrana_drzaku_a+L01_tolerance_drzaku,L01_hloubka_zapusteni_drzaku],true); |
//otvor pro lopatku 2 |
rotate(a=[0,0,120]) |
translate([(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2-L01_hloubka_zapusteni-L01_sila_zapusteni_drzaku/2,0,((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-L01_hloubka_zapusteni_drzaku/2]) |
cube([L01_sila_zapusteni_drzaku+L01_tolerance_drzaku,L01_hrana_drzaku_a+L01_tolerance_drzaku,L01_hloubka_zapusteni_drzaku],true); |
//otvor pro lopatku 3 |
rotate(a=[0,0,240]) |
translate([(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2-L01_hloubka_zapusteni-L01_sila_zapusteni_drzaku/2,0,((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-L01_hloubka_zapusteni_drzaku/2]) |
cube([L01_sila_zapusteni_drzaku+L01_tolerance_drzaku,L01_hrana_drzaku_a+L01_tolerance_drzaku,L01_hloubka_zapusteni_drzaku],true); |
//otvor na hřídelku |
cylinder (h = R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku+0.1, r=prumer_osicky/2, center = true, $fn=100); |
//otvor pro pomocnou trubicku |
translate([0,0,-(((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-zapusteni_pomocne_trubicky/2)]) |
cylinder (h = zapusteni_pomocne_trubicky, r=prumer_pomocne_trubicky/2, center = true, $fn=100); |
} |
} |
//WINDGAUGE02A_R02(R02_sila_mateiralu_pod_lopatkami,L01_hloubka_zapusteni_drzaku,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,prumer_pomocne_trubicky,zapusteni_pomocne_trubicky); |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
module WINDGAUGE02A_R02(R02_sila_mateiralu_pod_lopatkami,L01_hloubka_zapusteni_drzaku,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,prumer_pomocne_trubicky,zapusteni_pomocne_trubicky) |
{ |
difference() |
{ |
cylinder (h = R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku, r=(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2, center = true, $fn=100); |
//otvor pro lopatku 1 |
rotate(a=[0,0,0]) |
translate([(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2-L01_hloubka_zapusteni-L01_sila_zapusteni_drzaku/2,0,((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-L01_hloubka_zapusteni_drzaku/2]) |
cube([L01_sila_zapusteni_drzaku+L01_tolerance_drzaku,L01_hrana_drzaku_a+L01_tolerance_drzaku,L01_hloubka_zapusteni_drzaku],true); |
//otvor pro lopatku 2 |
rotate(a=[0,0,120]) |
translate([(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2-L01_hloubka_zapusteni-L01_sila_zapusteni_drzaku/2,0,((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-L01_hloubka_zapusteni_drzaku/2]) |
cube([L01_sila_zapusteni_drzaku+L01_tolerance_drzaku,L01_hrana_drzaku_a+L01_tolerance_drzaku,L01_hloubka_zapusteni_drzaku],true); |
//otvor pro lopatku 3 |
rotate(a=[0,0,240]) |
translate([(R02_vzdalenost_mezi_uchyty_lopatek+2*L01_sila_zapusteni_drzaku+2*L01_hloubka_zapusteni)/2-L01_hloubka_zapusteni-L01_sila_zapusteni_drzaku/2,0,((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-L01_hloubka_zapusteni_drzaku/2]) |
cube([L01_sila_zapusteni_drzaku+L01_tolerance_drzaku,L01_hrana_drzaku_a+L01_tolerance_drzaku,L01_hloubka_zapusteni_drzaku],true); |
//otvor na hřídelku |
cylinder (h = R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku+0.1, r=prumer_osicky/2, center = true, $fn=100); |
//otvor pro pomocnou trubicku |
translate([0,0,-(((R02_sila_mateiralu_pod_lopatkami+L01_hloubka_zapusteni_drzaku)/2)-zapusteni_pomocne_trubicky/2)]) |
cylinder (h = zapusteni_pomocne_trubicky, r=prumer_pomocne_trubicky/2, center = true, $fn=100); |
} |
} |
WINDGAUGE02A_R02(R02_sila_mateiralu_pod_lopatkami,L01_hloubka_zapusteni_drzaku,R02_vzdalenost_mezi_uchyty_lopatek,L01_sila_zapusteni_drzaku,L01_hloubka_zapusteni,prumer_pomocne_trubicky,zapusteni_pomocne_trubicky); |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/lopatky.scad |
---|
0,0 → 1,50 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
//Model lopatky |
module WINDGAUGE02A_L01(L01_hloubka_zapusteni,L01_hloubka_zapusteni_drzaku,L01_sila_zapusteni_drzaku,L01_hrana_drzaku_a,L01_hrana_drzaku_b,L01_tolerance_drzaku,L01_delka_uchytu,L01_prumer_lopatky,L01_sila_materialu_lopatky) |
union() |
{ |
//prechod lopatka drzak |
difference() |
{ |
translate([-L01_hrana_drzaku_a/2,L01_prumer_lopatky/4,0]) |
cube([L01_hrana_drzaku_a,(L01_prumer_lopatky/2)+5,L01_hrana_drzaku_b],center=true); |
sphere(d = L01_prumer_lopatky, $fn=100); |
} |
difference() |
{ |
//lopatka |
sphere(d = L01_prumer_lopatky, $fn=100); |
sphere(d = L01_prumer_lopatky-2*L01_sila_materialu_lopatky, $fn=100); |
translate([0,-L01_prumer_lopatky/2,-L01_prumer_lopatky/2]) |
cube(size = L01_prumer_lopatky); |
} |
//uchyt_lopatky - tycka |
translate([-L01_hrana_drzaku_a/2,L01_prumer_lopatky/2+L01_delka_uchytu/2,0]) |
cube([L01_hrana_drzaku_a,L01_delka_uchytu,L01_hrana_drzaku_b],center=true); |
//uchyt_lopatky - tycka v rotoru |
translate([-L01_hrana_drzaku_a/2,L01_prumer_lopatky/2+L01_delka_uchytu+L01_hloubka_zapusteni/2,0]) |
cube([L01_hrana_drzaku_a,L01_hloubka_zapusteni,L01_hrana_drzaku_b],center=true); |
//uchyt_lopatky - v rotoru |
translate([-L01_hrana_drzaku_a/2,L01_prumer_lopatky/2+L01_delka_uchytu+L01_hloubka_zapusteni+L01_sila_zapusteni_drzaku/2,0]) |
cube([L01_hrana_drzaku_a,L01_sila_zapusteni_drzaku,L01_hrana_drzaku_b+2*L01_hloubka_zapusteni_drzaku],center=true); |
} |
WINDGAUGE02A_L01(L01_hloubka_zapusteni,L01_hloubka_zapusteni_drzaku,L01_sila_zapusteni_drzaku,L01_hrana_drzaku_a,L01_hrana_drzaku_b,L01_tolerance_drzaku,L01_delka_uchytu,L01_prumer_lopatky,L01_sila_materialu_lopatky); |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/kryt_rotoru.scad |
---|
0,0 → 1,46 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
//kryt_rotoru(prumer_rotoru1,sila_materialu,prumer_sroubu,vyska_rotoru1); |
/* |
prumer_rotoru1 - urcuje vnitrni prumer krytu |
sila_materialu - urcuje tloustku materialu krytu |
prumer |
vyska_rotoru1 - urcuje vysku, kterou prekryva kryt rotor 1 |
*/ |
module kryt_rotoru(prumer_rotoru1,sila_materialu,vyska_rotoru1) |
{ |
//kopule |
difference() |
{ |
sphere(d = prumer_rotoru1+2*sila_materialu, $fn=100); |
sphere(d = prumer_rotoru1+0.1, $fn=100); |
translate([0,0,-(prumer_rotoru1+2*sila_materialu)/2]) |
cube(size = [prumer_rotoru1+2*sila_materialu, prumer_rotoru1+2*sila_materialu, prumer_rotoru1+2*sila_materialu], center = true); |
} |
//válcová část krytu |
difference() |
{ |
//zakladni valec |
translate([0,0,-vyska_rotoru1/2]) |
cylinder (h = vyska_rotoru1, r=(prumer_rotoru1+2*sila_materialu)/2, center = true, $fn=100); |
//válec pro vykrojení |
translate([0,0,-vyska_rotoru1/2]) |
cylinder (h = vyska_rotoru1+0.05, r=(prumer_rotoru1+0.1)/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/rotor1.scad |
---|
0,0 → 1,102 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
/* |
prumer_rotoru1 - vnejsi prumer |
vyska_rotoru1 - vyska rotoru1 bez vysky uchytu lopatky |
prumer_sroubu- |
vyska_matky - |
prumer_orechu - vnejsi prumer nástroje pro dotahovani matky |
sila_materialu - pro pripad vyvoreni zapusti pro kryt rotoru |
sila_materialu_vule |
hloubka_prekryti - hloubka zapusteni krytu rotoru |
hloubka_uchytu - definovano lopatkou |
sila_uchytu - definovano lopatkou |
vyska_uchytu - definovano lopatkou |
tolerance_uchytu - definovano lopatkou |
*/ |
//rotor1(prumer_rotoru1,vyska_rotoru1,prumer_sroubu,vyska_matky,prumer_orechu,sila_materialu,sila_materialu_vule,hloubka_prekryti,hloubka_uchytu,sila_uchytu,vyska_uchytu,tolerance_uchytu); |
module rotor1(prumer_rotoru1,vyska_rotoru1,prumer_sroubu,vyska_matky,prumer_orechu,sila_materialu,sila_materialu_vule,hloubka_prekryti,hloubka_uchytu,sila_uchytu,vyska_uchytu,tolerance_uchytu) |
{ |
difference() |
{ |
union () |
{ |
cylinder (h = vyska_rotoru1-hloubka_prekryti, r=prumer_rotoru1/2, center = true, $fn=100); |
translate([0,0,vyska_rotoru1/2]) |
cylinder (h = hloubka_prekryti, r=(prumer_rotoru1/2) -sila_materialu-sila_materialu_vule, center = true, $fn=100); |
//otvory pro lopatky |
translate([0,0,-(vyska_rotoru1-hloubka_prekryti)/2-(vyska_uchytu+tolerance_uchytu)/2]) |
//otvory pro lopatky |
difference () |
{ |
cylinder (h = vyska_uchytu+tolerance_uchytu, r=(prumer_rotoru1/2), center = true, $fn=100); |
cylinder (h = vyska_uchytu+2*tolerance_uchytu, r=(prumer_rotoru1/2-hloubka_uchytu+5), center = true, $fn=100); |
//dira pro prvni uchyt lopatky |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,0]) |
cube([hloubka_uchytu,sila_uchytu+tolerance_uchytu,vyska_uchytu+2*tolerance_uchytu],true); |
//dira pro druhy uchyt lopatky |
rotate(a=[0,0,120]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,0]) |
cube([hloubka_uchytu,sila_uchytu+tolerance_uchytu,vyska_uchytu+2*tolerance_uchytu],true); |
//dira pro treti uchyt lopatky |
rotate(a=[0,0,240]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,0]) |
cube([hloubka_uchytu,sila_uchytu+tolerance_uchytu,vyska_uchytu+2*tolerance_uchytu],true); |
} |
} |
//otvor pro uchyceni prvni lopatky |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,hloubka_prekryti/2]) |
cylinder (h = vyska_rotoru1+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,-(vyska_rotoru1-hloubka_prekryti)/2+vyska_matky/2]) |
cylinder (h = vyska_matky+0.1, r=prumer_orechu/2, center = true, $fn=100); |
//otvor pro uchyceni druhe lopatky |
rotate(a=[0,0,120]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,hloubka_prekryti/2]) |
cylinder (h = vyska_rotoru1+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
rotate(a=[0,0,120]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,-(vyska_rotoru1-hloubka_prekryti)/2+vyska_matky/2]) |
cylinder (h = vyska_matky+0.1, r=prumer_orechu/2, center = true, $fn=100); |
//otvor pro uchyceni treti lopatky |
rotate(a=[0,0,240]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,hloubka_prekryti/2]) |
cylinder (h = vyska_rotoru1+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
rotate(a=[0,0,240]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,-(vyska_rotoru1-hloubka_prekryti)/2+vyska_matky/2]) |
cylinder (h = vyska_matky+0.1, r=prumer_orechu/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/rotor2.scad |
---|
0,0 → 1,83 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
//rotor2 (vyska_rotoru2,prumer_rotoru1,vyska_kryti,sila_materialu,stator1_sila,vyska_matky,vzdalenost_rot_stat,lozisko_prumer_vnitrni,lozisko_prekryv,sila_pod_loziskem,delka_hridele,lozisko_vyska,sirka_matky_tol,sirka_matky,hloubka_uchytu,vyska_rotoru1,prumer_sroubu,vyska_matky,prumer_orechu,vzdalenost_rot_stat2,sirka_matky_tol); |
module rotor2 (vyska_rotoru2,prumer_rotoru1,vyska_kryti,sila_materialu,stator1_sila,vyska_matky,vzdalenost_rot_stat,lozisko_prumer_vnitrni,lozisko_prekryv,sila_pod_loziskem,delka_hridele,lozisko_vyska,sirka_matky_tol,sirka_matky,hloubka_uchytu,vyska_rotoru1,prumer_sroubu,vyska_matky,prumer_orechu,vzdalenost_rot_stat2,sirka_matky_tol) |
{ |
difference() |
{ |
union () |
{ |
cylinder (h = vyska_rotoru2, r=prumer_rotoru1/2, center = true, $fn=100); |
//kryci kroužek |
translate([0,0,-(vyska_rotoru2)/2-(vyska_kryti)/2]) |
difference () |
{ |
cylinder (h = vyska_kryti, r=(prumer_rotoru1/2), center = true, $fn=100); |
cylinder (h = vyska_kryti+0.1, r=(prumer_rotoru1/2-sila_materialu), center = true, $fn=100); |
} |
//doraz na lozisko |
translate([0,0,-(vyska_rotoru2+stator1_sila+vyska_matky+vzdalenost_rot_stat)/2]) |
cylinder (h = stator1_sila+vyska_matky+vzdalenost_rot_stat, r=(lozisko_prumer_vnitrni+2*lozisko_prekryv)/2, center = true, $fn=100); |
//hridel |
translate([0,0,-(vyska_rotoru2+stator1_sila+vyska_matky+vzdalenost_rot_stat+lozisko_vyska+sila_pod_loziskem+delka_hridele)/2]) |
cylinder (h = stator1_sila+vyska_matky+vzdalenost_rot_stat+lozisko_vyska+sila_pod_loziskem+delka_hridele, r=(lozisko_prumer_vnitrni/2), center = true, $fn=100); |
} |
//otvor v hřídeli |
translate([0,0,-(stator1_sila+vyska_matky+vzdalenost_rot_stat+lozisko_vyska+sila_pod_loziskem+delka_hridele)/2]) |
cylinder (h = vyska_rotoru2+stator1_sila+vyska_matky+vzdalenost_rot_stat+lozisko_vyska+sila_pod_loziskem+delka_hridele+0.1, r=(prumer_sroubu/2), center = true, $fn=100); |
//otvor pro matku |
translate([0,0,(vyska_rotoru2-vyska_matky)/2]) |
cylinder (h = vyska_matky+0.1, r= (sirka_matky+sirka_matky_tol)/2, center = true,$fn=6); |
//otvor pro uchyceni prvni lopatky |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,0]) |
cylinder (h = vyska_rotoru1+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,-(vyska_rotoru2)/2+vyska_matky/2]) |
cylinder (h = vyska_matky+0.1, r=prumer_orechu/2, center = true, $fn=100); |
//otvor pro uchyceni druhe lopatky |
rotate(a=[0,0,120]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,0]) |
cylinder (h = vyska_rotoru1+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
rotate(a=[0,0,120]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,-(vyska_rotoru2)/2+vyska_matky/2]) |
cylinder (h = vyska_matky+0.1, r=prumer_orechu/2, center = true, $fn=100); |
//otvor pro uchyceni treti lopatky |
rotate(a=[0,0,240]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,0]) |
cylinder (h = vyska_rotoru1+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
rotate(a=[0,0,240]) |
translate([hloubka_uchytu/2+(prumer_rotoru1/2-hloubka_uchytu),0,-(vyska_rotoru2)/2+vyska_matky/2]) |
cylinder (h = vyska_matky+0.1, r=prumer_orechu/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/rotor3.scad |
---|
0,0 → 1,45 |
$fn=40; // model faces resolution. |
//include <configuration.scad> |
//dutinka pro upevneni rotoru |
module rotor3 (sila_pod_loziskem,delka_hridele,lozisko_prumer_vnitrni,lozisko_prekryv) |
{ |
difference() |
{ |
//dotahovací kroužek |
translate([0,0,0]) |
cylinder (h = sila_pod_loziskem+delka_hridele+2, r=(lozisko_prumer_vnitrni+2*lozisko_prekryv)/2, center = true, $fn=100); |
cylinder (h = sila_pod_loziskem+delka_hridele+2+0.1, r=((lozisko_prumer_vnitrni+0.2)/2), center = true, $fn=100); |
} |
} |
module rotor4 (vyska_pod_magnetem,magnet_zapusteni,magnet_prumer,vyska_hlavy_sroubu,prumer_hlavy_sroubu,prumer_sroubu) |
{ |
difference() |
{ |
//segment pro sroub a magnet |
translate([0,0,0]) |
cylinder (h = vyska_pod_magnetem+magnet_zapusteni, r=(magnet_prumer+5)/2, center = true, $fn=100); |
//otvor pro magnet |
translate([0,0,vyska_pod_magnetem/2+0.1]) |
cylinder (h = magnet_zapusteni, r=((magnet_prumer+0.2)/2), center = true, $fn=100); |
//zapusteni uchytného sroubu |
translate([0,0,(vyska_pod_magnetem-vyska_hlavy_sroubu-1)/2+0.1]) |
cylinder (h = vyska_hlavy_sroubu+1, r=((prumer_hlavy_sroubu+0.2)/2), center = true, $fn=100); |
//otvor pro sroub |
cylinder (h = vyska_pod_magnetem+magnet_zapusteni+0.1, r=(prumer_sroubu)/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/stator1.scad |
---|
0,0 → 1,39 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
module stator1(stator1_sila,lozisko_prumer_vnejsi,sirka_matky,lozisko_prumer_vnitrni,lozisko_prekryv,prumer_sroubu) |
{ |
difference() |
{ |
cylinder (h = stator1_sila, r=(lozisko_prumer_vnejsi+10+sirka_matky)/2, center = true, $fn=100); |
//otvor pro hridel rotoru |
translate([0,0,0]) |
cylinder (h = stator1_sila+0.1, r=(lozisko_prumer_vnitrni+2*lozisko_prekryv+2)/2, center = true, $fn=100); |
//otvor pro sroub 1 |
translate([(lozisko_prumer_vnejsi+prumer_sroubu+5)/2,0,0]) |
cylinder (h = stator1_sila+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 2 |
rotate(a=[0,0,120]) |
translate([(lozisko_prumer_vnejsi+prumer_sroubu+5)/2,0,0]) |
cylinder (h = stator1_sila+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 3 |
rotate(a=[0,0,240]) |
translate([(lozisko_prumer_vnejsi+prumer_sroubu+5)/2,0,0]) |
cylinder (h = stator1_sila+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/stator2.scad |
---|
0,0 → 1,92 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
module stator2(lozisko_vyska,sila_pod_loziskem,prumer_rotoru1,sila_materialu,vule1,stator3_sila_steny,lozisko_prumer_vnejsi,lozisko_prumer_vnitrni,lozisko_prekryv, |
prumer_sroubu, |
lozisko_vyska,vzdalenost_der_x,vzdalenost_der_y,vyska_hlavy_sroubu,prumer_hlavy_sroubu,prumer_rotoru1,stator3_vzdalenost_od_steny) |
{ |
difference() |
{ |
cylinder (h = lozisko_vyska+sila_pod_loziskem, r=(prumer_rotoru1-2*sila_materialu-2*vule1-stator3_sila_steny-0.5)/2, center = true, $fn=100); |
//otvor pro lozisko |
translate([0,0,sila_pod_loziskem]) |
cylinder (h = lozisko_vyska+0.1, r=(lozisko_prumer_vnejsi+0.1)/2, center = true, $fn=100); |
//otvor pro hridel rotoru |
translate([0,0,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=(lozisko_prumer_vnitrni+2*lozisko_prekryv+2)/2, center = true, $fn=100); |
//otvor pro sroub 1 |
translate([(lozisko_prumer_vnejsi+prumer_sroubu+5)/2,0,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 2 |
rotate(a=[0,0,120]) |
translate([(lozisko_prumer_vnejsi+prumer_sroubu+5)/2,0,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 3 |
rotate(a=[0,0,240]) |
translate([(lozisko_prumer_vnejsi+prumer_sroubu+5)/2,0,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//otvory pro uchyceni senzoru |
//otvor pro sroub 1 |
translate([(vzdalenost_der_x/2),-vzdalenost_der_y/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([(vzdalenost_der_x/2),-vzdalenost_der_y/2,(lozisko_vyska+sila_pod_loziskem-vyska_hlavy_sroubu)/2]) |
cylinder (h = vyska_hlavy_sroubu+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 2 |
rotate(a=[0,0,0]) |
translate([(-vzdalenost_der_x/2),-vzdalenost_der_y/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([(-vzdalenost_der_x/2),-vzdalenost_der_y/2,(lozisko_vyska+sila_pod_loziskem-vyska_hlavy_sroubu)/2]) |
cylinder (h = vyska_hlavy_sroubu+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 3 |
rotate(a=[0,0,0]) |
translate([(vzdalenost_der_x/2),vzdalenost_der_y/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([(vzdalenost_der_x/2),vzdalenost_der_y/2,(lozisko_vyska+sila_pod_loziskem-vyska_hlavy_sroubu)/2]) |
cylinder (h = vyska_hlavy_sroubu+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 4 |
rotate(a=[0,0,0]) |
translate([(-vzdalenost_der_x/2),vzdalenost_der_y/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([(-vzdalenost_der_x/2),vzdalenost_der_y/2,(lozisko_vyska+sila_pod_loziskem-vyska_hlavy_sroubu)/2]) |
cylinder (h = vyska_hlavy_sroubu+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
//otvory pro uchyceni stator 3 |
//otvor pro sroub 1 |
translate([0,(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([0,(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,2]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 2 |
translate([0,-(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([0,-(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,2]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/stator3.scad |
---|
0,0 → 1,78 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
module stator3(stator3_vyska,prumer_rotoru1,lozisko_vyska,sila_pod_loziskem,sila_materialu,vule1,stator3_sila_steny, |
stator3_vyska_prekryti,prumer_hlavy_sroubu,stator3_vzdalenost_od_steny,lozisko_vyska,prumer_sroubu,roztec_sroubu,uchyt_prumer_sroubu,vyska_stator4,kabel_prumer) |
{ |
difference() |
{ |
cylinder (h = stator3_vyska, r=(prumer_rotoru1)/2, center = true, $fn=100); |
translate([0,0,(stator3_vyska-lozisko_vyska-sila_pod_loziskem)/2]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=(prumer_rotoru1-2*sila_materialu-2*vule1-stator3_sila_steny)/2, center = true, $fn=100); |
cylinder (h = stator3_vyska+0.1, r=(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-1)/2, center = true, $fn=100); |
translate([0,0,(stator3_vyska-stator3_vyska_prekryti)/2]) |
difference() |
{ |
cylinder (h = stator3_vyska_prekryti+0.1, r=(prumer_rotoru1+0.1)/2, center = true, $fn=100); |
cylinder (h = stator3_vyska_prekryti+0.1, r=(prumer_rotoru1-2*sila_materialu-2*vule1)/2, center = true, $fn=100); |
} |
//otvory pro uchyceni stator 3 |
//otvor pro sroub 1 |
translate([0,(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([0,(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,2]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 2 |
translate([0,-(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,0]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
translate([0,-(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,2]) |
cylinder (h = lozisko_vyska+sila_pod_loziskem+0.1, r=prumer_hlavy_sroubu/2, center = true, $fn=100); |
} |
//dno stator3 |
translate([0,0,-(stator3_vyska-stator3_sila_steny)/2]) |
difference() |
{ |
cylinder (h = stator3_sila_steny, r=(prumer_rotoru1)/2, center = true, $fn=100); |
//otvory pro uchyceni stator 3 |
//otvor pro sroub 1 |
translate([0,(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,0]) |
cylinder (h = stator3_sila_steny+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//otvor pro sroub 2 |
translate([0,-(prumer_rotoru1-2*sila_materialu-2*vule1-2*stator3_sila_steny-prumer_hlavy_sroubu-2*stator3_vzdalenost_od_steny)/2,0]) |
cylinder (h = stator3_sila_steny+0.1, r=prumer_sroubu/2, center = true, $fn=100); |
//srouby pro uchycení anemometru |
translate([roztec_sroubu/2,roztec_sroubu/2,0]) |
cylinder (h = stator3_sila_steny+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
translate([-roztec_sroubu/2,roztec_sroubu/2,0]) |
cylinder (h = stator3_sila_steny+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
translate([roztec_sroubu/2,-roztec_sroubu/2,0]) |
cylinder (h = stator3_sila_steny+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
translate([-roztec_sroubu/2,-roztec_sroubu/2,0]) |
cylinder (h = stator3_sila_steny+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
//dira na kabel |
cylinder (h = vyska_stator4+0.1, r=(kabel_prumer/2+0.1), center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/stator4.scad |
---|
0,0 → 1,50 |
$fn=40; // model faces resolution. |
//include <../configuration.scad> |
//stator4 (roztec_sroubu,uchyt_prumer_sroubu,vyska_stator4,sila_materialu,uchyt_vyska_matky,uchyt_prumer_orechu,kabel_prumer); |
module stator4 (roztec_sroubu,uchyt_prumer_sroubu,vyska_stator4,sila_materialu,uchyt_vyska_matky,uchyt_prumer_orechu,kabel_prumer) |
{ |
difference() |
{ |
//translate([90,0,0]) |
cube(size = [roztec_sroubu+uchyt_prumer_orechu+2*sila_materialu,roztec_sroubu+uchyt_prumer_orechu+2*sila_materialu, vyska_stator4], center = true); |
//díry pro uchycení anemometru |
translate([roztec_sroubu/2,roztec_sroubu/2,0]) |
cylinder (h = vyska_stator4+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
translate([-roztec_sroubu/2,roztec_sroubu/2,0]) |
cylinder (h = vyska_stator4+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
translate([roztec_sroubu/2,-roztec_sroubu/2,0]) |
cylinder (h = vyska_stator4+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
translate([-roztec_sroubu/2,-roztec_sroubu/2,0]) |
cylinder (h = vyska_stator4+0.1, r=uchyt_prumer_sroubu/2, center = true, $fn=100); |
//dira na kabel |
cylinder (h = vyska_stator4+0.1, r=(kabel_prumer/2+0.1), center = true, $fn=100); |
//díry pro matky |
translate([roztec_sroubu/2,roztec_sroubu/2,vyska_stator4/2-uchyt_vyska_matky/2]) |
cylinder (h = uchyt_vyska_matky+0.1, r=uchyt_prumer_orechu/2, center = true, $fn=100); |
translate([-roztec_sroubu/2,roztec_sroubu/2,vyska_stator4/2-uchyt_vyska_matky/2]) |
cylinder (h = uchyt_vyska_matky+0.1, r=uchyt_prumer_orechu/2, center = true, $fn=100); |
translate([roztec_sroubu/2,-roztec_sroubu/2,vyska_stator4/2-uchyt_vyska_matky/2]) |
cylinder (h = uchyt_vyska_matky+0.1, r=uchyt_prumer_orechu/2, center = true, $fn=100); |
translate([-roztec_sroubu/2,-roztec_sroubu/2,vyska_stator4/2-uchyt_vyska_matky/2]) |
cylinder (h = uchyt_vyska_matky+0.1, r=uchyt_prumer_orechu/2, center = true, $fn=100); |
} |
} |
/Modules/Mechanical/WINDGAUGE02A/CAD/SRC/zavity.scad |
---|
0,0 → 1,324 |
/* |
* ISO-standard metric threads, following this specification: |
* http://en.wikipedia.org/wiki/ISO_metric_screw_thread |
* |
* Dan Kirshner - dan_kirshner@yahoo.com |
* |
* You are welcome to make free use of this software. Retention of my |
* authorship credit would be appreciated. |
* |
* Version 1.8. 2016-01-08 Option: (non-standard) angle. |
* Version 1.7. 2015-11-28 Larger x-increment - for small-diameters. |
* Version 1.6. 2015-09-01 Options: square threads, rectangular threads. |
* Version 1.5. 2015-06-12 Options: thread_size, groove. |
* Version 1.4. 2014-10-17 Use "faces" instead of "triangles" for polyhedron |
* Version 1.3. 2013-12-01 Correct loop over turns -- don't have early cut-off |
* Version 1.2. 2012-09-09 Use discrete polyhedra rather than linear_extrude () |
* Version 1.1. 2012-09-07 Corrected to right-hand threads! |
*/ |
// Examples. |
// |
// Standard M8 x 1. |
// metric_thread (diameter=8, pitch=1, length=4); |
// Square thread. |
// metric_thread (diameter=8, pitch=1, length=4, square=true); |
// Non-standard: long pitch, same thread size. |
//metric_thread (diameter=8, pitch=4, length=4, thread_size=1, groove=true); |
// Non-standard: 20 mm diameter, long pitch, square "trough" width 3 mm, |
// depth 1 mm. |
//metric_thread (diameter=20, pitch=8, length=16, square=true, thread_size=6, |
// groove=true, rectangle=0.333); |
// English: 1/4 x 20. |
//english_thread (diameter=1/4, threads_per_inch=20, length=1); |
// Thread for mounting on Rohloff hub. |
//difference () { |
// cylinder (r=20, h=10, $fn=100); |
// |
// metric_thread (diameter=34, pitch=1, length=10, internal=true, n_starts=6); |
//} |
// ---------------------------------------------------------------------------- |
function segments (diameter) = min (50, ceil (diameter*6)); |
// ---------------------------------------------------------------------------- |
// internal - true = clearances for internal thread (e.g., a nut). |
// false = clearances for external thread (e.g., a bolt). |
// (Internal threads should be "cut out" from a solid using |
// difference ()). |
// n_starts - Number of thread starts (e.g., DNA, a "double helix," has |
// n_starts=2). See wikipedia Screw_thread. |
// thread_size - (non-standard) size of a single thread "V" - independent of |
// pitch. Default: same as pitch. |
// groove - (non-standard) subtract inverted "V" from cylinder (rather than |
// add protruding "V" to cylinder). |
// square - Square threads (per |
// https://en.wikipedia.org/wiki/Square_thread_form). |
// rectangle - (non-standard) "Rectangular" thread - ratio depth/width |
// Default: 1 (square). |
// angle - (non-standard) angle (deg) of thread side from perpendicular to |
// axis (default = standard = 30 degrees). |
module metric_thread (diameter=8, pitch=1, length=1, internal=false, n_starts=1, |
thread_size=-1, groove=false, square=false, rectangle=0, |
angle=30) |
{ |
// thread_size: size of thread "V" different than travel per turn (pitch). |
// Default: same as pitch. |
local_thread_size = thread_size == -1 ? pitch : thread_size; |
local_rectangle = rectangle ? rectangle : 1; |
n_segments = segments (diameter); |
h = (square || rectangle) ? local_thread_size*local_rectangle/2 : local_thread_size * cos (angle); |
h_fac1 = (square || rectangle) ? 0.90 : 0.625; |
// External thread includes additional relief. |
h_fac2 = (square || rectangle) ? 0.95 : 5.3/8; |
if (! groove) { |
metric_thread_turns (diameter, pitch, length, internal, n_starts, |
local_thread_size, groove, square, rectangle, angle); |
} |
difference () { |
// Solid center, including Dmin truncation. |
if (groove) { |
cylinder (r=diameter/2, h=length, $fn=n_segments); |
} else if (internal) { |
cylinder (r=diameter/2 - h*h_fac1, h=length, $fn=n_segments); |
} else { |
// External thread. |
cylinder (r=diameter/2 - h*h_fac2, h=length, $fn=n_segments); |
} |
if (groove) { |
metric_thread_turns (diameter, pitch, length, internal, n_starts, |
local_thread_size, groove, square, rectangle, |
angle); |
} |
} |
} |
// ---------------------------------------------------------------------------- |
// Input units in inches. |
// Note: units of measure in drawing are mm! |
module english_thread (diameter=0.25, threads_per_inch=20, length=1, |
internal=false, n_starts=1, thread_size=-1, groove=false, |
square=false, rectangle=0) |
{ |
// Convert to mm. |
mm_diameter = diameter*25.4; |
mm_pitch = (1.0/threads_per_inch)*25.4; |
mm_length = length*25.4; |
echo (str ("mm_diameter: ", mm_diameter)); |
echo (str ("mm_pitch: ", mm_pitch)); |
echo (str ("mm_length: ", mm_length)); |
metric_thread (mm_diameter, mm_pitch, mm_length, internal, n_starts, |
thread_size, groove, square, rectangle); |
} |
// ---------------------------------------------------------------------------- |
module metric_thread_turns (diameter, pitch, length, internal, n_starts, |
thread_size, groove, square, rectangle, angle) |
{ |
// Number of turns needed. |
n_turns = floor (length/pitch); |
intersection () { |
// Start one below z = 0. Gives an extra turn at each end. |
for (i=[-1*n_starts : n_turns+1]) { |
translate ([0, 0, i*pitch]) { |
metric_thread_turn (diameter, pitch, internal, n_starts, |
thread_size, groove, square, rectangle, angle); |
} |
} |
// Cut to length. |
translate ([0, 0, length/2]) { |
cube ([diameter*3, diameter*3, length], center=true); |
} |
} |
} |
// ---------------------------------------------------------------------------- |
module metric_thread_turn (diameter, pitch, internal, n_starts, thread_size, |
groove, square, rectangle, angle) |
{ |
n_segments = segments (diameter); |
fraction_circle = 1.0/n_segments; |
for (i=[0 : n_segments-1]) { |
rotate ([0, 0, i*360*fraction_circle]) { |
translate ([0, 0, i*n_starts*pitch*fraction_circle]) { |
thread_polyhedron (diameter/2, pitch, internal, n_starts, |
thread_size, groove, square, rectangle, angle); |
} |
} |
} |
} |
// ---------------------------------------------------------------------------- |
// z (see diagram) as function of current radius. |
// (Only good for first half-pitch.) |
function z_fct (current_radius, radius, pitch, angle) |
= 0.5* (current_radius - (radius - 0.875*pitch*cos (angle))) |
/cos (angle); |
// ---------------------------------------------------------------------------- |
module thread_polyhedron (radius, pitch, internal, n_starts, thread_size, |
groove, square, rectangle, angle) |
{ |
n_segments = segments (radius*2); |
fraction_circle = 1.0/n_segments; |
local_rectangle = rectangle ? rectangle : 1; |
h = (square || rectangle) ? thread_size*local_rectangle/2 : thread_size * cos (angle); |
outer_r = radius + (internal ? h/20 : 0); // Adds internal relief. |
//echo (str ("outer_r: ", outer_r)); |
// A little extra on square thread -- make sure overlaps cylinder. |
h_fac1 = (square || rectangle) ? 1.1 : 0.875; |
inner_r = radius - h*h_fac1; // Does NOT do Dmin_truncation - do later with |
// cylinder. |
translate_y = groove ? outer_r + inner_r : 0; |
reflect_x = groove ? 1 : 0; |
// Make these just slightly bigger (keep in proportion) so polyhedra will |
// overlap. |
x_incr_outer = (! groove ? outer_r : inner_r) * fraction_circle * 2 * PI * 1.02; |
x_incr_inner = (! groove ? inner_r : outer_r) * fraction_circle * 2 * PI * 1.02; |
z_incr = n_starts * pitch * fraction_circle * 1.005; |
/* |
(angles x0 and x3 inner are actually 60 deg) |
/\ (x2_inner, z2_inner) [2] |
/ \ |
(x3_inner, z3_inner) / \ |
[3] \ \ |
|\ \ (x2_outer, z2_outer) [6] |
| \ / |
| \ /| |
z |[7]\/ / (x1_outer, z1_outer) [5] |
| | | / |
| x | |/ |
| / | / (x0_outer, z0_outer) [4] |
| / | / (behind: (x1_inner, z1_inner) [1] |
|/ | / |
y________| |/ |
(r) / (x0_inner, z0_inner) [0] |
*/ |
x1_outer = outer_r * fraction_circle * 2 * PI; |
z0_outer = z_fct (outer_r, radius, thread_size, angle); |
//echo (str ("z0_outer: ", z0_outer)); |
//polygon ([[inner_r, 0], [outer_r, z0_outer], |
// [outer_r, 0.5*pitch], [inner_r, 0.5*pitch]]); |
z1_outer = z0_outer + z_incr; |
// Give internal square threads some clearance in the z direction, too. |
bottom = internal ? 0.235 : 0.25; |
top = internal ? 0.765 : 0.75; |
translate ([0, translate_y, 0]) { |
mirror ([reflect_x, 0, 0]) { |
if (square || rectangle) { |
// Rule for face ordering: look at polyhedron from outside: points must |
// be in clockwise order. |
polyhedron ( |
points = [ |
[-x_incr_inner/2, -inner_r, bottom*thread_size], // [0] |
[x_incr_inner/2, -inner_r, bottom*thread_size + z_incr], // [1] |
[x_incr_inner/2, -inner_r, top*thread_size + z_incr], // [2] |
[-x_incr_inner/2, -inner_r, top*thread_size], // [3] |
[-x_incr_outer/2, -outer_r, bottom*thread_size], // [4] |
[x_incr_outer/2, -outer_r, bottom*thread_size + z_incr], // [5] |
[x_incr_outer/2, -outer_r, top*thread_size + z_incr], // [6] |
[-x_incr_outer/2, -outer_r, top*thread_size] // [7] |
], |
faces = [ |
[0, 3, 7, 4], // This-side trapezoid |
[1, 5, 6, 2], // Back-side trapezoid |
[0, 1, 2, 3], // Inner rectangle |
[4, 7, 6, 5], // Outer rectangle |
// These are not planar, so do with separate triangles. |
[7, 2, 6], // Upper rectangle, bottom |
[7, 3, 2], // Upper rectangle, top |
[0, 5, 1], // Lower rectangle, bottom |
[0, 4, 5] // Lower rectangle, top |
] |
); |
} else { |
// Rule for face ordering: look at polyhedron from outside: points must |
// be in clockwise order. |
polyhedron ( |
points = [ |
[-x_incr_inner/2, -inner_r, 0], // [0] |
[x_incr_inner/2, -inner_r, z_incr], // [1] |
[x_incr_inner/2, -inner_r, thread_size + z_incr], // [2] |
[-x_incr_inner/2, -inner_r, thread_size], // [3] |
[-x_incr_outer/2, -outer_r, z0_outer], // [4] |
[x_incr_outer/2, -outer_r, z0_outer + z_incr], // [5] |
[x_incr_outer/2, -outer_r, thread_size - z0_outer + z_incr], // [6] |
[-x_incr_outer/2, -outer_r, thread_size - z0_outer] // [7] |
], |
faces = [ |
[0, 3, 7, 4], // This-side trapezoid |
[1, 5, 6, 2], // Back-side trapezoid |
[0, 1, 2, 3], // Inner rectangle |
[4, 7, 6, 5], // Outer rectangle |
// These are not planar, so do with separate triangles. |
[7, 2, 6], // Upper rectangle, bottom |
[7, 3, 2], // Upper rectangle, top |
[0, 5, 1], // Lower rectangle, bottom |
[0, 4, 5] // Lower rectangle, top |
] |
); |
} |
} |
} |
} |
// Thread for mounting on Rohloff hub. |
difference () { |
cylinder (r=20, h=5, $fn=100); |
metric_thread (diameter=34, pitch=1, length=5, internal=true, n_starts=6); |
} |
metric_thread (diameter=33, pitch=1, length=10, internal=false, n_starts=6); |
/Modules/Mechanical/WINDGAUGE02A/CAD/print_data/P_WINDGAUGE02A_L01.scad |
---|
File deleted |
/Modules/Mechanical/WINDGAUGE02A/CAD/print_data/P_WINDGAUGE02A_R01.scad |
---|
File deleted |
/Modules/Mechanical/WINDGAUGE02A/CAD/print_data/P_WINDGAUGE02A_R02.scad |
---|
File deleted |
/Modules/Mechanical/WINDGAUGE02A/CAD/print_data/P_WINDGAUGE02A_R03.scad |
---|
File deleted |
/Modules/Mechanical/WINDGAUGE02A/CAD/print_data/P_WINDGAUGE02A_S03.scad |
---|
2,10 → 2,10 |
include <../configuration.scad> |
use <../SRC/WINDGAUGE02A_S03.scad> |
use <../SRC/polyScrewThread_r1.scad> |
use <../SRC/zavity.scad> |
translate([0,0,S01_vyska_komponentu_na_lozisko]) |
rotate([0, 180, 0]) |
WINDGAUGE02A_S03(S01_sila_materialu,S01_vyska_komponentu_na_lozisko,S01_prumer_zavitu,lozisko_vyska,lozisko_prumer_vnejsi,lozisko_prumer_vnitrni,lozisko_prekryv,vyska_matky,prumer_orechu,prumer_sroubu,vyska_hlavy_sroubu,prumer_hlavy_sroubu); |
module WINDGAUGE02A_S03(S01_sila_materialu,S01_vyska_komponentu_na_lozisko,S01_prumer_zavitu,lozisko_vyska,lozisko_prumer_vnejsi,lozisko_prumer_vnitrni,lozisko_prekryv,vyska_matky,prumer_orechu,prumer_sroubu,vyska_hlavy_sroubu,prumer_hlavy_sroubu) |