Looprint (Beta)

Automated multi-loop G-code builder for Bambu Lab P1/P1S, X1/X1C, A1, and A1 Mini. Supports G-code and 3MF files.

πŸš€ Quick Start

Get started in 3 simple steps:

1. Upload File Upload your sliced G-code or 3MF file
2. Configure Set number of loops and confirm safety settings
3. Generate Click "Generate Loop File" and download

⚠️ Beta Notice: Looprint is still in beta. Not all features have been tested on hardware. Do not leave your printer unattended β€” always stay nearby and monitor the process during automated looping.

πŸ’‘ Based on Factorian Designs G-code templates. I recommend watching his video: A1/A1 Mini or P1/P1S/X1/X1C.

πŸ“€ How to Export from Bambu Studio

Follow these steps to export your file from Bambu Studio:

πŸ“„ G-code Files

  1. Slice your model in Bambu Studio (any G-code file works - Looprint adds start and end code automatically)
  2. Click "File" in the menu bar
  3. Select "Export" β†’ "Export G-Code"
  4. Upload the exported G-code file to Looprint

Note: G-code files must be printed from SD card (required). Looprint automatically adds start and end code to all files. Optional: You can use Factorian Designs start and end code templates if you prefer. I recommend watching his video: A1/A1 Mini or P1/P1S/X1/X1C.

πŸ“¦ 3MF Files

  1. Slice your model in Bambu Studio
  2. Click the dropdown where you normally click "Print Plate"
  3. Select "Export plate sliced file"
  4. Upload the exported 3MF file to Looprint

Note: 3MF files can be sent directly to printer from Bambu Studio after generating

πŸ“ 1. Upload File

or drag and drop your G-code or 3MF file here

βš™οΈ 2. Loop Configuration

Sets the print speed for each loop.

This replaces the standard purge line behavior, ensuring a clean and consistent first layer.

FRONT
BACK
LEFT
RIGHT
Center
Right
Left
Bed Preview & Model Placement

The zone with the green border is the selected push direction.
In advanced mode, you can click any zone to change it after file upload.

Z push offset: 30 mm below top of print

⚠️ Advanced: Incorrect values can cause collisions.

πŸ”§ 3. Push-off Configuration (Advanced)

Push direction is automatically detected from your file. You can click the zones in the bed preview above to change it manually.
Note: In simple mode, push direction is locked to the auto-detected value. In advanced mode, you can change it but will see a warning if it differs from the auto-detected direction.

Default 18Β°C (Approx. 23Β°C on the plate). Wait max 60 min.

Default 30mm below top (P1/X1). A1 Factorian logic uses 40mm in the automated calculation.

Distance from model center for left/right push lanes. Default 30mm. Auto-adjusted if too large for model placement.

Speed of the push-off motion. Default 300mm/min. Lower = slower, safer for delicate prints.

Sweeps entire bed in 7 passes (safe one-way back-to-front pattern) after push-off to clear any debris. Returns in straight line before shifting to next pass. Default Z: 1mm (bed level), adjustable.

Start G-code

Start code that will be inserted at the beginning of each loop. Variables are replaced with values from your file.

πŸ“Selected Push Direction:
Left
Center
Right
Left Push End G-code

Pushes model from left zone towards front. Z height calculated automatically.

Center Push End G-code

Pushes model from center zone towards front. Z height calculated automatically.

Right Push End G-code

Pushes model from right zone towards front. Z height calculated automatically.

Processing...

βœ…
Loop File Ready

Your file has been looped into a single file with push-off sequences between each loop.

Source file: –

Total loops: 0

Looprint Logo

Find this tool useful? Support the project and keep Looprint updated:

πŸ“– Looprint Instructions

What is Looprint?

Looprint is an automated multi-loop G-code builder for Bambu Lab P1/P1S, X1/X1C, A1, and A1 Mini printers. It takes your sliced G-code or 3MF file and automatically creates multiple print loops with push-off sequences between each loop, allowing you to print multiple copies of your model automatically.

Logic based on Factorian Designs G-code templates. I recommend watching his videos: A1/A1 Mini or P1/P1S/X1/X1C.

