Реклама:
Хочешь стать куратором любимой темы?
0 Пользователи и 1 Гость просматривают эту тему.
/////////////////////////////////////////////////////////////////height = 20; // (мм) Высотаwidth = 70; // (мм) Ширина (ширина колеса + зазор)s = 4; // (мм) Толщинаangle = 45; // (°) Уголradius = 140; // (мм) Радиус (радиус колеса + зазор)stiffener_cnt = 3; // Количество рёбер жёсткостиstiffener_len = 4; // (мм) Высота ребра жёсткостиkr_cnt = 4; // Количество крепленийkr_diam = 3; // (мм) Диаметр креплениkr_w = 3; // (мм) Толщина крепления/////////////////////////////////////////////////////////////////$fn = 64;DL = 0.01;b = width/2;a = height;c = (b*b - a*a)/(2*a);r = c + a;alpha = atan2(b, c);rotate_extrude(angle=angle, $fn = 180) translate([radius-r, 0, 0]) { fender_2d(); stiffener_2d(); }kr_angle = atan2(kr_w, radius);rotate([0, 0, 0]) rotate_extrude(angle=kr_angle, $fn = 180) translate([radius-r, 0, 0]) kr_2d();rotate([0, 0, angle-kr_angle]) rotate_extrude(angle=kr_angle, $fn = 180) translate([radius-r, 0, 0]) kr_2d();module fender_2d(){ alpha_step = alpha/32; for (an = [-alpha:alpha_step:alpha-alpha_step]) { a1 = an; a2 = an+alpha_step; y1 = r * sin(a1); x1 = r * cos(a1); y2 = r * sin(a2); x2 = r * cos(a2); line2d([x1, y1], [x2, y2], s); }}module stiffener_2d(){ for (ai = [0:stiffener_cnt-1]) { a = 2*ai*alpha/(stiffener_cnt-1) - alpha; y1 = r * sin(a); x1 = r * cos(a); y2 = (r+stiffener_len) * sin(a); x2 = (r+stiffener_len) * cos(a); line2d([x1, y1], [x2, y2], s); }}module kr_2d(){ kr_size = kr_diam*3; kr_alpha = alpha - atan2(kr_size/2+s, r); for (ai = [0:kr_cnt-1]) { a = 2*ai*kr_alpha/(kr_cnt-1) - kr_alpha; rotate ([0, 0, a]) { difference() { union() { translate([r+kr_size/4+s/3, 0, 0]) square(size = [kr_size/2+s/3, kr_size], center = true); translate([r+kr_size/2+s/2, 0, 0]) circle(d = kr_size); } translate([r+kr_size/2+s/2, 0, 0]) circle(d = 7*kr_diam/6); } } }}module line2d(crd1, crd2, width){ x1 = crd1[0]; x2 = crd2[0]; y1 = crd1[1]; y2 = crd2[1]; u = atan2(y2-y1, x2-x1); ln = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); translate([x1, y1]) rotate([0, 0, u]) offset(r = width/2) square([ln, DL]);}
Автор PeaceHaverРаздел Свободный электрон
Автор CnStuffРаздел Электромобили
Автор zapРаздел Интернет-магазины
Автор dtcРаздел Полезные программы
Автор PAVРаздел Моноколеса (электроунициклы)