Документация
Ядра
Чистая геометрия и ядра обработки пакетов/ядра, объясненные изнутри с помощью реальных результатов и примеров 3D.
Автоматически переведено с английского. Смотреть оригинал на английском
Ядра и их зависимость друг от друга
Код геометрии и обработки в packages/core представляет собой набор чистых ядер: тот же ввод, тот же вывод, без ввода-вывода. Каждая страница в этом разделе объясняет один из них изнутри: для чего он предназначен, его структуры данных и алгоритмы, реальный API, ограничения и константы, выходные данные, полученные при его запуске, и 3D-представления, построенные на основе этих результатов.
| От | Импорт из | Импорт файлов |
|---|---|---|
| кулачковый генератор | cam-ядро | 2 |
| кулачковый генератор | история | 1 |
| кулачковый генератор | сетка | 2 |
| кулачковый генератор | эскиз | 1 |
| cam-ядро | кулачковый генератор | 4 |
| cam-ядро | сетка | 1 |
| рисунок | бреп | 1 |
| рисунок | история | 4 |
| рисунок | сетка | 7 |
| функции | сетка | 5 |
| история | бреп | 1 |
| история | функции | 5 |
| история | сетка | 2 |
| история | эскиз | 2 |
| сетка | терпимость | 1 |
Один цикл, ядро CAM ↔ генератор CAM, является преднамеренным: ядро повторно использует стратегии генератора и схему элементов, а генератор обращается к данным резки и планировщику ядра.
Страницы ядра
| Страница | Что он охватывает | Источник |
|---|---|---|
| Решатель эскизов | Левенберга – Марквардта об остатках ограничений, ранговом анализе степеней свободы, свободных точках и конфликтах. | packages/core/src/cad/sketch.ts |
| Сетка и CSG | Замкнутые треугольные сетки, логические значения BSP с выпуклым быстрым путем, очистка супа и топология. | packages/core/src/cad/csg.ts, solid.ts, mesh-clean.ts |
| Точный B-повтор | Аналитические и NURBS грани, точные логические значения, скругления, распознавание отверстий, массовые свойства, STEP. | packages/core/src/cad/brep/ |
| Генераторы функций | Эвольвентные шестерни, резьбы ISO, спирали и листовой металл с разверткой. | packages/core/src/cad/gear.ts, thread.ts, helix.ts, sheet-metal.ts |
| Толерантность и тесселяция | Допуск на один аккорд для количества сегментов, десятичных дробей и тесселяции объектов. | packages/core/src/cad/tolerance.ts, tessellate.ts |
| Ядро CAM-обработки | Планирование, фрезы, воксельный материал с кронштейном остаточного объема, сертифицированные проверки коллизий. | packages/core/src/cam/kernel/ |
Общие правила
- Миллиметры повсюду, радианы в коде (градусы только там, где это указано в поле, например, угол давления шестерни или угол смешивания).
- Z вверх, внешние петли против часовой стрелки, треугольники, обращенные наружу.
- Простые данные. Сетки представляют собой типизированные массивы, B-reps — индексные таблицы, эскизы — списки сущностей; все сериализуется в JSON и меняется в истории проекта.
- Ошибки явные. Неверный ввод выдает
RangeErrorили класс ошибки ядра (SketchError,BooleanError,BudgetExceeded) с сообщением, которое может показать помощник; результаты, которые были бы неправильными, никогда не возвращаются. - Ограниченная работа. Бюджеты сегментов и вершин в ядре сетки, бюджет времени в точном ядре, ограничения оборотов в потоках, глубина подразделения при проверке коллизий.
Все числа на этих страницах были получены путем запуска ядра с помощью Bun на исходном коде в этом репозитории; повторно запустите фрагменты, чтобы воспроизвести их.