Cura icon indicating copy to clipboard operation
Cura copied to clipboard

Settings that take [lists] require square brackets (A good job for the 'New Kid')

Open GregValiant opened this issue 1 month ago • 1 comments

Cura Version

5.11.0

Operating System

Windows 10Pro

Printer

Ender 3 Pro

Reproduction steps

There are nine settings that seem to be affected. "roofing_angles": "flooring_angles" "skin_angles" "infill_angles" "support_infill_angles" "support_interface_angles" "support_roof_angles" "support_bottom_angles" "wall_overhang_speed_factors"

All of them "Require" lists, but it appears that none of them check an entry to see if the user left the square brackets in place, or just entered a single integer which causes the setting to fail. An entry of [25] works, but an entry of 25 does not. That isn't explained anywhere and when it occurs, it acts just like a bug as the setting doesn't work. Most users are not savvy enough to note that removing the square brackets was the problem.

Actual results

The setting fails, without any indication as to why, if the user removes the square brackets when making an entry.

Expected results

The setting should work whether the brackets are in place or not. Some error checking code would be good. The tooltips should adequately explain the setting and what a proper entry is. Most users would not recognize the need for the square brackets.

Add your .zip and screenshots here ⬇️

No screenshots or files required.

Each of the settings should have some code to check the user entry for validity. Each tooltip needs to be revised to describe the special requirements of the nine settings, and what they actually do.

This tooltip is from "wall_overhang_speed_factors".

"Overhanging walls will be printed at a percentage of their normal print speed. You can specify multiple values, so that even more overhanging walls will be printed even slower, e.g. by setting [75, 50, 25]"

"...even more overhanging walls will be printed even slower..." I have no idea what that means.

A user that simply types a number into the box would believe that it was sufficient. There doesn't appear to be any code that checks the entry and that turns a single entry into a list whether the square brackets are there or not. In this particular setting, there is no mention of why I would want more than one entry for the setting. [75,50,25] didn't appear to make any difference from [75].

This is a well hidden problem that has been around for a long time. I wonder how many people sat and wondered what they did wrong and why the setting didn't seem to do anything. All nine settings appear to drop back to "default" on an invalid "List" entry and there is no message to the user and the setting box does not "turn red". At the "default" value, the setting works, it just gives incorrect results from what was expected.

GregValiant avatar Nov 22 '25 12:11 GregValiant

Changing the "type: from "[]" to "int" is one way.

"Overhanging Wall Speeds",
	"description": "The speed that the Overhanging walls will be printed as a percentage of their normal print speed.",
	"unit": "%",
	"type": "int",
	"default_value": "100",

The angle settings might only need a tooltip change. This was from "roof_angles": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in the 'required' square brackets. Default is an empty list ( [ ] ) which Cura interprets as use the default angles ( [45,135] )."

GregValiant avatar Nov 22 '25 22:11 GregValiant