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.


Two dimensional

Top

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. 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  rect.dat  


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.



Three dimensional

Rectilinear primitives   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.


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.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-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.


box3-3.dat

Cuboid with 3 adjacent faces missing 3 edges

This primitive represents a cuboid missing the top {-y}, front {-z} and left {-x} faces and excludes the three 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.


box3-5a.dat

Cuboid with 3 adjacent faces missing 5 adjacent 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.


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 faces missing 4 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 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 bottome 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.


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.


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.


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.


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.


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.


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.

tri3a1.dat

Right-angled triangular prism with 3 adjacent faces missing 1 edge

tri3a4.dat

Right-angled triangular prism with 3 adjacent faces missing 4 adjacent edges

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.

boxjcylr.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




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.




      

1-8disc

      

1-4disc

      

2-4disc

      

3-4disc

      

4-4disc


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


Two dimensional

Curved primitives   Top

n-fedge.dat

Circular line segment

This suite of primitives are used for edges which comprise an entire or part circle.

Currently available primitives :
Regular resolution (n-f) : 1-16, 1-8, 3-16, 1-4, 5-16, 3-8, 7-16, 2-4, 9-16, 5-8, 11-16, 3-4, 7-8, 4-4
High resolution (n-f) : 1-48, 1-24, 1-16, 1-12, 5-48, 1-8, 7-48, 1-6, 3-16, 5-24, 1-4, 7-24, 5-16, 1-3, 3-8, 19-48, 5-12, 7-16, 11-24, 2-4, 5-8, 2-3, 3-4, 4-4


n-fdisc.dat

Circular disc sector

This suite of primitives are used for surfaces which comprise an entire or part circle.

Currently available primitives :
Regular resolution (n-f) : 1-16, 1-8, 3-16, 1-4, 5-16, 3-8, 7-16, 2-4, 5-8, 3-4, 7-8, 4-4
High resolution (n-f) : 1-12, 5-48, 1-8, 7-48, 1-6, 3-16, 1-4, 2-4, 4-4


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 :
Regular resolution (n-f) : 1-16, 1-8, 3-16, 1-4, 5-16, 3-8, 7-16, 2-4, 3-4, 7-8, 4-4
High resolution (n-f) : 1-24, 1-16, 1-12, 5-48, 1-8, 7-48, 1-6, 3-16, 5-24, 1-4, 1-3, 2-4, 4-4


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 :
Regular resolution (n-f) : 1-16 (see note), 1-8, 3-16, 1-4, 5-16, 3-8, 7-16, 2-4, 5-8, 3-4, 13-16, 7-8
High resolution (n-f) : 1-24, 1-16, 1-12, 1-8, 7-48, 1-6, 3-16, 5-24, 7-24, 1-3, 3-8, 19-48, 5-12, 1-4, 1-3

Note: The regular resolution 1-16chrd.dat is a special case, see Primitive Substitution Adapters for more information


1-16chrd.dat and 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:

  • set the curve quality to a level high enough to see the gaps reappear
  • For LDView 4.4 or later, in the Model Tree dialog, you can search for them (for example, "ering"), and if you have it set to highlight, then when you select one, it will be highlighted in the 3D view.
  • Manually recolor the primitive in question to a color that contrasts with the colors that surround it

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 :
Regular resolution (n-f) : 1-16chrd, 1-4ering, 1-8ering, 3-16ering, 2-4ering, 4-4ering
High resolution (n-f) : none


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 grey segment is generated by the 1-4tang primitive.

Currently available primitives :
Regular resolution (n-f) : 1-8, 1-4


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.

