Документация
Генераторы функций
Эвольвентные шестерни, метрическая резьба ISO, спирали и полосы листового металла с разверткой: точные профили и сетки из нескольких номеров.
Автоматически переведено с английского. Смотреть оригинал на английском
Генераторы функций
Генераторы элементов превращают несколько инженерных чисел в точные профили или сетки: эвольвентную шестерню на основе модуля и количества зубьев, резьбу ISO на основе диаметра и шага, спираль на основе радиуса и шага, изогнутую полосу на основе центральной линии и толщины. Каждая из них является чистой функцией в packages/core/src/cad; редактор, помощник и CAM-модель вызывают одну и ту же функцию, поэтому все трое видят одну и ту же часть.
| Генератор | Файл | Основной экспорт |
|---|---|---|
| Эвольвентная прямозубая передача | gear.ts | gearDimensions, gearOutline, MIN_GEAR_TEETH = 6 |
| Метрическая резьба ISO | thread.ts (124 строк) | threadSizes, threadProblem, threadTool, threadGroove |
| Спираль/катушка | helix.ts (41 строк) | coilGeometry, StepsPerTurn, COIL_STEPS_PER_TURN = 32, COIL_MAX_TURNS = 60 |
| Листовой металл | sheet-metal.ts (235 строк) | листАутлайн, развернутаяДлина, с краями, FlatPatternDrawing, FlatPatternDxf |
Эвольвентные передачи
Pitch radius m·z/2, tip radius pitch + m, root radius pitch − 1.25·m, flanks the involute of the base circle r_p·cos α (ISO 53 / DIN 867). The outline is one counter-clockwise ring about the origin with tooth 0 centred on +X. When the teeth would come to a point before the tip circle (few teeth, a large pressure angle), the tip is pulled in by bisection to where the tooth is still 2 % of a pitch wide.
| Спецификация | подача | база | кончик | корень |
|---|---|---|---|---|
| m 2, z 18, 20° | 18 | 16.914 | 20 | 15.5 |
| m 2, z 12, 20° | 12 | 11.276 | 14 | 9.5 |
| m 2, z 18, 25° | 18 | 16.314 | 20 | 15.5 |
gearOutline({ moduleValue: 2, teeth: 5 })
// RangeError: A gear needs a module > 0 and at least 6 whole teeth
gearOutline({ moduleValue: 2, teeth: 18, pressureAngle: 50 })
// RangeError: The pressure angle must be between 0 and 45 degrees Метрическая резьба ISO
A modelled thread is real helical geometry: a core cylinder at the root united with a ridge swept along a helix with the profile kept radial, clipped to the thread length. External threads have their core at d₃ = d − 1.22687·P and a ridge up to d; internal ones are the tool that cuts a tapped hole, core at D₁ = D − 1.08253·P (the tap drill) and a groove out to D. The flank is cut square to the helix and the axial widths are corrected by the cosine of the helix angle so pitch and crest widths are exact.
| Нить | доб. минор ре ₃ | доб. высота h₃ | инт. минор D₁ | ширина корня | ширина гребня |
|---|---|---|---|---|---|
| M6 × 1 | 4.7731 | 0.6134 | 4.9175 | 0.8333 | 0.125 |
| M8 × 1.25 | 6.4664 | 0.7668 | 6.6468 | 1.0417 | 0.1563 |
| M10 × 1.5 | 8.1597 | 0.9201 | 8.3762 | 1.25 | 0.1875 |
| M12 × 1.75 | 9.853 | 1.0735 | 10.1056 | 1.4583 | 0.2188 |
Ценности threadSizes(d, P, internal) output. Heights are 0.61343·P (external) and 0.54127·P (internal); the crest is P/8.
threadProblem({ diameter: 6, pitch: 4, length: 10, internal: false })
// "A pitch of 4 mm is too coarse for a 6 mm thread" (pitch > d/2)
threadProblem({ diameter: 6, pitch: 0.1, length: 10, internal: false })
// "A thread has at most 58 turns (this one is 100.0 long: 10 mm at a pitch of 0.1 mm)"
threadProblem({ diameter: 6, pitch: 1, length: 10, internal: false }) // undefined: buildable Предел 58-ходов составляет COIL_MAX_TURNS − 2: выступ начинается за шаг до резьбы и заканчивается за ней, поэтому срезы на плоском конце соответствуют полному профилю.
Спирали
coilGeometry возвращает центральную линию и первое кольцо профиля провода, намотанного вокруг Z, для sweepSolid. Точки за оборот следуют из радиуса, поэтому хорды остаются в пределах 0.01 мм от истинной спирали: stepsPerTurn(r) = clamp(⌈π / acos(1 − 0.01/r)⌉, 32, 128).
| радиус | stepsPerTurn |
|---|---|
| 1 | 32 |
| 5 | 50 |
| 50 | 128 |
Листовой металл
Профиль листового металла представляет собой центральную линию, утолщенную до полосы постоянной толщины, с материалом слева, справа или с обеих сторон и внутренним радиусом изгиба r на каждом углу. developedLength unbends it with a K-factor (default 0.44): each bend contributes (r + K·t)·θ and each straight run loses the setback of its neighbouring bends.
{"straight":70,
"bends":[{"angle":1.5707963267948966,"allowance":6.094689747964199},
{"angle":1.5707963267948966,"allowance":6.094689747964199}],
"length":82.18937949592839} | Сегмент | Пролет развертки, мм |
|---|---|
| плоский | 0 → 25 |
| изгиб 90° | 25 → 31.095 (допуск 6.0947) |
| плоский | 31.095 → 61.095 |
| изгиб 90° | 61.095 → 67.189 |
| плоский | 67.189 → 82.189 |
Check: (3 + 0.44 × 2) × π/2 = 6.0947 per bend, and 70 + 2 × 6.0947 = 82.189 mm.
Поиск неисправностей
| Сообщение | Исправить |
|---|---|
| Для шестерни требуется модуль > 0 и как минимум 6 целых зубьев. | используйте z ≥ 6 и целое число зубьев |
| Угол давления должен быть между 0 и 45 градусами. | 20° является стандартным; 14.5° и 25° являются распространенными альтернативами. |
| Шаг P мм слишком крупный для резьбы D мм. | шаг должен быть не более половины диаметра |
| Нить имеет не более 58 витков. | разделите резьбу на более короткие элементы или используйте более крупный шаг |
| Толщина листа должна быть положительной (она равна 0) | передать толщину > 0 |
| Траектория слишком узкая для такой толщины: ее кривая смещения разрывается. | увеличить радиус изгиба или уменьшить толщину |