Binary vs. ASCII STL: Choose Best File Format For 3D Printer

Native to 3D Systems’ stereolithography CAD software, STL files are commonly used for rapid prototyping and computer-aided manufacturing. Their main advantage is that they only contain the surface geometry of a 3D object, without any representation of texture, color, and other CAD attributes, making it a versatile choice. When exporting an STL file to your 3D printer, you’ll notice that you can choose between ASCII and binary format. What is the difference, and which is better?

When choosing between binary or ASCII, remember that they both contain the same model information and produce identical results. However, binary files are smaller than ASCII, taking up less space on the drive. They are also easier and faster to process. 

What is an ASCII STL File?

The STL ASCII file is the first type of stereolithography file used for 3D printing. ASCII encoding is now primarily used for testing new CAD interfaces. In fact, its large size makes it impractical for general 3D printing. 

When it comes to the STL meaning, many believe it’s an abbreviation of stereolithography. However, it actually means Standard Tessellation Language and is the file format supported by most 3D printing software packages.

File Format 

An STL ASCII file is a plain-text file containing lines of records beginning with keywords. These keywords deliver instructions to the software, telling your 3D printer what object it needs to print. 

The simple, plain text structure makes the file easy to read and render based on the small set of keywords it contains. ASCII files are also easy to view with basic editing tools. If you happen to use older software, you may even find that it can only read ASCII files.

However, this STL file format comes with drawbacks, too. The main downside is the large file size that takes up a lot of disc space. Larger files are also slower to process.

How to verify what format you have

Checking the STL file type you have is easy. Simply open the file and look at its contents. 

An ASCII-based STL file starts with the word “solid,” followed by a name and is at least 15 bytes in size. If the file starts with solid, read the name following it until you reach a break. Check the next line and see if it starts with the word “facet” or “endsolid [name].”

If the next line starts with a facet, keep checking the lines until you reach the end. The end line must start with endsolid [name]

Starting out with 3D printing and want to AVOID rookie MISTAKES? New: Filament Printing 101 Course
Starting out with 3D printing and want to AVOID rookie MISTAKES?

If all the above verifies, the file is ASCII. However, because binary files can also start with the word solid, you must check the file ending and that the second line begins with facet. Otherwise, the file is either binary or invalid.

Binary files start with an 80-byte header followed by a 4-byte unsigned integer. Each triangle facet (NumberOfTriangles) has a length of 50 bytes and consists of 12 single-precision floats (4-byte each) and a short (2-byte) unsigned integer.


What is a Binary STL File?

Binary STL files do the same thing as ASCII ones, but they are smaller and easier to process. They can’t be manipulated with a text editor like ASCII files, but the software to write and read binary files is very easy to use. 

Binary files also allow users to try new STL printing techniques, such as specifying the colors for triangles. 

File Format

While ASCII and binary files do the same thing, the binary file format is completely different. This file type consists of an 80-character header and a variable number of small triangles, which is indicated by a 4-byte unsigned integer. 

Each triangle is represented by a 32-bit little-endian integer. Moreover, each triangular facet has 50 bytes. After each triangle, there is a 2-byte sequence described as an attribute byte count. The attribute generally acts as a spacer, and its value should be zero. 

However, some newer software will use these two bytes to encode additional information about the triangle, giving users the possibility to specify the triangle color, for example.


ASCII or Binary: 6 Major Differences

Although ASCII is an older format compared to binary, most 3D printers can read both file types. The differences below should help you choose the best stereolithography file type for you in the stereolithography dialog box.

Inspect and Debug

They may be older than binary, but ASCII files are easier to inspect and debug with a text editor. Changing triangle characteristics is also easier, making ASCII files more manageable compared to binary ones. 

Binary files don’t allow for manual inspection and debugging, but the software generally aids users in inspecting, modifying, and debugging. You may need more advanced coding knowledge, though.

File Size

While ASCII files are easier to inspect and debug compared to binary, the latter wins when it comes to filing size.

Binary files cram a larger amount of information in fewer lines, resulting in smaller file sizes. On the contrary, ASCII describes each triangle separately. When working at the micron-scale resolution, this can result in massive file sizes.

For this reason, binary files are always recommended for 3D printing. Not only will a smaller format take up less disc space, but the information is easier and faster to process.

Universal

