fluidd-core / fluidd

Fluidd, the klipper UI.
https://docs.fluidd.xyz
GNU General Public License v3.0
1.34k stars 401 forks source link

Ability to choose option at print startup #1337

Closed oRudi07 closed 5 months ago

oRudi07 commented 5 months ago

Is your feature request related to a problem? Please describe

Is there a way to program fluidd to query before starting a print? In Start_macro I have the options to run a completely new Bed_Mesh or load a specific profile or just create a Bed_mesh within the boundaries of the part to be printed. Currently I'm commenting out the options that are not wanted at startup. It would be nicer if a window would open when I started printing where I could select the option

Describe the solution you'd like

nothing

Describe alternatives you've considered

No response

Additional information

No response

pedrolamas commented 5 months ago

Hi @oRudi07 , macro prompt dialogs are supported in Fluidd, though this requires that you have the latest Fluidd and fluidd-config (or mainsail-config).

Please check #1262 for examples and details.

oRudi07 commented 5 months ago

Hi, thats what i am looking for. But I need some help to get this in my config. I wrote these macros:

[gcode_macro SHOW_OPTION_BED_MESH]
gcode:
    RESPOND TYPE=command MSG="action:prompt_begin BedMesh"
    RESPOND TYPE=command MSG="action:prompt_text How to level?"
    RESPOND TYPE=command MSG="action:prompt_button_group_start"
    RESPOND TYPE=command MSG="action:prompt_button Load Default|LOAD_SAVED_BM|info"
    RESPOND TYPE=command MSG="action:prompt_button whole bed|BM_WHOLE_WHOLE|info"
    RESPOND TYPE=command MSG="action:prompt_button only part|BM_ONLY_PART|info"
    RESPOND TYPE=command MSG="action:prompt_button_group_end"
    RESPOND TYPE=command MSG="action:prompt_button_group_start"
    RESPOND TYPE=command MSG="action:prompt_button CANCEL|CANCEL_PRINT|warning"
    RESPOND TYPE=command MSG="action:prompt_button_group_end"
    RESPOND TYPE=command MSG="action:prompt_show"

[gcode_macro LOAD_SAVED_BM]
gcode:
    BED_MESH_CLEAR
    BED_MESH_PROFILE LOAD="default"

[gcode_macro BM_WHOLE_WHOLE]
gcode:
     BED_MESH_CLEAR
     BED_MESH_CALIBRATE
     BED_MESH_PROFILE SAVE=x1

[gcode_macro BM_ONLY_PART]
gcode:
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE PRINT_MIN={params.PRINT_MIN} PRINT_MAX={params.PRINT_MAX} FORCE_NEW_MESH=True
    BED_MESH_PROFILE SAVE=x1

Then, in START_PRINT, I call SHOW_OPTION_BED_MESH. The window appears with configured buttons, but after ckicking one option nothing happens -and during the window appears, theSTART_PRINT macro continues to be processed

What else do I have to do?

pedrolamas commented 5 months ago

I would say that you now need 2 changes:

Note: I have not tested this, but in theory, it should work...

oRudi07 commented 5 months ago

Thanks for the answer. One more question: how to get the window closed after clicking an option?

pedrolamas commented 5 months ago

Use RESPOND TYPE=command MSG="action:prompt_end" to close the dialog.

oRudi07 commented 5 months ago

also found out in the meantime. Thank you very much

pedrolamas commented 5 months ago

Given the above, I think we got a good compromise for this feature by using the macro prompt dialogs!

As such, I am now closing this ticket.

oRudi07 commented 5 months ago

One more thing: If i want to pause a makro (pause the gcode from processing), i cannot use PAUSE because thie is the macro pause....

pedrolamas commented 5 months ago

There is a limit to what is possible with the current Klipper provided support...

Anything more than the described above, I think we will need upstream support added directly in Klipper.