Primitives Reference
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
Nomenclature
Boxes are named boxF, with F representing the number of faces a box has. The suffix E represents the number of edges removed.
F and E are may followed by an additional letter. The hyphen is removed if F is accompanied by a modifier.
Face modifiers:
- o - faces are opposite to each other
- t - faces are all touching each other (usually, it's implied, but box4t.dat is a thing)
- u - missing faces form a U-shape
Edge letters:
- p - groups of edges are parallel to each other
- a - some missing faces have no adjacent edges
Scaling and orientation
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.
triangle.dat | Triangle with all edges |
This primitive represents a isosceles right triangle in the {x,z} plane and the three edges that bound it. Its origin is at the tip of the right angle and by default has a size of 1LDu in each of the {x} and {z} dimensions. To avoid matrix arithmetic problems in some renderers, the third dimension ({y} in the default orientation) must be given a non-zero scaling factor.
1 16 0 0 0 5 0 0 0 1 0 0 0 20 triangle.dat | |
rect.dat | Rectangle with all edges |
This primitive represents a rectangle in the {x,z} plane and the four edges that bound it. Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. | |
rect3.dat | Rectangle with 3 edges |
This primitive represents a rectangle in the {x,z} plane but excludes one edge {-z}. Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. | |
rect2p.dat | Rectangle with 2 parallel edges |
This primitive represents a rectangle in the {x,z} plane but excludes two parallel edges ({+x} and {-x}). Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. | |
rect2a.dat | Rectangle with 2 adjacent edges |
This primitive represents a rectangle in the {x,z} plane but excludes two adjacent edges ({-x} and {-z}). Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. | |
rect1.dat | Rectangle with 1 edge |
This primitive represents a rectangle in the {x,z} plane but include only the one {+x} edge. Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. | |
recte3.dat | Empty rectangle with three edges |
This primitive represents three edges of a rectangle in the {x,z} plane. Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. | |
recte4.dat | Empty rectangle with all edges |
This primitive represents the four edges of a rectangle in the {x,z} plane. Its origin is at its centre and by default has a size of 2LDu in each of the {x} and {z} dimensions. |
Return to top |
box.dat | Cuboid with all faces and edges |
This primitive is used to define a cuboid. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the three dimensions. | |
box0.dat | Cuboid with no faces and edges |
This primitive is used to define the frame a cuboid. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the three dimensions. | |
box5.dat | Cuboid with 5 faces and all edges |
This primitive represents a cuboid missing the top {-y} face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box5-1.dat | Cuboid with 5 faces without 1 edge |
This primitive represents a cuboid missing the top {-y} face and one edge {-z} of that. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box5-2p.dat | Cuboid with 5 faces without 2 parallel edges |
This primitive represents a cuboid missing the top {-y} face and two of the four edges surrounding that. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box5-4a.dat | Cuboid with 5 faces without top edges |
This primitive represents a cuboid missing the top {-y} face and the four edges surrounding that. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box5-12.dat | Cuboid with 5 faces missing all edges |
This primitive represents a cuboid missing the top {-y} face and all edges. Its primary use is for sticker parts. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
Box4 overview | |
---|---|
box4.dat | Cuboid with 4 parallel faces and all edges |
This primitive represents a cuboid missing the top {-y} and bottom {+y} faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4o4a.dat | Cuboid with 4 parallel faces without bottom edges |
This primitive represents a cuboid missing the top {-y} and bottom {+y} faces, and missing the edges of the bottom face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4o8a.dat | Cuboid with 4 parallel faces without top and bottom edges |
This primitive represents a cuboid missing the top {-y} and bottom {+y} faces, and missing the edges of the top and bottom face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4t.dat | Cuboid with 4 adjacent and all edges |
This primitive represents a cuboid missing the top {-y} and front {-z} faces, but with all its edges. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-1.dat | Cuboid with 4 adjacent faces missing 1 edge |
This primitive represents a cuboid missing the top {-y} and front {-z} faces and the edge between those faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-2p.dat | Cuboid with 4 faces without two opposite top edges |
This primitive represents a cuboid missing the top {-y} and bottom {+y} faces, and missing two edges of the top face - the intersection of the two missing faces and the opposite edge. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-3p.dat | Cuboid with 4 faces without three parallel edges |
This primitive represents a cuboid missing the top {-y} and bottom {+y} faces and missing three edges of the missing faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-4a.dat | Cuboid with 4 adjacent faces missing 4 edges |
This primitive represents a cuboid missing the top {-y} and front {-z} faces and all the edges of the missing front face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-5a.dat | Cuboid with 4 adjacent faces missing 5 edges |
This primitive represents a cuboid missing the top {-y} and front {-z} faces and all the edges at the top and the bottom of the missing front face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-7a.dat | Cuboid with 4 adjacent faces missing 7 edges |
This primitive represents a cuboid missing the top {-y} and front {-z} faces and all the edges of both missing faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box4-12.dat | Cuboid with 4 adjacent faces missing all edges |
This primitive represents a cuboid missing the top {-y} and front {-z} faces and excludes all the edges. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3-3.dat | Cuboid with 3 adjacent faces missing 3 edges |
This primitive represents a cuboid missing the top {-y} and bottom {+y} faces, and missing three edges of the missing faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3-5a.dat | Cuboid with 4 adjacent faces missing 4 edges |
This primitive represents a cuboid missing the top {-y}, front {-z} and left {-x} faces and includes the three internal edges and the outer edges except those on the left {-z}. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box3-7a.dat | Cuboid with 3 adjacent faces missing 7 adjacent edges |
This primitive represents a cuboid missing the top {-y}, front {-z} and left {-x} faces and includes the three internal edges but only the outer edges at the top (-y). Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box3-9a.dat | Cuboid with 3 adjacent faces missing 9 adjacent edges |
This primitive represents a cuboid missing the top {-y}, front {-z} and left {-x} faces and includes only the three internal edges. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box3-12.dat | Cuboid with 3 adjacent faces missing all edges |
This primitive represents a cuboid missing the top {-y}, front {-z} and left {-x} faces but excludes all edges. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
Box3u overview | |
box3u2p.dat | Cuboid with 3 faces missing 2 edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes the top edges of the left {-x} and right {+x} faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u4p.dat | Cuboid with 3 faces missing 4 parallel edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes the topand bottom edges of the left {-x} and right {+x} faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u4a.dat | Cuboid with 3 adjacent faces missing all edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes the edges of the missing top face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u5p.dat | Cuboid with 3 faces missing 5 edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes the top edge of the left {-x} face and all edges of the right {+x} face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u6.dat | Cuboid with 3 faces missing 6 edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes the top and bottom edges of the right {+x} face and all edges of the left {-x} face. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u6a.dat | Cuboid with 3 faces missing 4 adjacent and 2 parallel edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes all the top edges and the bottom edges of the missing faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u7a.dat | Cuboid with 3 faces missing 7 adjacent edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes the edges of the missing top (-y) and right (+x) faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u8p.dat | Cuboid with 3 faces missing 8 edges (in two parallel groups) |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes all the edges of the left {-x} and right {+x} faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u10p.dat | Cuboid with 3 faces in a 'U' shape, missing 10 edges (all except those between the faces) |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes all the edges except the two betweenthe faces. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
box3u12.dat | Cuboid with 3 parallel faces missing all edges |
This primitive represents a cuboid missing the top {-y} and left {-x} and right {+x} faces and excludes all the edges. Its origin is the centre of the (missing) top face and by default has a size of 2LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
boxjcyl4.dat | Box truncated by cylinder |
This suite of primitives are used to model the intersection between a box and cylinders of different radii. The box has a fixed width of 2LDu and the cylinder radius is denoted by the r in the filename.
Currently available primitives : Regular resolution (boxjcylr) : 4 | |
box2-5.dat | Cuboid with 2 adjacent faces missing 5 edges |
This primitive represents a cuboid missing the top {-y}, front {-z}, left {-x} and right {+x} faces and excludes all the edges which do not bound the included faces. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box2-7.dat | Cuboid with 2 adjacent faces missing 7 edges |
This primitive represents a cuboid missing the top {-y}, front {-z}, left {-x} and right {+x} faces and excludes all the edges except that at the join between the two faces and those along the left {-x} and right {+x} sides. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box2-9.dat | Cuboid with 2 adjacent faces missing 9 edges (all except those connected to the {+x}, {+y}, {+z} vertex) |
This primitive represents a cuboid missing the top {-y}, front {-z}, left {-x} and right {+x} faces and excludes all the edges except that at the join between the two faces and those along the right {+x} sides. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box2-9p.dat | Cuboid with 2 adjacent faces missing 9 edges (all except three parallel edges) |
This primitive represents a cuboid missing the top {-y}, front {-z}, left {-x} and right {+x} faces and excludes all the edges except that at the join between the two faces and those parallel to that. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
box2-11.dat | Cuboid with 2 adjacent faces missing 11 edges |
This primitive represents a cuboid missing the top {-y}, front {-z}, left {-x} and right {+x} faces and excludes all the edges except that at the join between the two faces. Its origin is the centre of the cuboid and by default has a size of 2LDu in each of the {x}, {y} and {z} dimensions. | |
tri3.dat | Right-angled triangular prism with 3 faces |
This primitive represents a triangular prism missing the top {-y} and bottom {+y} faces but including all edges. The left {-x} and front {-z} faces are perpendicular. Its origin is the right-angle corner of the (missing) top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3-1.dat | Right-angled triangular prism with 3 faces |
This primitive represents a triangular prism missing the top {-y} and bottom {+y} faces and excludes the top edge of the hypotenuse. Its origin is the right-angle corner of the (missing) top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3-3.dat | Right-angled triangular prism missing 3 faces |
This primitive represents a triangular prism missing the top {-y} and bottom {+y} faces and excludes all top edges. Its origin is the right-angle corner of the (missing) top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3a1.dat | Right-angled triangular prism with 3 adjacent faces missing 1 edge |
This primitive represents a triangular prism missing the top {-y} face, the face at the hypotenuse as well as the top edge at the hypotenuse. Its origin is the right-angle corner of the (missing) top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3a3.dat | Right-angled triangular prism with 3 adjacent faces missing 3 edge |
This primitive represents a triangular prism missing the top {-y} face, the face at the hypotenuse and excludes all top edges. Its origin is the right-angle corner of the (missing) top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3a4 | Right-angled triangular prism with 3 adjacent faces missing 4 adjacent edges |
This primitive represents a triangular prism missing the top {-y} face, the face at the hypotenuse and excludes all edges at the hypotenuse. Its origin is the right-angle corner of the (missing) top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3u1.dat | Right-angled triangular prism with 3 faces missing 1 edge |
This primitive represents a triangular prism missing the left {-x} and front {-z} faces. Its origin is the right-angle corner of the top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri3u3.dat | Right-angled triangular prism with 3 faces missing 3 edges |
This primitive represents a triangular prism missing the left {-x} and front {-z} faces, the edge where they would join and one edge of each of the triangles. Its origin is the right-angle corner of the top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. | |
tri4.dat | Right-angled triangular prism with 2 square faces and 2 triangular faces |
This primitive represents a triangular prism missing the face at the hypotenuse. Its origin is the right-angle corner of the top face and by default has a size of 1LDu in each of the {x} and {z} dimensions and 1LDu in the {y} dimension. |
Return to top |
Curved primitives
LDraw represents curved surfaces as polygons. For circular components two series of primitives are provided.
All the circular primitives are orientated in the {x,z} plane with their origin at the centre of the circle and a default radius of 1 LDu. Primitives are provided for complete circles and for commonly used fractions of a complete circle. Where the naming convention includes a prefix of the form n-f this indicates the fraction (n/f) of the circle drawn by the primitive. Where this fraction is less than an entire circle, the primitive starts at {+x,0} and progresses in a conterclockwise direction when viewed from above {-y}.
To avoid rounding errors, it is preferable to use existing fractional circular primitives, or create a new primitive, rather than rotate an existing primitive by anything other than 90 or 180 degrees. For example, use 3-16XXXX.dat rather than combining 1-8XXXX.dat with 1-16XXXX.dat rotated by 22.5 degreees.
To avoid matrix arithmetic problems in some renderers, the third dimension ({y} in the default orientation) of two-dimensional primitives must be given a non-zero scaling factor. LDraw circles are normally formed of 16-sided polygons (hexdecagons) - the regular resolution. For larger elements, where scaling-up of hexadecagons would give too angular an appearance, a series of high resolution primitives based on a 48-sided polygon are available. These may also be used for parts not well suited to a 16-fold symmetry.
These circular elements may be scaled by the same factor in both the {x} and {z} dimensions to make circular elements of greater or less than 1LDu radius. For example
1 16 0 0 0 3 0 0 0 1 0 0 0 3 4-4edge.dat
would generate a circle in the {x,z} plane with a radius of 3LDu.
They may also be scaled asymmetrically in the x and z dimension to make ellipses.
Although the default orientation is in the {x,z} plane the LDraw language allows for these to be transformed
1 16 0 0 0 0 1 0 3 0 0 0 0 3 4-4edge.dat would generate a circle in the {y,z} plane
1 16 0 0 0 3 0 0 0 0 3 0 1 0 4-4edge.dat would generate a circle in the {x,y} plane
Circular 2D Overview | |
---|---|
n-fedge.dat | Circular line segment |
This suite of primitives are used for edges which comprise an entire or part circle.
Currently available primitives: | |
n-fdisc.dat | Circular disc sector |
This suite of primitives are used for surfaces which comprise an entire or part circle.
Currently available primitives: | |
n-fchrd.dat | Circular disc segment |
This suite of primitives are used for surfaces which comprise part of a circle enclosed by the arc of its circumference and its chord. Note that the bounding circle in the image is for context only - only the grey segment is generated by the 1-4chrd primitive.
Currently available primitives: Note: The regular resolution 1-16chrd.dat and high resolution 1-48chrd are special cases, see Primitive Substitution Adapters below for more information | |
n-fndis.dat | Inverse of circular disc sector |
This suite of primitives pad their matching n-fdisc.dat primitives out to the bounding square. They are used to integrate circular elements into rectilinear elements.
Currently available primitives: | |
n-ftang.dat | Tangential ring segment |
This suite of primitives are used to pad a 16-sided polygon to a circumscribing 16-sided polygon whose edges are tangential to the inner polygon. Note that the bounding circle in the image is for context only - only the black segment is generated by the 1-4tang primitive.
Currently available primitives: | |
n-ftndis.dat | Disc negative truncated |
This suite of primitives are used to used to integrate circular elements into rectilinear elements. These pad their matching n-fdisc.dat primitives out to the bounding rectangle, spanning from x = 1 to the minimal x value of the matching primitive. Note that the bounding circle in the image is for context only - only the black segment is generated by the 1-8tndis primitive. The image on the right showes the difference between tang, tndis and ndis. Currently available primitives: | |
n-faring.dat | Circular adaptor ring segment |
This suite of primitives are used to interface between high resolution (48-segment) circular primitives and normal resolution (16-segment) circluar primitives. Note that the bounding circle in the image is for context only - only the black segment is generated by the 2-4aring primitive.
Currently available primitives: | |
1-16chrd.dat 1-48chrd.dat n-fering.dat |
Primitive Substitution Adapters |
This suite of primitives are used correct for gaps that form between curved primitives and normal geometry in editors that utilize primitive substitution. This is a special case used on the inside of a curved primitive where it joins geometry that cannot make use of a curved primitive. The chrd files themselves are simply a reference to empty.dat, which under normal circumstances does not draw anything. However, in tools that support primitive substitution, the curved primitive it is attached to would normally in this case create a gap when rendered using more than 16 points to form a circle. In that case, the substituted version of these normally empty primitives would fill in the gap between the curve and the other geometry.
To "see" these primitives, the editor in use must utilize primitive substitution. Then one of the following can be done:
Note that the bounding circle in the image is for context only - there are no actual geometry producing lines contained in these files. Currently available primitives: | |
n-fringr.dat n-frinrr.dat n-ffrinr.dat n-ffrirr.dat nn-ffrir.dat ringr.dat (deprecated name) ringrr.dat (deprecated name) |
Circular ring segment |
This suite of primitives are used to generate circular rings or part rings. The numeric suffix r in the filename indicates the inner radius of the ring - the outer radius is 1LDu greater. For example a n-f4-4ring4 primitive would create a ring with an inner radius of 4LDu and an outer radius of 5LDu.
Note: The correct nomenclature is to use the full word "ring". All newly created ring primitives must use "ring". Due to the fact that too many files would be affected, it was decided to keep the current official "rin" primitives in the library. All files using "ri" have been moved, to use "ring". Currently available primitives: |
Return to top |
n-fcyli.dat n-fcyli2.dat |
Circular cylinder |
This suite of primitives are used to generate cylinders or part cylinders. These are provided in two forms - with conditional lines (n-fcyli) or without conditional lines (n-fcyli2). In almost all circumstances the "cyli" version should be used. The "cyli2" versions are for very special cases and their use for the rounded corners of stickers is no longer appropriate.
Currently available primitives - with conditional lines (n-fcyli): Currently available primitives - without conditional lines (n-fcyli2): | |
n-fcylo.dat | Circular cylinder with Open End |
This suite of primitives are used to generate cylinders or part cylinders with edges around the lower and upper surfaces.
Currently available primitives: | |
n-fcylc.dat n-fcylc2.dat n-fcylc3.dat |
Circular cylinder with Closed End |
This suite of primitives are used to generate cylinders or part cylinders with the upper surface closed.
Currently available primitives - with conditional lines and top edge line (n-fcylc): Currently available primitives - without conditional lines or top or bottom edge line (n-fcylc2): Currently available primitives - with conditional lines, but without top and bottom edge lines (n-fcylc3): | |
n-fcyls.dat n-fcyls2.dat |
Circular cylinder truncated by an angled plane |
These primitives are used to generate cylinders or part cylinders which are truncated by a plane which is not perpendicular to the axis of the cylinder. The default angle of the plane is 45 degress.
These primitives are notoriously difficult to describe and the user is encouraged to experiment in order to gain a full understanding of their geometry. One technique is to open the primitive in LDPE and choose random colours. Selecting Show Axes also helps. The 2-4cyls.dat primitive is orientated with the perpendicular bounding plane at the top {-y} and the angled bounding plane at the bottom {+y}. In common with the other 2-4xxxx.dat primitives, the {+z} semicircle is represented. By default the truncation plane is y=x-1. The 1-4cyls.dat and 3-8cyls.dat primitives are sub-sections of 2-4cyls.dat The 1-4cyls2.dat primitive is orientated with the perpendicular bounding plane at the top {-y} and the angled bounding plane at the bottom {+y}. Unlike the other 1-4xxxx.dat primitives, the {-x,+z} quadrant is represented. The truncation plane is y=x. The following observations may help : 1-4cyls and 1-4cyls2 are complements. If you put them together correctly they make a 1-4cyli. 1 16 0 0 0 1 0 0 0 1 0 0 0 1 1-4cyls.dat 1 16 0 1 0 -1 0 0 0 -1 0 0 0 1 1-4cyls2.dat 1-4cyls2 is actually hidden in 2-4cyls, which could be constructed like 1 16 0 0 0 1 0 0 0 1 0 0 0 1 1-4cyls.dat 1 16 0 0 0 0 0 -1 0 1 0 1 0 0 1-4cyli.dat 1 16 0 1 0 1 0 0 0 1 0 0 0 1 1-4cyls2.dat Currently available primitives: | |
n-fcylse.dat | Circular cylinder truncated by an angled plane with angled edge included |
This suite of primitives are similar to the n-fcyls primitive, but with the edge along the angled plane included.
Currently available primitives: | |
cyljrxs.dat | Circular cylinder truncated by another cylinder |
This suite of primitives are used to model the intersection between two cylinders of different radii.
Currently available primitives: | |
n-fcylrsphs.dat | Circular cylinder truncated by a sphere |
This suite of primitives are used to model the intersection between a cylinder and a sphere of a different radius.
Currently available primitives: | |
n-fconr.dat n-fconrr.dat |
Circular cone |
This suite of primitives are used to generate circular cones or part cones. The numeric suffix r in the filename indicates the inner radius of the cone - the outer radius is 1LDu greater. By default the cone is 1LDu high in the {+y} dimension with the origin at the centre of the outer diameter. For example a n-fcone4 primitive would create a cone with an inner radius of 4LDu and an outer radius of 5LDu.
Currently available primitives: High resolution (n-f)(r): | |
tffirrrr.dat tfforrrr.dat tffqrrrr.dat rfforrrr.dat rfforrrrr.dat |
Circular torus |
This suite of primitives are used to generate circular torus sections. By default all these primitives produce a torus with a major radius of 1LDu, so typically need to be scaled up in the {x} and {z} dimensions. The first character denotes whether the minor radius is smaller than (tff primitives) or larger than the major radius (rff primitives). The latter are termed reverse ratio tori. The second and third characters of the filename ff denotes the sweep of torus, as an inverse fraction (01=1/1, 02=1/2, 04=1/4, 08=1/8, 16=1/16, 32=1/32, 48=1/48). The fourth character denotes the section of a torus (i=inner, o=outer, q=tube - the combination of 2 inner and 2 outer sections). Inner sections are not possible for reverse ratio tori.
For regular tori, the last four characters of the file name rrrr denote the torus minor radius in LDu (1333=0.1333, 3333=0.3333), with the special designation 'unit' unsed to indicate a radius of 1.0000. For reverse ratio tori named like rfforrrr.dat, the last four characters of the file name rrrr represent torus minor radius with an implied decimal point after the first digit (1500=1.5, 4600=4.6). For reverse ratio tori named like rfforrrrr.dat, the last five characters of the file name rrrrr represent torus minor radius with an implied decimal point after the first two digits (11000=11.0). These diagrams (based on an idea of Paul Easter's) illustrate the relationship of the torus primitives to the major and minor radii.
Currently available regular torus primitives:
| |
This single primitive pre-dates the creation of the tffirrrr and tfforrrr suite of primitives and will not be augmented. It produces a quarter torus with a major radius of 2.5Ldu and a tube radius of 1LDu.
It is superceded by t04q4000.dat. | |
n-fsphe.dat | Sphere section |
This primitive represents a sphere, centered at the origin {0,0,0} of radius 1 LDu.
Currently available primitives: | |
1-8sphc.dat | Spherical corner |
This primitive represents one octant (eighth) of a sphere, centered at the origin {0,0,0} of radius 1.414, truncated by the sides of a cube with a vertex at {1,1,1}. The boundaries of the resulting surface are circular and fit with 1-4edge.dat. | |
n-fedgh.dat | Cylinder Helical Edge |
This primitive represents ...
Currently available primitives: | |
n-fcylh.dat | Cylinder Helical |
This primitive represents ...
Currently available primitives: |
Return to top |
Technic primitives
These primitives represent various components of the technic axle and its matching hole. They are orientated in the {x,z} plane. Except where noted below, and in the {y} dimension only, these primitives must not be scaled. | |
axle.dat | Technic axle section |
This primitive comprises a 1LDu long section of technic axle, including its ends. It may be scaled in the {y} dimension to produce an axle of any length. | |
axleend.dat | Technic axle end |
This primitive is used to produce the "plus-shaped" cross section of a technic axle. | |
axlehole.dat | Technic axle hole - closed |
This primitive produces a technic axle hole with the disc ends and all sides. It may be scaled in the {y} dimension as necessary. | |
axlehol2.dat | Technic axle hole - side edges |
This primitive produces the edges at the ends of the "plus-shaped" technic axle. | |
axlehol3.dat | Technic axle hole - tooth outer edges |
This primitive produces the outer edges of the teeth of a technic axle hole. | |
axlehol4.dat | Technic axle hole - open one side |
This primitive produces a technic axle hole with one side omitted. It may be scaled in the {y} dimension as necessary. | |
axlehol5.dat | Technic axle hole - open two opposite sides |
This primitive produces a technic axle hole with two opposite sides omitted. It may be scaled in the {y} dimension as necessary. | |
axlehol6.dat | Technic axle hole tooth |
This primitive represents one tooth of a technic axle hole. It may be scaled in the {y} dimension as necessary. | |
axlehol7.dat | Technic axle hole - sides |
This primitive comprises a 1LDu long section of outer sides of a technic axle. It may be scaled in the {y} dimension. | |
axlehol8.dat | Technic axle hole perimeter |
This primitive comprises a 1LDu long section of technic axle, without any ends. It may be scaled in the {y} dimension as necessary. | |
axlehol9.dat | Technic axle hole - tooth inner edges |
This primitive produces the inner edges of the "plus-shaped" technic axle. | |
axleho10.dat | Technic axle hole - tooth surface |
This primitive is used to produce the fill the "plus-shaped" cross section of a technic axle to the bounding circle. | |
Axlehol0.dat | Technic Axle Hole Hint |
This file is an invisible "axlehole" that can be used to hint irregular axleholes that cannot be modeled with conventional axlehole primitives. To use: add an axle.dat in your part, apply position and scaling so that it fills the axlehole, and substitute it with this primitive. Note that the bounding axle sction in the image is for context only - there are no actual geometry producing lines contained in these files. |
Return to top |
axl2hole.dat | Technic axle hole reduced |
This primitive produces a technic axle hole with reduced teeth including the disc ends and all edges. It may be scaled in the {y} dimension as necessary. | |
axl2hol2.dat | Technic axle hole reduced - side edges |
This primitive produces the edges at the ends of the "plus-shaped" reduced technic axle. | |
axl2hol3.dat | Technic axle hole reduced - tooth outer edges |
This primitive produces the outer edges of the teeth of a reduced technic axle hole. | |
axl2hol8.dat | Technic axle hole reduced - perimeter |
This primitive comprises a 1LDu long section of reduced technic axle, without any ends. It may be scaled in the {y} dimension as necessary. | |
axl2hol9.dat | Technic axle hole reduced - tooth inner edges |
This primitive produces the inner edges of the reduced "plus-shaped" technic axle. | |
axl2ho10.dat | Technic axle hole reduced - tooth surface |
This primitive used to produce the fill the "plus-shaped" cross section of a reduced technic axle to the bounding circle. | |
axl2end.dat | Technic axle hole reduced - end surface |
This primitive is used to produce the "plus-shaped" cross section of a technic axle hole reduced. |
Return to top |
axl3hole.dat | Technic axle hole semi-reduced |
This primitive produces a technic axle hole with semi-reduced teeth including the disc ends and all edges. It may be scaled in the {y} dimension as necessary. | |
axl3hol2.dat | Technic axle hole semi-reduced - side edges |
This primitive produces the edges at the ends of the "plus-shaped" semi-reduced technic axle. | |
axl3hol3.dat | Technic axle hole semi-reduced - tooth outer edges |
This primitive produces the outer edges of the teeth of a semi-reduced technic axle hole. | |
axl3hol6.dat | Technic axle hole semi-reduced tooth |
This primitive represents the teeth of a semi-reduced technic axle hole. It may be scaled in the {y} dimension as necessary. | |
axl3hol8.dat | Technic axle hole semi-reduced - perimeter |
This primitive comprises a 1LDu long section of semi-reduced technic axle, without any ends. It may be scaled in the {y} dimension as necessary. | |
axl3hol9.dat | Technic axle hole semi-reduced - tooth inner edges |
This primitive produces the inner edges of the semi-reduced "plus-shaped" technic axle. | |
axl3ho10.dat | Technic axle hole semi-reduced - tooth surface |
This primitive used to produce the fill the "plus-shaped" cross section of a semi-reduced technic axle to the bounding circle. | |
axl3end.dat | Technic axle hole semi-reduced - end surface |
This primitive is used to produce the "plus-shaped" cross section of a technic axle hole semi-reduced. |
Return to top |
axlebeam.dat | Technic Axle Truncated to fit Technic Beam End Surface |
This primitive produces the tip of an axle to be used between a cylinder of 9 LDu radius and an axle primitive.
Usage example: | |
axlesphe.dat | Technic axle - truncated to fit ball joint |
This primitive produces the tip of an axle, truncated to fit a 12.81 LDu radius sphere.
Usage example: | |
axles.dat | Axle Sloped |
This primitive produces the tip of an axle, truncated by a slope with the height of 1 LDu. It may be scaled in the {y} dimension as necessary. | |
axlecap.dat | Axle Endcap |
This primitive produces the beveled tip of an axle. | |
axlecaph.dat | Axle Endcap with Hole 4D |
This primitive produces the beveled tip of an axle with a center hole of 2 LDu radius. | |
axlecaph2.dat | Axle Endcap with Hole 5D |
This primitive produces the beveled tip of an axle with a center hole of 2.5 LDu radius. | |
axleconnect.dat | Technic Axle to Connector Hole Perpendicular Joint 0.5 |
This primitive produces a right angle connection between an axle and a Technic connector hole.
Usage example: |
Return to top |
These primitives are various representations of the castellated technic bush. They are orientated with the technic axle hole along the {y} axis and must not be scaled. | |
bushlock.dat | Technic 16-tooth castellation - long teeth |
bushloc2.dat | Technic 16-tooth castellation - regular teeth |
bushloc3.dat | Technic 16-tooth castellation - regular teeth indented |
This primitive differs from bushloc2.dat in that the teeth are indented in four places to allow it to fit between four adjacent studs. | |
bushloc4.dat | Technic 16-tooth castellation - short teeth |
steerend.dat | Curved end to technic 1xn plate with 16-tooth castellation on underside |
Return to top |
These primitives are usd to construct technic bush parts. | |
bush.dat | Technic bush with collar at one end |
bush0.dat | Technic bush without end collars |
bush1.dat | Technic bush collar quarter |
bush2.dat | Technic Bush End 0.25 |
Return to top |
These primitives are used to contruct technic connector pegs. They are orientated with the technic axle hole along the {y} axis and must not be scaled. | |
connect.dat | Technic connector - long with collar |
connect2.dat | Technic connector - long without collar |
connect3.dat | Technic connector - short with collar |
connect4.dat | Technic connector - short without collar |
connect5.dat | Technic connector - long with collar and slot |
connect6.dat | Technic connector - long with collar and notches |
connect7.dat | Technic connector - long with rectangular centre hole and thin (frictionless) ribs |
connect8.dat | Technic connector - long with collar and blind hole |
connect10.dat | Technic Pin 1.0 without Base Collar and Rectangular Centre Hole |
connectcollar1.dat | Technic Pin Collar Half with Rectangular Hole and Short Slit |
connectcollar2.dat | Technic Pin Collar Half with Small Rectangular Hole and Short Slit |
connectcollar3.dat | Technic Pin Collar Half with Rectangular Hole and Long Slit |
connectcollar4.dat | Technic Pin Collar Half with Small Rectangular Hole and Long Slit |
connectcollar5.dat | Technic Pin Collar Half with Round Hole and Short Slit |
connectslit1.dat | Technic Pin Long Middle Slit Half with Rectangular Hole |
connectslit2.dat | Technic Pin Long Middle Slit Half with Small Rectangular Hole |
confric.dat | Technic connector with friction - long with collar |
confric2.dat | Technic connector with friction - long without collar |
confric3.dat | Technic connector with friction - long with rectangular centre hole and collar |
confric4.dat | Technic connector with friction - long with collar and blind hole |
confric5.dat | Technic connector with friction - long with collar and slot |
confric6.dat | Technic connector with friction - long without collar with slot |
confric8.dat | Technic connector with friction - middle section with collar and slot |
confric9.dat | Technic connector with friction - middle section slotted with unsplit base collar |
Return to top |
These primitives are used to contruct technic connector peg holes. They are orientated with the technic axle hole along the {y} axis. They must not be scaled in the {x} or {z} dimensions, but the peghole and npeghol families of primitives may be scaled in the {y} dimension. | |
connhole.dat | Technic beam hole long |
This primitive is used for Technic connector peg holes in 20LDu wide Technic beams. | |
connhol2.dat | Technic beam hole long with extended end |
This primitive is used for Technic connector peg holes in 20LDu wide Technic parts with an extended indentation. | |
connhol3.dat | Technic beam hole long with only one end |
This primitive is used for Technic connector peg holes for use in Technic parts with a narrow beam section. | |
beamhole.dat | Technic beam hole long with extension to adjacent hole |
This primitive is used for Technic connector peg holes at the end of 20LDu wide Technic beams. | |
beamhol2.dat | Technic beam hole short with extension to adjacent hole |
This primitive is used for Technic connector peg holes at the end of 10LDu wide Technic beams. | |
peghole.dat | Technic connector hole |
peghole2.dat | Technic connector hole - 180 degrees - long |
peghole3.dat | Technic connector hole - 90 degrees |
peghole4.dat | Technic connector hole - 180 degrees - short |
peghole5.dat | Technic connector hole - 180 degrees - medium |
peghole6.dat | Technic connector hole - end extended |
npeghole.dat | Technic connector hole negative without top surface extensions |
npeghol2.dat | Technic connector hole negative with top surface extensions |
npeghol3.dat | Technic peg hole to connector hole negative without top surface extensions |
This primitive is designed to fill the gap between an axlehol4 or axlehol5 primitive and a Technic peg hole. | |
npeghol3.dat | Technic peg hole to connector hole negative without top surface extensions |
This primitive is designed to fill the gap between an axlehol4 or axlehol5 primitive and a Technic peg hole. | |
npeghol3a.dat | Technic Peg Hole / Axle Hole Negative without Top Surface Extensions without One Edge |
npeghol4.dat | Technic peg hole to connector hole negative with top surface extensions |
npeghol5.dat | Technic peg hole to axle hole negative with top surface extensions |
npeghol6.dat | Technic peg hole to axle hole negative quarter for beams |
npeghol6a.dat | Technic Peg Hole Negative 0.25 |
npeghol6b.dat | Technic Peg Hole Negative 0.25 with Middle Tab |
npeghol6c.dat | Technic Peg Hole Negative 0.25 without One Edge |
npeghol6d.dat | Technic Peg Hole Negative 0.25 without Extension |
npeghol7.dat | Technic Peg Hole Negative 0.5 without Top Surface Extensions |
npeghol7a.dat | Technic Peg Hole Negative 0.5 with Top Surface Extensions |
npeghol8.dat | Technic Peg Hole Negative for Alternate Beam Type 1 Half without Extensions |
npeghol9.dat | Technic Peg Hole Negative for Alternate Beam Type 2 with Extensions |
npeghol10.dat | Technic Peg Hole Negative for Alternate Beam Type 2 without Extensions |
npeghol11.dat | Technic Peg Hole Negative for Alternate Beam Type 3 |
npeghol12.dat | Technic Peg Hole with Extended Perimeter (One Side) and Surface |
npeghol13.dat | Technic Peg Hole with Extended Perimeter (Two Sides) and Surface |
npeghol15b.dat | Technic Peg Hole Corner with Wide Tabs on 1 Side 0.125 |
npeghol18.dat | Technic Peg Hole Corner 0.125 Without Lower Faces |
npeghol18a.dat | Technic Peg Hole Corner 0.125 without Faces |
npeghol19.dat | Technic Peg Hole Negative for Alternate Beam Type 3 Top Half without Extensions |
npeghol20.dat | Technic Peg Hole Negative for Alternate Beam Type 4 without Extensions |
Return to top |
These primitives are used to contruct technic gears and racks. Gear teeth are shaped differently depending on the diameter of the gear wheel. These primitives must not be scaled. | |
tooth8.dat | Tooth for 8-tooth Technic gears |
tooth8a.dat | Single Tooth for Technic Gear 8 Tooth Reinforced |
tooth16.dat | Tooth for 16-tooth Technic gears |
tooth24.dat | Tooth for 24-tooth Technic gears |
tooth24a.dat | Tooth for 24-tooth Technic Crown Gear Type 2 |
tooth24b.dat | Tooth for 24-tooth Technic Crown Gear Type 3 |
tooth24c.dat | Tooth for 24-tooth Technic Crown Gear Type 1 |
tooth40.dat | Tooth for 40-tooth Technic gears |
toothb12.dat | Tooth for 12-tooth Technic bevel gears |
toothb14.dat | Tooth for 14-tooth Technic bevel gears |
toothb20.dat | Tooth for 20-tooth Technic bevel gears |
tootb28.dat | Full size tooth for 28-tooth Technic bevel gears |
tootb28s.dat | Short tooth for 28-tooth Technic bevel gears |
toothd28.dat | Tooth for 28-tooth Technic Differential |
toothr.dat | Tooth for Technic Gear Racks |
toothl.dat | Tooth for Large Technic Gears |
Return to top |
These primitives represent various components of the Duplo-scale technic parts. | |
daxle.dat | Duplo technic axle section |
This primitive is comprises a 1LDu long section of duplo technic axle, including its ends. It may be scaled in the {y} dimension to produce an axle of any length. | |
daxlehole.dat | Duplo technic axle hole - closed |
This primitive produces a 1LDu long section of duplo technic axle hole structure. It may be scaled in the {y} dimension as necessary. | |
daxlehub.dat | Duplo technic axle hub |
This primitive produces a 1LDu long section of th eouter hub for a duplo technic axle hole. It may be scaled in the {y} dimension as necessary. | |
dconnhole.dat | Duplo technic connector hole |
dnpeghole.dat | Duplo technic peg hole negative |
dtooth8.dat | Tooth for 8-tooth Duplo Technic gears |
dtoothc.dat | Tooth for 24-tooth Duplo Technic crown gears |
Return to top |
Stud primitives
Each studxxx primitive described below has a matching low resolution stu2xxx primitive, used by the fast-draw mode of renderers - these stu2xxx primitive must never be used in part files. An additional primitive (studline.dat) is used to substitute a single line for studs by the super fast-draw mode of LDraw.
All stud primitives are modelled with the solid disc uppermost, even if designed for the underside of parts (stud3, stud4, stud8, stud11). The origin is at the base of the stud and they extend for 4LDU in the {-y} dimension. To use for the underside, the primitives need to be inverted in the {y} dimension, viz.
1 16 x y z 1 0 0 0 -1 0 0 0 1 stud3.dat
These primitives must not be scaled in the {x} or {z} dimensions. Ideally they should not be scaled in the {y} dimension either, to allow the accurate substitution of chamfered studs by high-quality renderers [but this rule is flouted in the regular brick files, where stud4 is scaled by 5 to generate the underside tube].
stud.dat | Regular stud |
studa.dat | Regular stud without edge around base |
studp01.dat | Regular stud with white dot |
studel.dat | Regular electric stud |
The electric contact is on the {-x} {-z} corner | |
stud10.dat | Truncated solid stud |
For use on 2x2 round parts where the stud does not hang over the edge of the part. | |
stud15.dat | Moderately truncated solid stud |
For use on 2x2 round parts where the stud does not hang over the edge of the part. | |
stud13.dat | Very truncated solid stud |
For use on the 2x2 Light&Sound siren part where the stud does not extend over the edge of the part. | |
stud2.dat | Hollow stud |
stud2a.dat | Hollow stud without edge around base |
stud2s.dat | Hollow stud sloped |
Hollow stud for inverted slope bricks. | |
stud17a.dat | Truncated hollow stud without edge around base |
For use on 2x2 octagonal parts where the stud does not hang over the edge of the part. | |
stud9.dat | Hollow stud with small hole |
stud6.dat | Truncated hollow stud |
For use on 2x2 round parts where the stud does not extend over the edge of the part. | |
stud6a.dat | Truncated hollow stud without edge around base |
For use on 2x2 round parts where the stud does not hang over the edge of the part. | |
stud3.dat | Small underside stud |
For use on the underside of parts (usually plates) between the gaps for studs. This is modelled with the solid disc uppermost. To use for the underside of plates, it is necessary to invert in the {y} dimension, like
1 16 x y z 1 0 0 0 -1 0 0 0 1 stud3.dat In real life, more recent parts use a hollow version of this underside stud. Since this serves no functional purpose and many parts exist with both varients, this feature is not modelled in LDraw parts and the solid version is always used. | |
stud3a.dat | Small underside stud without edge around base |
See note for stud3. | |
studx.dat | Cross-shaped underside stud |
stud12.dat | Cross-shaped underside stud for Minitalia parts |
stud4.dat | Ring underside stud |
See note for stud3.
A semi-circular version of this is also available as 2-4stud4.dat, and a 75% version as 3-4stud4.dat. | |
stud4a.dat | Ring underside stud without edge around base |
See note for stud3. | |
stud4s.dat | Ring underside stud with sloped end |
For use on the underside of sloping parts. See note for stud3. | |
stud4s2.dat | Ring underside stud with half sloped end |
For use on the underside of sloping parts where the slope starts midway across the stud. See note for stud3. | |
stud4o.dat | Ring underside stud without outer cylinder |
stud4od.dat | Ring underside stud without outer cylinder and top surface |
stud4h.dat | Ring underside stud with extended hole |
For use on the underside of plate thickness parts where the hole extends to the top surface of the plate. |