The formula
PrusaSlicer, OrcaSlicer and Bambu Studio share the Slic3r flow model (Flow.cpp in all three). It treats a printed line as a rectangle h tall and w wide with rounded ends:
automatic line width = 1.125 × nozzle diameter
cross-section (mm²) = h × (w − h × (1 − π/4))
spacing (mm) = w − h × (1 − π/4)
wall thickness (mm) = w + (walls − 1) × spacing
volumetric flow = cross-section × print speed
w is the line width and h the layer height, both in millimeters. Spacing is the distance between the centers of two neighboring lines, so each pair overlaps by h × (1 − π/4), 0.043 mm at a 0.2 mm layer. The cross-section is also the plastic in each millimeter of line, in mm³.
UltiMaker Cura models the line as a plain rectangle and places walls one width apart (fdmprinter.def.json and CuraEngine):
line width = nozzle diameter
cross-section = w × h
wall thickness = walls × w
How do you calculate line width in 3D printing?
Start from the nozzle diameter. PrusaSlicer, OrcaSlicer and Bambu Studio multiply it by 1.125 when the width is left at 0, so a 0.4 mm nozzle prints 0.45 mm lines. UltiMaker Cura uses the nozzle size. Keep it above the layer height and below 1.5 × the nozzle, the most OrcaSlicer’s and Bambu Lab’s guides advise.
Worked example: the calculator’s defaults
These match Prusa’s “0.20mm SPEED” print profile for the MK4S with a 0.4 mm nozzle: 0.45 mm lines, 2 perimeters and 170 mm/s perimeters.
- Line width: 1.125 × 0.4 = 0.45 mm.
- Overlap: 0.2 × (1 − π/4) = 0.0429 mm.
- Spacing: 0.45 − 0.0429 = 0.407 mm.
- Cross-section: 0.2 × 0.407 = 0.0814 mm², against 0.09 mm² for a plain rectangle.
- Wall with 2 perimeters: 0.45 + 0.407 = 0.857 mm.
- Volumetric flow at 170 mm/s: 0.0814 × 170 = 13.84 mm³/s.
Check that flow against your filament’s limit with the volumetric flow calculator. A wider line carries more plastic per millimeter, so it reaches the limit at a lower speed.
PrusaSlicer’s automatic extrusion width
Leave a width at 0 and PrusaSlicer calculates it from the nozzle: 1.125 × the nozzle for perimeters and infill, the nozzle size for top solid infill and support. A 0 in a feature’s field first falls back to “Default extrusion width” (Print Settings → Advanced → Extrusion width). The automatic rule applies only when both fields are 0.
| Feature | Width when set to 0 | 0.4 mm nozzle | 0.6 mm nozzle |
|---|---|---|---|
| External perimeters, perimeters | 1.125 × nozzle | 0.45 mm | 0.675 mm |
| Infill, solid infill | 1.125 × nozzle | 0.45 mm | 0.675 mm |
| Top solid infill | nozzle | 0.4 mm | 0.6 mm |
| Support material | nozzle | 0.4 mm | 0.6 mm |
| First layer | 200% of the first layer height | 0.4 mm (0.2 mm first layer) | 0.4 mm (0.2 mm first layer) |
The first layer row is PrusaSlicer’s built-in value; Prusa’s MK4S 0.4 mm profiles set 0.5 mm instead. Set the first layer field to 0 and the first layer uses each feature’s own width.
OrcaSlicer and Bambu Studio use the same rule and fall back first to a field called “Default”. The Slic3r manual describes an older automatic width: 1.05 × the nozzle for external perimeters and up to 1.7 × for most other lines. Current PrusaSlicer code uses the flat 1.125.
Prusa’s guide to nozzle profiles suggests about 110% of the nozzle for most lines, and 120 to 140% on the first layer for better bed adhesion.
How do you calculate wall thickness from line width?
Add each extra wall’s spacing to the first line width: wall = w + (walls − 1) × (w − 0.215 × h). PrusaSlicer and Bambu Studio overlap neighboring lines, so two 0.45 mm walls at 0.2 mm layers total 0.857 mm. OrcaSlicer’s default Precise wall makes it 0.9 mm. UltiMaker Cura spaces walls one width apart: walls × width.
Wall thickness at 0.2 mm layers:
| Walls | 0.4 mm lines | 0.45 mm lines | Bambu Studio, 0.42 / 0.45 mm | OrcaSlicer 0.45 mm, Precise wall | UltiMaker Cura, 0.4 mm |
|---|---|---|---|---|---|
| 1 | 0.4 mm | 0.45 mm | 0.42 mm | 0.45 mm | 0.4 mm |
| 2 | 0.757 mm | 0.857 mm | 0.827 mm | 0.9 mm | 0.8 mm |
| 3 | 1.114 mm | 1.264 mm | 1.234 mm | 1.307 mm | 1.2 mm |
| 4 | 1.471 mm | 1.671 mm | 1.641 mm | 1.714 mm | 1.6 mm |
When the outer wall is narrower than the inner walls, as in Bambu Studio’s 0.42 / 0.45 mm profile, the first gap is the average of the two spacings. Type both widths into the calculator to get the total.
Precise wall in OrcaSlicer and Bambu Studio
Precise wall sets the overlap between the outer wall and the first inner wall to zero, so the wall comes out one overlap thicker: outer + inner + (walls − 2) × spacing. Two 0.45 mm walls at 0.2 mm layers become 0.9 mm.
OrcaSlicer turns it on by default but applies it only with the Inner/Outer wall order. Bambu Studio ships with it off. Both put the switch under Quality → Precision → Precise wall.
Model a wall that prints as whole lines
To make a thin wall fill with whole lines, model it at the table’s thickness for its total line count. Count the lines from both sides of the wall. PrusaSlicer shows the same figure under Print Settings → Layers and perimeters → Vertical shells as “Recommended object thin wall thickness”: 0.86 mm for 2 lines and 1.67 mm for 4 at the defaults.
Wall thickness in UltiMaker Cura
Cura sets walls by thickness. Under Walls, Wall Line Count = round((Wall Thickness − outer wall line width) ÷ inner wall line width) + 1, so the default 0.8 mm gives two 0.4 mm walls. Type walls × line width as the Wall Thickness (1.2 mm for three 0.4 mm walls), or set Wall Line Count directly.
Line width limits in each slicer
| Slicer | Maker’s guidance | Hard limit |
|---|---|---|
| PrusaSlicer | About 110% of the nozzle, 120 to 140% on the first layer | Refuses a width at or below the layer height, or 3 × the nozzle and wider |
| OrcaSlicer | Start at 100%; above 150% can over-extrude | Refuses a width at or below the layer height, or above 5 × the nozzle |
| Bambu Studio | 0.75 to 1.5 × the nozzle; keep the default where possible | Refuses a width at or below the layer height, or above 2.5 × the nozzle |
| UltiMaker Cura | Match the nozzle; slightly narrower can print better | Warns below 0.1 + 0.4 × the nozzle (0.26 mm) and above 2 × the nozzle (0.8 mm) |
A line can’t be thinner than the layer is tall: the three Slic3r-family slicers refuse it, and the Slic3r manual calls the shape of such a line unpredictable. Bambu Lab’s wiki adds that a line can’t be squeezed wider than the outside diameter of the nozzle tip.
The layer height has its own cap. Prusa’s guide keeps it at 70 to 80% of the nozzle at most, and Cura warns above 80%. The layer height calculator gives the heights a nozzle and Z axis support.
Default line widths in each slicer’s profiles
| Slicer and profile | Nozzle | Outer wall | Inner walls |
|---|---|---|---|
| PrusaSlicer, Prusa MK4S profiles | 0.4 mm | 0.45 mm | 0.45 mm |
| Bambu Studio, Bambu Lab printers | 0.2 mm | 0.22 mm | 0.22 mm |
| Bambu Studio, Bambu Lab printers | 0.4 mm | 0.42 mm | 0.45 mm |
| Bambu Studio, Bambu Lab printers | 0.6 mm | 0.62 mm | 0.62 mm |
| Bambu Studio, Bambu Lab printers | 0.8 mm | 0.82 mm | 0.82 mm |
| OrcaSlicer, generic printer profiles | any | 100% of the nozzle | 110% of the nozzle |
| UltiMaker Cura, built-in default | any | nozzle size | nozzle size |
Prusa’s MK4S profiles for other nozzles vary: 0.6 to 0.68 mm on a 0.6 mm nozzle and 0.9 to 1 mm on a 0.8 mm nozzle. The Prusa MK4S 0.4 mm and Bambu Studio 0.4 mm profiles use 2 walls, OrcaSlicer’s generic profiles use 3, and Cura’s 0.8 mm default wall thickness gives 2.
With Bambu Studio selected, the calculator fills in these profile widths when the width fields are blank. For other nozzle sizes it uses the 1.125 rule.
Where to set line width and walls
| Slicer | Line width | Walls | Units |
|---|---|---|---|
| PrusaSlicer | Print Settings → Advanced → Extrusion width | Print Settings → Layers and perimeters → Vertical shells → Perimeters | mm, or % of the layer height |
| OrcaSlicer | Process → Quality → Line width | Process → Strength → Walls → Wall loops | mm, or % of the nozzle |
| Bambu Studio | Process → Quality → Line width | Process → Strength → Walls → Wall loops | mm |
| UltiMaker Cura | Print settings → Quality → Line Width | Print settings → Walls → Wall Thickness or Wall Line Count | mm |
In PrusaSlicer 2.9, a percentage is taken of the layer height, not the nozzle: 112.5% at 0.2 mm layers is a 0.225 mm line. Type the width in millimeters. OrcaSlicer reads the same 112.5% as 112.5% of the nozzle, 0.45 mm on a 0.4 mm nozzle.
Filament extruded per millimeter of line
The extrusion (E) a slicer writes for a line is its cross-section divided by the filament’s cross-section, times the flow ratio. At the defaults, 0.0814 mm² ÷ 2.405 mm² = 0.0338 mm of 1.75 mm filament per millimeter of line, so a 100 mm wall line takes 3.38 mm of filament. With 2.85 mm filament (6.379 mm²) it takes 1.28 mm.
If the extruder feeds the wrong length of filament, fix it with the e-steps calculator. If a printed wall measures thicker or thinner than this calculator’s wall thickness, correct the flow ratio with the flow rate calculator, which uses the same wall math.
Published · Figures last checked
Sources
- Prusa Knowledge Base, Creating profiles for different nozzles (extrusion width) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, Flow.cpp (auto_extrusion_width, line spacing, mm3_per_mm) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, PrintConfig.cpp (extrusion width tooltips and defaults) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, PrintRegion.cpp (fallback to the default extrusion width) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, Print.cpp (extrusion width validation) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, PerimeterGenerator.cpp (perimeter spacing) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, PresetHints.cpp (recommended thin wall thickness) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, Tab.cpp (Print Settings pages) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 source, Extruder.cpp (E per mm³ of plastic) (accessed 2026-10-18)
- PrusaSlicer 2.9.6 profiles, PrusaResearch.ini (MK4S print profiles) (accessed 2026-10-18)
- Slic3r Manual, Flow Math (accessed 2026-10-18)
- OrcaSlicer wiki, Line width (accessed 2026-10-18)
- OrcaSlicer wiki, Precision (Precise wall) (accessed 2026-10-18)
- OrcaSlicer source, Flow.cpp (auto_extrusion_width, percentages of the nozzle) (accessed 2026-10-18)
- OrcaSlicer source, PrintConfig.cpp (line width, wall loops, precise_outer_wall and wall_sequence defaults) (accessed 2026-10-18)
- OrcaSlicer source, Print.cpp (line width validation) (accessed 2026-10-18)
- OrcaSlicer source, libslic3r.h (MAX_LINE_WIDTH_MULTIPLIER = 5) (accessed 2026-10-18)
- OrcaSlicer source, PerimeterGenerator.cpp (precise outer wall spacing) (accessed 2026-10-18)
- OrcaSlicer source, Tab.cpp (Quality and Strength pages) (accessed 2026-10-18)
- OrcaSlicer profiles, Custom/process/fdm_process_common.json (generic printer line widths) (accessed 2026-10-18)
- Bambu Lab Wiki, Line width (accessed 2026-10-18)
- BambuStudio source, Flow.cpp (auto_extrusion_width) (accessed 2026-10-18)
- BambuStudio source, PrintRegion.cpp (fallback to the Default line width) (accessed 2026-10-18)
- BambuStudio source, Print.cpp (line width validation) (accessed 2026-10-18)
- BambuStudio source, PrintConfig.cpp (precise_outer_wall default) (accessed 2026-10-18)
- BambuStudio source, PerimeterGenerator.cpp (precise outer wall spacing) (accessed 2026-10-18)
- BambuStudio source, Tab.cpp (Quality and Strength pages) (accessed 2026-10-18)
- BambuStudio profiles, fdm_process_common.json (0.4 mm nozzle line widths) (accessed 2026-10-18)
- BambuStudio profiles, BBL process folder (0.2, 0.6 and 0.8 mm nozzle files) (accessed 2026-10-18)
- UltiMaker Cura source, fdmprinter.def.json (line_width, wall_thickness, wall_line_count) (accessed 2026-10-18)
- CuraEngine source, GCodePathConfig.cpp (extrusion = line width × layer height) (accessed 2026-10-18)