/Modules/Mechanical/AWSCREEN02A/CAD/SRC/AWSCREEN02A_D02.scad |
---|
0,0 → 1,70 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
include <polyScrewThread_r1.scad> |
AWSCREEN02A_D02(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,3*D03_vyska_zavitu,D03_pocet_vyztuh,screen_bevel); |
module AWSCREEN02A_D02(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel) |
{ |
angle_sep = 360/D03_pocet_vyztuh; |
//spodní kruh |
difference () { |
cylinder (h=3*D03_tloustka_materialu,r = D03_polomer_stitu,$fn=100); |
translate ([0,0,-0.005]) |
cylinder (h=3*D03_tloustka_materialu+0.01,r = D03_polomer_stitu-D03_tloustka_materialu,$fn=100); |
} |
//screen - velky kuzel |
translate ([0,0,3*D03_tloustka_materialu]) |
difference () { |
cylinder (h=D03_vyska_stitu-3*D03_tloustka_materialu,r1=D03_polomer_stitu ,r2=D03_polomer_zavitu,$fn=100); |
translate ([0,0,-0.01/2]) |
cylinder (h=D03_vyska_stitu-3*D03_tloustka_materialu-0.4,r1=D03_polomer_stitu-D03_tloustka_materialu ,r2=D03_polomer_zavitu -D03_tloustka_materialu,$fn=100); |
} |
//horni kuzel |
translate ([0,0,D03_vyska_stitu]) |
cylinder (h=5,r1=D03_polomer_zavitu ,r2=1,$fn=100); |
//inner ring |
difference () { |
cylinder (h=D03_vyska_zavitu,r = D03_polomer_zavitu + D03_material_za_zavitem/2,$fn=100); |
translate([0,0,-1]) |
screw_thread(D03_polomer_zavitu*2,4,55,D03_vyska_zavitu+2,PI/2,2); |
} |
// center ribs |
for (i = [0 : (D03_pocet_vyztuh-1)]) { |
rotate ([90,0,angle_sep* i]) |
translate ([0,0,-D03_tloustka_materialu/2]) |
linear_extrude (height = D03_tloustka_materialu, convexity = 10) |
polygon(points=[[D03_polomer_zavitu,D03_vyska_stitu],[D03_polomer_zavitu, 0],[D03_polomer_stitu - D03_tloustka_materialu,0],[D03_polomer_stitu- D03_tloustka_materialu,3*D03_tloustka_materialu]]); |
} |
} |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/AWSCREEN02A_D03.scad |
---|
0,0 → 1,88 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
include <polyScrewThread_r1.scad> |
AWSCREEN02A_D03(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel); |
module AWSCREEN02A_D03(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel) |
{ |
angle_sep = 360/D03_pocet_vyztuh; |
//spodní kruh |
difference () { |
cylinder (h=3*D03_tloustka_materialu,r = D03_polomer_stitu,$fn=100); |
translate ([0,0,-0.005]) |
cylinder (h=3*D03_tloustka_materialu+0.01,r = D03_polomer_stitu-D03_tloustka_materialu,$fn=100); |
} |
//horni zavit |
translate ([0,0,D03_vyska_stitu]) |
// screen upper rim |
difference () { |
screw_thread((D03_polomer_zavitu-D03_tolerance_zavitu)*2,4,55,D03_vyska_zavitu+5,PI/2,2); |
translate ([0,0,-0.01]) |
cylinder (h=D03_vyska_zavitu+0.02 ,r= D03_polomer_zavitu -D03_tolerance_zavitu- D03_material_za_zavitem ,$fn=100); |
translate ([0,0,D03_vyska_zavitu-0.01]) |
cylinder (h=D03_vyska_zavitu+0.02 ,r= D03_polomer_zavitu ,$fn=100); |
} |
//screen |
translate ([0,0,3*D03_tloustka_materialu]) |
difference () { |
cylinder (h=D03_vyska_stitu-3*D03_tloustka_materialu,r1=D03_polomer_stitu ,r2=D03_polomer_zavitu-D03_tolerance_zavitu,$fn=100); |
translate ([0,0,-0.01/2]) |
cylinder (h=D03_vyska_stitu-3*D03_tloustka_materialu+0.01,r1=D03_polomer_stitu-D03_tloustka_materialu ,r2=D03_polomer_zavitu- D03_material_za_zavitem-D03_tolerance_zavitu,$fn=100); |
} |
//inner ring |
//spodní závit |
difference () { |
union(){ |
cylinder (h=D03_vyska_zavitu,r = D03_polomer_zavitu + D03_material_za_zavitem/2,$fn=100); |
//výztuhy |
// center ribs |
for (i = [0 : (D03_pocet_vyztuh-1)]) { |
rotate ([90,0,angle_sep* i]) |
translate ([0,0,-D03_tloustka_materialu/2]) |
linear_extrude (height = D03_tloustka_materialu, convexity = 10) |
polygon(points=[[D03_polomer_zavitu- D03_material_za_zavitem-D03_tolerance_zavitu,D03_vyska_stitu],[D03_polomer_zavitu, 0],[D03_polomer_stitu - D03_tloustka_materialu,0],[D03_polomer_stitu- D03_tloustka_materialu,3*D03_tloustka_materialu]]); |
} |
} |
translate([0,0,-1]) |
screw_thread(D03_polomer_zavitu*2,4,55,D03_vyska_zavitu+2,PI/2,2); |
} |
} |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/AWSCREEN02A_D04.scad |
---|
0,0 → 1,124 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
include <polyScrewThread_r1.scad> |
AWSCREEN02A_D04(); |
module AWSCREEN02A_D04() |
{ |
difference() |
{ |
union() |
{ |
//drzák senzoru |
translate([0,0,(D04_vyska_drzaku_senzoru)/2]) |
difference() |
{ |
cube([10.16+2*D03_tloustka_materialu,3+2*D03_tloustka_materialu,D04_vyska_drzaku_senzoru],true); |
cube([10.16,3,D04_vyska_drzaku_senzoru+0.01],true); |
translate([0,5,D04_vyska_drzaku_senzoru/2-3.08]) |
rotate ([90,0,0]) |
cylinder (h = 30, r=(3.3/2), $fn=100); |
} |
difference() |
{ |
translate([0,0,0]) |
cylinder (h = D04_sila_materialu_na_konektor, r=(S01_prumer_zavitu+4*D01_material_pred_zavitem)/2, $fn=12); |
translate([0,0,-0.01]) |
cylinder (h = 0.01+D01_material_pod_zavitem+D04_sila_materialu_na_konektor, r=(S01_prumer_zavitu-2*D01_material_za_zavitem-4*D03_tolerance_zavitu-2*D01_material_za_zavitem)/2, $fn=100); |
} |
difference() |
{ |
translate([0,0,D04_sila_materialu_na_konektor]) |
screw_thread(S01_prumer_zavitu-2*D03_tolerance_zavitu,4,55,D04_sila_zavitu_stojanku+D03_vyska_zavitu+4,PI/2,2); |
//začištění závitu aby byl celý |
translate([0,0,D04_sila_materialu_na_konektor+D04_sila_zavitu_stojanku+D03_vyska_zavitu]) |
cylinder (h = 5, r=(S01_prumer_zavitu)/2, $fn=100); |
//vnitřní otvor v závitu |
cylinder (h = 0.01+D04_sila_materialu_na_konektor+D04_sila_zavitu_stojanku+D03_vyska_zavitu, r=(S01_prumer_zavitu-2*D01_material_za_zavitem-2*D03_tolerance_zavitu)/2, $fn=100); |
} |
//materiál držáku konektoru |
translate([0,0,D04_sila_materialu_na_konektor/2]) |
cube([D04_konenektor_x+12,(S01_prumer_zavitu-D01_material_za_zavitem-2*D03_tolerance_zavitu-D01_material_za_zavitem),D04_sila_materialu_na_konektor],true); |
//materiál pro kryt konektoru |
//spodní krychle |
translate([0,0,D04_konenektor_z/2+D04_sila_materialu_na_konektor]) |
cube([D04_konenektor_x+6+2*D03_tloustka_materialu,D04_konenektor_y,D04_konenektor_z],true); |
//vrchní válec |
translate([0,D04_konenektor_y/2,D04_sila_materialu_na_konektor+D04_konenektor_z]) |
rotate ([90,0,0]) |
difference() |
{ |
cylinder (h = D04_konenektor_y, r=(D04_konenektor_x+6+2*D03_tloustka_materialu)/2, $fn=100); |
translate([0,-(D04_konenektor_x+6+2*D03_tloustka_materialu)/4,D04_konenektor_y/2]) |
cube([(D04_konenektor_x+6+2*D03_tloustka_materialu)+0.01,(D04_konenektor_x+6+2*D03_tloustka_materialu)/2+0.01,D04_konenektor_y+0.01],true); |
} |
} |
//otvor na konektor |
translate([0,0,0]) |
cube([D04_konenektor_x,D04_konenektor_y,2*D04_sila_materialu_na_konektor+0.01],true); |
//dotvoření otvoru |
//pro nasunutí ve spodní části |
translate([0,-(S01_prumer_zavitu)/4-4*D03_material_za_zavitem,0]) |
cube([D04_konenektor_x,(S01_prumer_zavitu)/2,(D04_sila_materialu_na_konektor+2*D03_material_za_zavitem)*2+0.01],true); |
//odstranění závitu pro vsunutí konektoru |
translate([0,-(S01_prumer_zavitu-D01_material_za_zavitem-2*D03_tolerance_zavitu-D01_material_za_zavitem)/2,D04_sila_materialu_na_konektor+(D04_sila_zavitu_stojanku+D03_vyska_zavitu+4)/2]) |
cube([D04_konenektor_x+6,4+D01_material_za_zavitem,(D04_sila_zavitu_stojanku+D03_vyska_zavitu+4)],true); |
translate([0,0,D04_sila_materialu_na_konektor+(D04_konenektor_z)/2]) |
//odstranění spodního kvádru v oblasti krytu konektoru |
cube([D04_konenektor_x+6,D04_konenektor_y+0.01,D04_konenektor_z+0.04],true); |
//odstranění vrchního válce |
translate([0,D04_konenektor_y/2,D04_sila_materialu_na_konektor+D04_konenektor_z]) |
rotate ([90,0,0]) |
difference() |
{ |
cylinder (h = D04_konenektor_y+0.01, r=(D04_konenektor_x+6)/2, $fn=100); |
translate([0,-(D04_konenektor_x+6)/4,D04_konenektor_y/2]) |
cube([(D04_konenektor_x+6)+0.01,(D04_konenektor_x+6)/2+0.01,D04_konenektor_y+0.02],true); |
} |
//otvor na senzor v držáku |
translate([0,7,-2]) |
translate([0,0,(15+5.08)/2-(5.08+3.3+2)/2]) |
cube([10.16,3,25],true); |
} |
} |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/AWSCREEN02A_D05.scad |
---|
0,0 → 1,93 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
include <AWSCREEN02A_D06.scad> |
include <polyScrewThread_r1.scad> |
PI=3.141592; |
module AWSCREEN02A_D05(S01_vyska_komponentu_na_lozisko,S01_prumer_zavitu,D01_material_pod_zavitem,D01_material_za_zavitem,D01_material_pred_zavitem,D01_delka_tyce,D01_sirka_tyce,D02_sila_materialu,D02_vyska_uchytky,D02_prumer_obruby,D02_delka_celeho_uchytu,D02_dotahova_vzdalenost,D02_prumer_uchytneho_sroubu,D03_tolerance_zavitu) |
{ |
difference() |
{ |
union() |
{ |
difference() |
{ |
union() |
{ |
//spodní valec |
translate([0,0,D04_sila_zavitu_stojanku/2]) |
cylinder (h = D04_sila_zavitu_stojanku, r=(S01_prumer_zavitu+D01_material_pred_zavitem*2)/2, center = true, $fn=100); |
//uchyt na tyc |
translate([0,D01_delka_tyce/2+S01_prumer_zavitu/2+D01_material_pred_zavitem,D01_material_pod_zavitem/2]) |
cube([D01_sirka_tyce,D01_delka_tyce,D01_material_pod_zavitem],center=true); |
//uchyt na tyc ovalna cast |
translate([0,S01_prumer_zavitu/2+D01_material_pred_zavitem,D01_material_pod_zavitem/2]) |
cube([D01_sirka_tyce,D01_material_za_zavitem+D01_material_pred_zavitem,D01_material_pod_zavitem],center=true); |
} |
translate([0,0,-4]) |
screw_thread(S01_prumer_zavitu,4,55,D04_sila_zavitu_stojanku+8,PI/2,2); |
} |
//material kolem uchytu na sloupek |
translate([0,D01_delka_tyce+S01_prumer_zavitu/2+D01_material_pred_zavitem+(D02_sila_materialu+D02_prumer_obruby/2)/2-D02_dotahova_vzdalenost,D01_material_pod_zavitem/2]) |
difference() |
{ |
cube([D01_sirka_tyce,D02_sila_materialu+D02_prumer_obruby/2,D01_material_pod_zavitem],center=true); |
translate([0,D02_prumer_obruby/2-D02_dotahova_vzdalenost-D02_sila_materialu,0]) |
cylinder(h=D02_vyska_uchytky+0.01,r=D02_prumer_obruby/2,center=true); |
} |
//uchyt na sloupek |
translate([0,D01_delka_tyce+S01_prumer_zavitu/2+D01_material_pred_zavitem+1+(D02_prumer_obruby)/2,D02_vyska_uchytky/2]) |
rotate(a=[0,0,270]) |
AWSCREEN02A_D06_2(); |
} |
//otvor válcový |
translate([0,0,D01_material_pod_zavitem-1+S01_vyska_komponentu_na_lozisko/2]) |
cylinder (h = S01_vyska_komponentu_na_lozisko+2+0.02, r=(S01_prumer_zavitu-2*D03_tolerance_zavitu-2*D01_material_za_zavitem)/2, center = true, $fn=100); |
//odecet vrchního závitu aby byl rovný |
translate([0,0,D01_material_pod_zavitem+S01_vyska_komponentu_na_lozisko]) |
cylinder (h = S01_vyska_komponentu_na_lozisko+0.02, r=(S01_prumer_zavitu-2*D03_tolerance_zavitu)/2, $fn=100); |
// cube([200,200,200]); |
} |
} |
AWSCREEN02A_D05(S01_vyska_komponentu_na_lozisko,S01_prumer_zavitu,D01_material_pod_zavitem,D01_material_za_zavitem,D01_material_pred_zavitem,D01_delka_tyce,D01_sirka_tyce,D02_sila_materialu,D02_vyska_uchytky,D02_prumer_obruby,D02_delka_celeho_uchytu,D02_dotahova_vzdalenost,D02_prumer_uchytneho_sroubu,D03_tolerance_zavitu); |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/AWSCREEN02A_D06.scad |
---|
0,0 → 1,45 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
module AWSCREEN02A_D06_2(){ |
difference() |
{ |
union() |
{ |
//základní válec |
cylinder(h=D02_vyska_uchytky,r=(D02_prumer_obruby+2*D02_sila_materialu)/2,center=true); |
//úchytové plošky |
translate([D02_dotahova_vzdalenost+D02_sila_materialu/2,0,0]){cube([D02_sila_materialu,D02_delka_celeho_uchytu,D02_vyska_uchytky],center=true);} |
} |
//válec na odečet |
cylinder(h=D02_vyska_uchytky+0.01,r=D02_prumer_obruby/2,center=true); |
//kvádr na odecet |
translate([D02_dotahova_vzdalenost-(D02_prumer_obruby+2*D02_sila_materialu)/2,0,0]){cube([D02_prumer_obruby+2*D02_sila_materialu,D02_prumer_obruby+2*D02_sila_materialu,D02_vyska_uchytky+0.01],center=true);} |
//otvory na sroub |
translate([D02_dotahova_vzdalenost,(D02_delka_celeho_uchytu/2-D02_prumer_obruby/2-D02_sila_materialu)/2+D02_prumer_obruby/2+D02_sila_materialu,0]){rotate([0,90,0]){cylinder(h=D02_sila_materialu+0.01,r=D02_prumer_uchytneho_sroubu/2);}} |
translate([D02_dotahova_vzdalenost,-((D02_delka_celeho_uchytu/2-D02_prumer_obruby/2-D02_sila_materialu)/2+D02_prumer_obruby/2+D02_sila_materialu),0]){rotate([0,90,0]){cylinder(h=D02_sila_materialu+0.01,r=D02_prumer_uchytneho_sroubu/2);}} |
} |
} |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/AWSCREEN02A_D07.scad |
---|
0,0 → 1,107 |
$fn=40; // model faces resolution. |
include <../configuration.scad> |
include <AWSCREEN02A_D06.scad> |
include <polyScrewThread_r1.scad> |
PI=3.141592; |
module AWSCREEN02A_D07() |
{ |
difference() |
{ |
union() |
{ |
// valec na závit |
translate([0,0,D04_sila_zavitu_stojanku/2]) |
cylinder (h = D04_sila_zavitu_stojanku, r=(S01_prumer_zavitu+D01_material_pred_zavitem*2)/2, center = true, $fn=100); |
for (i = [0 : (D07_pocet_nozicek-1)]) { |
rotate ([0,0,(360/D07_pocet_nozicek)* i]) |
nozicka(); |
} |
} |
translate([0,0,-4]) |
screw_thread(S01_prumer_zavitu,4,55,D04_sila_zavitu_stojanku+8,PI/2,2); |
} |
// cube([200,200,200]); |
} |
module nozicka() |
{ |
translate([0,0,0]) |
difference() |
{ |
union() |
{ |
translate([0,0,D04_sila_zavitu_stojanku]) |
cylinder (h=D07_vyska_stojanku,r1=(S01_prumer_zavitu+D01_material_pred_zavitem*2)/2+2*D01_material_pred_zavitem ,r2=(S01_prumer_zavitu+2*D01_material_pred_zavitem)/2+5,$fn=100); |
cylinder (h = D04_sila_zavitu_stojanku, r=(S01_prumer_zavitu+D01_material_pred_zavitem*2)/2+2*D01_material_pred_zavitem , $fn=100); |
} |
translate([0,0,D04_sila_zavitu_stojanku]) |
cylinder (h=D07_vyska_stojanku,r1=(S01_prumer_zavitu+D01_material_pred_zavitem*2)/2+2*D01_material_pred_zavitem-D07_sila_materialu ,r2=(S01_prumer_zavitu+2*D01_material_pred_zavitem)/2-D07_sila_materialu+5,$fn=100); |
translate([0,0,0]) |
difference() |
{ |
cube([2*D07_vyska_stojanku,2*D07_vyska_stojanku,3*D07_vyska_stojanku], true); |
translate([D07_vyska_stojanku,0,D07_vyska_stojanku/2]) |
cube([2*D07_vyska_stojanku,D07_sirka_nozicky,D07_vyska_stojanku+D04_sila_zavitu_stojanku], true); |
} |
} |
} |
AWSCREEN02A_D07(); |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/polyScrewThread_r1.scad |
---|
0,0 → 1,233 |
/* |
* polyScrewThread_r1.scad by aubenc @ Thingiverse |
* |
* This script contains the library modules that can be used to generate |
* threaded rods, screws and nuts. |
* |
* http://www.thingiverse.com/thing:8796 |
* |
* CC Public Domain |
*/ |
module screw_thread(od,st,lf0,lt,rs,cs) |
{ |
or=od/2; |
ir=or-st/2*cos(lf0)/sin(lf0); |
pf=2*PI*or; |
sn=floor(pf/rs); |
lfxy=360/sn; |
ttn=round(lt/st+1); |
zt=st/sn; |
intersection() |
{ |
if (cs >= -1) |
{ |
thread_shape(cs,lt,or,ir,sn,st); |
} |
full_thread(ttn,st,sn,zt,lfxy,or,ir); |
} |
} |
module hex_nut(df,hg,sth,clf,cod,crs) |
{ |
difference() |
{ |
hex_head(hg,df); |
hex_countersink_ends(sth/2,cod,clf,crs,hg); |
screw_thread(cod,sth,clf,hg,crs,-2); |
} |
} |
module hex_screw(od,st,lf0,lt,rs,cs,df,hg,ntl,ntd) |
{ |
ntr=od/2-(st/2)*cos(lf0)/sin(lf0); |
union() |
{ |
hex_head(hg,df); |
translate([0,0,hg]) |
if ( ntl == 0 ) |
{ |
cylinder(h=0.01, r=ntr, center=true); |
} |
else |
{ |
if ( ntd == -1 ) |
{ |
cylinder(h=ntl+0.01, r=ntr, $fn=floor(od*PI/rs), center=false); |
} |
else if ( ntd == 0 ) |
{ |
union() |
{ |
cylinder(h=ntl-st/2, |
r=od/2, $fn=floor(od*PI/rs), center=false); |
translate([0,0,ntl-st/2]) |
cylinder(h=st/2, |
r1=od/2, r2=ntr, |
$fn=floor(od*PI/rs), center=false); |
} |
} |
else |
{ |
cylinder(h=ntl, r=ntd/2, $fn=ntd*PI/rs, center=false); |
} |
} |
translate([0,0,ntl+hg]) screw_thread(od,st,lf0,lt,rs,cs); |
} |
} |
module hex_screw_0(od,st,lf0,lt,rs,cs,df,hg,ntl,ntd) |
{ |
ntr=od/2-(st/2)*cos(lf0)/sin(lf0); |
union() |
{ |
hex_head_0(hg,df); |
translate([0,0,hg]) |
if ( ntl == 0 ) |
{ |
cylinder(h=0.01, r=ntr, center=true); |
} |
else |
{ |
if ( ntd == -1 ) |
{ |
cylinder(h=ntl+0.01, r=ntr, $fn=floor(od*PI/rs), center=false); |
} |
else if ( ntd == 0 ) |
{ |
union() |
{ |
cylinder(h=ntl-st/2, |
r=od/2, $fn=floor(od*PI/rs), center=false); |
translate([0,0,ntl-st/2]) |
cylinder(h=st/2, |
r1=od/2, r2=ntr, |
$fn=floor(od*PI/rs), center=false); |
} |
} |
else |
{ |
cylinder(h=ntl, r=ntd/2, $fn=ntd*PI/rs, center=false); |
} |
} |
translate([0,0,ntl+hg]) screw_thread(od,st,lf0,lt,rs,cs); |
} |
} |
module thread_shape(cs,lt,or,ir,sn,st) |
{ |
if ( cs == 0 ) |
{ |
cylinder(h=lt, r=or, $fn=sn, center=false); |
} |
else |
{ |
union() |
{ |
translate([0,0,st/2]) |
cylinder(h=lt-st+0.005, r=or, $fn=sn, center=false); |
if ( cs == -1 || cs == 2 ) |
{ |
cylinder(h=st/2, r1=ir, r2=or, $fn=sn, center=false); |
} |
else |
{ |
cylinder(h=st/2, r=or, $fn=sn, center=false); |
} |
translate([0,0,lt-st/2]) |
if ( cs == 1 || cs == 2 ) |
{ |
cylinder(h=st/2, r1=or, r2=ir, $fn=sn, center=false); |
} |
else |
{ |
cylinder(h=st/2, r=or, $fn=sn, center=false); |
} |
} |
} |
} |
module full_thread(ttn,st,sn,zt,lfxy,or,ir) |
{ |
if(ir >= 0.2) |
{ |
for(i=[0:ttn-1]) |
{ |
for(j=[0:sn-1]) |
assign( pt = [ [0, 0, i*st-st ], |
[ir*cos(j*lfxy), ir*sin(j*lfxy), i*st+j*zt-st ], |
[ir*cos((j+1)*lfxy), ir*sin((j+1)*lfxy), i*st+(j+1)*zt-st ], |
[0,0,i*st], |
[or*cos(j*lfxy), or*sin(j*lfxy), i*st+j*zt-st/2 ], |
[or*cos((j+1)*lfxy), or*sin((j+1)*lfxy), i*st+(j+1)*zt-st/2 ], |
[ir*cos(j*lfxy), ir*sin(j*lfxy), i*st+j*zt ], |
[ir*cos((j+1)*lfxy), ir*sin((j+1)*lfxy), i*st+(j+1)*zt ], |
[0, 0, i*st+st ] ]) |
{ |
polyhedron(points=pt, |
triangles=[ [1,0,3],[1,3,6],[6,3,8],[1,6,4], |
[0,1,2],[1,4,2],[2,4,5],[5,4,6],[5,6,7],[7,6,8], |
[7,8,3],[0,2,3],[3,2,7],[7,2,5] ]); |
} |
} |
} |
else |
{ |
echo("Step Degrees too agresive, the thread will not be made!!"); |
echo("Try to increase de value for the degrees and/or..."); |
echo(" decrease the pitch value and/or..."); |
echo(" increase the outer diameter value."); |
} |
} |
module hex_head(hg,df) |
{ |
rd0=df/2/sin(60); |
x0=0; x1=df/2; x2=x1+hg/2; |
y0=0; y1=hg/2; y2=hg; |
intersection() |
{ |
cylinder(h=hg, r=rd0, $fn=6, center=false); |
rotate_extrude(convexity=10, $fn=6*round(df*PI/6/0.5)) |
polygon([ [x0,y0],[x1,y0],[x2,y1],[x1,y2],[x0,y2] ]); |
} |
} |
module hex_head_0(hg,df) |
{ |
cylinder(h=hg, r=df/2/sin(60), $fn=6, center=false); |
} |
module hex_countersink_ends(chg,cod,clf,crs,hg) |
{ |
translate([0,0,-0.1]) |
cylinder(h=chg+0.01, |
r1=cod/2, |
r2=cod/2-(chg+0.1)*cos(clf)/sin(clf), |
$fn=floor(cod*PI/crs), center=false); |
translate([0,0,hg-chg+0.1]) |
cylinder(h=chg+0.01, |
r1=cod/2-(chg+0.1)*cos(clf)/sin(clf), |
r2=cod/2, |
$fn=floor(cod*PI/crs), center=false); |
} |
/Modules/Mechanical/AWSCREEN02A/CAD/SRC/polytests.scad |
---|
0,0 → 1,95 |
/* |
* polyTests.scad by aubenc @ Thingiverse |
* |
* This script contains few examples to show how to use the modules |
* included in the library script: polyScrewThead.scad |
* |
* http://www.thingiverse.com/thing:8796 |
* |
* CC Public Domain |
*/ |
include <polyScrewThread.scad> |
PI=3.141592; |
/* Example 01. |
* Just a 100mm long threaded rod. |
* |
* screw_thread(15, // Outer diameter of the thread |
* 4, // Step, traveling length per turn, also, tooth height, whatever... |
* 55, // Degrees for the shape of the tooth |
* (XY plane = 0, Z = 90, btw, 0 and 90 will/should not work...) |
* 100, // Length (Z) of the tread |
* PI/2, // Resolution, one face each "PI/2" mm of the perimeter, |
* 0); // Countersink style: |
* -2 - Not even flat ends |
* -1 - Bottom (countersink'd and top flat) |
* 0 - None (top and bottom flat) |
* 1 - Top (bottom flat) |
* 2 - Both (countersink'd) |
*/ |
// screw_thread(15,4,55,100,PI/2,2); |
/* Example 02. |
* A nut for the previous example. |
* |
* hexa_nut(24, // Distance between flats |
* 8, // Height |
* 4, // Step height (the half will be used to countersink the ends) |
* 55, // Degrees (same as used for the screw_thread example) |
* 15, // Outer diameter of the thread to match |
* 0.5) // Resolution, you may want to set this to small values |
* (quite high res) to minimize overhang issues |
* |
*/ |
// hex_nut(24,8,4,55,15,0.5); |
/* Example 03. |
* A screw, threaded all the way, with hex head. |
* |
* hex_screw(15, // Outer diameter of the thread |
* 4, // Thread step |
* 55, // Step shape degrees |
* 30, // Length of the threaded section of the screw |
* 1.5, // Resolution (face at each 2mm of the perimeter) |
* 2, // Countersink in both ends |
* 24, // Distance between flats for the hex head |
* 8, // Height of the hex head (can be zero) |
* 0, // Length of the non threaded section of the screw |
* 0) // Diameter for the non threaded section of the screw |
* -1 - Same as inner diameter of the thread |
* 0 - Same as outer diameter of the thread |
* value - The given value |
* |
*/ |
// hex_screw(15,4,55,30,1.5,2,24,8,0,0); |
/* Example 04. |
* A screw with a non threaded section and with hex head. |
* |
* Same module and parameters than for Example 03 but for the length of the non |
* threaded section wich is set to 50mm here. |
* |
*/ |
// hex_screw(15,4,55,30,1.5,2,24,8,50,0); |
/* Example 05. |
* |
* A rod whith a middle section without thread and, a portion of it, hex shaped. |
* One end is threaded in the opposite direction than the other. |
* |
* So... yes, OpenSCAD mirror feature will change the thread direction. |
* |
*/ |
/* |
translate([0,0,32.5+5+7.5]) |
union() |
{ |
hex_screw(15,4,55,32.5,1.5,2,15,5,7.5,0); |
mirror([0,0,1]) hex_screw(15,4,55,32.5,1.5,2,15,5,7.5,0); |
} |
*/ |
/Modules/Mechanical/AWSCREEN02A/CAD/assembly.scad |
---|
0,0 → 1,83 |
use <SRC/AWSCREEN01A_D01.scad> |
use <SRC/AWSCREEN01A_D02.scad> |
use <SRC/AWSCREEN01A_D03.scad> |
use <SRC/AWSCREEN01A_D04.scad> |
use <SRC/AWSCREEN01A_D05.scad> |
use <SRC/AWSCREEN01A_D06.scad> |
use <SRC/AWSCREEN01A_D07.scad> |
include <configuration.scad> |
barva_D02 = "cyan"; |
barva_D03 = "yellow"; |
barva_D04 = "green"; |
barva_D05 = "yellow"; |
barva_D06 = "cyan"; |
posunuti_dilu=0; //posunuti dilu od sebe |
difference() |
{ |
union() |
{ |
//AWSCREEN01A_D05 DRŽÁK |
//------------------------------------------------------------- |
//------------------------------------------------------------- |
color(barva_D05) |
translate([0,0,0]) |
AWSCREEN01A_D05(S01_vyska_komponentu_na_lozisko,S01_prumer_zavitu,D01_material_pod_zavitem,D01_material_za_zavitem,D01_material_pred_zavitem,D01_delka_tyce,D01_sirka_tyce,D02_sila_materialu,D02_vyska_uchytky,D02_prumer_obruby,D02_delka_celeho_uchytu,D02_dotahova_vzdalenost,D02_prumer_uchytneho_sroubu,D03_tolerance_zavitu); |
//AWSCREEN01A_D06 DRŽÁK druhy dil |
//------------------------------------------------------------- |
//------------------------------------------------------------- |
color(barva_D06) |
translate([0,S01_prumer_zavitu/2+D01_material_pred_zavitem+D01_delka_tyce+D02_prumer_obruby/2+D02_sila_materialu+10,D02_vyska_uchytky/2]) |
rotate(a=[0,0,90]) |
AWSCREEN01A_D06(D02_sila_materialu,D02_vyska_uchytky,D02_prumer_obruby,D02_delka_celeho_uchytu,D02_dotahova_vzdalenost,D02_prumer_uchytneho_sroubu); |
//AWSCREEN01A_D04 uchyt na senzor |
//------------------------------------------------------------- |
//------------------------------------------------------------- |
color(barva_D04) |
translate([0,0,-D04_sila_materialu_na_konektor-2*posunuti_dilu]) |
AWSCREEN01A_D04(); |
//AWSCREEN01A_D03 klasicky dil |
//------------------------------------------------------------- |
//------------------------------------------------------------- |
color(barva_D03) |
translate([0,0,D01_material_pod_zavitem+4*posunuti_dilu]) |
AWSCREEN01A_D03(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel); |
color(barva_D03) |
translate([0,0,D01_material_pod_zavitem+D03_vyska_stitu+5*posunuti_dilu]) |
AWSCREEN01A_D03(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel); |
//AWSCREEN01A_D02 zakoncovaci dil |
//------------------------------------------------------------- |
//------------------------------------------------------------- |
color(barva_D02) |
translate([0,0,D01_material_pod_zavitem+2*D03_vyska_stitu+6*posunuti_dilu]) |
AWSCREEN01A_D02(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel); |
} |
//prurez |
translate([-D03_polomer_stitu,-D03_polomer_stitu,0]) |
cube([D03_polomer_stitu*2,D03_polomer_stitu,3*D03_polomer_stitu],false); |
} |
translate([0,0,0]) |
rotate(a=[180,0,0]) |
AWSCREEN01A_D07(); |
/Modules/Mechanical/AWSCREEN02A/CAD/configuration.scad |
---|
0,0 → 1,61 |
$fn=40; // model faces resolution. |
//OBECNE PARAMETRY |
//---------------------------------------------------------------- |
//---------------------------------------------------------------- |
//AWSCREEN01A_D03 -stredni díl |
D03_vyska_zavitu=5; |
D03_tolerance_zavitu=0.75; //tolerance s poloměru |
D03_material_za_zavitem=2; |
D03_polomer_zavitu=20; |
D03_polomer_stitu=24; |
D03_tloustka_materialu=1.1; |
D03_vyska_stitu=15; |
D03_pocet_vyztuh=3; |
screen_bevel = 20; |
PI=3.141592; |
//AWSCREEN01A_D04 |
D04_sila_materialu_na_konektor=3; |
D04_konenektor_x=12.3; |
D04_konenektor_y=19; |
D04_konenektor_z=5; //vyska krytu |
D04_vyska_drzaku_senzoru=28; |
D04_sila_zavitu_stojanku=5; |
//AWSCREEN01A_D05 //uchyt velky |
D01_material_pod_zavitem=5; |
D01_material_za_zavitem=3; |
D01_material_pred_zavitem=2; |
D01_delka_tyce=8; |
D01_sirka_tyce=10; |
S01_vyska_komponentu_na_lozisko=D03_vyska_zavitu; |
S01_prumer_zavitu=2*D03_polomer_zavitu; |
//AWSCREEN01A_D06 //uchyt na sloup |
D02_sila_materialu=3; |
D02_vyska_uchytky=10; |
D02_prumer_obruby=17; //3/4 trubka |
D02_delka_celeho_uchytu=60; |
D02_dotahova_vzdalenost=1.5; |
D02_prumer_uchytneho_sroubu=4.2; |
D02_sirka_matky=9.1; //pro M4 |
D07_vyska_stojanku=50; |
D07_sila_materialu=1.2; |
D07_sirka_nozicky=10; |
D07_pocet_nozicek=3; |
/Modules/Mechanical/AWSCREEN02A/CAD/print_data/P_AWSCREEN02A_D02.scad |
---|
0,0 → 1,10 |
$fn=100; // model faces resolution. |
include <../configuration.scad> |
use <../SRC/AWSCREEN02A_D02.scad> |
rotate([0, 0, 0]) |
AWSCREEN02A_D02(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,3*D03_vyska_zavitu,D03_pocet_vyztuh,screen_bevel); |
/Modules/Mechanical/AWSCREEN02A/CAD/print_data/P_AWSCREEN02A_D03.scad |
---|
0,0 → 1,10 |
$fn=100; // model faces resolution. |
include <../configuration.scad> |
use <../SRC/AWSCREEN02A_D03.scad> |
rotate([0, 0, 0]) |
AWSCREEN02A_D03(D03_vyska_zavitu,D03_tolerance_zavitu,D03_material_za_zavitem,D03_polomer_zavitu,D03_polomer_stitu,D03_tloustka_materialu,D03_vyska_stitu,D03_pocet_vyztuh,screen_bevel); |
/Modules/Mechanical/AWSCREEN02A/CAD/print_data/P_AWSCREEN02A_D04.scad |
---|
0,0 → 1,10 |
$fn=100; // model faces resolution. |
include <../configuration.scad> |
use <../SRC/AWSCREEN02A_D04.scad> |
rotate([0, 0, 0]) |
AWSCREEN02A_D04(); |
/Modules/Mechanical/AWSCREEN02A/CAD/print_data/P_AWSCREEN02A_D05.scad |
---|
0,0 → 1,15 |
$fn=100; // model faces resolution. |
include <../configuration.scad> |
use <../SRC/polyScrewThread_r1.scad> |
use <../SRC/AWSCREEN02A_D05.scad> |
PI=3.141592; |
AWSCREEN02A_D05(S01_vyska_komponentu_na_lozisko,S01_prumer_zavitu,D01_material_pod_zavitem,D01_material_za_zavitem,D01_material_pred_zavitem,D01_delka_tyce,D01_sirka_tyce,D02_sila_materialu,D02_vyska_uchytky,D02_prumer_obruby,D02_delka_celeho_uchytu,D02_dotahova_vzdalenost,D02_prumer_uchytneho_sroubu,D03_tolerance_zavitu); |
/Modules/Mechanical/AWSCREEN02A/CAD/print_data/P_AWSCREEN02A_D07.scad |
---|
0,0 → 1,10 |
$fn=100; // model faces resolution. |
include <../configuration.scad> |
use <../SRC/AWSCREEN02A_D07.scad> |
rotate([0, 0, 0]) |
translate([0,0,0]) |
AWSCREEN02A_D07(); |