Primitives Reference: Difference between revisions
Holly-Wood (talk | contribs) No edit summary |
Holly-Wood (talk | contribs) No edit summary |
||
| Line 6: | Line 6: | ||
* To speed up parts authoring by providing a library of components which can be incorporated into several parts | * To speed up parts authoring by providing a library of components which can be incorporated into several parts | ||
* To allow rendering software to make substitutions of curved components | * To allow rendering software to make substitutions of curved components | ||
Within this reference material the available primitives are categorised into: | |||
__TOC__ | |||
__FORCETOC__ | |||
Each section contains an overview of the characteristics common to all primitives within that category. Primitives are grouped into classes within each category - one class of primitive serving a similar purpose at different sizes or resolutions. For each class of primitive, a brief description of the purpose of the primitive is provided, with notes on its co-ordinate origin, default size and rules for scaling. A list of the available primitives is shown. | Each section contains an overview of the characteristics common to all primitives within that category. Primitives are grouped into classes within each category - one class of primitive serving a similar purpose at different sizes or resolutions. For each class of primitive, a brief description of the purpose of the primitive is provided, with notes on its co-ordinate origin, default size and rules for scaling. A list of the available primitives is shown. | ||
| Line 13: | Line 18: | ||
[[File:Xyzaxes.png|thumb|alt=Axes]] | [[File:Xyzaxes.png|thumb|alt=Axes]] | ||
==Rectilinear primitives== | |||
These rectilinear elements may be scaled in the {x}, {y} and {z} dimensions to make elements of any size. For example | These rectilinear elements may be scaled in the {x}, {y} and {z} dimensions to make elements of any size. For example | ||
| Line 33: | Line 38: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
=== Two dimensional === | |||
|- | |- | ||
| '''rect.dat''' || '''Rectangle with all edges''' | | '''rect.dat''' || '''Rectangle with all edges''' | ||
| Line 88: | Line 93: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
=== Three dimensional === | |||
|- | |- | ||
| '''box.dat''' || '''Cuboid with all faces and edges''' | | '''box.dat''' || '''Cuboid with all faces and edges''' | ||
Revision as of 07:03, 27 November 2023
LDraw Primitives Reference
This page is a source of reference for the LDraw primitives in the \LDraw\p directory. Primitives are defined as highly re-usable components of LEGO parts modelled for LDraw. They serve several purposes :
* To speed up parts authoring by providing a library of components which can be incorporated into several parts * To allow rendering software to make substitutions of curved components
Within this reference material the available primitives are categorised into:
Each section contains an overview of the characteristics common to all primitives within that category. Primitives are grouped into classes within each category - one class of primitive serving a similar purpose at different sizes or resolutions. For each class of primitive, a brief description of the purpose of the primitive is provided, with notes on its co-ordinate origin, default size and rules for scaling. A list of the available primitives is shown.
An understanding of the orientation of the co-ordinate axes is essential for authoring a part for LDraw. For reference within this page the axes and their direction is shown in this diagram.

Rectilinear primitives
These rectilinear elements may be scaled in the {x}, {y} and {z} dimensions to make elements of any size. For example
1 16 0 0 0 40 0 0 0 1 0 0 0 20 rect.dat
would generate a 80LDu x 40LDu rectangle in the {x,z} plane.
Although the default orientation of the rect.dat primitive is in the {x,z} plane the LDraw language allows for this to be transformed
1 16 0 0 0 0 1 0 40 0 0 0 0 20 rect.dat
would generate a 80LDu x 40LDu rectangle in the {y,z} plane.
1 16 0 0 0 40 0 0 0 0 20 0 1 0 rect.dat
would generate a 80LDu x 40LDu rectangle in the {x,y} plane.





