Supported Printers

Looprint supports multiple Bambu Lab printer models. Click to expand details for your printer:

πŸ–¨οΈ P1 / P1S (CoreXY)

β–Ό
  • X-axis push (gantry moves)
  • Full bed sweep (7 passes, X-axis)
  • Dynamic multi-lane push system (Left, Center, Right)
  • Z offset: 30mm below model top
  • Start code with optional filament flush
  • M190 cooldown before push-off
  • End sound sequence

πŸ–¨οΈ X1 / X1C (CoreXY)

β–Ό
  • X-axis push (gantry moves) - same as P1/P1S
  • Full bed sweep (7 passes, X-axis)
  • Dynamic multi-lane push system (Left, Center, Right)
  • Z offset: 30mm below model top
  • Start code with optional filament flush
  • Cutter sequence (G1 Y-3) before push-off (X1-specific)
  • M190 cooldown before push-off
  • End sound sequence
  • Automatic printer model detection from 3MF metadata (BL-P001 or BL-P002)

πŸ–¨οΈ A1 (Bed Slinger)

β–Ό
  • Y-axis push (bed moves, gantry stationary)
  • Wiggle sweep (X: -48 to 256mm)
  • Automatic Y-axis push using Factorian's 41mm rule
  • Z offset: 40mm below model top (Factorian's rule)
  • Print head parked at X-48 (no clearance needed)
  • Automatic printer model detection from 3MF metadata (N2S)

πŸ–¨οΈ A1 Mini (Bed Slinger)

β–Ό
  • Y-axis push (bed moves, gantry stationary) - same as A1
  • Wiggle sweep (X: -13 to 180mm)
  • Automatic Y-axis push using Factorian's 41mm rule
  • Z offset: 40mm below model top (Factorian's rule)
  • Automatic printer model detection from 3MF metadata (N1)
  • ⚠️ Requires 50mm clearance to the left of the bed (see Safety Reminders)

Supported File Types

  • G-code files - Export from Bambu Studio: File β†’ Export β†’ Export G-Code
    • Supported extensions: .gcode, .gco, .g, .txt
    • Must be printed from SD card (required)
    • Looprint automatically adds start and end code to all files. Optional: You can use Factorian Designs start and end code templates if you prefer. I recommend watching his video: A1/A1 Mini or P1/P1S/X1/X1C
    • Printer model must be selected manually (P1/P1S, X1/X1C, A1, or A1 Mini)
  • 3MF files - Export from Bambu Studio: Dropdown (where "Print Plate" is) β†’ "Export plate sliced file"
    • Supported extension: .3mf
    • Can be sent directly to the printer from Bambu Studio
    • Printer model is automatically detected from 3MF metadata and locked

Start and end code are added automatically for all file types. You don't need any special printer profiles or modifications.

Note: Maximum file size: 150MB

How to Use Looprint

  1. Upload your file
    • For 3MF files:
      1. Slice your model in Bambu Studio
      2. Click the dropdown where you normally click "Print Plate"
      3. Select "Export plate sliced file"
      4. Click "Choose File" or drag and drop the exported 3MF file to Looprint
      5. The file will be validated automatically
      6. Printer model is automatically detected from 3MF metadata and locked
      7. After generating: Open the downloaded 3MF file in Bambu Studio and click "Print Plate" (do not slice again)
    • For G-code files:
      1. Slice your model in Bambu Studio (any G-code file works - Looprint adds start and end code automatically). Optional: You can use Factorian Designs start and end code templates if you prefer. I recommend watching his video: A1/A1 Mini or P1/P1S/X1/X1C
      2. Click "File" in the menu bar
      3. Select "Export" β†’ "Export G-Code"
      4. Click "Choose File" or drag and drop the exported G-code file to Looprint
      5. The file will be validated automatically
      6. Select your printer model (P1/P1S, X1/X1C, or A1) from the dropdown
      7. After generating: Copy the downloaded G-code file to SD card and print from SD card (required)
  2. Select Printer Model
    • For 3MF files: Printer model is automatically detected from metadata and locked (you'll see a checkmark note)
    • For G-code files: Select your printer model from the dropdown:
      • P1/P1S/X1/X1C: Shows push direction selector (Left/Center/Right) in bed preview
      • P1/P1S/X1/X1C: Shows "Enable Start Line Purge" checkbox (optional filament flush in start code)
      • A1: Shows "Automatic Y-axis" (no manual selection needed)
    • The interface adapts based on your printer selection
  3. Configure loops
    • Set the number of loops (how many times to print your model)
    • Maximum: 1000 loops (recommended maximum: 50 loops to avoid memory issues)
    • Speed Mode: Select print speed for each loop
      • Standard (100%): Normal print speed (default)
      • Sport (124%): Faster print speed
      • Ludicrous (166%): Maximum print speed
      • Speed is automatically reset to 100% during push-off sequences and at the end of the print job for safety
    • P1/P1S/X1/X1C: The program automatically detects your model's placement (Left, Center, or Right)
    • A1: The program automatically calculates Y-axis push position using Factorian's 41mm rule
    • You can view the detected placement in the bed preview below
  4. Advanced settings (optional)
    • Click the checkbox "βš™οΈ Show Advanced Settings" to access push-off configuration
    • Target Bed Temp: Temperature to cool the bed to before push-off starts
      • Default: 18Β°C (Approx. 23Β°C on the plate)
      • Range: 15Β°C - 90Β°C
      • Wait max 60 min for bed to cool before push-off sequence begins
      • Warning shown if set above 35Β°C (increases risk of sticking)
    • Z Push Offset: How far below the model top to push
      • Default: 30mm (P1/P1S/X1/X1C) / 40mm (A1 - Factorian's rule)
      • Range: 5mm - 120mm
      • A1: Uses Factorian's 41mm rule for automatic calculation
    • Push Lane Offset (P1/P1S/X1/X1C only): Distance from model center for left/right push lanes
      • Default: 30mm
      • Range: 10mm - 60mm
      • Automatically adjusted if too large for model placement (prevents crashes)
      • Maximum possible offset is shown when auto-adjusted
      • Not applicable for A1 (uses automatic Y-axis push)
    • Push Direction (P1/P1S/X1/X1C only): Can be changed manually in advanced mode
      • Click zones in the bed preview to change direction
      • Warning shown if manually changed from auto-detected direction
      • A1: Automatic Y-axis push (no manual selection)
    • Enable Start Line Purge (P1/P1S/X1/X1C): Optional filament flush in start code
      • Default: Enabled (uses start code with flush - matches Factorian's P1 template)
      • When disabled: Uses start code without filament flush sequence (faster start)
      • Useful when switching materials or after pause. Disable for faster start when using same filament.
    • Push-off Speed: Speed of the push-off motion
      • Default: 300 mm/min
      • Range: 100 - 1000 mm/min
      • Lower = slower, safer for delicate prints
    • Full Bed Sweep / Wiggle Sweep (optional): Clears debris after push-off
      • P1/P1S/X1/X1C: Full bed sweep - 7 passes in safe one-way back-to-front pattern (X-axis)
      • A1: Wiggle sweep - X-axis wiggle from -48mm to 256mm
      • Sweep Speed: Default 300 mm/min (range: 100-1000 mm/min)
      • Sweep Z Height: Default 1mm (bed level, range: 0.5-50mm)
      • Always runs with automatic spacing
      • Respects safe bed boundaries to avoid collisions
      • Can be tested separately with "Generate Sweep Test File" button (appears when enabled)
      • A1 Mini Warning: Requires 50mm clearance to the left of the bed (see Safety Reminders section)
    • Enable Negative Z Push-Off (A1 only - advanced): Optional feature for low-height models
      • Only available for A1 (not A1 Mini, P1, X1)
      • Uses negative Z values (Z-17) when nozzle head is at X-48 (far left)
      • Adds an additional push-off sequence after standard push-off
      • ⚠️ WARNING: Only use if you do NOT have a Z-axis stiffener mod installed
      • Based on Factorian Designs custom end code logic
      • Should only be used when standard push-off is insufficient for very low parts
      • Use with caution - this is an advanced feature
    • Safety confirmation: Checkbox to confirm your model was sliced with Brim enabled. Brim replaces the standard purge line behavior, ensuring a clean and consistent first layer.
  5. Generate and download
    • Click "Generate Loop File" to create the looped file
    • Or click "Generate Test File" (appears after file upload) to test just the push-off sequence
    • Or click "Generate Sweep Test File" (appears when Full Bed Sweep is enabled) to test just the sweep sequence
    • Wait for processing to complete (progress bar shows status)
    • Download your looped file
    • Use "Reset to Defaults" button to reset all settings to defaults

What Looprint Does

When you generate a looped file, Looprint:

  1. Detects printer model - Automatically from 3MF metadata or manual selection for G-code
  2. Analyzes your file - Detects model placement, dimensions, and print settings
  3. Removes original start/end code - Cleans up the slicer's start and end code
  4. Adds custom start code - Inserts optimized printer-specific start code with proper temperature settings
  5. Loops the print - Repeats your print G-code for the specified number of loops
  6. Adds push-off sequences - Inserts automated push-off code between each loop:
    • P1/P1S/X1/X1C: X-axis push with dynamic multi-lane system (Left, Center, Right)
    • X1/X1C: Includes cutter sequence (G1 Y-3) before push-off
    • A1: Y-axis push using Factorian's 41mm rule (automatic calculation)
  7. Adds bed sweep (optional) - If enabled, clears debris after push-off:
    • P1/P1S/X1/X1C: Full bed sweep (7 passes, X-axis)
    • A1: Wiggle sweep (X: -48 to 256mm)
  8. Adds custom end code - Inserts printer-specific end code that cools the bed and prepares for the next loop
    • P1/P1S: Includes M190 cooldown, dynamic push, and end sound
    • X1/X1C: Includes M190 cooldown, cutter sequence, dynamic push, and end sound
  9. Preserves all settings - All temperatures, speeds, and other settings from your original file are maintained (Speed Mode overrides print speed during loops)
  10. Resets speed for safety - Automatically resets print speed to 100% during push-off sequences and at the end of the entire print job
  11. Adds metadata watermark (G-code only) - Includes Looprint signature with GitHub link in G-code comments (not printed on the model)

Printer-Specific Push Systems

Click to expand technical details for your printer model:

βš™οΈ P1 / P1S / X1 / X1C: Dynamic Multi-Lane Push System

β–Ό

Looprint uses a dynamic push-off system that calculates three push lanes based on your model's position:

  • Center lane: Pushes at the model's center (X = (minX + maxX) / 2)
  • Left lane: Pushes at center - offset (default: 30mm to the left of center)
  • Right lane: Pushes at center + offset (default: 30mm to the right of center)

This ensures stable ejection regardless of your model's shape. The offset is automatically adjusted if it would cause the printer to crash into the bed edges. A warning is displayed if auto-adjustment occurs, showing the maximum possible offset.

Safety Clear: After push-off, the hotend moves to a safe X position to avoid hitting the model on the next loop.

X1/X1C Specific: Includes cutter sequence (`G1 Y-3`) before push-off. See "Supported Printers" section above for complete feature list.

βš™οΈ A1: Automatic Y-Axis Push System

β–Ό

A1 uses a bed slinger design where the bed moves (Y-axis) and the gantry stays stationary. Looprint automatically calculates the optimal push position using Factorian's 41mm rule:

  • Automatic Y-axis push: Model center Y is calculated from G-code coordinates
  • Factorian's 41mm rule: Z offset automatically set to 40mm below model top
  • No manual selection: Push direction is fully automatic
  • Wiggle sweep: X-axis wiggle from -48mm to 256mm to clear debris
  • Negative Z Push-Off (advanced, optional): Available in Advanced Settings for very low-height models. See Advanced Settings section for details and warnings.

⚠️ Important: A1 Mini only: Wiggle sweep requires 50mm clearance to the left of the bed. See "Important Safety Reminders" section for details.

⚠️ Important Safety Reminders

  • Beta Notice: Looprint is still in beta. Do not leave your printer unattended β€” always stay nearby and monitor the process during automated looping.
  • Use Brim - Your model must be sliced with Brim enabled. This replaces the standard purge line behavior, ensuring a clean and consistent first layer.
  • Place model at edge - Position your model at the edge of the bed for proper ejection
  • G-code files: Must be printed from SD card (required)
  • 3MF files: After generating, open the downloaded 3MF file in Bambu Studio and click "Print Plate" (do not slice again)
  • Monitor first print - Watch the first loop to ensure everything works as expected
  • A1 Mini users: Ensure 50mm clearance to the left of the bed for wiggle sweep (A1 print head is parked further left, no clearance needed)
  • P1/P1S/X1/X1C users: Ensure model placement allows for dynamic push lanes (Left, Center, Right)

Tips & Best Practices

  • Start with 2-3 loops to test before doing longer runs
  • Use "Generate Test File" to test push-off sequence only
  • Use "Generate Sweep Test File" (when Full Bed Sweep is enabled) to test sweep sequence only
  • Full Bed Sweep is useful for clearing debris between loops, especially with multiple prints
  • Keep your bed clean and properly leveled
  • Ensure your model has a good first layer adhesion
  • The cooldown temperature (default 18Β°C) helps the finished print release from the bed so it can be pushed off
  • If prints stick and won't release, try lowering the cooldown temperature slightly
  • If prints release too easily or don't stick enough during printing, you may need to adjust the cooldown temperature

Troubleshooting

Having issues? Click to expand troubleshooting for your printer model:

πŸ”§ General Issues

β–Ό
  • File won't upload: Ensure it's a valid G-code (.gcode, .gco, .g, .txt) or 3MF (.3mf) file. Maximum file size: 150MB. Looprint automatically adds start and end code to all files. Optional: You can use Factorian Designs start and end code templates. See: A1/A1 Mini or P1/P1S/X1/X1C
  • Push-off doesn't work: Verify Brim is enabled and model is at bed edge. Use "Generate Test File" to test push-off sequence
  • Temperature issues: All temperatures come from your original file - check your slicer settings. Start code automatically extracts and uses correct temperatures
  • File too large: Maximum file size is 150MB. Large files may take longer to process - be patient. Progress bar shows processing status
  • Too many loops warning: If you set more than 100 loops, you'll get a warning. Recommended maximum is 50 loops
  • Cooldown temperature warning: If set above 35Β°C, you'll see a warning about increased sticking risk
  • Settings not saving: Settings are saved to browser localStorage. Clear browser data if you have issues

πŸ”§ P1 / P1S / X1 / X1C Issues

β–Ό
  • Wrong placement detected: Check that your model is clearly on one side of the bed. You can manually change push direction in advanced settings if needed
  • Push lane offset auto-adjusted: If you see a warning about offset being adjusted, the value was too large for your model placement. Check the displayed maximum value
  • X1/X1C - Cutter sequence not working: Verify end code includes `G1 Y-3` before push-off. Check that M190 cooldown completes before cutter sequence. Use "Generate Test File" to debug
  • X1/X1C - Start code flush option: "Start Line Purge" checkbox controls filament flush in start code. Default: Enabled (matches Factorian's P1 template). Disable for faster start when using same filament.

πŸ”§ A1 Issues

β–Ό
  • Wiggle sweep collision warning: Ensure 50mm clearance to the left of the bed. Check model placement in bed preview
  • Y-axis push not working: Verify model center Y is correctly calculated. Check that first_layer_center_no_wipe_tower is extracted correctly. Use "Generate Test File" to debug
  • Temperature offset: A1 automatically applies -4Β°C temperature offset
  • Negative Z Push-Off: Only available for A1 (not A1 Mini). See Advanced Settings section for details and warnings.

Need Help?

If you encounter issues or have questions, make sure you've watched the Factorian Designs videos about the automation system that Looprint is based on: A1/A1 Mini or P1/P1S/X1/X1C.