Currently available primitives :
Regular resolution :
   r=1 : 1-16rin1, 1-8ring1, 3-16rin1, 1-4ring1, 3-8ring1, 7-16rin1, 2-4ring1, 5-8ring1, 3-4ring1, 7-8ring1, 4-4ring1
   r=2 : 1-16rin2, 1-8ring2, 3-16rin2, 1-4ring2, 5-16rin2, 3-8ring2, 7-16ring2, 2-4ring2, 5-8ring2, 3-4ring2, 7-8ring2, 4-4ring2
   r=3 : 1-16rin3, 1-8ring3, 3-16rin3, 1-4ring3, 5-16rin3, 3-8ring3, 7-16rin3, 2-4ring3, 5-8ring3, 3-4ring3, 7-8ring3, 4-4ring3
   r=4 : 1-16rin4, 1-8ring4, 3-16rin4, 1-4ring4, 3-8ring4, 7-16rin4, 2-4ring4, 5-8ring4, 3-4ring4, 4-4ring4
   r=5 : 1-8ring5, 3-16rin5, 1-4ring5, 5-16rin5, 3-8ring5, 2-4ring5, 3-4ring5, 4-4ring5
   r=6 : 1-8ring6, 3-16rin6, 1-4ring6, 3-8ring6, 2-4ring6, 5-8ring6, 3-4ring6, 4-4ring6
   r=7 : 1-8ring7, 3-16rin7, 1-4ring7, 3-8ring7, 2-4ring7, 3-4ring7, 4-4ring7
   r=8 : 1-8ring8, 3-16rin8, 1-4ring8, 3-8ring8, 2-4ring8, 3-4ring8, 7-8ring8, 4-4ring8
   r=9 : 1-8ring9, 3-16rin9, 1-4ring9, 3-8ring9, 7-16ring9, 2-4ring9, 3-4ring9, 7-8ring9, 4-4ring9
   r=10 : 1-8rin10, 1-4rin10, 3-8rin10, 2-4rin10, 5-8ring10, 3-4rin10, 4-4rin10
   r=11 : 1-16ring11, 3-16ring11, 1-4rin11, 2-4rin11, 4-4rin11
   r=12 : 1-8ring12, 3-16ring12, 1-4rin12, 5-16ring12, 3-8rin12, 2-4rin12, 7-8rin12, 4-4rin12
   r=13 : 3-16ring13, 1-4rin13, 3-8rin13, 2-4rin13, 4-4rin13
   r=14 : 3-16ring14, 1-4rin14, 2-4rin14, 3-4rin14, 4-4rin14
   r=15 : 1-8rin15, 1-4rin15, 3-8rin15, 2-4rin15, 7-8rin15, 4-4rin15
   r=16 : 1-4rin16, 3-8rin16, 2-4rin16, 7-8rin16, 4-4rin16
   r=17 : 1-8rin17, 1-4rin17, 7-16ring17, 2-4rin17, 4-4rin17
   r=18 : 1-8rin18, 1-4rin18, 3-8rin18, 2-4rin18, 4-4rin18
   r=19 : 1-16ring19, 1-8rin19, 1-4rin19, 2-4ring19, 4-4rin19
   r=20 : 1-4rin20, 4-4rin20
   r=21 : 4-4rin21
   r=22 : 2-4rin22, 3-4rin22, 4-4rin22
   r=23 : 1-8rin23, 1-4rin23, 2-4rin23, 4-4rin23
   r=24 : 3-16ring24, 1-4rin24, 3-8rin24, 2-4rin24, 4-4rin24
   r=25 : 2-4rin25, 4-4rin25
   r=26 : 4-4rin26
   r=27 : 1-4ring27
   r=28 : 1-4rin28
   r=29 : 4-4rin29
   r=30 : 2-4rin30, 4-4rin30
   r=31 : 4-4rin31
   r=32 : 4-4rin32
   r=33 : 4-4rin33
   r=34 : 1-4rin34, 4-4rin34
   r=36 : 4-4rin36
   r=37 : 2-4ring37, 4-4rin37
   r=38 : 1-4rin38, 4-4rin38
   r=39 : 1-8rin39, 1-4rin39, 7-8rin39, 4-4rin39
   r=40 : 7-8rin40, 4-4rin40
   r=43 : 2-4ring43, 4-4rin43
   r=44 : 2-4ring44, 4-4rin44
   r=45 : 4-4rin45
   r=46 : 4-4rin46
   r=47 : 4-4rin47
   r=48 : 1-4rin48, 4-4rin48
   r=49 : 1-4rin49
   r=50 : 1-4rin50, 4-4rin50
   r=51 : 4-4rin51
   r=52 : 2-4rin52, 4-4rin52
   r=57 : 4-4rin57
   r=77 : 4-4rin77
   r=78 : 4-4rin78
   r=79 : 1-4ring79, 4-4rin79
   r=85 : 4-4rin85
   r=101 : 4-4ring101
