3-D Printing

Introduction

This is a quick-start guide for my friends getting started with 3-D printing. It is mostly specific to the 3-D printer that we all have, the Creality Ender-3 Pro.

The latest version of this document is always found at https://futureboy.us/blog/3d.html

Table of Contents

Where is my Documentation?

When you first open the printer box, you may be wondering "where is my documentation?" There is a printed fold-out assembly guide, but not much else.

The printer's documentation is on the little USB drive that comes with your printer! Plug this into your computer and you will find assembly videos, manuals, and test files to print. I may have also printed out some of these manuals for you.

The USB drive contains a MicroSD card which is the way you will also print your models! The MicroSD card pulls out of the USB drive carrier and is inserted into the slot on the front of your printer. The 3-D printer will read files with the .gcode file extension and print them.

Assembling the Printer

There is an assembly video on the USB drive that comes with the printer that you can play in your computer. There is also a fold-out assembly guide. Note that the order of assembly in the video does not exactly match the printed directions. Use the printed directions but refer to the video when necessary. We assembled the printer, having no idea what we were doing, in about 90 minutes working slowly and carefully. Try to figure out what each motor moves as you put it together! Here are a few things to double-check:

Leveling the Bed

The most important thing you can do to ensure a good print is making sure your print bed is leveled and at the right initial height from the nozzle. For this, you will need a typical sheet of typing paper.

Manual Leveling

For your first attempts, I recommend that you manually level the bed by using the printer's built-in menus. You will learn a lot from this! The menu items you will need are under Prepare and are:

  1. Auto Home (do this first!)
  2. Move Axis (and then move the X, Y, and Z axes a bunch of times to move the print head to each corner. Always raise the Z axis before moving on the X or Y axis!)

In short, you will first place the piece of paper on the print bed and then manually move the nozzle to all 4 corners and the center of the print bed, adjusting the bed height so that the nozzle just scrapes the piece of paper and the paper can slide with just a tiny bit of resistance. Make sure you raise the Z axis off of the bed before moving it on the X and Y axes!

To adjust the bed level at each corner, you will move the head to each corner and turn one of the 4 large black knobs on the bottom of the bed to make the nozzle just scrape the piece of paper. Turning clockwise raises the bed (makes it "tighter") and turning counterclocwise lowers the bed (makes it looser.) Repeat this several times for each corner and the middle of the bed. When adjusting the middle of the bed, you must raise or lower all of the 4 corner wheels! Repeat this process a couple of times.

In my experience, the bed may not be exactly flat, and the center of the bed may be higher or lower than the corners. Since smaller prints will be made in the middle of the bed, getting the middle of the bed height correct is the most important!

Once you've leveled the bed manually once or twice, and have learned which are the X, Y, and Z axes, there are some faster ways to help level the bed!

Bed Leveling Tools

One of the best ways to help you level your bed is by running a program from your SD card that helps move the print head to each corner of the bed. You can get some files and a video to help you level your bed from the people at CHEP Club, who provide Creality Ender Pro Tools:

Bed Leveling Tools and Video

The page above contains videos and a .gcode file, CHEP_bed_level.gcode, that you will extract to your SD card (which the printer calls a TF card) and run on your printer to make it easy to level your bed by moving the nozzle to all 4 corners and the center of the bed. Recommended!

Alternate Manual Leveling

Warning: I don't really think this is as safe as other methods. It requires disabling the stepper motors, and then manually shoving the print head around by hand. When doing this, you have to be careful not to move the print head up or down (but this means it may scrape the bed when you're moving it!)

This alternate method of leveling your bed is described in the video Ender 3 Pro Bed Leveling (Without Extra Tools or Upgrades).

Filament

This section of the document discusses working with different types of plastic filament for printing.

What Type of Filament Can I Use?

These printers can print with a couple different types of plastic:

Inserting Filament

To insert filament into your printer, it is often most useful to snip the end of the filament at a 45 degree angle. Filament is inserted into the wee hole by the filament extruder motor by squeezing the spring next to the filament extruder motor with one hand (releasing the gear teeth) and inserting the filament with the other hand. Sometimes you have to rotate and jiggle the filament until it enters the hole. It can be fed by hand into the tube until it stops at the heater/extruder block.

Removing Filament

I had difficulties figuring out how to remove/change filament from my printer. After a print, the filament is usually melted solidly into the extruder heater block, and you can't simply pinch the spring next to the extruder motor (to release the extruder motor teeth) and pull it out.

The secret is you have to preheat the extruder! Once you have preheated the extruder, a menu item will appear to let you change filament! There will be no menu item before that! This will retract the filament backwards, after which you can either squeeze the spring next to the filament motor and pull the filament out manually or control the stepper motor to retract the filament more.

While doing this, keep your filament neatly coiled! See the section Storing Filament below for tips on storing your filament.

You can then insert new filament following the instructions in Inserting Filament above. You should squeeze the spring near the extruder motor and feed the filament into the tube until it is at the extruder heater. The screen will prompt you to insert new filament. At this point, it will run the extruder motor to feed in the new filament. During this time, you will get a mixed-color ooze of old and new filament from the nozzle. Remove this before printing.

Storing Filament

As noted above, PLA plastic can be degraded by exposure to humidity. It is recommended that you store your plastic in a closed bag, and keep the dessicant packet in with it.

