Я: сделай мне следующую модель для OpenSCAD. Это трубка с внешним диаметром 20.1 мм и внутренним диаметром 11.7 мм, длиной 21 мм.
DeepSeek: вот готовый код для OpenSCAD, создающий нужную вам трубку:
// Параметры модели
outer_diameter = 20.1; // внешний диаметр (мм)
inner_diameter = 11.7; // внутренний диаметр (мм)
length = 21; // длина/высота (мм)
// Расчет радиусов
outer_radius = outer_diameter / 2; // 10.05 мм
inner_radius = inner_diameter / 2; // 5.85 мм
// Создание трубки (полого цилиндра)
difference() {
// Внешний цилиндр
cylinder(h = length, r = outer_radius, center = false);
// Внутренний цилиндр (вычитается)
cylinder(h = length, r = inner_radius, center = false);
}
// Опционально: добавить фаски или скругления (раскомментировать при необходимости)
/*
// Скругление верхней кромки (пример)
translate([0, 0, length])
rotate_extrude(angle=360)
translate([outer_radius - 1, 0, 0])
circle(r = 1);
*/
Как использовать:
1. Скопируйте код в OpenSCAD.
2. Нажмите F5 (Preview) для предварительного просмотра.
3. Нажмите F6 (Render) для полной генерации модели.
4. Экспортируйте через `File → Export → Export as STL`.
Параметры модели:
| Параметр |
Значение |
Примечание |
| Внешний диаметр |
20.1 мм |
Радиус 10.05 мм |
| Внутренний диаметр |
11.7 мм |
Радиус 5.85 мм |
| Длина (высота) |
21 мм |
Ось Z |
Советы для печати. При экспорте в STL и последующей печати в слайсере:
1. Ориентация: рекомендуется печатать вертикально (ось Z вдоль длины трубки) — так внутренний диаметр будет точнее.
2. Поддержки: не требуются, если печатаете вертикально.
3. Стенка: толщина стенки = (20.1 - 11.7) / 2 = 4.2 мм — достаточно прочно.
4. Количество периметров: в слайсере убедитесь, что стенка полностью заполнена (минимум 2-3 периметра).
Если нужна фаска или скругление. Раскомментируйте последние строки в коде (удалите `/*` и `*/`), чтобы добавить скругление верхней кромки радиусом 1 мм. При необходимости можете изменить радиус.
Нужно ли добавить фаски, скругления или изменить какие-либо параметры?
Я: отлично! Мне теперь нужно сделать по внешней поверхности с одного конца трубки срез по кольцу длиной 2 мм и глубиной 2 мм.
DeepSeek: вот обновленный код OpenSCAD с добавленным кольцевым срезом (уступом) на одном конце.
// Параметры модели
outer_diameter = 20.1; // внешний диаметр (мм)
inner_diameter = 11.7; // внутренний диаметр (мм)
length = 21; // общая длина (мм)
// Параметры среза (уступа)
cut_length = 2; // длина среза по оси Z (мм)
cut_depth = 2; // глубина среза (мм)
// Расчет радиусов
outer_radius = outer_diameter / 2; // 10.05 мм
inner_radius = inner_diameter / 2; // 5.85 мм
cut_radius = outer_radius - cut_depth; // 8.05 мм
// Создание модели через объединение двух частей
union() {
// Нижняя часть (с уступом) - от Z=0 до Z=cut_length
difference() {
cylinder(h = cut_length, r = cut_radius, center = false);
cylinder(h = cut_length, r = inner_radius, center = false);
}
// Верхняя часть (основная) - от Z=cut_length до Z=length
translate([0, 0, cut_length])
difference() {
cylinder(h = length - cut_length, r = outer_radius, center = false);
cylinder(h = length - cut_length, r = inner_radius, center = false);
}
}
Для печати: при печати ориентируйте модель так, чтобы уступ был сверху (или снизу, в зависимости от назначения).
Нужно ли изменить расположение уступа (сделать его снизу, с обоих концов) или подкорректировать размеры?
Я: сделай так, чтобы начальная координата оси Z была на том конце трубки, где нет уступа, а уступ был в верхней части трубки при печати. Текущий вариант модели (я изменил глубину среза до 1.5 мм):
// Параметры модели
outer_diameter = 20.1; // внешний диаметр (мм)
inner_diameter = 11.7; // внутренний диаметр (мм)
length = 21; // общая длина (мм)
// Параметры среза (уступа)
cut_length = 2; // длина среза по оси Z (мм)
cut_depth = 1.5; // глубина среза (мм)
// Расчет радиусов
outer_radius = outer_diameter / 2; // 10.05 мм
inner_radius = inner_diameter / 2; // 5.85 мм
cut_radius = outer_radius - cut_depth; // 8.05 мм
// Создание модели через объединение двух частей
union() {
// Нижняя часть (с уступом) - от Z=0 до Z=cut_length
difference() {
cylinder(h = cut_length, r = cut_radius, center = false);
cylinder(h = cut_length, r = inner_radius, center = false);
}
// Верхняя часть (основная) - от Z=cut_length до Z=length
translate([0, 0, cut_length])
difference() {
cylinder(h = length - cut_length, r = outer_radius, center = false);
cylinder(h = length - cut_length, r = inner_radius, center = false);
}
}
DeepSeek: понял вашу задачу. Нужно поменять местами части модели, чтобы:
- Z = 0 — это торец без уступа (гладкий).
- Верхняя часть (Z = length) — это торец с уступом.
Вот исправленный код:
// Параметры модели
outer_diameter = 20.1; // внешний диаметр (мм)
inner_diameter = 11.7; // внутренний диаметр (мм)
length = 21; // общая длина (мм)
// Параметры среза (уступа)
cut_length = 2; // длина среза по оси Z (мм)
cut_depth = 1.5; // глубина среза (мм)
// Расчет радиусов
outer_radius = outer_diameter / 2; // 10.05 мм
inner_radius = inner_diameter / 2; // 5.85 мм
cut_radius = outer_radius - cut_depth; // 8.55 мм (10.05 - 1.5)
// Создание модели через объединение двух частей
union() {
// Нижняя часть (основная, без уступа) - от Z=0 до Z=length - cut_length
translate([0, 0, 0])
difference() {
cylinder(h = length - cut_length, r = outer_radius, center = false);
cylinder(h = length - cut_length, r = inner_radius, center = false);
}
// Верхняя часть (с уступом) - от Z=length - cut_length до Z=length
translate([0, 0, length - cut_length])
difference() {
cylinder(h = cut_length, r = cut_radius, center = false);
cylinder(h = cut_length, r = inner_radius, center = false);
}
}
Что изменилось:
| Параметр |
Было |
Стало |
| Z = 0 (начало печати) |
Уступ |
Гладкий торец (основной диаметр 20.1 мм) |
| Z = length (верх) |
Гладкий торец |
Уступ (диаметр уменьшен до 16.1 мм) |
Структура модели (снизу вверх):
Z = 21 мм ─────────┐
│ Уступ: длина 2 мм, диаметр 16.1 мм
Z = 19 мм ─────────┤
│
│ Основная часть: длина 19 мм, диаметр 20.1 мм
│
Z = 0 мм ──────────┘
Визуализация в OpenSCAD, теперь при печати:
1. Первый слой (Z=0) — это кольцо диаметром 20.1 мм (гладкий торец)
2. Модель растет вверх
3. Последние 2 мм — уступ уменьшенного диаметра
Это стандартная ориентация для печати на FDM-принтере: широкое основание внизу обеспечивает лучшую адгезию к столу.