Se utilizó para el servo 5010. Retiré la caja de engranajes vieja porque un engranaje estaba roto.
Puede que necesites ajustar el diámetro para que encaje con un motor, es solo que...
Relación de engranajes de 4:1
Tiene una anchura de al menos 53,1 mm y una altura de 22 mm.
Incluye <BOSL2/std.scad>
Incluye <BOSL2/gears.scad>
/[Ajustes del operador]/
carrier_spoke_width = 8.0;
carrier_hub_extension = 3.0;
carrier_plate_thick = 2.5;
overlap_margin = 1.5;
/[Control de flujo de trabajo]/
layout = "ensamblado"; // [ensamblado, plano]
/[Toggles de visibilidad]/
show_sun = true;
show_planets = true;
show_ring = verdadero;
show_carrier = true;
show_pins = true;
show_cup = true;
show_rocker = true;
show_cover = true;
/[Parámetros del equipo]/
Pitch = 2.932;
sun_t = 15;
planet_t = 15;
ring_t = sun_t + 2 * planet_t;
espeso = 6.0;
clear = 0.3;
/[Hardware y ajuste]/
pin_diam = 3.1;
pin_extra = 2.5;
pin_protrusion = 0.5;
pin_hole_clearance = 0.15;
/[Parámetros de la copa]/
cup_od = 20.2;
cup_h = 6.1;
cup_recess_depth = 3.5;
cup_recess_id = 17.4;
cup_center_hole = 6.1;
cup_z_push = 0.0;
/[Control de cubierta]/
cover_base_thick = 1.6;
pin_h = grosor + grosor de la placa portadora + pin_extra + pin_protrusión;
fit_clearance = 0.1;
motor_shaft_d = 3.6;
z_offset = 0.0;
// --- MATEMÁTICAS ---
pitch_diam_sun = (sun_t
pitch_diam_planet = (planet_t
center_dist = (pitch_diam_sun + pitch_diam_planet) / 2;
ring_outer_teeth = ring_t + 18;
ring_outer_diam = (ring_outer_teeth
Diámetro interior del anillo = (anillo_t
extension_radius = (ring_inner_diam / 2) + overlap_margin;
$fn = 64;
// --- EJECUCIÓN PRINCIPAL ---
si (layout == "flat") {
grid_space = ring_t + 25;
sun_gear_part();
movimiento([espacio_de_la_rejilla, 0, 0]) parte_de_los_engranajes_del_planeta();
Mover [espacio de la cuadrícula]2, 0, 0]) ring_gear_part();
movimiento([0, espacio de la cuadrícula, 0]) parte del transportador();
movimiento([espacio_de_cuadrícula, espacio_de_cuadrícula, 0]) parte_de_taza();
Mover [espacio de la cuadrícula]2, grid_space, 0]) rocker_part();
Mover [espacio de la cuadrícula]3, 0, 0]) cover_part();
Mover [espacio de la cuadrícula]3, grid_space, 0]) pins_part();
} else {
sun_gear_part();
planet_gears_part();
ring_gear_part();
carrier_part();
pins_part();
cup_part();
rocker_part();
cover_part();
}
// --- MÓDULOS DE PARTE ---
Módulo pins_part() {
// Nota: Renderizamos los 3 pines en modo ensamblado para que la cubierta pueda usarlos para cortar agujeros.
si (show_pins || $parent_geom) {
pin_z_start = (layout == "flat") ? 0 : -carrier_plate_thick - pin_protrusion;
color("plata") {
si (layout == "flat") {
cyl(h=pin_h, d=pin_diam, anchor=BOTTOM);
} else {
para (a = [0, 120, 240]) {
Rotar([0, 0, a]) Mover([distancia_centro, 0, pin_z_inicio])
cyl(h=pin_h, d=pin_diam, anchor=BOTTOM);
}
}
}
}
}
Módulo cover_part() {
si (show_cover) {
z_pos = (layout == "flat") ? 0 : thick;
mover([0, 0, z_pos]) {
color("lightgray", 0.8)
diff() {
union() {
// Base del plato
cyl(h=cover_base_thick, d=cup_od + carrier_hub_extension, anchor=BOTTOM);
para (a = [0, 120, 240]) {
rotate([0, 0, a]) {
Mover([radio_de_extensión/2, 0, espesor_de_base_de_cubierta/2])
cube([radio de extensión, anchura del radio portador, espesor de la base de la cubierta], anclaje=CENTRO);
mover([radio_de_extensión, 0, 0])
cyl(h=cover_base_thick, d=carrier_spoke_width, anchor=BOTTOM);
// Área de soporte para pines.
Mover([centro_dist, 0, 0])
cyl(h=cover_base_thick, d=carrier_spoke_width + 1.5, anchor=BOTTOM);
}
}
}
tag("remove") {
// 1. Agujero central
cyl(h=100, d=motor_shaft_d + 1, anchor=CENTER);
}
// Los módulos restantes (portador, engranajes, copa, balancín) permanecen sin cambios...
Módulo carrier_part() {
si (show_carrier) {
z_pos = (layout == "flat") ? carrier_plate_thick : 0;
r_v = (layout == "flat") ? [180, 0, 0] : [0, 0, 0];
inner_hub_d = cup_od + carrier_hub_extension;
color("slategray") gira(r_v) arriba(z_pos)
diff() {
union() {
cyl(h=carrier_plate_thick, d=inner_hub_d, anchor=TOP);
para (a = [0, 120, 240]) {
rotate([0, 0, a]) {
Mover([radio_de_extensión/2, 0, -espesor_de_placa_portadora/2])
cube([radio de extensión, anchura del radio portador, espesor de la placa portadora], anclaje=CENTRO);
Mover([centro_dist, 0, 0])
cyl(h=carrier_plate_thick, d=carrier_spoke_width + 1.5, anchor=TOP);
mover([radio_de_extensión, 0, 0])
cyl(h=carrier_plate_thick, d=carrier_spoke_width, anchor=TOP);
}
}
}
tag("remove") {
cilindro(h=grosor de la placa portadora + 2, d=diámetro exterior de la copa + holgura de ajuste, anclaje=CENTRO);
para (a = [0, 120, 240]) {
Rotar([0, 0, a]) Mover([distancia_centro, 0, 0])
cyl(h=carrier_plate_thick + 5, d=pin_diam + pin_hole_clearance, anchor=CENTER);
}
cyl(h=100, d=cup_center_hole, anchor=CENTER);
}
}
}
}
Módulo ring_gear_part() {
si (show_ring) {
color("blanco", 0.3) arriba(z_offset)
diff() {
spur_gear(circ_pitch=pitch, teeth=ring_outer_teeth, thickness=thick, anchor=BOTTOM);
tag("remove") {
spur_gear(circ_pitch=pitch, teeth=ring_t, thickness=thick+0.1, internal=true, clearance=clear, anchor=BOTTOM);
}
}
}
}
Módulo sun_gear_part() {
si (show_sun) {
color("naranja") arriba(z_offset)
spur_gear(circ_pitch=pitch, teeth=sun_t, thickness=thick, shaft_diam=motor_shaft_d, anchor=BOTTOM);
}
}
Módulo planet_gears_part() {
si (mostrar_planetas) {
para (a = [0, 120, 240]) {
d_val = (layout == "flat") ? (planet_t2.5): center_dist;
Rotar([0, 0, (layout == "flat") ? 0 : a])
Mueve [(layout == "flat") ? (a/120d_val) : d_val, 0, z_offset])
color("azul cielo")
spur_gear(circ_pitch=pitch, teeth=planet_t, thickness=thick, shaft_diam=pin_diam + fit_clearance, clearance=clear, anchor=BOTTOM);
}
}
}
Módulo cup_part() {
si (show_cup) {
p_z = (layout == "flat") ? 0 : (-carrier_plate_thick + cup_z_push);
r_c = (layout == "flat") ? [180, 0, 0] : [0,0,0];
color("lime") rotate(r_c) move([0,0,p_z])
diff()
cyl(h = cup_h, d = cup_od, anchor = TOP) {
tag("remove") {
Abajo (cup_h)
cyl(h = cup_recess_depth, d = cup_recess_id, anchor = BOTTOM);
cilindro(h = cup_h + 10, d = cup_center_hole, anchor = CENTER);
}
}
}
}
Módulo rocker_part() {
si (show_rocker) {
r_dist = (diámetro exterior del anillo + (12 * paso / PI))/2;
m_v = (layout == "flat") ? [0, 0, 0] : [r_dist, 0, z_offset];
mover(m_v) color("rojo")
spur_gear(circ_pitch=pitch, teeth=12, thickness=thick, shaft_diam=4.2, anchor=BOTTOM);
}
}
태그
모델 소스