In addition, it is important that you keep your spools of filament neatly coiled. Many people have noted problem with their prints if the filament is not neatly coiled on the spool and gets "tangled." You know you have this problem if your spool releases with a "sproing" during printing. Most filament spools have holes around their rims that you can tightly feed the end of your filament through to keep it neatly coiled.

Cut off the ends of your filament and discard it if it's bent too tight or too damaged from the extruder motor teeth.

Software

What software do you need to print a 3-D object? The following sections will answer those questions, but the one piece of software you will almost always need is called a slicer.

Slicer

The one piece of software you'll almost always need is called a slicer. A slicer turns a 3-D model (usually in .stl format or Wavefront .obj format) into a set of commands that control how a specific printer will move its print head, when to extrude plastic, how thick to print layers, what temperatures to require, etc.

The slicer is the program that turns a general 3-D model into very specific printing commands for your 3-D printer and your type of plastic.

The slicer program will usually let you configure the print in many ways, including:

The USB drive that comes with the Ender-3 Pro contains the Creality Slicer software for Windows. You will need to install this on a Windows computer to generate your prints. (Warning: the software available at the link above is probably very different than the software that shipped with your printer!)

The output of a slicer program is a .gcode file which is specific to a certain printer and printer settings. This .gcode file is usually exported to the USB adapter/SD card that comes with your printer.

You then must safely remove/eject the USB adapter from Windows (Creality Slicer has an option safely remove the USB adapter after you export/slice a file to the SD card, as long as no other window is using that SD card) and then the SD card is removed from the USB adapter and placed into the 3-D printer (label side down.)

Other Slicer Software

I would recommend getting started with the Creality Slicer software that comes with your printer. It exposes a good set of beginner and more expert options to control your slicing and printing. Here are some other options for slicer software.

Modeling Software

To create new 3-D models for printing, you need some sort of modeling software. This is where I have the least experience. I started trying to design exactly-dimensioned engineering models in some programs but I had a hard time getting exact dimensions right. I ended up writing my own 3-D modeling software in my programming language Frink, but it's not documented yet.

Here are some options for modeling software, most of which I haven't evaluated:

Other Software

Sometimes you might need to visualize, clean up or fix models that come from elsewhere. The following is a list of software that may help with that:

Downloading Models

You may not need to design the object you're going to build! There are lots of sites on the web with downloadable 3-D models that you can slice and print!

File Formats

The file formats that are usually produced by modeling software for 3-D printing are .stl format and Wavefront .obj format. These files can both be simple text files that you can write by hand or with a program! I created my first 3-D models by creating Wavefront .obj files with some simple Frink programs.

What does an .stl or .obj file format represent? Well, all they usually represent is a bunch of triangles that represent the external hull of a 3-D object! The coordinates of the triangles are listed in counterclockwise direction as seen from the "outside" of the object. That's it! Now you can write your own! See the links below to format specifications.

When I'm generating 3D model files, I prefer Wavefront .obj file format because it, unlike .stl format, can contain planar polygons and not just triangles, and you don't need to specify the unnecessary/redundant normal vector like you do in .stl format. Wavefront format also allows you to specify a list of vertices and re-use them. This is very helpful to slicer software to know that two vertices represent the same point, and results in smaller files.

Links to file formats:

STL format notes: The surface normal in a .stl file can often be set to 0 0 0.

Wavefront .obj format notes: My slicer software can only understand simple .obj files with vertices and faces. Vertex numbers cannot be negative.

Your First Print

To print an object, you need to give your printer a .gcode file. These files contain the commands to move the printer nozzle around, extrude plastic, etc. (These are just plaintext files so you can look inside one of them with a text editor!)

The SD card that comes with your printer comes with a few sample .gcode files that you could print right away, but most of them are somewhat large and might take several hours. These .gcode files have already been "sliced" and you can't modify any of their settings.

(This next part needs fleshing out.)

I suggest that you take a small .stl or Wavefront .obj file (see the Downloading Models section) and send it through your slicer (see the Creality Slicer User Manual that comes with your printer.) Make sure it is flat to the printer bed. Scale it to about 1 inch (25.4 mm) cube. Slice it, export the .gcode file to your USB drive, eject the USB drive safely, remove the SD card from the USB carrier, place the SD card (label side down) in the slot in the front of the printer, turn the printer on, level the bed, insert filament, preheat PLA, choose print from TF, choose your .gcode file, then print.

3-D in Frink

My programming language Frink is rapidly adding features that support 3-D printing.

Here are some provisional Javadocs for Frink's 3-D routines. These will change and are intended for use in 3-D printing, and not realtime 3-D rendering. The class you want to look at is VoxelArray which contains a lot of methods for drawing primitives (like cubes, spheres, cylinders, capped cylinders, tapered cylinders,) performing constructive solid geometry (that is, taking the intersection of two objects, the union of two objects, or the difference of two objects,) extruding images and text, and more.

To see samples of Frink's increasing support for 3-D printing, search the sample programs for voxel. For older programs that render Wavefront .obj file formats directly, search for wavefront.

Videos

The following are some videos that I've found interesting:


Alan Eliasen, eliasen@mindspring.com
Twitter: @aeliasen
Back to Alan Eliasen's website
Back to Alan Eliasen's technical blog