-
Notifications
You must be signed in to change notification settings - Fork 24
Description
For this requested feature, I'd like to be able to use more static layouts for multi-step pages, more in line with how real Lego instructions are laid out. I'll show some examples based on the instructions of set 75286.
The main difference is that in LPub3D, a step group is laid out and treated as a single entity. That means that the group itself can be positioned against everything outside the group, but everything within the group can only be positioned against other stuff in the group. In real instructions however, on a multi-step page all steps are positioned against a grid on the page and not against each other. This creates a more effective and relaxed use of space and (can) also create a more fixed layout between pages.
There are various different things at play here, and I'll try to separate them and show them one by one.
Dividing up the page
First of, the page is laid out in a grid pattern. This is entirely separate from any content on the page. From LPub3D's point of view, it's essentially splitting a single page into multiple mini-pages. See this example from the official instructions. This page is divided into 4 equal rectangles:

(Please don't worry about the vertical divider that's not centered; that has to do with printing books and is beyond the scope of this feature request, just imagine the vertical divider would be at the same place as the vertical red line)
Important to note is that the grid layout has to be fixed. It should not change based on e.g. assembly image size. What I imagine is that one can create a grid based on their own preferences which can depend on e.g. page size, assembly size and remaining steps. Do note that the number of rows can differ between columns or vise-versa if you are going for a horizontal layout. Also note that the size of the columns and rows can be automatically deduced based on the numbers (all spaces in a row or column should be equally sized/justified).
So, in short, the first step is to let people define a grid for the page and specify the number of columns and rows.
Laying out every step
Then every 'mini-page' on the whole page gets assigned its own step and is laid out as normal pages would. They all have the same margins, but not based on the full page, but based on their own rectangle space within the page. See the green lines in this image: all steps have the same margins relative to their designated space:

So, in short, the second step is to assign a step to every grid space.
Specific layout details
If one really wants to mimic a layout as exampled above, every step/mini-page has to be able to do the following layout/positioning options:
- PLI relative to assigned grid space (top-left)
- Step number relative to PLI (bottom-left)
- Assembly relative to grid space (center)
I believe most or all of these layout options are already available in LPub3D.
So, in short, step 3 is applying position preferences for the grid. Optionally also per grid item, but I'm not sure about that.
Bonus
So far, I've only assumed using the grid for submodels and the grid would end when there are no more steps in the submodel left. However... you could also (optionally) implement it so that a grid is not filled with the remaining steps of the submodel, but the remaining steps of the entire model. Then you could create layouts such as this:
But I think layouts like that might have some edge-cases, so I would view this as a nice-to-have for this feature request, than a must.
More examples
Metadata
Metadata
Assignees
Labels
Projects
Status




