Shelf bracket

Does a printed PLA bracket hold an 8 kg shelf, and what fixes it?

You ask

Will this printed PLA shelf bracket hold its share of an 8 kg shelf?

Wobbl runs

Terminal
$ wobbl run bracket.py -m pla --fix "bolt holes d=4.5" --fix "wall x=min" \  --load "40 N down @ top and within 12 of 65,12.5,6"$ wobbl fix output --apply

Checks

  • passmesh convergence
  • passforce balance
  • passhand calculation
  • passsingularities
  • passbolt bearing
  • passunits and sanity
Stress heatmap. Peak 52.3 MPa on the 0.5 mm inside fillet (face 3) at (6.19, 12.6, 6.11). The part cracks at about 0.96x this load.

FAILSPeak 52.3 MPa on the 0.5 mm inside fillet (face 3) at (6.19, 12.6, 6.11). The part cracks at about 0.96x this load.

Peak stress
52.3 MPa
Safety factor
0.96
Target
2.5
Confidence
high
summary.txt
summary.txt
FAILS. Peak 52.3 MPa on the 0.5 mm inside fillet (face 3) at (6.19, 12.6, 6.11). The part cracks at about 0.96x this load. Confidence: high. passed mesh convergence, force balance, hand calculation, singularities, bolt bearing, units and sanityMax deflection 3.47 mm at (90, 0, 6).Material PLA (3D printed), limit 50 MPa; mass 30.29 g.Loads: 40 N down @ top and within 12 of 65,12.5,6. Fixtures: bolt holes d=4.5; wall x=min. Checks:  [pass] mesh convergence: max principal stress settled: 43 -> 50.9 -> 53 -> 52.3 MPa over 4 meshes, last change 1.4%  [pass] force balance: reactions balance the loads to 0.00014% (forces) and 8.4e-06% (moments)  [pass] hand calculation: beam theory through the critical section gives 15.2 MPa nominal; FEA peak is 3.45x that, a stress concentration of about 3.4 from the local shape  [pass] singularities: no sharp corner or support artifact is above the reported stress  [pass] bolt bearing: worst hole of fix1 (d 4.5 mm) carries 2.7 N sideways and 45.7 N along its axis; bearing stress 0.1 MPa, safety factor 499.33 on bearing  [pass] units and sanity: part 123 mm across, peak strain 0.015, max deflection 3.47 mm (2.8% of size): all plausible Assumptions:  - Linear elastic material and small deflections (no yielding redistribution, no buckling).  - PLA (3D printed): E 3500 MPa, Poisson 0.36, max principal vs tensile strength 50 MPa (Prusament PLA technical data sheet; Ultimaker PLA TDS).  - Loads are static and applied all at once; no impact, vibration or fatigue.  - Printed part treated as isotropic at 100% infill; across the layers it is roughly 60% as strong. Pass --print-direction to check that.  - Brittle failure: judged by the largest tensile principal stress.  - Bolted holes are rigidly held over the hole and a washer sized ring (twice the hole radius).  - Wall supports push but cannot pull (frictionless contact, solved iteratively).  - Contact between separate parts, friction and preload are not modeled. Suggested fixes:  - Stress piles up in the 0.5 mm fillet. A fillet of 3 mm (about half the 6 mm wall) spreads it out. With that radius the peak is usually about 1.4x the 15.2 MPa beam stress, roughly 21.2 MPa (safety factor 2.35).  - The wall through the peak is 6 mm. To reach safety factor 2.5 it needs 9.7 mm (+62%), because bending stress falls with thickness squared.  - The peak sits where two walls meet and bend. A gusset as thick as the wall, with legs about half as long as the shorter wall, ties them together and usually cuts the corner stress by half or more.  - The load acts 58.9 mm from the critical section. Moving a support or the load to within 22.5 mm brings the bending stress to the target. Images: stress: images/stress.png, zoom: images/zoom.png, safety: images/safety.png, deformed: images/deformed.png, convergence: images/convergence.png, fix_before: images/stress.png, fix_after: fix-gusset/images/stress.pngReport: report.html

Open the full report

After wobbl fix --apply

  1. As drawn, 52.3 MPa, fails

    As drawn

    52.3 MPaSF 0.96

    Fails

  2. 3 mm fillet, 24.1 MPa, marginal

    3 mm fillet

    24.1 MPaSF 2.08

    Marginal

  3. Walls at 10 mm, 21 MPa, marginal

    Walls at 10 mm

    21 MPaSF 2.38

    Marginal

  4. Gusset across the corner, 9.82 MPa, holds

    Gusset across the corner

    9.82 MPaSF 5.09

    Holds

About this example

This PLA L bracket is printed flat and screwed to a wall through two holes, and the shelf presses 40 N on the arm 65 mm from the wall. The inside corner has the 0.5 mm radius a printer leaves on a “sharp” corner.

Version Peak stress Safety factor (PLA, 50 MPa) Verdict
As drawn, 0.5 mm corner 52.3 MPa 0.96 fails
3 mm fillet 24.1 MPa 2.08 marginal (target 2.5)
Legs thickened to 10 mm 21.0 MPa 2.38 marginal
Gusset across the corner 9.82 MPa 5.09 holds

These are the checks Wobbl ran on the original.

  • mesh convergence over four meshes, at 43.0, 50.9, 53.0 and 52.3 MPa
  • reactions balance the 40 N load to 0.0001%
  • beam theory through the corner gives 15.2 MPa nominal, so the corner multiplies stress by about 3.4
  • the screws are modeled as bolted holes and the back of the upright can push on the wall but not pull, solved as contact

The thicker legs barely help because the sharp corner still multiplies the stress, and rounding the corner or bracing it is what works. The gusset’s own toe is a sharp corner too, which Wobbl excludes as a singularity and flags with medium confidence, so give it a small fillet in the real part. The report is in output/report.html, the heatmap in output/images/stress.png and the re-simulated versions in output/fix-*/.

Run it yourself

Terminal
$ git clone https://github.com/sohan-bhat/wobbl$ cd wobbl/examples/shelf-bracket && ./run.sh

The part, the script and every output are in examples/shelf-bracket on GitHub.