WOBBLmount.py
Will this printed PETG motor mount survive a 250 N belt pull?
HOLDS
Peak 11 MPa on face 19 at (24.7, 6.09, 1.96), safety factor 4.27 against yield (target 2.5). Confidence is medium.
peak stress
11 MPa
safety factor
4.27
max deflection
0.399 mm
target
2.5
Confidence medium
- mesh convergence: von Mises stress (layer pull scaled by layer strength) still moving: 9.91 -> 11.1 -> 10.3 -> 11 MPa, last change 6.6% (stopped by level limit); expect about that much error. Even the highest value on any mesh plus that swing (11.8 MPa) leaves safety factor 3.99, so the verdict holds either way
- singularities: excluded from the answer: 53.9 MPa at the edge of support fix1 (face 1) (set by the idealized support: 36 -> 47.7 -> 46.3 -> 53.9 MPa); 26.9 MPa at the edge of support fix1 (face 1) (set by the idealized support: 33.4 -> 23.5 -> 32.6 -> 26.9 MPa); 20.1 MPa where the rigid attachment load1 grabs the part (face 9) (set by the idealized support: 21.1 -> 15.5 -> 20.6 -> 20.1 MPa). Wobbl reports the stress 1.76 mm or more away from these spots
- load introduction: the off part loads enter through a rigid attachment (the attached part does not flex). With a distributing coupling (the attached part adds no stiffness) instead, the governing stress converges to 18.8 MPa on face 5 at (21, 6.94, 37.3) (1.7x, safety factor 2.50) over 3 meshes refined around that peak: 19.2 -> 19.2 -> 18.8 MPa, last change 2.1%. The verdict depends on this assumption: check how the attached part really carries the load
- the verdict depends on how the load enters the part (rigid attachment versus distributed); the answer assumes rigid
Stress
Checks
| status | check | result |
|---|---|---|
| warn | mesh convergence | von Mises stress (layer pull scaled by layer strength) still moving: 9.91 -> 11.1 -> 10.3 -> 11 MPa, last change 6.6% (stopped by level limit); expect about that much error. Even the highest value on any mesh plus that swing (11.8 MPa) leaves safety factor 3.99, so the verdict holds either way |
| pass | force balance | reactions balance the loads to 3.4e-05% (forces) and 1.3e-05% (moments) |
| skip | hand calculation | no simple beam model applies (the governing point is not between the fixtures and the load, so no single section carries it) |
| warn | singularities | excluded from the answer: 53.9 MPa at the edge of support fix1 (face 1) (set by the idealized support: 36 -> 47.7 -> 46.3 -> 53.9 MPa); 26.9 MPa at the edge of support fix1 (face 1) (set by the idealized support: 33.4 -> 23.5 -> 32.6 -> 26.9 MPa); 20.1 MPa where the rigid attachment load1 grabs the part (face 9) (set by the idealized support: 21.1 -> 15.5 -> 20.6 -> 20.1 MPa). Wobbl reports the stress 1.76 mm or more away from these spots |
| pass | bolt bearing | worst hole of fix1 (d 5.5 mm) carries 68 N sideways and 147 N along its axis; bearing stress 2.46 MPa, safety factor 19.11 on bearing |
| pass | units and sanity | part 102 mm across, peak strain 0.0052, max deflection 0.399 mm (0.39% of size): all plausible |
| warn | load introduction | the off part loads enter through a rigid attachment (the attached part does not flex). With a distributing coupling (the attached part adds no stiffness) instead, the governing stress converges to 18.8 MPa on face 5 at (21, 6.94, 37.3) (1.7x, safety factor 2.50) over 3 meshes refined around that peak: 19.2 -> 19.2 -> 18.8 MPa, last change 2.1%. The verdict depends on this assumption: check how the attached part really carries the load |
Mesh convergence
| level | nodes | global size mm | finest mm | governing MPa | change | max deflection mm | solve |
|---|---|---|---|---|---|---|---|
| 0 | 24,962 | 4.5 | 1.16 | 9.91 | 0.395 | 3.6 s | |
| 1 | 31,922 | 3.82 | 0.705 | 11.1 | +11.7% | 0.401 | 4.8 s |
| 2 | 36,581 | 3.25 | 0.703 | 10.3 | -7.0% | 0.402 | 7.3 s |
| 3 | 43,872 | 2.76 | 0.673 | 11 | +7.0% | 0.399 | 8.5 s |
Stress peaks
Every peak Wobbl found, with its value at each mesh. Peaks at sharp corners and idealized supports are excluded from the answer because their value depends on the idealization, not the part.
| # | where | x, y, z (mm) | MPa by level | status |
|---|---|---|---|---|
| 1 | at the edge of support fix1 (face 1) | -25.9, 7.16, 5 | 36 → 47.7 → 46.3 → 53.9 | excluded |
| 2 | at the edge of support fix1 (face 1) | 25.4, 7.55, 5 | 33.4 → 23.5 → 32.6 → 26.9 | excluded |
| 3 | where the rigid attachment load1 grabs the part (face 9) | -21, 5.44, 9.18 | 21.1 → 15.5 → 20.6 → 20.1 | excluded |
| 4 | at the edge of support fix1 (face 19) | -25.1, 7.16, 0 | 19.1 → 21.1 → 23.3 → 24.9 | excluded |
| 5 | where the rigid attachment load1 grabs the part (face 5) | 21, 5.44, 9.18 | 17.7 → 15 → 19.6 → 17.7 | excluded |
Setup
| material | PETG (3D printed) |
| limit | 47 MPa |
| target safety factor | 2.5 |
| mass | 39.36 g |
| load | 250 N down at 0,-15,31 @ normal +y and box -21,4,10,21,6,52 rigid |
| fixture | bolt holes d=5.5 |
| part | 9 holes, 1 inside fillets, 12 sharp inside corners, walls about 5 mm |
Assumptions
- Linear elastic material and small deflections (no yielding redistribution, no buckling).
- PETG (3D printed): E 2100 MPa, Poisson 0.38, von Mises vs yield 47 MPa (Prusament PETG technical data sheet).
- Loads are static and applied all at once; no impact, vibration or fatigue.
- Printed layers stack along z; pull across layers is judged against 70% of the in-plane strength.
- Bolted holes are rigidly held over the hole and a washer sized ring (twice the hole radius).
- Remote loads reach the part through a rigid attachment (the attached part does not flex).
- Contact between separate parts, friction and preload are not modeled.
Notes
- Built from mount.py with thickness=5, rib=4, fillet=3, height=55.