High resolution :
   r=1 : 1-12rin1, 1-8ring1, 1-6ring1, 1-4ring1, 2-4ring1
   r=2 : 1-12rin2, 1-8ring2, 1-4ring2, 1-3ring2, 2-4ring2, 4-4ring2
   r=3 : 1-24rin3, 1-16rin3, 1-12ring3, 1-8ring3, 1-6ring3, 1-4ring3, 7-16rin3, 2-4ring3, 4-4ring3
   r=4 : 1-24rin4, 1-12ring4, 5-48rin4, 1-8ring4, 1-4ring4, 7-24rin4, 2-4ring4, 4-4ring4
   r=5 : 1-24rin5, 1-12rin5, 5-48rin5, 1-8ring5, 7-48rin5, 1-6ring5, 5-24ring5, 1-4ring5, 2-4ring5, 4-4ring5
   r=6 : 1-48rin6, 1-24rin6, 1-12rin6, 1-8ring6, 5-24ring6, 2-4ring6, 5-6ring6, 4-4ring6
   r=7 : 1-24rin7, 1-8ring7, 1-6ring7, 3-16rin7, 5-24rin7, 2-3ring7, 3-4ring7, 4-4ring7
   r=8 : 1-16rin8, 1-12rin8, 1-8ring8, 1-6ring8, 3-16rin8, 1-4ring8, 4-4ring8
   r=9 : 1-48rin9, 1-24rin9, 1-12rin9, 5-48rin9, 1-8ring9, 5-24rin9, 1-6ring9, 1-4ring9, 1-3ring9, 2-4ring9, 4-4ring9
   r=10 : 7-48ring10, 1-4rin10, 5-24ring10, 4-4rin10
   r=11 : 1-24ring11, 1-4rin11, 2-4rin11, 4-4rin11
   r=12 : 1-12ring12, 1-4ring12, 1-6rin12, 2-4rin12, 4-4rin12
   r=13 : 1-16ring13, 1-6rin13, 5-24ring13, 1-4rin13, 5-12ring13, 11-24ring13, 3-4rin13, 4-4rin13
   r=14 : 1-16ring14, 1-8rin14, 1-6rin14, 5-12ring14, 3-4rin14, 4-4rin14
   r=15 : 1-12ring15, 1-4rin15, 4-4rin15
   r=16 : 1-8rin16, 1-6rin16, 1-4rin16, 7-16ring16, 2-4rin16, 3-4rin16, 5-6rin16, 4-4rin16
   r=17 : 1-12ring17, 1-6rin17, 5-24ring17, 1-4rin17, 1-3rin17, 2-4rin17, 4-4rin17
   r=18 : 1-6rin18, 5-24ring18, 4-4rin18
   r=19 : 1-24ring19, 1-16ring19, 1-6rin19, 11-48ring19, 1-4rin19, 2-4rin19, 4-4rin19
   r=20 : 1-12ring20, 1-8rin20, 5-24ring20, 1-4rin20, 4-4rin20
   r=21 : 1-16ring21, 1-4rin21, 4-4rin21
   r=22 : 1-4rin22, 4-4rin22
   r=23 : 1-4rin23
   r=24 : 5-24ring24, 1-4rin24, 4-4rin24
   r=25 : 1-4rin25, 4-4rin25
   r=26 : 1-4rin26, 4-4rin26
   r=27 : 1-4rin27, 4-4rin27
   r=28 : 1-8rin28, 5-24ring28, 4-4rin28
   r=29 : 1-24ring29, 1-16ring29, 1-12ring29, 1-6ring29, 1-4rin29, 5-24ring29, 4-4rin29
   r=30 : 1-4rin30, 4-4rin30
   r=31 : 1-4rin31, 2-4rin31
   r=32 : 1-4rin32, 5-48ring32
   r=33 : 1-4rin33, 4-4rin33
   r=34 : 1-4rin34, 4-4rin34
   r=35 : 1-8rin35, 5-24ring35, 1-4rin35, 4-4ring35
   r=36 : 1-4rin36
   r=37 : 1-4rin37, 2-4ring37, 4-4rin37
   r=38 : 1-12ring38
   r=39 : 1-24ring39, 1-12ring39, 1-8rin39, 1-6ring39, 3-16ring39, 1-4rin39, 4-4ring39
   r=40 : 1-4rin40, 11-48ring40, 2-4ring40
   r=41 : 1-4rin41, 4-4rin41
   r=42 : 1-12ring42, 1-6ring42, 4-4rin42
   r=43 : 1-48ring43, 1-16ring43, 1-6ring43, 4-4ring43
   r=44 : 4-4ring44
   r=45 : 1-4rin45
   r=47 : 1-6rin47, 4-4rin47
   r=48 : 1-4rin48
   r=49 : 4-4rin49
   r=50 : 1-6rin50, 4-4rin50
   r=51 : 1-4rin51
   r=52 : 11-24ring52, 4-4rin52
   r=53 : 4-4rin53
   r=54 : 4-4rin54
   r=56 : 1-8rin56
   r=60 : 1-24ring60, 1-16ring60
   r=63 : 1-4rin63
   r=64 : 1-4rin64
   r=65 : 1-4rin65
   r=70 : 1-4rin70
   r=71 : 1-4rin71, 4-4ring71
   r=78 : 1-12ring78
   r=80 : 7-48ring80, 1-6ring80
   r=82 : 1-4rin82
   r=83 : 1-4rin83
   r=97 : 4-4rin97
   r=99 : 1-6ring99, 4-4ring99
   r=100 : 4-4ring100
   r=179 : 1-4ring179
   r=240 : 2-4ring240

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.

