Reference: Frequently Asked Questions
The LDraw FAQ is an ongoing work which was started at the beginnings of the LDraw community in 1997. It is an evolving resource. If you have a question you think is important enough to be included in the FAQ, you should let us know.
- What is LDraw?
- Where can I get a copy of LDraw?
- Can I get the source code for LDraw?
- What platforms does it work on?
- Where can I find examples of work done in LDraw?
- What is the difference between LDraw and MLCAD?
- Who created LDraw?
- What does the LEGO Company think of LDraw?
- Where can I ask questions about LDraw?
- Is there an LDraw mailing list?
- How can I convert an LDraw file to a bitmap image file?
- Can I use models as if they were pieces?
- How do I insert comments into an LDraw model?
- How can I get pieces to line up?
- How can I turn a hinge from one step in the instrucitons to the next?
- What is the most recent edition of the LDraw package?
- What do the numbers that follow the '-a' parameter mean?
- Why don't the -ms and -mp options draw the last step of my model (DOS ldraw.exe)?
- What do I do when LEdit crashes?
- What is the LDraw file format?
- How can I make ray-traced images of LDraw models?
- How does one map a bitmap image onto an LDraw object?
- How can I get a clear brick in LDraw?
- How can I create a part that is not yet in LDraw?
- How can I find the numbers for a view in LDraw?
- Where does LDraw look for files?
- What is the color code for?
- What does Runtime Error 200 mean and how can I fix it?
- What does Runtime Error 003 mean and how can I fix it?
- What is the parts voting procedure?
1. What is LDraw?
LDraw is a system 3D LEGO modelling tools. The original program, as well as the file format used for the tool system were written by James Jessiman. James passed away on July 25, 1997. Since then the community of LDraw users have furthered his work. Today many different programs have been built upon his original tool and use the same file format totally interchangably. There are LDraw editors and renderers for Windows and Macintosh versions are under devleopment (July 2001)
2. Where can I get a copy of LDraw?
The LDraw tools are available free from http://www.ldraw.org/download/
3. Can I get the source code for LDraw?
Unfortunately you cannot. LDraw itself (the original DOS program) is rather outdated though. Source code is available for some of the Windows editors and viewers such as LDLite.
4. What platforms does it work on?
There are currently tools for DOS, Windows, Linux, and Macintosh. To download these, click here.
5. Where can I find examples of work done in LDraw?
There is a LUGNET newsgroup where people post their LDraw models. http://news.lugnet.com/cad/dat/models/
6. What's the difference between LDraw and MLCad?
In short - LDraw is the system that MLCad runs off of. MLCad is what is termed a 'second generation editor' of the LDraw file format. A second generation editor is any editor written after James Jessiman's original DOS-based LEdit editor. LDraw is the file system and the source of the file system MLCad uses. For information on how to properly refer to LDraw-based 3D LEGO-modelling tools, check out a letter on the topic from the LDraw.org staff.
7. Who created LDraw?
James Jessiman. James passed away on July 25, 1997. Visit the Memorial Pages for more info.
8. What does the Lego Company think of LDraw?
The LEGO Group does not endorse or officially authorize LDraw and its related tools. However, some LDraw contributors have met with LEGO employees regarding 3D LEGO modelling, and also LEGO representatives have stated that future developments from LEGO will be LDraw-compatible. The LEGO-LDraw relationship is mostly on an individual level, there is not yet a formalized relationship between the two.
9. Where can I ask questions about LDraw?
The best place to ask LDraw related questions is on lugnet.cad. This is where a good portion of users participate in discussion.
10. Is there an LDraw mailing list?
There used to be. Now the LDraw community uses the lugnet.cad.* heirarchy of newsgroups on www.lugnet.com
11. How can I convert an LDraw file to a bitmap image file?
This complicated question deserves a long answer. We have compiled the previous contents of this FAQ and it is filling the place of a future tutorial in our reference section.
12. Can I use models as if they were pieces?
Yes! Using a model file in this way is called a 'submodel.' Make the model you want to use like a part and save it. Now create your larger model you are using the first model in and when typing in the part number, instead type in the name of the model you wish to use. Now you can control that model as if it were one part.
13. How do I insert comments into an LDraw model?
In LEdit, Insert a new piece. Pick /Edit>Line-Type>Comment and type in your comment. The piece line will change to a comment line.
In MLCad, right click the file content pane (the window at the top with the numbers and such, this is the raw LDraw file) and select Add. The Add menu has an option for adding a Comment, select that. Enter the comment in the dialog box.
14. How can I get pieces to line up?
In LEdit this can be a small challenge, but in MLCad it is rather simple. Techniques for both programs revolve around the same method, though. Simply put, check multiple view angles of the same part. LEdit only allows you to see one view at a time (usually the modeling is done in 3D), but you can switch the view. MLCad allows 4 views at once. Refer to the same part in all of the view windows in MLCad to ensure it gets lined up.
Here are some personal pointers for part alignment in LEdit.
Jeremy Sproat suggests:
I start with the 3-D view, then go to two of the "normal" views to line the puppy up. If I'm putting a piece in among a bunch of others and my view is obstructed, it helps to turn on the "Stop at cursor" option.
If I'm putting in a piece that needs to go at an odd angle, and there is already another piece at the same angle, I load the file into a text editor and copy and paste the line of the first piece. I then load it into LEdit and move it around.
Bram Lambrecht suggests:
I check a couple of different views to check sometimes. I usually use James' method: hit down, so that all but the studs are visible. If the fit is correct, bring the piece up the correct number of moves.
15. How can I turn a hinge from one step in the instructions to the next?
- Draw the model up to the step before where the piece changes.
- Add the step commands to the file, including the last one.
- Add a '0 CLEAR' command at the end of the file.
- Copy everything before the last step command to after the clear command, so that you have the model repeated.
- Remove the step commands from the latter half of the file.
- Change the orientation of the hinge in the latter half of the file.
If you use LEdit, you will have to exit it, to do step 3 to 4/5 in a text editor.
16. What is the most recent edition of the LDraw package?
The original (DOS) LDraw package has not been updated since James died in 1997. However, several 'second generation editors' have come up since then. The most popular of these is MLCad (for Windows), there is also LeoCAD (also Windows), and BrickDraw3D under developent for Mac users. These editors are updated rather frequently.
17. What do the numbers that follow the '-a' parameter mean?
The first three numbers determine the position along the screen X axis. The first one is how much the model X axis affects the position. The next one is how much the model Y axis affects the position and the last one is how much the model Z axis affects the position.
Screen X = Model X * First number +
Model Y * Second number +
Model Z * Third number
The next three numbers are for the screen Y axis and finally the last three are for the screen Z axis. I.e.:
Screen Y = Model X * Fourth number +
Model Y * Fifth number +
Model Z * Sixth number
Screen Z = Model X * Seventh number +
Model Y * Eighth number +
Model Z * Ninth number
The screen Z axis is not really drawn. It is only used to determine which piece is visible and which piece isn't.
The screen X axis goes to the right, the Y axis goes down, and the Z axis goes away from you (into the screen).
18. Why don't the -ms and -mp options draw the last step of my model?
You have to insert a step command at the end of the file. [This problem should have been solved in the present version of LDraw/LEdit.]
19. What do I do when LEdit crashes?
Get a Windows editor (says Tim)
Stop editing your LDraw models in Notepad! Or at least, stop making mistakes when you do edit them. (Says Steve)
19a. ...when you try to get the on-screen parts list
Run MAKELIST to regenerate the file PARTS.LST. [This problem should have been solved in the present version of LDraw/LEdit.]
19b. ...with the message 'Graphics error: invalid device driver file (EGAVGA.BGI)'
There are two possible reasons for this. Either
- You have copied another version of the file "EGAVGA.BGI" on top of the one delivered in the LDraw package,
- You run LEdit in/from a catalog where you keep another version of "EGAVGA.BGI" than the one delivered in the LDraw package.
20. What is the LDraw file format?
See the specifications on the LDraw file format.
21. How can I make ray-traced images of LDraw models?
Most raytraced images of LDraw models are generated in POV-Ray. There is a program Lars Hassing has written called L3P, which converts DAT files to POVfiles. Though it is a DOS command based program, it is rather straightforward.
Jeff Boen has written a Windows interface to L3P called L3PAO. This takes the difficulty of the command line process out of converting models from LDraw to POV-Ray.
There also are other conversion tools that convert LDraw files into standard 3D modeling formats, such as DAT2DXF which converts to 3DStudioMax.
22. How does one map a bitmap onto an LDraw object?
A utility called BMP2DAT can superimpose a bitmap file on a DAT file. However, for making decorated elements this is not a very high quality method. Steve suggests imposing a bitmap on the file and then drawing a vector graphic in the part file with lines and colors over it, using the BMP as a guide, and then discarding it.
23. How can I get a clear brick in LDraw?
Color 47 represents a clear white brick. For other transparent colors, see our color guide.
24. How can I create a part that is not yet in LDraw?
A complex question that deserves a complex answer. Currently there is no step-by-step tutorial for parts authoring, but we have assembled the answers which were in the previous LDraw FAQ in the tutorials section unedited. See them here.
25. How can I find the numbers for a view in LDraw?
- Launch LEdit.
- Choose the front view (/VF).
- Rotate the default piece until it's sitting the way you want to view.
- Look at the part-line in the top of screen (between the START and END lines).
- Write down the 6th through 14th numbers (everything after the 1 0 0.0 0.0 0.0).
- Exit LEdit.
- Run LDraw with the command LDRAW -a6th,7th,8th,...,14th file.dat (using the numbers you wrote down after the -a option).
26. Where does LDraw look for files?
LDraw looks for files in the following folders, in the following order.
Once a matching file is found, LDraw stops looking.
- The P folder.
- The PARTS folder.
- The MODELS folder.
- The current folder.
27. What is the color code for?
The color code determines what color a part will be in LDraw. For a guide to colors, see our color table in the Specifications Reference.
28. What does Runtime Error 200 mean and how can I fix it?
Runtime Error 200 is no longer a factor because of the latest LDraw027 release. The error is pre-patched with the distribution. RTE200 was an error which occurred in LEdit in faster computers a few years ago.
29. What does Runtime Error 003 mean and how can I fix it?
This error essentially means "path not found." It occurs if the path to LDraw contains "long" (more than eight letters) folder names. The problem can be solved by moving LDraw to a directory named C:\LDraw.
30. What is the parts voting procedure?
Parts are included in the official LDraw.org parts release by certification via the Parts Tracker. Steve Bliss is the parts library manager. Parts authors review parts and approve them, Steve then gives a final approval, and they are packaged in the release.