//kolo ozubene nebo okenka pi=3.14159; //Ludolfovo cislo vysz=15; //vyska zubu hlad=100.0; //hlavovy prumer patd=hlad-(vysz*2); //patovy prumer hlok=7.0; //hloubka kola pozu=24; //pocet zubu pats=((pi*patd)/pozu)-0; //sirka zubu u paty grav=2.0; //tloustka desky //okolo pismen letter_size=6.0; //velikost pismene letter_height=0.65; //hloubka pismene font="Liberation Sans"; //typ fontu p9smen //jeden textĂ­k extruzĂ­ module letter(l) { linear_extrude(height = letter_height) { text(l, size = letter_size, font = font, halign = "center", valign = "center", $fn = 16); } } //letter("Ami"); //profil jednoho zubu module zubek(alik) rotate([0,0,alik]) translate([0,patd/2,hlok/2]) rotate([-90,0,0]) linear_extrude(height = vysz, scale =[1,1]) square([pats, hlok], center = true); //pro mozne zobrazeni vsech zubu v kruhu module ozub() for (i = [0:(360/pozu):360]) { zubek(i); }; //ozub(); //pro mozne zobrazeni jen nekterych zubu module strukt() union() { zubek(-360/pozu*0); zubek(-360/pozu*4); zubek(-360/pozu*7); zubek(-360/pozu*10); zubek(-360/pozu*14); zubek(-360/pozu*17); zubek(-360/pozu*21); zubek(-360/pozu*0); zubek(-360/pozu*0); zubek(-360/pozu*0); } //strukt(); //pro mozne texty u zubu v uhlu kruznak=91.5; //prumer kam psat module psani() union() { rotate([0,0,-360/pozu*0])translate([0,kruznak/2,0])letter("C"); rotate([0,0,-360/pozu*1])translate([0,kruznak/2,0])letter("C#"); rotate([0,0,-360/pozu*2])translate([0,kruznak/2,0])letter("D"); rotate([0,0,-360/pozu*3])translate([0,kruznak/2,0])letter("D#"); rotate([0,0,-360/pozu*4])translate([0,kruznak/2,0])letter("E"); rotate([0,0,-360/pozu*5])translate([0,kruznak/2,0])letter("F"); rotate([0,0,-360/pozu*6])translate([0,kruznak/2,0])letter("F#"); rotate([0,0,-360/pozu*7])translate([0,kruznak/2,0])letter("G"); rotate([0,0,-360/pozu*8])translate([0,kruznak/2,0])letter("G#"); rotate([0,0,-360/pozu*9])translate([0,kruznak/2,0])letter("A"); rotate([0,0,-360/pozu*10])translate([0,kruznak/2,0])letter("Bb"); rotate([0,0,-360/pozu*11])translate([0,kruznak/2,0])letter("H"); rotate([0,0,-360/pozu*12])translate([0,kruznak/2,0])letter("C"); rotate([0,0,-360/pozu*13])translate([0,kruznak/2,0])letter("C#"); rotate([0,0,-360/pozu*14])translate([0,kruznak/2,0])letter("D"); rotate([0,0,-360/pozu*15])translate([0,kruznak/2,0])letter("D#"); rotate([0,0,-360/pozu*16])translate([0,kruznak/2,0])letter("E"); rotate([0,0,-360/pozu*17])translate([0,kruznak/2,0])letter("F"); rotate([0,0,-360/pozu*18])translate([0,kruznak/2,0])letter("F#"); rotate([0,0,-360/pozu*19])translate([0,kruznak/2,0])letter("G"); rotate([0,0,-360/pozu*20])translate([0,kruznak/2,0])letter("G#"); rotate([0,0,-360/pozu*21])translate([0,kruznak/2,0])letter("A"); rotate([0,0,-360/pozu*22])translate([0,kruznak/2,0])letter("Bb"); rotate([0,0,-360/pozu*23])translate([0,kruznak/2,0])letter("H"); } //psani(); //kolecko s dirou ve stredu a s vysekanymi zuby module gramo() difference() { union() { translate([0,0,0])cylinder(h=grav,d=120,$fn=60);//zakladni prumer kola translate([0,60,0])cylinder(h=grav,d=10,$fn=60);//manipulacni ousko a oznaceni prvniho tonu translate([0,0,0])cylinder(h=grav,d=19,$fn=60);//vyvyseny stred //translate([0,0,grav])psani();//vyvyseny text } translate([0,0,0])cylinder(h=hlok,d=14.8,$fn=60);//dira pro klips //ozub();//vsechny diry //strukt();//vybrana struktura der translate([0,0,grav-0.6])psani();//vykously text } gramo();