Currently available primitives :
Regular resolution (n-faring) : 4-4
High resolution (n-faring) : 1-4


Three dimensional

Curved primitives   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 :
Regular resolution (n-fcyli) : 1-16, 1-8, 3-16, 1-4, 5-16, 3-8, 7-16, 2-4, 5-8, 11-16, 3-4, 7-8, 4-4
High resolution (n-fcyli) : 1-48, 1-24, 1-16, 1-12, 5-48, 1-8, 7-48, 1-6, 3-16, 5-24, 1-4, 7-24, 1-3, 3-8, 5-12, 7-16, 11-24, 2-4, 5-8, 2-3, 3-4, 7-8, 4-4

Currently available primitives - without conditional lines :
Regular resolution (n-fcyli2) : 3-16, 1-4, 5-16, 2-4, 3-8, 4-4
High resolution (n-fcyli2) : 1-4, 2-4, 4-4


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 :
Regular resolution (n-fcylo) : 1-16, 1-8, 3-16, 1-4, 5-16, 3-8, 7-16, 2-4, 5-8, 3-4, 7-8, 4-4
High resolution (n-fcylo) : 1-48, 1-24, 1-16, 1-12, 5-48, 1-8, 7-48, 3-16, 5-24, 1-4, 1-3, 2-4, 4-4


n-fcylc.dat
n-fcylc2.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:
Regular resolution (n-fcylc) : 1-4, 2-4, 3-4, 4-4
High resolution (n-fcylc) : 2-4, 4-4

Currently available primitives - without conditional lines or top or bottom edge line:
Regular resolution (n-fcylc2) : 1-4, 4-4
High resolution (n-fcylc2) : 4-4

Currently available primitives - with conditional lines, but without top and bottom edge lines:
Regular resolution (n-fcylc3) : 1-4, 4-4
High resolution (n-fcylc3) :


n-fcyls.dat
n-fcyls2.dat

Circular cylinder truncated by an angled plane

1-4cyls.dat



3-8cyls.dat



2-4cyls.dat



1-4cyls2.dat


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 L3Lab, increase the zoom to 12800, deselect BFC 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 :
Regular resolution : 1-8cyls, 3-16cyls, 1-4cyls, 3-8cyls, 2-4cyls, 4-4cyls, 1-8cyls2, 3-16cys2, 1-4cyls2
High resolution : 1-4cyls, 1-4cyls2

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 :
Regular resolution (n-f) : 4-4


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 :
Regular resolution (rxs) : 4x6, 4x7, 4x8, 4x9, 4x10, 5x9


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 :
Regular resolution 1:2 (n-f) : 4-4cyl1sph2


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 :
Regular resolution :
   r=0 : 1-4con0, 2-4con0, 4-4con0
   r=1 : 1-16con1, 1-8con1, 3-16con1, 1-4con1, 2-4con1, 4-4con1
   r=2 : 1-8con2, 3-16con2, 1-4con2, 2-4con2, 4-4con2
   r=3 : 1-8con3, 1-4con3, 2-4con3, 7-8con3, 4-4con3
   r=4 : 1-4con4, 3-8con4, 2-4con4, 4-4con4
   r=5 : 1-4con5, 4-4con5
   r=6 : 1-4con6, 3-8con6, 4-4con6
   r=7 : 1-4con7, 3-8con7, 2-4con7, 4-4con7
   r=8 : 1-4con8, 2-4con8, 4-4con8
   r=9 : 3-16con9, 1-4con9, 3-8con9, 4-4con9
   r=10 : 1-8con10, 1-4con10, 2-4con10, 4-4con10
   r=11 : 1-4con11, 2-4con11, 4-4con11
   r=12 : 1-4con12, 3-8con12, 2-4con12, 4-4con12
   r=13 : 1-4con13, 2-4con13, 4-4con13
   r=14 : 1-4con14, 4-4con14
   r=15 : 1-4con15, 2-4con15, 4-4con15
   r=16 : 4-4con16
   r=17 : 4-4con17
   r=18 : 1-4con18, 4-4con18
   r=19 : 1-8con19, 1-4con19, 2-4con19, 4-4con19
   r=20 : 1-8con20, 3-8con20, 4-4con20
   r=21 : 4-4con21
   r=22 : 4-4con22
   r=23 : 1-4con23
   r=24 : 1-4con24, 4-4con24
   r=25 : 4-4con25
   r=27 : 1-4con27
   r=28 : 1-8con28, 1-4con28, 4-4con28
   r=29 : 4-4con29
   r=30 : 4-4con30
   r=31 : 1-4con31
   r=32 : 4-4con32
   r=33 : 4-4con33
   r=34 : 3-8con34
   r=35 : 4-4con35
   r=36 : 4-4con36
   r=41 : 4-4con41
   r=42 : 4-4con42
   r=43 : 4-4con43
   r=46 : 4-4con46
   r=47 : 4-4con47
   r=48 : 4-4con48
   r=61 : 4-4con61
   r=80 : 4-4con80
   r=81 : 4-4con81
High resolution :
   r=0 : 4-4con0
   r=1 : 1-4con1, 4-4con1
   r=2 : 1-4con2, 5-12con2, 4-4con2
   r=3 : 1-4con3, 5-24con3, 4-4con3
   r=4 : 1-12con4, 1-6con4, 1-4con4, 4-4con4
   r=5 : 1-12con5, 1-8con5, 1-6con5, 1-4con5, 4-4con5
   r=6 : 5-48con6, 1-8con6, 1-4con6
   r=7 : 1-24con7, 1-12con7, 1-6con7, 4-4con7
   r=8 : 1-6con8, 1-4con8, 4-4con8
   r=9 : 1-16col9, 5-48con9, 1-8con9, 5-24con9, 1-4con9, 4-4con9
   r=10 : 1-24con10, 5-24con10, 4-4con10
   r=11 : 1-16con11, 1-8con11, 1-4con11, 4-4con11
   r=12 : 1-24con12, 5-48con12, 1-8con12, 5-24con12, 1-4con12, 4-4con12
   r=13 : 1-6con13, 1-4con13, 4-4con13
   r=14 : 1-24con14, 5-24con14, 1-4con14, 3-8con14
   r=15 : 1-8con15, 1-4con15, 4-4con15
   r=16 : 1-24con16, 1-6con16, 5-24con16, 1-4con16, 3-8con16, 4-4con16
   r=17 : 1-6con17, 4-4con17
   r=18 : 4-4con18
   r=19 : 1-16con19, 3-16con19, 1-4con19, 4-4con19
   r=20 : 1-16con20, 4-4con20
   r=21 : 1-4con21, 4-4con21
   r=22 : 4-4con22
   r=23 : 1-4con23, 4-4con23
   r=24 : 1-24con24, 1-16con24, 1-12con24, 1-4con24, 4-4con24
   r=25 : 1-4con25, 4-4con25
   r=27 : 4-4con27
   r=28 : 1-4con28
   r=29 : 5-48con29
   r=32 : 1-4con32
   r=31 : 1-6con31, 4-4con31
   r=32 : 1-4con32
   r=35 : 4-4con35
   r=36 : 1-4con36, 4-4con36
   r=38 : 1-4con38
   r=39 : 1-4con39, 4-4con39
   r=40 : 1-4con40
   r=41 : 1-4con41, 4-4con41
   r=45 : 1-6con45
   r=46 : 1-6con46
   r=52 : 1-4con52
   r=54 : 4-4con54
   r=64 : 4-4con64
   r=70 : 4-4con70


tffirrrr.dat
tfforrrr.dat
tffqrrrr.dat

rfforrrr.dat
rfforrrrr.dat

Circular torus

inner


outer

tube

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.

regular inner torus

regular outer torus

reverse ratio outer torus

Currently available regular torus primitives :
Regular resolution :
   

Inner :

t01i0702, t01i0714, t01i0769, t01i1579, t01i1667, t01i2000, t01i3261, t01i3333, t01i3600, t01i5556, t01i6000

t02i1111, t02i2000, t02i2258, t02i4000

t04i0462, t04i0625, t04i0857, t04i1111, t04i1304, t04i1333, t04i1429, t04i1765, t04i2000, t04i2258, t04i2500, t04i2667, t04i3333, t04i4167, t04i5000, t04i6381

t08i0909, t08i2000

t16i0909, t16i2000

   

Outer :

t01o0556, t01o0625, t01o0667, t01o0714, t01o1154, t01o1250, t01o1429, t01o1579, t01o2222, t01o2500, t01o3333, t01o3571, t01o3750, t01o3810, t01o3889, t01o4000

t02o0526, t02o1111, t02o1176, t02o2000, t02o3333

t04o0462, t04o0625, t04o0833, t04o0857, t04o1111, t04o1250, t04o1304, t04o1333, t04o1429, t04o1538, t04o1667, t04o1765, t04o1905, t04o2000, t04o2500, t04o2667, t04o3077, t04o3333, t04o3750, t04o4167, t04o5000, t04o6250, t04o6667, t04o7000, t04o7500, t04o8750, t04o8889

t08o0727, t08o0909, t08o2000, t08o6250

t16o0909, t16o1429, t16o2000, t16o6250

   

Tube :

t01q0702, t01q1429

t02q3333, t02q5455

t04q0625, t04q1000, t04q1316, t04q1538, t04q2500, t04q2857, t04q3030, t04q3333, t04q3529, t04q3750, t04q4000, t04q5000, t04q5455, t04q7143, t04q7500, t04q9231

t08q4000, t08q5000, t08q7500

t16q4000, t16q5000, t16q7500


High resolution:
   

Inner :

t04i0455

t12i8333

   

Outer :

t01o2000

t04o0455, t04o2000

t08o0625, t08o2500

t12o0349, t12o0625

   

Tube :

t06q5000


Currently available reverse ratio torus primitives :
Regular resolution :

r04o1000, r04o1333, r04o1375, r04o1500, r04o2000, r04o3000, r04o4600

High resolution :

r04o11000

r08o2000, r08o11000

1-4ccyli.dat

Circular torus (obsolete)

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


Currently available primitives :
Regular resolution : 1-8, 2-8, 4-8, 8-8
High resolution : 2-8, 4-8, 8-8


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.



Technic primitives

Technic axle primitives

Top

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 is 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.

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.

axleho10.dat

Technic axle hole - tooth surface
This primitive used to produce the fill the "plus-shaped" cross section of a technic axle to the bounding circle.

axlehol7.dat

Technic axle hole - sides
This primitive is 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 is comprises a 1LDu long section of technic axle, without any ends. 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.

axlehol9.dat

Technic axle hole - tooth inner edges
This primitive produces the inner edges of the "plus-shaped" technic axle.


Reduced axle hole

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.

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.

axl2hol8.dat

Technic axle hole reduced - perimeter
This primitive is comprises a 1LDu long section of reduced technic axle, without any ends. 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.

axl2hol9.dat

Technic axle hole reduced - tooth inner edges
This primitive produces the inner edges of the reduced "plus-shaped" technic axle.


Semi-reduced axle hole

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.

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.

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.

axl3hol8.dat

Technic axle hole semi-reduced - perimeter
This primitive is comprises a 1LDu long section of semi-reduced technic axle, without any ends. 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.

axl3hol9.dat

Technic axle hole semi-reduced - tooth inner edges
This primitive produces the inner edges of the semi-reduced "plus-shaped" technic axle.


Special axle primtives

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.


Technic castellated bush primitives

Technic primitives   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

Technic bush primtives

Technic primitives   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



Technic connector primitives

Technic primitives   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

connect8.dat

Technic connector - long with collar and blind hole

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

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

confric5.dat

Technic connector with friction - long with collar and slot

confric4.dat

Technic connector with friction - long with collar and blind hole

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


Technic connector hole primitives

Technic primitives   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

peghole5.dat

Technic connector hole - 180 degrees - medium

peghole4.dat

Technic connector hole - 180 degrees - short

peghole3.dat

Technic connector hole - 90 degrees

npeghole.dat

Technic connector hole negative without top surface extensions

npeghol7.dat

Technic connector hole negative without top surface extensions - half

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.

npeghol4.dat

Technic peg hole to connector hole negative with top surface extensions
This primitive is designed to fill the gap between an axlehol4 or axlehol5 primitive and a Technic peg hole.

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


Technic gear tooth primitives

Technic primitives   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

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


Technic Duplo primitives

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

Stud-related primitives

Stud primitives

Stud-related primitives   Top

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.

stud4fns.dat

Ring underside stud with fillet stubs
For use on the underside of parts where a strengthening fillet joins the stud. The number of fillets is indicated by n: 1=one fillet, 2=two opposite fillets, 3=three fillets, 4=four fillets, 5=two adjacent fillets. The fillet width is indicatd by s: n=narrow (2LDu), s=standard (3LDu), w=wide (4LDu)
Currently available primitives:
One fillet: stud4f1n, stud4f1s
Two opposite fillets: stud4f2n, stud4f2s, stud4f2w
Three fillets: stud4f3s
Four fillets: stud4f4n, stud4f4s
Two adjacent fillets: stud4f5n

stud16.dat

Ring underside stud - split
A divided underside stud, as typically used in minifig headwear. See also note for stud3.

stud21a.dat

Ring underside stud - split with single wide slot
A partially divided underside stud, used on pull-back motors. See also note for stud3.

stud22a.dat

Ring underside stud - split with double wide slot
A divided underside stud, used on pull-back motors. See also note for stud3.

stud18a.dat

Stud Tube Open Snap

stud23.dat

Square underside stud hole

stud5.dat

Scala stud

stud7.dat

Duplo hollow top stud

stud7a.dat

Duplo hollow top stud without edge around base

stud8.dat

Duplo hollow underside stud

stud11.dat

Large Duplo hollow underside stud

stud14.dat

Quatro stud

stud25.dat

Quatro underside stud

primotop.dat

Duplo Primo Stud

primobot.dat

Duplo Primo Underside Stud Socket

zstud.dat

Znap connector stud



Stud group primitives

Stud-related primitives   Top

Stud groups are provided to reduce the size of part files with many regularly spaced studs. The naming convention is stugN-XxZ.dat, where:

  • N = type of stud (regular stud, hollow stud, underside stud, etc.)
  • X = number of studs on the x axis
  • Z = number of studs on the z axis

To prevent an overload of the library with excessive combinations, the numbers on the x and z axis are limited to:

  • 1xZ stugs
  • Xx1 stugs (Due to stud orientation you cannot rotate a 1xZ stud group by 90 degrees to get a Xx1 stud group)
  • XxZ stugs where X = Z

These primitives must not be scaled.

stugmxn.dat

Stud group

Currently available primitives :

Regular stud (stug-mxn) :1x2, 1x3, 1x4, 1x5, 1x6, 1x7, 1x8, 1x9, 1x10, 1x11, 1x12
2x1, 2x2
3x1, 3x3
4x1, 4x4
5x1, 5x5
6x1, 6x6
7x1, 7x7
8x1, 8x8
9x1, 9x9
10x1
11x1
12x1
16x16
Hollow stud (stug2-mxn) : 1x2, 1x3, 1x4, 1x6, 1x8, 1x10, 1x12
2x1, 2x2
3x1
4x1, 4x4
6x1
10x1
12x1
Underside solid stud (stug3-mxn) : 1x2, 1x3, 1x4, 1x5, 1x7
Underside hollow stud (stug4-mxn) : 1x2, 1x3, 1x4, 1x5, 1x6, 1x7, 1x9, 1x11
2x2
3x3
4x4
5x5
6x6
7x7
Open Duplo stud (stug7-mxn) : 1x7, 2x2, 4x4, 6x6
Underside Duplo stud (stug8-mxn) : 1x3, 1x5
Solid Duplo stud (stug20-mxn) : 1x6, 1x7, 1x8
2x2
3x3
4x4
5x1
7x1, 7x7
8x8



Miscellaneous primitives

Text primitves

Miscellaneous primitives   Top

The section comprises reusable glyphs for constructing text patterns. These primitives may be re-sized.

The naming convention for these primitives is typeffci, where ff is an arbitrary two-letter abbreviation for the typeface, c is the glyph class (u=upper case letter, l=lower case letter, n=number, s=symbol, a=accented letter) and i is the glyph identifier (a-z for the upper and lower case letters, 0-9 for the numbers).

typestci.dat

Stencil typeface

Currently available primitives :

ua, ub, ud, ue, uf, uh, ui, uk, ul, um, un, uo, ur, us, ut, uv, uw, uy, n0, n5, s4 (dollar symbol)

Primitives for ZNAP parts

Miscellaneous primitives   Top

This section comprises primitives for the ZNAP parts, all of which have been modelled and released into the official library.

znap1.dat

znap2.dat

znap3a.dat

znap3b.dat

znap4.dat

znap5.dat

znap6.dat


Arm, Clip and Pin primitives

Miscellaneous primitives   Top

This section comprises miscellaneous primitives that do not fit neatly into any of the other categories. All are highly specialised and represent components of parts which fit together with each other or other standard parts. As such these primitives are not intended to be re-sized.


arm1.dat

Cylindrical arm two-fingered hinge

This primitive produces two-fingered hinge component of the cylindrical arm with a radius of 10LDu.


arm2.dat

Cylindrical arm three-fingered hinge

This primitive produces three-fingered hinge component of the cylindrical arm with a radius of 10LDu.


arm3.dat

Cylindrical arm three-fingered hinge with truncated middle finger

This primitive produces three-fingered hinge component of the cylindrical arm with a radius of 10LDu.


clh1.dat

Click-lock hinge single finger for bricks
This primitive produces the single finger of a click-lock hinge for use on bricks. To use on the side of bricks, rotate accordingly and place 10LDu below the top surface of the brick. To use on the top of bricks, rotate accordingly and place 4LDu below the top surface, centered on the stud location.

clh3.dat

Click-lock hinge single finger for arms
This primitive produces the single finger of a click-lock hinge for use on cylindrical arms.

clh6.dat

