How to create professional
'looking' building instructions
On this web page you will find a 'cook-book'
how to create professional looking building instructions by using a suite of
applications. An idea how the result will look like is given in the picture
1: Draw models in ‘MLcad’
(3.20) and use ‘LDview’
(3.0) for review
The first approach is to rebuild a
model in MLcad. MLcad is a magnificent Lego Cad/Cam program, which has many
features and functions. I won’t explain them here, because there is much
material available (see www.ldraw.org). For
guidebook, I found the ‘Lego Software Power Tools’ book of Kevin Clague very
useful. What I want to explain in this section are
the building principles I use for rebuilding a model in MLcad.
to ‘break’ a model into small logical parts (for instance: engine,
chassis construction, roof construction, side panels, treads, etc.)
Rebuild these logical parts individually within MLcad as an *.LDR file.
a *.MPD file, which will act as an 'assembly file' for all *.LDR files. This
is done by creating a 'new model', and import all *.LDR files
('multipart' tab, 'import'). In other words: the most steps within
the assembly file will exists of ‘adding sub-model’ steps. Of course
there will be parts to be added in the ‘assembly’ file as well, but I
try to keep them limited.
Remark: It is
possible to start right-away with an *.MPD file and add sub-models to it
which will be build at that moment… but the reason why I don’t has to do
with adding ‘bendable parts’ (flexible axles, hoses, cables, etc.).
use sub-models within sub-models. My experience is that it can cause
sometimes problems within viewers, rendering programs, etc.
Even for big models as the snow groomer (2800 parts) it was never a problem
to have just ‘one level deep’, i.e. *.MPD file with imported *.LDR files.
add to many parts within a ‘building step’, unless it’s absolutely
clear for other people were the parts have to be added (example: building a
roof can be done ‘per slope level’ at once.
use ‘rotation steps’ when this will provide a better ‘view’ about
were to ‘place a part’. But, stay on logical rotations (45 degree,
sometimes 30 degrees) and try to avoid other degrees as much as possible.
LDview (version 3.0) to review the model in 3D (and turn it all sides).
During a rebuild in MLcad, I review almost every step (or couple of steps)
in LDview by having the MLcad file ‘open’ in LDview; just save changes
in MLcad (Control-S) and see the result in LDview with a ‘file refresh’
Step 2: Adding bendable parts with
Bendable (or flexible) parts are not
included in the MLcad parts catalogue, simple because they can have many shapes. The
program Lsynth is written to add bendable parts in a model. Actually, a flexible
part exists of many little pieces in a model that makes up the flexible part.
Lsynth requires an input file with specific ‘meta commands’ for creating a
flexible part, and generates an output file with the generated flexible part. How does
- Within the input file (*.LDR) there must be a couple
‘WRITE’ comment that tells Lsynth to start a flexible part (and what
kind of flexible part)
couple of specific parts (LS00.DAT) placed within your model that guide
the ‘path to follow’ of the flexible part. At least ‘begin’ and
‘end’, but mostly more are needed in-between for a correct flexible part.
Notice the arrow 'indicator' on the LS00.DAT, which will tell Lsynth the direction of
the flexible part to be generated (to the left, or to the right). Can let to funny flexible parts in ‘loops’ if the
arrow is placed at the wrong side.
‘WRITE’ comment that tells Lsynth to stop.
this will look like in MLcad as:
Write Synth begin ribbed hose 7
~LSYNTH constraint part
~LSYNTH constraint part
~LSYNTH constraint part
Write Synth end
output file generated with Lsynth will have the extension ‘_s’ of the
original file. This file must be imported in the *.MPD ‘assembly’ file
as described in step 1.
Lsynth is able to deal with *.MPD
files. The reason I do not is because the result in a *.MPD file is difficult to
see. Probably you have to ‘hide’ steps. Besides that, and more important, it
does not always work.
Synthesizing a relative simple *.LDR file is easier, faster and gives you a
better view in LDview for the result.
Step 3: Generate building
instructions with ‘Lpub’
(220.127.116.11) and ‘POVray for Windows’
MLcad is able to generate building
instructions, but has some limitations. For instance it is not possible to
generate: a part list per building step, rendered pictures, and a bill of all
involved parts for your model. Therefore, you have to have Lpub doing the job
for you. Lpub requires an installed ‘ POV’ (Persistance of Vision) rendering
Using Lpub is really straight forward
if you keep the next topics in mind.
configuration rules I use are very simple: just ‘default’, except:
images: 1280 x 1024 pixels
(part list images): 800 x 600 pixels
Both do have a significant impact on the duration of
the rendering process, and the size of the building instructions (Mbytes). For
the constructions images I use the most common TFT screen resolution nowadays.
Because the PLI is a small area within a building step (just the parts you
need) it can be generated with less pixels (even 800 x 600 is possible to
The configuration I use provides a good quality print output as well (A4 paper
size on 300dpi).
rendering process can take quite a while (i.e. many hours). I experienced
that – for large models as the Prinoth Leitwolf snow groomer – rendering
the *.MPD file with all it’s sub-models is not efficient. A fault in the
rendering process appears sometimes after a couple of hours (for example, in
rendering step 319). This means that you have to start all over again after
correcting the fault in MLcad. There are some tricks to overcome this, but
they are all time consuming and do require changes in the original MLcad
file (i.e. removing all the ‘step’ statements in the MLcad file before
‘the fault appeared’, then restart rendering).
It is easier and faster to render all the *.LDR files individually.
on the explanation in 2), disable the option generate ‘sub-assemblies’
and ‘sub-model BOMs’ in Lpub.
mentioned *.MPD ‘assembly file’ (see Step 1) is generated in the same
does not recognize the flexible parts generated by Lsynth. Actually, Lpub
will reflect within the PLI and BOM all needed 'small rings to make up an
tube' for instance. Therefore, I run *.LDR files which contains
flexible parts 'twice'. The first time to generate all the construction
images, then I remove all the flexible parts in the *.LDR file and run it
the second time for providing PLI's and BOM without flexible parts.
At the end of the rendering process,
Lpub will generate web pages (HTML pages which includes PNG images) for each
building step. If you just want to share the building instructions on your
website as individual web pages, you are ready. If you want to make a booklet,
proceed with the next steps.
Step 4: Create a professional
looking building booklet with ‘Windows Powerpoint’
I do use Windows Powerpoint to create
professional looking booklets. By using the ‘slide master’ functionality you
can have the same banner, footnote, background picture, etc., be displayed on
every page. As well, within Powerpoint it is easier to include more explanations
by using photos, text, arrows to point out a specific item in the model, etc.
The only disadvantage is that it
requires a ‘boring’ manual process, which I did not automate yet:
All the *.PNG files have to be copied
in the PowerPoint deck manually. Basically, that are 2 *.PNG files per building
step (the PLI for that step and the model itself).
The PLI and BOM do not contain
information about the flexible parts. This information has to be added as
'text' (or pictures).
use multiple PowerPoint files, instead of one ‘heavy’ file to reduce the
total number of pages. I draw the line ‘per 250 building steps = 250 powerpoint pages’.
Step 5: Convert the Powerpoint
booklet into a PDF file with ‘Adobe Acrobat Pro 8’
Last but not least I convert the
Powerpoint booklet(s) into PDF file(s) with Adobe Acrobat Pro.