-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: multi-step pages more like official instructions (more 'fixed' layouts) #475
Comments
I second this request! |
Nice proposal! Thank you for taking the time to prepare it. I've added it to the queue because, in fact, I've already begun to implement something like this. Your porposal adds a fresh look at how I could setup the step-display speace in this type of layout. Some of this layout can already be achieved with dividers and and applying justification to step group steps - see #333 and #172, #185 and #193. Cheers, |
Thank you for sharing this update. Minus the 'predefined' template allowing you to select a specific layout, since 2.3.13 the behaviour to produce these layouts is almost completely achieveable with dividers and step justification (to center step items within a range). What's missing at this moment is the ability to place step items relative to a range but the step justification behaviour somewhat compensates for this. At some point in the near future, I'll mock-up some sample pages to illustrate the similiarities and the approach to achievieving these layouts with the current behaviour. In the longer term, I'll look at completing the additional components (set step item relative to range, set range and divider deminsions relative to their page demensions, automate the creation of predefined page layouts via dialogue and menu actions) needed to improve the creation and automation these layouts. Cheers, |
I don't entirely agree with your comment that these layouts are already (partially) achievable with current LPub3D settings. The major difference is, as I described above, that multiple steps on a single page shouldn't be treated as a single entity (or step group). In the new situation, each step/box on the page (layout) should be treated as its own thing, you could even say a page within a page, without any relation whatsoever to the other steps/boxes on the page, which is completely different from what LPub3D currently does. This is what makes it so difficult and annoying (if not impossible) to create identical layouts with current LPub3D features. Because when step 1 moves, step 2 moves with it. Furthermore, this also makes it impossible to create layouts that stay fixed over multiple pages, where every page has for example the stepnumber and PLI in the same positions (relative to their box). Now, I'm not saying step groups have to go and you need to implement something entirely new, I'm sure with the proper additions it's possible to create similar layouts, with ease, in LPub3D without some major overhaul. But I don't think it's as easy as simply adding some more positioning options. I don't want to sound negative or ungrateful, don't get me wrong. I appreciate all the work you have put and still put into LPub3D and I'm absolutely thankful for that. I'm just trying to make a point specifically regarding this feature ;) |
No worries, your position is completely understandable from an end-user point of view. From a design transition point of view, I believe the optimal approach to achieving the behaviour you are describing in LPub3D lies in expanding the range behaviour - specifically, 1. the behaviour options available to define and position each range on a page and 2. enabling steps to be positioned and sized relative to their respective individual/multi-step, fixed-position, range. These enhancements will achieve the autonomy and consistent positioning between steps on a multi-step page you are describing. The primary (range) divider behaviour must be extended to specify an individual step’s range (it currently divides ranges allowing multiple steps in each range) and; consequently where, on the page, the range will be positioned. Secondary, (step) dividers currently implicate the margins between multiple steps in a range and facilitate the placement of pointers between steps. No behaviour extension would be necessary. Lastly, I’ll need a dialogue to give the user the ability to specify, perhaps dynamically or pre-defined, the page’s layout. Cheers, |
Cannot wait for those improvements. We're so close to official instructions, but they are one step ahead with ideas :P |
Currently handling the layout is hell. Everything must be checked few times, because some settings break your page entirely. Sometimes stupid margin is causing the problem. Imo, page layout definition should consist of few steps:
And as my predecessor said, this: |
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:
![img1](https://user-images.githubusercontent.com/12005521/97574935-4117ff00-19ec-11eb-831a-cd864b0c01f8.png)
(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:
![img2](https://user-images.githubusercontent.com/12005521/97575139-95bb7a00-19ec-11eb-865a-55bba41bc462.png)
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:
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
Here are a few more examples.
![image](https://user-images.githubusercontent.com/12005521/97575449-06629680-19ed-11eb-964d-e5f82484f643.png)
A two step page:
A three step page:
![image](https://user-images.githubusercontent.com/12005521/97575478-111d2b80-19ed-11eb-8fb5-b6fd6e03463d.png)
A five step page:
![image](https://user-images.githubusercontent.com/12005521/97575517-1da18400-19ed-11eb-88c8-89e9b533b259.png)
A horizontal layout with 1 row 3 columns:
![image](https://user-images.githubusercontent.com/12005521/97680658-57c76000-1a97-11eb-840f-7ac2024efabd.png)
The text was updated successfully, but these errors were encountered: