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
6.72k stars 789 forks source link

Preview First Layer Temperature #5651

Open bamber11999 opened 3 months ago

bamber11999 commented 3 months ago

Is there an existing issue for this problem?

OrcaSlicer Version

2.1.0-beta

Operating System (OS)

Windows

OS Version

Windows 10

Additional system information

No response

Printer

Voron 2.4

How to reproduce

  1. Start New Project
  2. Import stl file (in this case the voron cube stl)
  3. Set Nozzle print temperature. First layer 215, Other Layers 195
  4. Go to Preview, select temperature.

First layer temperature will show as 0 deg, further layers will show as correct temperature of 195 deg

Actual results

Capture

Preview will show the first layer as 0Deg.

Expected results

Preview should show correct temperature settings.

Project file & Debug log uploads

Orca_Voron_Design_Cube_v7 (1).zip

Checklist of files to include

Anything else?

Reviewing the G-code, Orca correctly calls the print_start macro with the first layer temperatures (the printer, if the macro has been modified to use those parameters, will correctly set the temperature.) However, as the g codes are not inserted directly, Orca preview interprets them as 0degs until the second layer when the M104, M140 commands are called.

Ergonomicmike commented 2 months ago

I was about to report this issue myself. (Note to self: Before wasting an hour gathering screen shots/assets for a new Report, check first to see if someone else has reported the issue .)

I spent a few hours doing comparisons between my custom Printer preset (which gives this bug) and the vanilla Ender 3 v2 Printer preset supplied by Orca, which works.

I isolated the problem to "Machine start G-code." (This is when G-code flavor is set to Klipper. If set to Marlin, the initial layer temp displays correctly.)

As a first matter, if you don't have any start G-code, then you will get this bug.

As a minimum, you need to have M104 S[nozzle_temperature_initial_layer] ; set final nozzle temp in the Machine start G-code for the display to show a non-zero initial layer temp. (Even though your START_PRINT Macro sets the first layer nozzle temperature by passing the same variable to your Macro.)