Whether you choose ASCII or binary STL file format, both types are considered universal – they are supported by almost all 3D printers. Even the new generation printers recognize both formats, allowing you to use any design software.

See also  12 Things to 3D Print When Bored (Examples + Pictures)

However, you should pay attention when using an older 3D printer or software, as they might not recognize binary encoding.

Thus, we can safely say that ASCII is more universal than binary when you want to 3D print STL files, at least for now. Comparatively, other 3D printing files like AMF, 3MF, and VRML are not widely supported. 

Metadata

When designing a 3D printing project, you may also want to include metadata in the file (such as copyright information or authorship. Unfortunately, this isn’t possible with STL files, regardless of the file format you use. That is because STL file types can only describe the surface geometry of a three-dimensional object without further attributes. 

Color Printing

As explained above, standard STL formats can only describe the surface geometry of an object without further attributes (including the internal structure, texture, and color). However, binary files give you the possibility to add color information.

You can do this using the VisCAM or SolidView software packages, changing the two attribute byte count bytes at the end of each triangle to store a 15-bit RGB color code. Each color has an intensity level from 0 to 31, coding the bits in the following way: 

  • Bits 0 to 4 – a value from 0 to 31 to define the blue color intensity 
  • 5 to 9 – a value from 0 to 31 to define the green color intensity 
  • 10 to 14 – a value from 0 to 31 to define the red color intensity 
  • Bit 15 – value 0 if the color is not valid or 1 if the color is valid

Materialise Magic also allows you to code colors in a 15-bit format, but there are slight differences compared to VisCAM or SolidView.

With Materialise Magic: 

  • Bits 0 to 4 are the intensity level for red
  • 5 to 9 are the intensity level for green
  • 10 to 14 are the intensity level for blue
  • Bit 15: 0 if the facet has its own unique color or 1 if the per-object color is to be used

Non-Manifold Edges

Non-manifold edges are a common error in STL files. They generally happen when you define an extra surface in the interior of the model and the surface edges overlap. These errors rarely cause problems during slicing, but they should be avoided because they can make the designer’s intentions unclear. 

To avoid misunderstandings, you should always add some thickness to the joined sections if you want them connected or some clearance if you don’t want to connect the pieces.


How To Print .STL Files

.STL 3D printing is easy enough for beginners, but there are a few steps to follow to ensure the positive outcome of your project. Let’s check them out.

See also  3D Printing Layer Height vs. Nozzle Size: How To Choose

1. Select the right STL resolution 

STL files use a series of interlinked triangles to recreate the surface geometry of your 3D object. When projecting the object, you can save the file at a lower or higher resolution.

When you increase the resolution, the software uses more triangles and increases the file size. However, if the resolution is too low, the printed object will have visible triangles on its surface.

Medium and fine resolutions tend to work best; ultra-fine resolutions won’t bring additional benefits, but they will only increase the file size.

2. Choose the exporting parameters

Once you’ve set the desired resolution, you should choose the right exporting parameters. There are two of them: angle and chord height

The angle (or angular tolerance) limits the angle between adjacent triangles and defines the surface smoothness. 

Most software has a default angle of 15° (or 0 in some software). It is recommended to maintain the default value unless you want to obtain a smoother surface.

The chord height defines the curvature of a surface – the smaller this number, the more accurate the curvature. The recommended chord height value is 1/20 of the 3D printing layer thickness. For thin layers, a minimum of 1 micron is recommended.

3. Export the STL files 

Every CAD software requires users to follow certain steps to export the STL file. Follow the right steps based on the software you use.

4. Save the exported STL file

CAD software generally exports STL files to the desktop or a specific folder. If you’re not controlling your 3D printer via computer, you’ll have to copy or move this file on an SD card or USB stick.

Connect the device to your computer, then open the drive. Open the folder containing your exported file and simply drag and drop it onto the external drive to save it.

5. Print the object

Connect the external drive to your 3D printer and hit the start button. Wait until done. 


Conclusion

Three-dimensional printing isn’t hard, but beginners might wonder what file format to choose. ASCII files are easier to inspect and debug, but their advantages end here. Binary files are smaller in size, easier to process, and some software even allows you to define the colors. For these reasons, binary files are the recommended STL files for 3D printing.

References 

STL (STereoLithography) File Format, ASCII – Library of Congress 

STL (STereoLithography) File Format, Binary – Library of Congress

Recent Posts