Click-lock hinge single finger for plate sides and ends
This primitive produces the single finger of a click-lock hinge for use on the sides or ends of plates. To use, rotate accordingly and place 2LDu below the top surface.

clh8.dat

Click-lock hinge single finger for crevices and ledges
This primitive produces the single finger of a click-lock hinge for use within crevices and on ledges. To use, rotate accordingly and place 1LDu below the top surface centred on a stud location.

clh2.dat

Click-lock hinge single finger for plate top
This primitive produces the single finger of a click-lock hinge for use on the top of plates. To use, rotate accordingly and place 1LDu below the top surface, centered on the stud location.

clh9.dat

Click-lock hinge single finger for plate top with groove.
This primitive produces the single finger of a click-lock hinge with a groove for use on the top of plates. To use, rotate accordingly and place 1LDu below the top surface centered on stid location.

clh4.dat

Click-lock hinge half dual finger for bricks and plates
This primitive produces one of the pair of a two finger click-lock hinge. Parts typically require two of these primitives rotated 180 degrees on the {z} axis. To use on the side of bricks, rotate accordingly and place 10LDu below top surface and 6 LDu off side surface. To use on the side of plates and windscreens, rotate accordingly, place 2LDu below top surface and 6LDu off side surface.

clh5.dat

Click-lock hinge half dual finger for arms
This primitive produces one of the pair of a two finger click-lock hinge. Parts typically require two of these primitives rotated 180 degress on the {z} axis.

clh10.dat

Click-lock hinge half dual finger - 7 position, missing clicks 4 and 6
This primitive produces one of the pair of a two finger click-lock hinge, with reduced positions. Parts typically require two of these primitives rotated 180 degrees on the {z} axis. To use on the side of bricks, rotate accordingly and place 10LDu below top surface and 6 LDu off side surface. To use on the side of plates and windscreens, rotate accordingly, place 2LDu below top surface and 6LDu off side surface.

clh11.dat

Click-lock hinge half dual finger - 7 position, missing clicks 2 and 4
This primitive produces one of the pair of a two finger click-lock hinge, with reduced positions. Parts typically require two of these primitives rotated 180 degrees on the {z} axis. To use on the side of bricks, rotate accordingly and place 10LDu below top surface and 6 LDu off side surface. To use on the side of plates and windscreens, rotate accordingly, place 2LDu below top surface and 6LDu off side surface.

4-4crh1.dat

Click rotation ring with stop ring

4-4crh2.dat

Click rotation ring without stop ring

clip1.dat

Vertical clip for Flags

This primitive produces a vertical clip designed to hold an 8LDu diameter pole or rod at be used for flag parts.


clip2.dat

Vertical clip for Bricks

This primitive produces a vertical clip designed to hold an 8LDu diameter pole or rod at be used for brick parts.


clip5.dat


clip9.dat


clip10.dat


clip4.dat

Vertical clip - three fingered

This primitive produces a three-fingered vertical clip designed to hold an 8LDu diameter pole or rod.


clip7.dat


clip12.dat

Thick 'C' clip

This primitive produces a thick 'C' clip for use with organic shape parts with a clip (claws, arms, weapons...).


clip13.dat

Thick 'C' clip minimal

This primitive produces a thick 'C' clip, with minimal surfaces.


clip3.dat

Horizontal clip

This primitive produces a horizontal clip designed to hold an 8LDu diameter pole or rod.


clip6.dat


clip8.dat


clip11.dat


finger1.dat

Bottom finger for classic windows

This primitive produces a single finger for the base of classic windows.


h1.dat

Two-fingered plate hinge
This primitive produces the standard two-fingered hinge with a depth of 8LDu - the thickness of a plate.

h2.dat

Three-fingered plate hinge
This primitive produces the standard three-fingered hinge with a depth of 8LDu - the thickness of a plate.

plug34.dat

Electric Plug Pin
This primitive produces the pin for electric plugs of type 3 and 4.

wpin.dat

Wheel holding pin

wpin2.dat

Wheel holding pin with two fillets

wpin2a.dat

Wheel holding pin with two fillets missing bottom faces

wpin3.dat

Wheel holding pin with three fillets

wpin4.dat

Wheel holding pin with ridges

wpinhol2.dat

Wheel holding pin hole, type 2

bump5000.dat

Bump
This class of primitives produces shallow hemisperical bumps, primarily used as locators for window and door inserts.

slotm.dat

Mursten Brick Slot
This primitive is used for the window/door slots on Mursten bricks.

handle.dat

Handle for flat minifig shields.


handle2.dat

Handle for curved minifig shields.


rail12v.dat

Electrical connector for 12V train track




Last updated 03 February 2018, to include LDraw updates up to 2018-01, by Chris Dee.