/
nacha
/
pseado
Обзор
Документация
Войти
/
nacha
/
pseado
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
master
generators.js
65 строк
2 KB
alex
feat: add Pseado Generators module for parametric objects
04 авг 2026, 21:19
Верифицирован
04 авг 2026, 21:19
df707fe
Код
Авторство
О чём код?
/** * PSEADO GENERATORS * Модуль параметрической генерации объектов (Зубчатые колеса, Аэродинамика) * Часть архитектуры ядра Pseado. */ const crypto = require('crypto'); class GearGenerator { /** * @param {object} params параметры шестерни * @param {number} params.module - Модуль зубчатого колеса * @param {number} params.teeth - Количество зубьев */ constructor(params = {}) { this.module = params.module || 2.0; // Стандартный модуль this.teeth = params.teeth || 20; this.pressureAngle = params.pressureAngle || 20; // Угол профиля зуба (ГОСТ 9563-60) } /** * Генерирует параметры профиля цилиндрической шестерни * Возвращает объект "Цифрового Двойника" */ generate() { const pitchDiameter = this.module * this.teeth; const outerDiameter = pitchDiameter + 2 * this.module; const rootDiameter = pitchDiameter - 2.5 * this.module; // Эмуляция симуляции деформации при резке (физический двойник) // Упрощенная оценка массы в зависимости от объема const estimatedMass = (outerDiameter ** 2 * this.module) * 0.001; return { id: crypto.randomUUID(), type: 'cylindrical_gear', geometry: { pitchDiameter, outerDiameter, rootDiameter, teeth: this.teeth }, physics: { estimatedMass, material: 'steel_45', // Сталь 45 по умолчанию viscosity: 0 // Твердое тело, но в рамках единой модели }, timestamp: new Date().toISOString() }; } } class ProfileGenerator { /** * Базовая генерация точек кривой */ static generateCurve(points) { return points.map(p => ({ ...p, id: crypto.randomUUID() })); } } module.exports = { GearGenerator, ProfileGenerator };