//krouzek na fletnu //--------------------------------------- Di=15.7; //povrch trubky je vnitrni prumer ringu Dm=18; //zaklad ringu Do=21; //vrch ringu Si=6; //zakladni šiřka Sm=6; //mezi sirka So=4; //šiřka vrchu Cm=0; //středeni vrchního ringu (Si-So)/2 Ce=0; //středeni vrchního ringu (Si-So)/2 Ex=0; //excetricita vrtu prstenu Ev=5; //hloubka vykusu uhlu Nv=5; //definice vysky odcitaci cocky pro navigaci Nd=15; //definice max prumeru odcitaci cocky pro navigaci Lac=1; //ladeni zaboreni cockove strely Anc=90; //natoceni strely dokola Sac=0; //vyska strely v sirce prstenu Pv=20; //vyska operky od hrany trubky Di Ps=20; //sirka operky Pt=6; //tloustka operky Ant=270; //natočení operky Lav=0; //ladeni posazeni operky vuci sirce prstenu Xx=3.5; //velikost písma Ax=270; //natoceni pisma po krouzku Lx=0; //ladeni vyšky posunu textu vuci siri prstence Px=-2.0; //vystredení písmenka posuvem vlevo vpravo Hx=2; //hloubka pisma //------------------------------------- //navigační dolik pro dírku na prsten module cocka() color("cyan") union() { translate([0,0,0]) resize([Nd,Nd,Nv]) sphere([10,10,10], $fn=120); //cocka translate([0,0,0]) cylinder(h=Do-Di,d=Nd, $fn=120); //valec } //zabaleni do cockove strely //translate([0,0,Sac]) rotate([0,90,Anc]) translate([0,0,Di/2+Lac]) cocka(); //zamereni strely do prstenu //------------------------------------- //operny trn na prsten module trn() color("red") difference() { translate([0,0,0]) resize([Pv,Ps/2,Pt/2]) sphere(10, $fn=120); //operka translate([-Di/2,0,-Pv]) cylinder(h=Pv*2,d=Di, $fn=120); //orez operky s oporou zezadu valcem Di } //rotate([0,0,Ant]) translate([Di/2,0,Si]) trn(); //------------------------------------- //Texty module textus(abcd) //texty color("green") { linear_extrude(height = Hx, twist = 0, scale = 1, center = true, slices = 10) text(abcd, size=Xx); } //rotate([0,0,Ax]) translate([Do/2,0,Si/2-Xx/2+Lx]) rotate([90,0,90]) translate([Px,0,0]) textus("B"); //----------------------------------- //zaklad prstenu module zakl() color("green") difference() { hull() { difference() { union() { translate([0,0,0]) cylinder(h=Si,d=Di,$fn=120);//spodni siroky valec translate([0,0,(Si-Sm)/2+Cm]) cylinder(h=Sm,d=Dm,$fn=120);//mezi mezi valec translate([0,0,(Si-So)/2+Ce]) cylinder(h=So,d=Do,$fn=120);//vrchni uzsi valec } translate([0,Ev,0]) rotate([0,0,45]) cube(Di);//vykus pro nasunuti v lusku } }// zabaleni do lusku translate([Ex,Ex,-Si/2]) cylinder(h=Si*2,d=Di, $fn=120);//vnitrni vrt pro nasazeni translate([0,Ev+2,0]) rotate([0,0,45]) cube(Di);//vykus pro nasunuti ostre //translate([0,0,Sac]) rotate([0,90,Anc]) translate([0,0,Di/2+Lac]) cocka(); //navigace prohlubni } //translate([0,0,0]) zakl(); //------------------------------------------------- //skladanka navlecky na fletnu module skladanka() color("orange") union() { translate([0,0,0]) zakl();//krouzek s moznou prohlubní //rotate([0,0,Ant]) translate([Di/2,0,Si-Pt/4]) trn();//mozna operka na fletnu } //translate([0,0,Si]) rotate([0,180,0]) skladanka(); //------------------------------------------------- //vlozeni textu na telo krouzku module kompletA() //union() difference() { translate([0,0,Si]) rotate([0,180,0]) skladanka(); rotate([0,0,Ax]) translate([Do/2,0,Si/2-Xx/2+Lx]) rotate([90,0,90]) translate([Px,0,0]) textus("A");//text } translate([-Do/2-1,-Do/2-1,0])kompletA(); //------------------------------------------------- //vlozeni textu na telo krouzku module kompletB() //union() difference() { translate([0,0,Si]) rotate([0,180,0]) skladanka(); rotate([0,0,Ax]) translate([Do/2,0,Si/2-Xx/2+Lx]) rotate([90,0,90]) translate([Px,0,0]) textus("B");//text } translate([+Do/2+1,-Do/2-1,0])kompletB(); //------------------------------------------------- //vlozeni textu na telo krouzku module kompletC() //union() difference() { translate([0,0,Si]) rotate([0,180,0]) skladanka(); rotate([0,0,Ax]) translate([Do/2,0,Si/2-Xx/2+Lx]) rotate([90,0,90]) translate([Px,0,0]) textus("C");//text } translate([-Do/2-1,+Do/2+1,0])kompletC(); //------------------------------------------------- //vlozeni textu na telo krouzku module kompletD() //union() difference() { translate([0,0,Si]) rotate([0,180,0]) skladanka(); rotate([0,0,Ax]) translate([Do/2,0,Si/2-Xx/2+Lx]) rotate([90,0,90]) translate([Px,0,0]) textus("D");//text } translate([+Do/2+1,+Do/2+1,0])kompletD();