From agent-almanac
Diagnoses and fixes common 3D printing failures like poor bed adhesion, stringing, layer shifts, warping, under/over-extrusion using symptom analysis, G-code inspection, and iterative fixes.
npx claudepluginhub pjt222/agent-almanacThis skill uses the workspace's default tool permissions.
---
Exports and optimizes 3D models for FDM/SLA printing: STL/3MF handling, mesh integrity checks, wall thickness verification, support generation, slicing prep. Use for CAD exports, printability verification, or slicer troubleshooting.
Operates and troubleshoots BambuLab printers via bambu-cli: status/watch, print start/pause/resume/stop, files/camera/gcode/AMS/calibration/motion/fans/light/config/doctor. Generates safe commands with confirmations.
Plans Gridfinity baseplates for 3D printing by calculating optimal grid sizes from measurements, slicing large grids for printer beds, computing padding for fits, converting metric/imperial units, and guiding STL generation.
Share bugs, ideas, or general feedback.
Diagnose and fix common 3D printing failures using systematic symptom analysis. This skill covers the most frequent FDM and SLA issues: poor bed adhesion, stringing, layer shifts, warping, under-extrusion, over-extrusion, and print quality defects. Uses a structured approach of symptom identification, root cause analysis, and iterative fixes.
Document observable symptoms with specificity:
Visual inspection:
Environmental data:
Print parameters:
# Extract from G-code metadata
grep "^;MAXX\|^;MINX\|^;MAXZ" failed_print.gcode # Print dimensions
grep "^;PRINT_TIME:" failed_print.gcode # Estimated time
grep "^M104\|^M140" failed_print.gcode | head -5 # Temperatures
grep "^;generated by" failed_print.gcode # Slicer version
Expected: Detailed symptom description with photos, parameters, and environmental context.
On failure: If symptoms unclear, print a calibration test (temperature tower, stringing test, or benchy) to reproduce and observe failure systematically.
Match observed symptoms to common failure modes:
| Symptom | Likely Causes | Quick Check | Priority Fix |
|---|---|---|---|
| Poor bed adhesion | Dirty bed, wrong temp, too high Z | Wipe bed, level bed | Clean bed, adjust Z-offset down 0.05mm |
| Stringing | Too hot, insufficient retraction | Check nozzle temp | Lower temp 5°C, increase retraction +0.5mm |
| Layer shifts | Loose belts, too fast, collision | Check belt tension | Tighten belts, reduce speed 20% |
| Warping | Poor adhesion, fast cooling | Check corners lifting | Add brim, enclose printer, increase bed temp |
| Under-extrusion | Clog, low temp, wrong flow | Check extrusion consistency | Clean nozzle, increase temp 5°C, calibrate e-steps |
| Over-extrusion | High flow rate, wrong e-steps | Check blob formation | Reduce flow 2-5%, calibrate e-steps |
| Elephant foot | First layer squish, bed too hot | Measure base width | Raise Z-offset +0.05mm, lower bed temp 5°C |
| Gaps in walls | Thin walls, under-extrusion | Check wall thickness | Enable thin wall detection, increase flow |
| Layer delamination | Low temp, poor cooling, contamination | Check layer lines | Increase temp 5-10°C, check wet filament |
| Blobs/zits | Retraction, coast settings | Check seam alignment | Tune retraction, enable coasting |
| Rough top surface | Insufficient top layers, ironing | Count solid top layers | Add 2 top layers, enable ironing |
| Sagging overhangs | Insufficient cooling, too hot | Check part cooling fan | Increase cooling, lower temp, add supports |
Expected: Failure classified into 1-3 most likely categories.
On failure: If symptoms match multiple categories, prioritize based on failure timing (first layer issues first, then midprint, then top surface).
Investigate underlying cause, not just symptoms:
5 Whys technique:
Symptom: Print warping and lifting from bed
Why? → Poor bed adhesion in corners
Why? → Corners cooling faster than center
Why? → Room draft from AC vent
Why? → No enclosure to maintain stable temperature
Why? → ABS requires heated chamber for uniform cooling
Root cause: Material choice (ABS) incompatible with open printer in drafty room
Common root causes by category:
Mechanical:
Thermal:
Material:
Configuration:
Expected: Root cause identified with supporting evidence (measured temperatures, belt tension, visual inspection).
On failure: If root cause unclear, use elimination method: fix most likely cause, re-test, repeat until resolved.
Implement immediate solutions for common issues:
Immediate fixes:
# 1. Clean bed thoroughly
# Glass/PEI: Isopropyl alcohol 90%+
# BuildTak: Warm water and dish soap
# 2. Level bed (paper test at 4 corners + center)
# Paper should drag slightly
# 3. Adjust Z-offset down (squish first layer more)
# Start: -0.05mm increments until lines fuse
# 4. Increase bed temperature +5°C
# 5. Add adhesion aid:
# - Glue stick (PLA/PETG)
# - Hairspray (ABS)
# - ABS juice (ABS) - ABS dissolved in acetone
# - Magigoo/3D printing adhesive
Slicer settings:
Expected: First layer adheres completely with no lifting.
On failure: Check bed flatness with feeler gauge or mesh leveling; warped bed requires glass/PEI sheet or mesh compensation.
Temperature-first approach:
1. Print temperature tower (180-220°C in 5° steps for PLA)
2. Identify lowest temperature that extrudes cleanly
3. Use that temperature -5°C to minimize stringing
Retraction tuning:
# Direct drive extruder:
retraction_distance: 1.0-2.0mm
retraction_speed: 40-50mm/s
# Bowden extruder:
retraction_distance: 4.0-6.0mm
retraction_speed: 40-60mm/s
# If stringing persists:
- Enable z-hop: 0.2-0.4mm (lifts nozzle during travel)
- Reduce travel speed (paradoxically helps)
- Enable combing mode (travels within infill)
Expected: Minimal stringing, thin strings easily removed by hand.
On failure: Check for nozzle partial clog or wet filament (both cause oozing).
Mechanical checks:
# 1. Check belt tension (should twang like guitar string)
# Tighten if loose
# 2. Check pulley set screws (motor shafts)
# Must align with flat on motor shaft
# 3. Check for mechanical resistance
# Manually move X/Y axes - should glide smoothly
# Binding indicates dirty rods, worn bearings, or misalignment
# 4. Check stepper motor current (advanced)
# Too low → skipping; too high → overheating
Speed reduction:
# Reduce these speeds:
perimeter_speed: 40mm/s (from 50)
travel_speed: 120mm/s (from 150)
acceleration: 500mm/s² (from 1000)
jerk: 8mm/s (from 15)
Expected: No layer shifts in re-print with tightened belts and reduced speeds.
On failure: Check for slicer-generated collisions (part cooling fan hitting model) or electrical issues (stepper driver overheating).
Thermal management:
# Increase bed temperature:
PLA: 60°C → 65°C
PETG: 80°C → 85°C
ABS: 100°C → 110°C
# Disable/reduce part cooling:
first_layer_fan: 0%
regular_fan: 25% max (ABS), 50% (PETG), 100% (PLA)
# Enclose printer (critical for ABS/ASA):
- Cardboard box (temporary)
- Acrylic panels (permanent)
- Target chamber temp: 40-50°C
Adhesion enhancement:
Expected: Part stays flat with no corner lifting.
On failure: Material fundamentally unsuitable for printer (ABS on unenclosed printer)—switch to PETG or ASA.
Quick fixes:
# 1. Check for nozzle clog
# Heat to print temp, manually push filament
# Should extrude smoothly
# 2. Cold pull cleaning (if partial clog)
# Heat to 220°C, push cleaning filament through
# Cool to 90°C, pull sharply - should remove debris
# 3. Increase temperature +5-10°C
# Higher temp = better flow
# 4. Increase flow rate 2-5%
# Slicer: Filament settings → Flow → 102-105%
E-steps calibration:
# 1. Mark filament 120mm above extruder
# 2. Extrude 100mm: G1 E100 F100
# 3. Measure remaining distance to mark
# 4. Calculate: new_steps = current_steps × (100 / actual_extruded)
# 5. Set: M92 E<new_steps>; M500 (save to EEPROM)
Expected: Consistent extrusion with no gaps in perimeters or infill.
On failure: Check for heat creep (cooling fan failure), worn extruder gear, or cracked extruder arm.
Flow rate reduction:
# Reduce flow in 2% increments:
extrusion_multiplier: 0.98 → 0.96 → 0.94
# Signs of correct flow:
- Smooth top surface (not overstuffed)
- Perimeters don't bulge outward
- Infill doesn't overfill and push layers apart
Dimensional accuracy test:
# Print 20mm calibration cube
# Measure with calipers:
# X/Y dimensions should be 20.0mm ± 0.1mm
# If consistently oversized → reduce flow
# If undersized → increase flow
Expected: Accurate dimensions, smooth surfaces, no bulging.
On failure: Re-calibrate e-steps (may be set too high).
Confirm resolution before attempting full print:
Test print selection:
Expected: Test print succeeds with issue resolved.
On failure: If test fails, issue not fully resolved or multiple issues present—repeat diagnosis focusing on remaining symptoms.
Record successful fix for future reference:
Issue log template:
date: 2026-02-16
issue: "Layer shifts at 50mm height"
symptoms: "X-axis shifts 10mm, happens consistently at same height"
printer: "Ender 3 V2"
material: "PETG, PolyMaker PolyLite"
root_cause: "Loose X-axis belt, pulley set screw not on flat"
solution:
- "Tightened X-axis belt to 120Hz resonance"
- "Realigned pulley set screw on motor shaft flat"
- "Reduced print speed to 40mm/s perimeter"
verification: "Printed 100mm test cylinder - no shifts"
notes: "Check belt tension monthly, pulley tends to slip"
Expected: Issue documented with root cause and solution for knowledge base.
On failure: Even unsuccessful troubleshooting attempts should be logged to avoid repeating failed solutions.