Добавить в корзинуПозвонить
Найти в Дзене
PixelPulse

3D-моделирование: шестерни в OpenSCAD

Существует несколько способов создать шестерню в OpenSCAD. Самый правильный и гибкий — использовать встроенную библиотеку MCAD, но можно также написать простой скрипт самостоятельно для понимания геометрии. Вот три варианта: от простого к сложному. В стандартной установке OpenSCAD уже есть библиотека для создания шестерен. Это самый надежный способ, так как она строит эвольвентный профиль зуба (настоящая геометрия шестерен). use <MCAD/involute_gears.scad> gear( number_of_teeth = 20, // Количество зубьев circular_pitch = 500, // Шаг зубьев (важно для подбора пары) gear_thickness = 10, // Толщина шестерни rim_thickness = 10, // Толщина обода hub_thickness = 15, // Толщина ступицы (толще для вала) bore_diameter = 5, // Диаметр отверстия под вал circles = 4 // Количество облегчающих отверстий (0 = нет) ); Важные параметры: В меню OpenSCAD уже есть готовый пример. Если вы не хотите подключать библиотеки и вам н
Оглавление

Существует несколько способов создать шестерню в OpenSCAD. Самый правильный и гибкий — использовать встроенную библиотеку MCAD, но можно также написать простой скрипт самостоятельно для понимания геометрии.

Вот три варианта: от простого к сложному.

Вариант 1: Использование библиотеки MCAD (Рекомендуемый)

В стандартной установке OpenSCAD уже есть библиотека для создания шестерен. Это самый надежный способ, так как она строит эвольвентный профиль зуба (настоящая геометрия шестерен).

  1. Создайте новый файл.
  2. Вставьте следующий код:
use <MCAD/involute_gears.scad>
gear(
number_of_teeth = 20, // Количество зубьев
circular_pitch = 500, // Шаг зубьев (важно для подбора пары)
gear_thickness = 10, // Толщина шестерни
rim_thickness = 10, // Толщина обода
hub_thickness = 15, // Толщина ступицы (толще для вала)
bore_diameter = 5, // Диаметр отверстия под вал
circles = 4 // Количество облегчающих отверстий (0 = нет)
);
Использование библиотеки MCAD
Использование библиотеки MCAD

Важные параметры:

  • circular_pitch (круговой шаг): Определяет размер зуба. Чтобы две шестерни сцеплялись, у них должен быть одинаковый circular_pitch.
  • pressure_angle: Угол профиля (обычно ставят 20 или 14.5 градусов, по умолчанию в библиотеке обычно 20).

Вариант 2: Встроенные примеры (Для быстрого старта)

В меню OpenSCAD уже есть готовый пример.

  1. Откройте меню File -> Examples -> Old -> gear.scad.
  2. Вы увидите код, который генерирует простую шестерню и рейку. Вы можете скопировать оттуда модуль gear() к себе в проект.

Вариант 3: Простая шестерня "своими руками" (Без библиотек)

Если вы не хотите подключать библиотеки и вам нужна простая визуализация (для 3D печати это подойдет, если не требуется высокая точность), можно построить шестерню из круга и вычитания зубьев.

Вот простой пример параметрической шестерни:

// Параметры
teeth = 15; // Количество зубьев
radius = 20; // Радиус основной окружности
tooth_height = 3; // Высота зуба
tooth_width = 5; // Ширина основания зуба
thickness = 5; // Толщина
hole_dia = 4; // Отверстие под вал
$fn = 100; // Качество окружности
module simple_gear() {
difference() {
// 1. Основное тело (круг)
cylinder(h=thickness, r=radius);
// 2. Вырезаем пазы между зубьями
for (i = [0 : teeth]) {
rotate([0, 0, i * (360/teeth)]) {
translate([radius - tooth_height/2, 0, -1]) {
// Используем квадрат как форму паза
// Слегка сужаем к центру для формы зуба
translate([-tooth_height/2, -tooth_width/1.5, 0])
cube([tooth_height, tooth_width, thickness+2]);
}
}
}
// 3. Отверстие под вал
cylinder(h=thickness+2, r=hole_dia/2, center=true);
}
}
simple_gear();
Простая шестерня "своими руками"
Простая шестерня "своими руками"

Как соединить две шестерни?

Чтобы создать пару сцепляющихся шестерен в OpenSCAD, нужно соблюдать правило:
Расстояние_между_центрами = (Радиус_шестерни_1 + Радиус_шестерни_2)

Для библиотеки MCAD радиус можно рассчитать так:
radius = (number_of_teeth * circular_pitch) / (2 * PI * 180)

Пример пары шестерен:

use <MCAD/involute_gears.scad>
// Параметры шага должны быть одинаковыми!
cp = 500;
module my_gear(teeth) {
gear(
number_of_teeth = teeth,
circular_pitch = cp,
bore_diameter = 5,
gear_thickness = 5,
hub_thickness = 5,
rim_thickness = 5
);
}
// Расчет межосевого расстояния
// Формула делительного диаметра: D = (N * CP) / PI (если CP в мм, но в MCAD он в других единицах, проще измерить)
// Самый простой способ в OpenSCAD - использовать search(), но проще просто подогнать визуально или рассчитать:
// Pitch Diameter = number_of_teeth * circular_pitch / 180 (внутренняя формула MCAD)
diam1 = 20 * cp / 180;
diam2 = 10 * cp / 180;
dist = (diam1 + diam2) / 2;
translate([0, 0, 0]) my_gear(20);
translate([dist, 0, 0]){
rotate ([0,0,18])
my_gear(10);}
Соединение шестерен
Соединение шестерен