Перейти к содержанию
CADCAMFUN
Документы

Документация

Генераторы функций

Эвольвентные шестерни, метрическая резьба ISO, спирали и полосы листового металла с разверткой: точные профили и сетки из нескольких номеров.

Автоматически переведено с английского. Смотреть оригинал на английском

Генераторы функций

Генераторы элементов превращают несколько инженерных чисел в точные профили или сетки: эвольвентную шестерню на основе модуля и количества зубьев, резьбу ISO на основе диаметра и шага, спираль на основе радиуса и шага, изогнутую полосу на основе центральной линии и толщины. Каждая из них является чистой функцией в packages/core/src/cad; редактор, помощник и CAM-модель вызывают одну и ту же функцию, поэтому все трое видят одну и ту же часть.

ГенераторФайлОсновной экспорт
Эвольвентная прямозубая передачаgear.tsgearDimensions, gearOutline, MIN_GEAR_TEETH = 6
Метрическая резьба ISOthread.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°1816.9142015.5
m 2, z 12, 20°1211.276149.5
m 2, z 18, 25°1816.3142015.5
Пара сетки m 2: z 18 и z 12 Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
Both outlines are gearOutline(…, 4) output, extruded 8 mm with Ø8 and Ø6 bores. Centre distance m(z₁ + z₂)/2 = 30 mm; the 12-tooth gear is turned half a pitch (π/12) so its tooth sits in a gap of the 18-tooth gear.
Ошибки — реальные сообщения
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 × 14.77310.61344.91750.83330.125
M8 × 1.256.46640.76686.64681.04170.1563
M10 × 1.58.15970.92018.37621.250.1875
M12 × 1.759.8531.073510.10561.45830.2188

Ценности threadSizes(d, P, internal) output. Heights are 0.61343·P (external) and 0.54127·P (internal); the crest is P/8.

M8 × 1.25 наружная резьба, 5 мм Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
threadTool({ diameter: 8, pitch: 1.25, length: 5, internal: false }): 3 698 triangles. The full 10 mm version is 7 020 triangles, a closed solid of genus 0, V 408.0 mm³, built in 460 ms.
threadProblem — реальные сообщения
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
132
550
50128
Катушка r 10, шаг 4, 5 витков Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
coilGeometry({ cx: 0, cy: 0, z0: 0, radius: 10, pitch: 4, turns: 5, wire: 1.5, square: false, left: false }).path: 356 points (5 × 71 + 1), drawn as a toolpath-style polyline.

Листовой металл

Профиль листового металла представляет собой центральную линию, утолщенную до полосы постоянной толщины, с материалом слева, справа или с обеих сторон и внутренним радиусом изгиба 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.

U-образный канал: t 2, внутренний R3, фланец 30 мм Перетащите на орбиту · прокрутите, чтобы увеличить · перетащите вправо, чтобы панорамировать
sheetOutline([(0,30),(0,0),(40,0),(40,20)], 2, ”left”, 3): an 80-point closed outline, extruded 30 mm along the sketch normal as the history does.
developerLength(path, 2, 3, "left") — реальный результат
{"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
Траектория слишком узкая для такой толщины: ее кривая смещения разрывается.увеличить радиус изгиба или уменьшить толщину