Difference between revisions of "Tools:Ditto3DPrinter"

From Lancaster And Morecambe Makers
Jump to: navigation, search
(File Formats)
Line 145: Line 145:
  
 
This section is just to help you understand the difference between the different file formats used in 3D printing.
 
This section is just to help you understand the difference between the different file formats used in 3D printing.
 +
 +
The process of designing and printing a 3D model goes something like this:
 +
 +
* Create the model in a 3D design package. As you go along you'll be saving the model in the program's native format.
 +
* Save it to a 'mesh format' for export.
 +
* Open the mesh file in Cura and slice it.
 +
* Export from Cura to a G-Code file.
 +
* Import the G-Code into the printer control program (Octoprint).
 +
* Print the object.
 +
 +
There are 3 different file formats here, with different purposes, which are explained in this table.
 +
 +
{|
 +
{!Format type!!Examples!!Notes
 +
|-
 +
|Native||.blend (Blender), .fcstd (FreeCAD), .123d (Autodesk 123D)||Native files contain all the information a program needs to recreate the working state of the the project you are working on. This can include a lot of information not needed for printing, such as textures. Also, the information is stored in a form which reflects the way the model was built up inside the program. For example a dumbbell object might be stored as the coordinates of a cylinder with spheres on either end.
 +
|-
 +
|Mesh||[https://en.wikipedia.org/wiki/STL_%28file_format%29 .stl], [https://en.wikipedia.org/wiki/Wavefront_.obj_file .obj], [https://en.wikipedia.org/wiki/Additive_Manufacturing_File_Format#Geometry_specification .amf]||Mesh files contain the only detailed geometry of the surfaces that make up the shapes in the model, stored as the coordinates of a set of polygons (usually triangles). The format is simpler to interpret by another program, because all it has to do is place triangles into a mesh, but most of the information on how to work with the object in the original program is lost. For example it would be difficult to make the weights of the dumbbell smaller while keeping the bar the same length.
 +
|-
 +
|Numerical control||G-Code||In a numerical control language file (G-Code is the most common), the original model is broken down still further into a (long) series of instructions telling the printer exactly what to do at the level of 'Set the head travel speed to 50mm/sec. Move 7mm along the X axis and 3mm along the Y axis while feeding filament at 1mm/sec. Stop feeding filament. Now move 0.2mm along the Z axis.' and so on. This keeps the printer control software as simple as possible - it just has to know how to follow a series of very primitive instructions in this form.
 +
|}
  
 
== Setting up the printer ==
 
== Setting up the printer ==

Revision as of 04:11, 16 February 2016

These are some instructions on how to use Tom's 3D printer (called 'ditto'). They are based on notes I took while Tom was showing me how to use the printer. I'm still in the process of writing this page at the moment. Feel free to correct any mistakes when I've finished. --Highfellow (talk) 03:14, 15 February 2016 (UTC)

Please note that these instructions are not meant to replace an induction session by the owner of the printer (Tom). They are just there to save you making your own notes, and to give some additional information. In other words, please ask Tom to show you how to use the printer before you use it yourself.

Overview

To print a model, you'll need to go through the following steps:

  • Create the model in a 3D design program such as FreeCAD, Blender, or OpenSCAD. Alternatively, download a model from somewhere online, like Thingiverse. You can also print from 2D bitmaps such as JPEGS, BMPs, or PNGs. This part of the process is up to you - you should be able to find help elsewhere online.
  • Export it to a file format recognised by Cura, which is the program which renders the model file into a form the printer can understand, known as G-Code.
  • Import the file to Cura and render it into a G-Code file.
  • Start up the printer and change filament if necessary.
  • Upload the G-Code file to the printer through the web interface.
  • Start the print and wait for it to finish.
  • Remove the print from the print bed and clean the bed.

These steps are described below. First though, you'll probably also need to install and configure Cura.

Setting up Cura

Cura is the program which renders your 3D model file into a series of detailed instructions to send to the printer, written in a language called G-Code. This tells the printer exactly what to do at the level of 'move the head 3mm along the X axis while feeding filament at 1mm/sec', as opposed to the model file which is more like 'there is a surface here which is defined by the following polygons'.

To set up Cura on your laptop, you'll first need to install it from their website. If you have a debian based system like Debian, Ubuntu, or Linux Mint, you'll get a .deb package which you can install as follows (assuming you've downloaded the Cura package to <cura-package>.deb):

dpkg -i <cura-package>.deb
apt-get -f install

Next, you need to configure Cura to work with Tom's printer.

First, start up Cura. If you're running it for the first time, the 'Add new machine' dialog should open automatically; otherwise you'll need to go to the menu item [ Machine > Add new machine... ]. Click 'Next' to start the wizard, then select 'Other...' and click 'Next' and then select 'Custom...' and click 'Next'. If the 'Other' or 'Custom' radio buttons go off the end of your screen (which happened on my laptop), you can select them by clicking the button at the top of the list and pressing the up arrow key once.

Now you should be at a dialog entitled 'Custom RepRap information'. The values you need to enter are set out in the table below.

Field name Value Notes
Machine Name Ditto A name to refer to this machine by.
Machine Width X (mm) 200 Width of the printing bed (side to side).
Machine Depth Y (mm) 200 Depth of the printing bed (front to back).
Machine Height Z (mm) 160 Height of the printing bed (top to bottom).
Nozzle size (mm) 0.4 Diameter of the extruder nozzle on the printer.
Heated Bed Yes Whether the printing bed is heated
Bed center is at 0,0,0 (Rostock) No How the centre of the bed is defined in the printers internal coordinates.

Now click 'Finish'. You should now have a new entry 'Ditto' in the machine menu. Select this to use this printer.

Using Cura

Slicing settings

The next thing you need to set up are the settings which govern how the model file is rendered ('sliced'). These are settings which you might want to change from model to model, as compared with the ones above which are always the same for a given printer. You can set them using the tabs on the left hand side of the main Cura window. The only tabs we need to change for now are the Basic tab and the Start/End G-Code.

First, make sure the Basic tab is selected and fill in the fields based on the values in the following table:

Field Name Recommended Value Notes
Layer Height (mm) 0.2 The height of each layer in the print. From 0.2 - 0.1 mm
Shell Thickness (mm) 0.8 The thickness of the solid outer shell of the print. Must be a multiple of nozzle size.
Enable Retraction Yes Retract the filament when not printing.
Bottom/Top thickness (mm) 0.6 The thickness of the solid upper and lower layers. Must be a multiple of the layer height.
Fill Density (%) 20 The percentage density of the honeycombed infill inside the print. Anywhere from 5 to 40 percent is OK, but 10 to 20 is best for most models.
Print Speed (mm/s) 50 The speed at which the print head travels. This affects the quality of the print. 50 is the maximum, but reduce down towards 20 for a fine print.
Printing Temperature (C) 195 195 Degrees is right for PLA filament, which is the only filament suitable for this printer.
Bed Temperature (C) 70 70 Degrees for PLA filament.
Support Type - You can choose to create supports for overhanging parts of the model when rendering.
Platform adhesion type - You can choose to use some extra material to help the model stick to the bed.
Filament Diameter (mm) 2.85 You should really measure this on the filament you're using in a few places using calipers and average the results.
Flow (%) 100 You can change this to alter the amount of material extruded.
Nozzle Size (mm) 0.4 This is the size of the extruder nozzle.

Next, go to the 'Start/End G-Code' tab and select 'start.gcode'. Delete what is in the box at the bottom and replace it with the following:

;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21        ;metric values
G90        ;absolute positioning
M82        ;set extruder to absolute mode
M107       ;start with the fan off
G28 X0 Y0  ;move X/Y to min endstops
G28 Z0     ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0                  ;zero the extruded length
G1 F50 E20              ;extrude 3mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...

Then, replace 'end.gcode' with this:

M104 S0
M140 S0                     ;heated bed heater off (if you have it)
G91                                    ;relative positioning
G1 E-1 F300                            ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G28 X0 Y0                              ;move X/Y to min endstops, so the head is out of the way
M84                         ;steppers off
G90                         ;absolute positioning
;{profile_string}

Finally, save your new slicing profile somewhere safe, by choosing the menu item [ File > Save Profile... ].

File Formats

This section is just to help you understand the difference between the different file formats used in 3D printing.

The process of designing and printing a 3D model goes something like this:

* Create the model in a 3D design package. As you go along you'll be saving the model in the program's native format.
* Save it to a 'mesh format' for export.
* Open the mesh file in Cura and slice it.
* Export from Cura to a G-Code file.
* Import the G-Code into the printer control program (Octoprint).
* Print the object.

There are 3 different file formats here, with different purposes, which are explained in this table.

{!Format type!!Examples!!Notes
Native .blend (Blender), .fcstd (FreeCAD), .123d (Autodesk 123D) Native files contain all the information a program needs to recreate the working state of the the project you are working on. This can include a lot of information not needed for printing, such as textures. Also, the information is stored in a form which reflects the way the model was built up inside the program. For example a dumbbell object might be stored as the coordinates of a cylinder with spheres on either end.
Mesh .stl, .obj, .amf Mesh files contain the only detailed geometry of the surfaces that make up the shapes in the model, stored as the coordinates of a set of polygons (usually triangles). The format is simpler to interpret by another program, because all it has to do is place triangles into a mesh, but most of the information on how to work with the object in the original program is lost. For example it would be difficult to make the weights of the dumbbell smaller while keeping the bar the same length.
Numerical control G-Code In a numerical control language file (G-Code is the most common), the original model is broken down still further into a (long) series of instructions telling the printer exactly what to do at the level of 'Set the head travel speed to 50mm/sec. Move 7mm along the X axis and 3mm along the Y axis while feeding filament at 1mm/sec. Stop feeding filament. Now move 0.2mm along the Z axis.' and so on. This keeps the printer control software as simple as possible - it just has to know how to follow a series of very primitive instructions in this form.

Setting up the printer

Printing a model