(2022-01-07, 14:58)Stefan Frenz Wrote: Thank you, Philippe, for your very helpful feedback and your test file.
With Philippe's permission, I would like to point out the main steps to get instructions like these:
- Define default parameters, especially the zoom factor (and inl/zoom for inlined sub-models) has large impact. Here: zoom is between 1.5 and 1.8, the page layout is portrait instead of landscape, automatic annotation for PLI is enabled.
- Enable "debugInfo" switch to have a backlink from the created instructions to your model.
- Move "real" single parts into sub-files, for example technic joint parts or minifigure torsos.
- Activate "aspart" switch for all top-level inlined parts like motors with cables (only the top-level ldr needs "aspart" switch to be turned on). Here for example for technic turntable and torso with hands.
- Activate "inline" switch for small sub-models which are to small to have their own step. Here for example in step 58.
- Define PLI/BOM replacement parts, for example to cables and hoses in non-buckled version. Here for example for technic joint parts in step 67, the motor with cable in step 28.
- Build instructions.
- Change render-parameters where needed, explicitly define PLI/inline box width.
- Maybe temporarily enable "step/info" switch to have more information, for example about created PLI boxes. This helps if you want to define the PLI parts manually, perhaps if in a single step there are sub-models and additional single parts combined, like in step 24.
- Maybe add vertical and/or horizontal lines, like on page 2 and 3.
- Go back to step 3 until satisfied. Unfortunately this is very iterative, but can be limited if you focus first on the rendered images, then the PLI boxes, then the page layout.
- Disable "debugInfo" switch and do a last rendering.
- Fine-tune in ODG-editor like LibreOffice to add real-world images, more text or page numbers, move inline-boxes and add arrows. Here: title page is designed outside LDInstruction.
As long as there is only one step on one page, this should be straight forward. But if there are multiple steps on one page or even two columns (for example here: steps 1-9), the rendered image size has large impact on page breaks.
Everything can be done in the GUI. But if you like to know what is done internally, the following snippets show interesting lines that were added to the LDraw file:
Code:
0 !LDINSP INSTR [doc/dpi=150]
0 !LDINSP INSTR [doc/width=21000] [doc/height=29700] [doc/margin=1000]
0 !LDINSP INSTR [doc/bgModel=CFEFFF] [doc/bgPli=BFDFFF] [doc/bgSub=FFF0CF]
0 !LDINSP INSTR [default/maxWidth=20000] [default/maxHeight=14000]
0 !LDINSP INSTR [default/lineWidth=1]
0 !LDINSP INSTR [default/zoom=1.5]
...
0 !LDINSP INSTR [default/inl/zoom=1.5]
0 !LDINSP INSTRSC [scope=11478.dat] [pli/rotY=45]
...
0 !LDINSP INSTRSC [scope=41677.dat] [pli/rotY=45]
0 !LDINSP INSTRSC [scope=6632.dat] [pli/rotY=45]
0 !LDINSP INSTR [maxWidth=14000] [maxHeight=20000]
0 !LDINSP INSTR [centerX=0] [centerY=-36.626] [centerZ=-12]
...
0 !LDINSP INSTR [step/modelX=-2] [step/modelY=-1]
0 !LDINSP INSTR [step/vLines=1] [step/hLines=1]
0 !LDINSP INSTR [step/maxColumns=1] [step/maxRows=0]
0 !LDINSP INSTRCMD [cmd=image] [before] [maxHeight=27700] [zoom=2.0] [shiftX=-1100.0] [maxWidth=19000] [shiftY=2200.0]
0 !LDINSP INSTRCMD [cmd=break] [before] [page]
0 !LDINSP INSTRCMD [cmd=text] [before] [text=Santa Clock (c) Philippe Hurbain]
...
0 !LDINSP INSTR [rotX=30] [rotY=-135] [rotZ=0]
0 !LDINSP INSTR [step/noResult=0]
0 !LDINSP INSTR [step/modelX=-1] [step/modelY=-1]
...
0 !LDINSP INSTRDIR [type=pli] [part=10928.dat] [color=72] [count=1]
...
0 !LDINSP INSTR [highlight=1] [highlightRgb=00FF00] [highlightWidth=1]
0 !LDINSP INSTR [step/pliBoxMaxWidth=0]
...
0 !LDINSP INSTR [rotX=30] [rotY=-135] [rotZ=0]
0 !LDINSP INSTR [highlight=1] [highlightRgb=FF0000] [highlightWidth=1]
...
0 !LDINSP INSTRCMD [cmd=break] [page]
0 !LDINSP INSTRCMD [cmd=bom] [maxWidth=10000] [sort=color,width,description,height,name]
0 !LDINSP INSTRCMD [cmd=text] [text=Santa Clock]
0 !LDINSP INSTRCMD [cmd=text] [text=(c) Philippe Hurbain]
...
0 !LDINSP INSTR [step/maxColumns=0] [step/maxRows=0]
0 !LDINSP INSTR [step/pliBoxMaxWidth=5500]
...
0 !LDINSP INSTR [step/modelX=-2] [step/modelY=-1]
0 !LDINSP INSTR [step/newRow=1]
0 !LDINSP INSTR [step/vLines=1] [step/hLines=1]
0 !LDINSP INSTR [step/maxColumns=0] [step/maxRows=0]
0 !LDINSP INSTR [step/fillWidth=1]
0 !LDINSP INSTR [step/pliBoxMaxWidth=3900]
...
0 !LDINSP INSTR [step/pliSort=h,c,d,w,n]
0 !LDINSP INSTR [pli/maxWidth=7000] [pli/maxHeight=7000]
...
0 !LDINSP INSTR [tg/replace=76348.dat]
...
0 !LDINSP INSTR [aspart]
...
0 !LDINSP INSTR [inline]