Add Extra ProUI features#26761
Conversation
|
It would be nice if these kinds of features were implemented at a higher level so everyone could use them instead of a subset of LCDs/UIs. |
classicrocker883
left a comment
There was a problem hiding this comment.
It would be nice if these kinds of features were implemented at a higher level so everyone could use them instead of a subset of LCDs/UIs.
I'm not so familiar with how that would be; could you point to me which file/line of those, maybe I could figure something out. I'd like to add some more to this.
| #else | ||
| constexpr uint8_t ctry1 = (GRID_MAX_CELLS_Y) / 2, // top-of-center | ||
| ctry2 = (GRID_MAX_POINTS_Y) / 2, // bottom-of-center | ||
| TERN(PROUI_GRID_PNTS, const, constexpr) uint8_t ctry1 = (GRID_MAX_CELLS_Y) / 2, // top-of-center |
There was a problem hiding this comment.
You can't use TERN() with the integer define PROUI_GRID_PNTS.
There was a problem hiding this comment.
wait im confused, PROUI_GRID_PNTS is enabled by being defined as 1 - like "true". just as many other examples use TERN or TERN_(HAS_....), as in HAS_whatever also defined as 1
|
I think it would be best to remove the variable mesh grid points part of this PR because we are trying to solve that problem more generally in another PR. The variable points would then apply to all displays and also extend |
classicrocker883
left a comment
There was a problem hiding this comment.
I think it would be best to remove the variable mesh grid points part of this PR because we are trying to solve that problem more generally in another PR. The variable points would then apply to all displays and also extend
G29M420M421G-codes as needed. This ad hoc solution for ProUI is too "hacky" and invasive to the rest of the code and certainly won't be retained once the general solution is completed.
ok yeah I see. can you point to me which PR you're talking about with variable mesh grid points
|
I may need some help figuring out getting Bilinear auto bed leveling to work with the variable mesh inset. I might be able to just adjust like so: and in feature/bedlevel/abl/bbl.h - static float get_mesh_x(const uint8_t i) { return grid_start.x + i * grid_spacing.x; }
- static float get_mesh_y(const uint8_t j) { return grid_start.y + j * grid_spacing.y; }
+ static float get_mesh_x(const uint8_t i) { return MESH_MIN_X + i * (MESH_X_DIST); }
+ static float get_mesh_y(const uint8_t j) { return MESH_MIN_Y + j * (MESH_Y_DIST); }but to do it right, I think const float x_min = probe.min_x(), x_max = probe.max_x(),
y_min = probe.min_y(), y_max = probe.max_y();
if (parser.seen('H')) {
const int16_t size = (int16_t)parser.value_linear_units();
abl.probe_position_lf.set(_MAX((X_CENTER) - size / 2, x_min), _MAX((Y_CENTER) - size / 2, y_min));
abl.probe_position_rb.set(_MIN(abl.probe_position_lf.x + size, x_max), _MIN(abl.probe_position_lf.y + size, y_max));
}
else {
abl.probe_position_lf.set(parser.linearval('L', x_min), parser.linearval('F', y_min));
abl.probe_position_rb.set(parser.linearval('R', x_max), parser.linearval('B', y_max));
}
...
---
// Probe at the points of a lattice grid
abl.gridSpacing.set((abl.probe_position_rb.x - abl.probe_position_lf.x) / (abl.grid_points.x - 1),
(abl.probe_position_rb.y - abl.probe_position_lf.y) / (abl.grid_points.y - 1));as you can see for context, so where I am stuck is how do I set |
c792921 to
37fb26b
Compare
37d77d6 to
aa44542
Compare
4354891 to
efa1758
Compare
3791e7d to
6ea4a16
Compare
571e557 to
e8efe8b
Compare
e8efe8b to
3de0cb5
Compare
5e11518 to
40df843
Compare
40df843 to
7ff8539
Compare
Change variable types from uint8_t to int16_t because it would offset position when drawing mesh point
- fix parentheses warning - adjust header file `include`'s
6ae3705 to
869301d
Compare
869301d to
55811b6
Compare
53cd642 to
e2c202f
Compare
6a2c001 to
6aca903
Compare
6aca903 to
518e961
Compare
Description
This adds the following features to ProUI:
G29MULTIPLE_PROBING/TOTAL_PROBINGthrough the UI (how many probes when tramming/bed leveling/creating meshChange the grid array - 3x3, 5x5, 9x9...(removed for future feature)the only limitation I foresee for ProUI is because of the specific MeshViewer, it can only view up to 9x9, but I have another PR which allows switching between the two, once that is merged only then we can be able to allow this to go up to 10x10 even 15x15 if need.(goes with changing grid array)levelMenu+ swap w/advancedSettingsMenuAdvanced Settingsmenu and move access toControlmenuLevelmenu forBed Levelingand mesh stuffMSG_MESH_SETTINGS"Mesh Settings"Other Changes
Changes to Gcode Thumbnail preview.
Move
struct hmiDatafrom dwin.h to dwin_defines.hRemove redundant headers
Changed
Probe::run_z_probeto accommodate variableMULTIPLE_PROBING- for ProUINote
if there is one more thing I'd like to add is being able to change the Z feedrate.-- not anymoreMSG_Z_FEED_RATEgoes unusedHaving the grid type be 10x10 or more is something we can work on next
one more thing is a couple other changes, like thetoggleCheckboxLine()now uses^= trueRequirements
Benefits
Less clumped.
Better readability.
This goes for UI navigation.
Configurations
Related Issues
for
void do_z_clearance(),you have
UNUSED(with_probe), yet it does get used...so I change it to
IF_DISABLED(HAS_BED_PROBE, UNUSED(with_probe));I just wanted to point this out, because it just didn't make sense, and hope this change is correct.
trying to get the bugs out ofMULTIPLE_PROBING. its difficult to say which line of code to use. any advice would be helpful.Code Below is not relevant to this PR anymore since being able to change grid array/grid mesh points was removed.
I get this weird warning only through github actions
and also for
static void unified_bed_leveling::report_current_mesh()