SoftFever / OrcaSlicer

G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)
https://discord.gg/P4VE9UY9gJ
GNU Affero General Public License v3.0
5.91k stars 671 forks source link

First layer Purge Lines are outside the print Bed #5583

Open 3diest opened 3 weeks ago

3diest commented 3 weeks ago

Is there an existing issue for this problem?

OrcaSlicer Version

2.1.0-Beta

Operating System (OS)

Windows

OS Version

Windows 11

Additional system information

Screenshot 2024-06-04 154033

Printer

Flsun SR

How to reproduce

Actual results

The First Layer Purge lines are always outside the print bed area. Screenshot 2024-06-04 154033

Expected results

If we are using this G code, the Axis of the FLsun 3D printer is colliding with the structure of the 3D printer.

Project file & Debug log uploads

Octopus_sup_v6.zip

Checklist of files to include

Anything else?

No response

Nukle0n commented 3 weeks ago

I have the same problem here on my Sovol SV06+. Downgraded to a dev build installer i had lying around from May 19th and it works again. It also affects adaptive meshing, it tries to mesh the entire bed then when it goes to purge it errors out because it tries to purge outside of the bed. In the klipper log it doesn't appear to ever call for the mesh points, it just starts meshing the entire bed. I haven't changed anything in my printer.cfg, this appears to have snuck into Orca at some point in the last couple weeks. Tried an alpha version I had from the 29th and it also had this bug.

Nukle0n commented 3 weeks ago

This might be related to KAMP adaptive purging, as turning it off seemingly removes this issue. But it worked before.

Nukle0n commented 3 weeks ago

I think I found a solution/workaround, had to enable "object exclusion" in Orca, it hasn't been necessary before and I just had it in my printer.cfg, so idk what's up with that.

BlackPro303 commented 5 days ago

I had this problem too and couldn't find a solution online, so I decided to fix it myself and it worked. I just looked at the starting G-code, found the lines where the purge line starts and ends, and moved them inward. It wasn't hard to fix, and below I provide the adjusted code.

Before editing

Before

Previous start G-code

;STARTGCODE M117 Initializing ; Set coordinate modes G90 ; use absolute coordinates M83 ; extruder relative mode ; Reset speed and extrusion rates M200 D0 ; disable volumetric E M220 S100 ; reset speed ; Set initial warmup temps M117 Nozzle preheat M104 S100 ; preheat extruder to no ooze temp M140 S[first_layer_bed_temperature] ; set bed temp M190 S[first_layer_bed_temperature] ; wait for bed final temp M300 S40 P10 ; Bip ; Home M117 Homing G28 ; home all with default mesh bed level ; For ABL users put G29 for a leveling request ; Final warmup routine M117 Final warmup M104 S[first_layer_temperature] ; set extruder final temp M109 S[first_layer_temperature] ; wait for extruder final temp M190 S[first_layer_bed_temperature] ; wait for bed final temp M300 S440 P200 ; 1st beep for printer ready and allow some time to clean nozzle M300 S0 P250 ; wait between dual beep M300 S440 P200 ; 2nd beep for printer ready G4 S10 ; wait to clean the nozzle M300 S440 P200 ; 3rd beep for ready to start printing ; Prime line routine M117 Printing prime line ;M900 K0; Disable Linear Advance (Marlin) for prime line G92 E0.0; reset extrusion distance G1 F3000 Z1 G1 X-150 Y0 Z0.4 G92 E0 G3 X0 Y-130 I150 Z0.3 E30 F2000 G92 E0.0 ; reset extrusion distance ; Final print adjustments M117 Preparing to print ;M82 ; extruder absolute mode M221 S{if layer_height<0.075}100{else}95{endif} M300 S40 P10 ; chirp M117 Print [input_filename_base]; Display: Printing started...

After my edit

After

Start G-code after editing

;STARTGCODE M117 Initializing ; Set coordinate modes G90 ; use absolute coordinates M83 ; extruder relative mode ; Reset speed and extrusion rates M200 D0 ; disable volumetric E M220 S100 ; reset speed ; Set initial warmup temps M117 Nozzle preheat M104 S100 ; preheat extruder to no ooze temp M140 S[first_layer_bed_temperature] ; set bed temp M190 S[first_layer_bed_temperature] ; wait for bed final temp M300 S40 P10 ; Bip ; Home M117 Homing G28 ; home all with default mesh bed level ; For ABL users put G29 for a leveling request ; Final warmup routine M117 Final warmup M104 S[first_layer_temperature] ; set extruder final temp M109 S[first_layer_temperature] ; wait for extruder final temp M190 S[first_layer_bed_temperature] ; wait for bed final temp M300 S440 P200 ; 1st beep for printer ready and allow some time to clean nozzle M300 S0 P250 ; wait between dual beep M300 S440 P200 ; 2nd beep for printer ready G4 S10 ; wait to clean the nozzle M300 S440 P200 ; 3rd beep for ready to start printing ; Prime line routine M117 Printing prime line ;M900 K0; Disable Linear Advance (Marlin) for prime line G92 E0.0; reset extrusion distance G1 Z150 G1 X-130 Y0 Z0.4 F3000 G92 E0 G3 X0 Y-130 I130 Z0.3 E40 F2700 G92 E0.0 ; reset extrusion distance ; Final print adjustments M117 Preparing to print ;M82 ; extruder absolute mode M221 S{if layer_height<0.075}100{else}95{endif} M300 S40 P10 ; chirp M117 Print [input_filename_base]; Display: Printing started...

The essential modification is in these lines of code:

Before ... G1 F3000 Z1 G1 X-150 Y0 Z0.4 ... G3 X0 Y-130 I150 Z0.3 E30 F2000 ...

After ... G1 Z150 G1 X-130 Y0 Z0.4 F3000 ... G3 X0 Y-130 I130 Z0.3 E40 F2700 ...

I hope this helps you and everyone who visits this page.