//kolo ozubene nebo okenka pi=3.14159; //Ludolfovo cislo vysz=9; //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)-1; //sirka zubu u paty grav=2.0; //tloustka desky //okolo pismen letter_size=6.0; //velikost pismene letter_height=1.5; //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*2); zubek(-360/pozu*3); zubek(-360/pozu*4); zubek(-360/pozu*5); zubek(-360/pozu*6); zubek(-360/pozu*7); zubek(-360/pozu*8); zubek(-360/pozu*9); zubek(-360/pozu*10); zubek(-360/pozu*11); zubek(-360/pozu*13); zubek(-360/pozu*14); zubek(-360/pozu*15); zubek(-360/pozu*17); zubek(-360/pozu*18); zubek(-360/pozu*20); 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=110; //prumer kam psat kruznam=72; //prumer pod okny module psani() union() { rotate([0,0,-360/pozu*0])translate([0,kruznak/2,0])letter(">"); rotate([0,0,-360/pozu*1])translate([0,kruznak/2,0])letter(" "); rotate([0,0,-360/pozu*2])translate([0,kruznam/2,0])letter("2"); rotate([0,0,-360/pozu*3])translate([0,kruznam/2,0])letter("m"); rotate([0,0,-360/pozu*4])translate([0,kruznam/2,0])letter("3"); rotate([0,0,-360/pozu*5])translate([0,kruznam/2,0])letter("4"); rotate([0,0,-360/pozu*6])translate([0,kruznak/2,0])letter("5-"); rotate([0,0,-360/pozu*7])translate([0,kruznak/2,0])letter("5"); rotate([0,0,-360/pozu*8])translate([0,kruznak/2,0])letter("5+"); rotate([0,0,-360/pozu*9])translate([0,kruznam/2,0])letter("6 "); rotate([0,0,-360/pozu*10])translate([0,kruznam/2,0])letter("7"); rotate([0,0,-360/pozu*11])translate([0,kruznam/2,0])letter("M7"); rotate([0,0,-360/pozu*12])translate([0,kruznak/2,0])letter(" "); rotate([0,0,-360/pozu*13])translate([0,kruznak/2,0])letter("9m"); rotate([0,0,-360/pozu*14])translate([0,kruznak/2,0])letter("9"); rotate([0,0,-360/pozu*15])translate([0,kruznak/2,0])letter("9+"); rotate([0,0,-360/pozu*16])translate([0,kruznak/2,0])letter(" "); rotate([0,0,-360/pozu*17])translate([0,kruznam/2,0])letter("11 "); rotate([0,0,-360/pozu*18])translate([0,kruznam/2,0])letter(" 11+"); rotate([0,0,-360/pozu*19])translate([0,kruznak/2,0])letter(" "); rotate([0,0,-360/pozu*20])translate([0,kruznak/2,0])letter("13m "); rotate([0,0,-360/pozu*21])translate([0,kruznak/2,0])letter("13"); rotate([0,0,-360/pozu*22])translate([0,kruznak/2,0])letter(" "); rotate([0,0,-360/pozu*23])translate([0,kruznak/2,0])letter(" "); } //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+1.25,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 translate([0,0,grav-0.6])psani();//vykously text //ozub(); strukt(); } gramo();