228 lines
27 KiB
Markdown
228 lines
27 KiB
Markdown
# Свод правил DFM для FDM-печати
|
||
|
||
> Выверено 3 ревью (pi/glm-5.1, pi/kimi-k2.6, Codex). Числа для `w≈0.4–0.45`, `h≈0.2` (сопло 0.4).
|
||
> **Зазоры — на сторону (радиальные)**; диаметральный = 2×. **Угол нависания — от вертикали**
|
||
> (вертикаль=0°, горизонталь=90°); самонесущие — ≤ `θ_max`. Параметры `w`/`h`/`θ_max` — см.
|
||
> SKILL.md → «Калибровка». Ссылки «§N» ниже — на разделы этого файла.
|
||
|
||
## 1. Стенки и оболочки
|
||
- Толщина стенки = **`n · w`**. Мин. конструктивная — **2·w (~0.8 мм)**; несущая — **≥3·w**.
|
||
- **Маппинг стенка→периметры:** нужно `N` периметров ⇒ стенка **≥ `N·w`** (при `w`=0.45: 3 → 1.35,
|
||
4 → 1.8, 5 → 2.25 мм).
|
||
- **Не задавай толщину стенки, не кратную `w`** (напр. 0.6 при `w`=0.45): слайсер оставит зазор
|
||
или переэкструдирует. Прыгай на следующий кратный.
|
||
- **Caveat:** `n·w` — для конструктивных стенок; внешняя функциональная величина (флексура,
|
||
тепловой барьер, посадочный размер) важнее кратности.
|
||
- Одиночная стенка `1·w` — только декоративная. Узкий сквозной прорез — **≥2·w (~0.8 мм)**.
|
||
|
||
## 2. Нависания, полки, мосты (разделять!)
|
||
- **Самонесущие — поверхности ≤ `θ_max` от вертикали.** Зона 45–60° (т.е. **выше** `θ_max`=45° при
|
||
дефолте) — ещё печатается, но с падением качества; **> `θ_max` существенно — поддержки** →
|
||
избегать редизайном.
|
||
- **90°-полка (консоль, опора с одной стороны) НЕ печатается ни на какой длине** (миф «≤6 мм»
|
||
неверен — провисает с первого слоя). Любую горизонтальную полку: **скос под `θ_max`**, либо
|
||
**превратить в мост** (две опоры), либо поддержка.
|
||
- **Мост (bridge) — пролёт между двумя опорами на одной высоте.** При достаточном обдуве, `h≈0.2`,
|
||
консервативно (для ненастроенного слайсера): **PLA ~15–25 мм, PETG ~10–15 мм, ABS ~12–18 мм**.
|
||
Длинные прямоугольные проёмы **ориентировать так, чтобы мост шёл по короткой стороне**; концы —
|
||
на сплошных опорах.
|
||
- Нижнюю функциональную поверхность моста — припуск **0.2–0.3 мм** на провис. *Граница:* величину
|
||
провиса из CAD не предсказать (обдув/скорость — настройки печати).
|
||
- **Внутренние/потолочные нависания хуже наружных** — потолок пазов аркой/шевроном, не плоским
|
||
пролётом > 2 мм.
|
||
- **Доступ к поддержкам:** окно во внутренней полости **≥8–10 мм**.
|
||
|
||
## 3. Отверстия
|
||
- **Вертикальные (ось ∥ Z)** печатаются уже номинала → **увеличить диаметр модели** (радиус на
|
||
половину): **+0.2 мм (Ø<4)**, **+0.2–0.3 мм (Ø 4–10)**, **+0.1–0.2 мм (Ø>10)**; калибровать,
|
||
критичные — рассверливать.
|
||
- **Горизонтальные (ось в XY)** → **teardrop** или **D-отверстие** (плоский верх). Мин. Ø **2 мм**.
|
||
Круглая часть тоже печатается уже → **+0.1–0.2 мм** к её Ø.
|
||
- **Геометрия teardrop (полная капля):** боковины касательны окружности под углом `θ_max` к вертикали
|
||
(с двух сторон), сходятся в вершине на вертикальной оси. Высота вершины над центром =
|
||
**`r / sin θ_max`**; включённый угол при вершине = **`2·θ_max`**. При `θ_max`=45° →
|
||
`r/sin45° = √2·r ≈ 1.414·r` над центром (= **0.414·r над верхом окружности**), угол 90°.
|
||
Низ — оставшаяся дуга окружности. Это единственная форма, у которой ВСЯ крыша самонесущая по
|
||
критерию `θ_max`; платой идёт максимальное искажение круга (при `θ_max`=45° некруглыми становятся
|
||
90° дуги из 360°).
|
||
- **Усечённая касательная капля — когда клюв мешает глазу.** Полная капля при `θ_max`=45° выступает
|
||
на 0.414·r, и на мелком отверстии это заметно. Та же конструкция, но с точкой касания на `±φ` от
|
||
макушки при `φ < θ_max`: боковины остаются КАСАТЕЛЬНЫМИ (контур гладкий, излома на стыке с дугой
|
||
нет, круг не срезается вовсе), а
|
||
- вершина над центром = **`r / cos φ`**, то есть выступ над окружностью = **`r·(1/cos φ − 1)`**;
|
||
- боковины наклонены к вертикали на **`90° − φ`** — тем положе, чем короче клюв;
|
||
- перекрываемый пролёт = **`2r·sin φ`**.
|
||
**Судить эту форму по углу боковин бесполезно — судите по пролёту.** У маленького отверстия
|
||
`2r·sin φ` укладывается в единицы миллиметров, а мост такой длины FDM печатает не задумываясь:
|
||
`θ_max` — критерий для ПРОТЯЖЁННЫХ нависаний, а не для перемычки в пару миллиметров.
|
||
Замер (Ø6, `φ`=22.5°): выступ **0.247 мм** против 1.243 у полной капли, пролёт **2.30 мм**,
|
||
боковины 67.5° от вертикали — печатается без поддержек, крыша отверстия чистая.
|
||
|
||
- **Мягкий колпачок — когда круглость важнее, чем полная самонесущесть.** Посадка вала, подшипник,
|
||
штифт: полная капля съедает верхнюю четверть окружности, и сопряжение по ней уже не работает.
|
||
Тогда заменяют не сектор `±(90−θ_max)`, а УЗКИЙ сектор `±φ` у самой макушки, подняв вершину на
|
||
`k` слоёв (`k·h`) над окружностью:
|
||
- точки стыка — на `±φ` от макушки, вершина — на оси, на `r + k·h` над центром;
|
||
- включённый угол при вершине = **`2·arctan( r·sin φ / (r + k·h − r·cos φ) )`**;
|
||
- **угол остаётся ТУПЫМ, пока `r·(sin φ + cos φ − 1) > k·h`** — это и есть связь между шириной
|
||
сектора и подъёмом: ужимая `φ`, синхронно снижайте `k`, иначе колпачок вырождается в шпиль.
|
||
- Замер (Ø8, `φ`=12°, `k`=2 при `h`=0.2, т.е. подъём 0.4 мм): круглыми остаются **336° из 360°**,
|
||
стык отходит от оси на **±0.83 мм**, угол при вершине **119°**, боковины — 59.6° от вертикали.
|
||
- **Честная граница приёма:** у чистой окружности зона нависания — сектор `±(90−θ_max)` от макушки
|
||
(при 45° это ±45°, ширина `2r·sin45°`≈1.41·r). Колпачок `±12°` снимает только самую макушку —
|
||
участок от 12° до 45° остаётся нависанием. То есть это НЕ решение по `θ_max`, а замена плоского
|
||
потолка на микро-мост шириной ~`2r·sin φ` за `k` слоёв. Берите его осознанно: круглость в обмен
|
||
на частичное улучшение печати, а не на полное.
|
||
- **Точки касания задавайте с ПОЛНОЙ точностью — округление рвёт контур.** Дуга плюс две касательные
|
||
замыкаются у КОМПАС по допуску жёстче обычного округления: те же координаты, срезанные до 6 знаков
|
||
(−16.668356 вместо −16.6683532), дали «код 19: контур должен быть замкнут», и вырез развалился.
|
||
Коварство в том, что `sketch_update` отчитался габаритом как об успехе — невалидность вылезла
|
||
только предупреждением «2 операц. в ошибке». Считайте `r·sin φ`/`r·cos φ` и подставляйте все знаки.
|
||
- **Глухое отверстие:** дно = внутренний мост → **толщина дна ≥2–3 мм** или купольное/
|
||
вентилируемое. Сквозные предпочтительнее.
|
||
- **Отступ от края** — через остаточную перемычку: стенка между отверстием и краем **≥2–3·w**
|
||
(лёгкая нагрузка) / больше под крепёж.
|
||
|
||
## 4. Посадки и зазоры (печатная деталь ↔ печатная деталь)
|
||
Зазор **на сторону** (радиальный); диаметральный = 2× значения:
|
||
|
||
| Посадка | Зазор/сторону | Примечание |
|
||
|---|---|---|
|
||
| Натяг (press) | **−0.05…0 мм** (вычесть из номинала!) | короткий, PLA; иначе snap-fit (§14) |
|
||
| Переходная/плотная | 0.05–0.15 мм | |
|
||
| Скользящая | 0.15–0.20 мм | PLA↔PLA; контакт ≥20 мм → 0.20; PETG +0.05 |
|
||
| Свободная | 0.25–0.35 мм | >0.35/сторону — уже очень слабо |
|
||
|
||
- **Знак:** «натяг» = **отрицательный** зазор → вычесть из номинала (вал +/отверстие −).
|
||
Положительное число в строке press — ошибка прочтения.
|
||
- **ABS↔ABS:** +0.05/сторону. **PETG:** прессовые со временем «расслабляются».
|
||
- **Допуск точности (НЕ прибавлять к посадкам):** общий разброс FDM — **XY ±0.2 мм** (±0.1
|
||
калибровано), **Z хуже**. Это точность изготовления, не добавка к зазору.
|
||
|
||
## 5. Первый слой / стол
|
||
- **Elephant foot** — от притирки первого слоя (низкий Z-offset/переэкструзия; НЕ от высоты слоя).
|
||
Фаска по нижним рёбрам: **0.3 × 45° (калибровано)** / **0.5–1.0 × 45° (слабая калибровка)**.
|
||
- Внутренние углы у основания — **скругление ≥R0.5**.
|
||
- **Опорная площадка:** без «лезвийных» оснований; контакт хотя бы ~3 периметра. Высокие тонкие
|
||
детали — **интегральный фланец 1–2 мм** (предпочтительнее brim).
|
||
|
||
## 6. Ориентация и прочность
|
||
- **Z (межслойная) прочность от XY:** PLA ~40–55%, PETG ~35–50%, **ABS ~20–35% (выброс)**. Несущую
|
||
нагрузку — в **XY (вдоль слоёв)**.
|
||
- **В абсолютных числах** (нужны, чтобы посчитать запас — SKILL.md §«Ориентация: когда три
|
||
требования не сходятся»): XY на разрыв PLA ~50–60 МПа, PETG ~45–50, ABS ~35–40 ⇒ межслойная
|
||
**PLA ~20–30, PETG ~15–25, ABS ~8–15 МПа**. Порядок величины, не паспорт конкретного филамента.
|
||
- **Z-сжатие допустимо** (слои в сжатии не расслаиваются); избегать **Z-растяжения и Z-среза**.
|
||
- Изгиб: слои в растяжении/сжатии, не на срез по линии слоя.
|
||
- Z-нагрузка неизбежна → **увеличить несущее сечение** ~×2 относительно XY-расчёта.
|
||
- Плоскости сопряжения — на **XY-гранях**, не на Z-боковинах.
|
||
|
||
## 7. Минимальные элементы и текст
|
||
- Выступ/штифт/ребро — **≥1·w (≥0.5 мм)**; паз/щель — **≥2·w (~0.8 мм)**.
|
||
- **Аспект тонких выступов:** высота ≤ ~4–5× базовой ширины; выше — конусность/раскос/редизайн.
|
||
- **Выпуклый** текст: штрих **≥0.5 мм**, высота **≥2·h (~0.4 мм)**, sans-serif bold.
|
||
- **Гравированный** текст: штрих **≥2·w (~0.8–0.9 мм)** (нужно ≥2 периметра; 0.6 мм не влезает),
|
||
глубина **≥2·h (~0.4 мм)**. (pt не используем — геометрия в мм.)
|
||
- **Штрих задаёт ШРИФТ, а не кегль, и чертёжные шрифты под печать не годятся.** По ГОСТ 2.304
|
||
толщина линии чертёжного шрифта равна `h/14`: кегль 8 даёт 0.57 мм — полторы ширины сопла, то
|
||
есть ниже порога 2·w. Такой шрифт берёт порог только с кегля ~13 мм, а уверенно читаемые 3·w —
|
||
с ~18 мм. У жирного гротеска штрих ≈ `h/4.5` (Arial Black при кегле 10 → ~2.2 мм), и порог
|
||
выполняется с запасом уже на кегле 4–5 мм. Замер: «2» кеглем 8 шрифтом GOST type A на
|
||
вертикальной стенке не читается вовсе; тот же символ кеглем 10 шрифтом Arial Black читается
|
||
издалека. Маркировку набирайте жирным sans-serif и проверяйте штрих, а не высоту.
|
||
|
||
## 8. «Лесенка» (staircase) — критерий ориентации
|
||
- Наклонные/криволинейные поверхности дают ступени: глубина ≈ **`h / tan(α)`** (α — угол от
|
||
**горизонтали**; не путать с `θ_max`, который от вертикали). Пример: α=30°, `h`=0.2 → ~0.35 мм.
|
||
- Критичные (скользящие/уплотняющие/оптические) поверхности **ориентировать вертикально или
|
||
горизонтально**. Это вход в правило ориентации (SKILL.md, правило 1).
|
||
- Большой плоский **верх** без опоры коробит («подушка») — внутренние рёбра каждые ~15–20 мм или
|
||
достаточная толщина верха.
|
||
|
||
## 9. Бобышки, инсёрты, резьба
|
||
- **Саморез/винтонарезной** пилот (M3): ~Ø2.5 PLA / Ø2.6 PETG / Ø2.7 ABS; заход ≥3 мм.
|
||
- **Термоинсёрт латунный** (M3): бор **по даташиту** (типично ~Ø4.0, ±0.05); **`Ø_bore = OD_инсёрта − (0…0.1) мм`** (≤ OD, лёгкий натяг под расплав — НЕ больше OD); стенка бобышки **≥2 мм**; глубина = длина инсёрта + 0.5 мм; **ставить с верхней (Z) грани** (не в боковину).
|
||
- **Бобышка под винт:** OD ≥ 2–3× Ø винта; не делать массивный сплошной объём (карман/оболочка).
|
||
- **Сквозное под металлический болт:** радиальный зазор 0.2–0.3 → **+0.4–0.6 мм к номиналу** болта.
|
||
- **Резьба:** не моделировать <M6 → инсёрты/саморезы. Если моделировать: **≥M6, ось вертикальная**,
|
||
зазор +0.1–0.2 мм, профиль крупный/трапецеидальный (не мелкий ISO — вершины-нависания).
|
||
|
||
## 10. Фаски vs скругления
|
||
- **Нижние (у стола) рёбра — фаска** (скругление = нулевой контакт + EF).
|
||
- **Косметическое лицо кладут НА СТОЛ**: первый слой на стекле/PEI даёт поверхность лучше любого
|
||
верхнего слоя (там видны швы и «лесенка»). Тогда деталь и моделируют в этой ориентации — лицом
|
||
к XOY, — а несимметричный рисунок (логотип, текст) **зеркалят**: на лицевую грань смотрят
|
||
со стороны −Z. Проверка — снимок со стороны лица (`model_snapshot(view=rear)` для эскиза на XOY).
|
||
- **Зеркалит не только лицо на столе — зеркалит ЛЮБАЯ грань, обращённая против нормали эскиза.**
|
||
Надпись читается с той стороны, куда смотрит нормаль плоскости: XOY → **+Z**, XOZ → **+Y**,
|
||
YOZ → **−X** (нормаль YOZ уходит в МИНУС X — тот же замер, что разворачивает на ней выдавливание).
|
||
Значит гравировка по эскизу на YOZ, положенная на щеку с бОльшим X, выйдет зеркальной, а на
|
||
щеку X=0 — правильной. Замер: цифра на щеке X=20.4 читалась зеркально при ЛЮБОМ `angle`; тот же
|
||
эскиз, перенесённый на X=0, встал верно. **Поворотом это не лечится** — `angle` вращает, а не
|
||
отражает; лечится выбором грани (или зеркальным контуром).
|
||
- **Фаска по лицевому контуру — это ещё и размер первого слоя.** При 45° она сжимает силуэт лица
|
||
на катет `c` по всему периметру, поэтому её потолок задаёт не эстетика, а то, что останется:
|
||
`ширина_штриха − 2c ≥ 2·w`. У широкого рисунка (штрих ~10 мм) ограничением становится толщина
|
||
детали — держите `c ≤ ⅓·T`, иначе плашка читается пирамидой. У мелкого (штрих ~1 мм) фаска почти
|
||
невозможна: 0.15 мм уже съедает половину первого слоя.
|
||
- **Считайте по САМОМУ УЗКОМУ месту рисунка, а не по типичному штриху.** У знака с клиньями и
|
||
перемычками (логотипы, вензеля) минимум вдвое-впятеро меньше медианы. Мерить это глазом по эскизу
|
||
нельзя и незачем: `sketch_measure_thickness(entitiesFile, minSegment)` возвращает наибольшую
|
||
вписанную окружность, узкое место с координатами и таблицу «офсет `c` → на сколько кусков
|
||
распалось лицо» — ничего не строя.
|
||
- **Узкое место зависит от СОСТОЯНИЯ контура, поэтому порядок такой: чистка → замер чищеного →
|
||
катет.** Чистка (`minSegment`) заменяет скругления острыми углами: в выпуклом углу это добавляет
|
||
материал, в вогнутом — срезает, а перемычки между штрихами образованы как раз вогнутыми углами.
|
||
То есть операция, которую делают РАДИ фаски, уменьшает допустимый катет — на обводке логотипа это
|
||
единицы процентов, и хватает, чтобы катет перестал проходить свой же критерий. Мерьте после неё,
|
||
тем же порогом, каким будете строить.
|
||
- **Норматив катета — `c = stroke_min/2 − w`**, где `stroke_min` — узкое место ЧИЩЕНОГО силуэта,
|
||
`w` — ширина нити. Он и есть решение неравенства `ширина − 2c ≥ 2w`: в узком месте остаётся
|
||
ровно `2w`, два прохода сопла. Считайте его на своём контуре — величина принадлежит рисунку.
|
||
**Осторожно с «эталонными» значениями из прошлых работ:** катет, принятый когда-то на похожем
|
||
знаке, своему же правилу обычно не удовлетворяет — он подбирался под другой рисунок, другой порог
|
||
чистки или вовсе на глаз. Катет вдвое сверх норматива оставляет в узком месте одну нить экструзии:
|
||
тело там сплошное, рвётся косметика лицевой грани — та самая поверхность, ради которой деталь и
|
||
кладут лицом на стол. Сверьте нормативом, а не воспоминанием.
|
||
- **Верхние рёбра — скругление** (R0.5–2.0); **но** радиус **> ~½ толщины стенки** сам даёт
|
||
нависание > `θ_max` → тогда фаска/ступень.
|
||
- **Внутренние углы — всегда скругление ≥R0.5**.
|
||
|
||
## 11. Зенковки / цековки
|
||
- **Цековка (counterbore)** — большим Ø/полостью **вверх** (дно по телу, не мостом); глубина +0.3 мм.
|
||
- **Зенковка (countersink):** конус **вверх**; включённый угол **≤90°** → стенки ≤45° от вертикали
|
||
печатается; **>90°** → стенки-нависание → поддержка или замена цилиндрической цековкой.
|
||
|
||
## 12. Заходные фаски (assembly relief)
|
||
- На штифтах, отверстиях, инсёртах, защёлках, «ласточкиных хвостах» — **заходная фаска** (≈0.5–1 мм
|
||
× 45° или ≈ половина зазора) против задиров при сборке.
|
||
|
||
## 13. Разбиение детали и сборка из печатных частей
|
||
- Конфликт «прочная ориентация vs бесподдержечность», или крупная/коробящаяся деталь → **разбить**
|
||
на части с самоустанавливающимися стыками (печатные штифты/шпонки/замки), склейка; стыки на
|
||
XY-гранях. Зазор стыка — по §4.
|
||
|
||
## 14. Защёлки (snap-fit) / живой шарнир
|
||
- Консольная защёлка: толщина балки **≈1.0–2.0 мм** (функциональный размер, не привязан к кратности
|
||
`w`; тоньше ~1 мм — хрупко), зацеп/возврат **0.3–0.8 мм**, длина/толщина **≥5:1** (до 10:1),
|
||
**скругление в основании ≥R0.5**.
|
||
- **Направление слоёв:** балка гнётся **в плоскости XY** (слои перпендикулярны изгибу), **не
|
||
поперёк Z** (расслоится с первого нажатия).
|
||
- **Живой шарнир** — только PLA/PP-подобные, перемычка **0.3–0.5 мм**; PETG/ABS не годятся.
|
||
|
||
## 15. Коробление (геометрия)
|
||
- Большие плоскости (>80×80, особенно ABS): скругления углов R3–5 + рёбра/решётка снизу.
|
||
- Радиус внешних углов: R2 (ABS) / R1 (PLA/PETG).
|
||
- Длинные тонкие пролёты (>60 мм, <2 мм) — рёбра/косынки каждые 30–40 мм; высота ребра ≤5× базы.
|
||
- Избегать сплошных кубов/плит → карман/оболочка + рёбра. Усадка: PLA ~0.3%, PETG ~0.5%, ABS ~0.8%.
|
||
- Симметрия геометрии уравновешивает усадку.
|
||
- *«Мышиные уши» (Ø8–10 мм по углам)* — **крайняя мера адгезии** (по сути brim-геометрия);
|
||
предпочтительно интегральный фланец/скругления углов.
|
||
- *Граница:* стол/корпус/обдув для ABS — настройки печати, вне навыка; здесь только геометрия.
|
||
|
||
## 16. Полые детали и гигиена модели
|
||
- **Полости:** дренаж Ø3–5 мм у **низшей** точки + вент у **высшей**.
|
||
- Допуски/зазоры — **в геометрию** (слайсер читает модель буквально).
|
||
- Раздельные тела — зазор ≥0.2 мм (общая CAD-гигиена; перед выдачей объединять — рабочий цикл,
|
||
шаг 5 в SKILL.md).
|