# How to 3D print an object with variable printing speed?

I have a object to print for which I want the base to be printed very rapidly because it's just a cube but as the print reached around 70% a complex circular structure needs to be printed at a slower speed. Is there any way I could control the speed at the given percentage of job done?

I want the cube to be printed at 50mm/s and the complex circular structure at 40mm/s.

Printer Type - FDM

• What printer? What slicer? – Tom van der Zanden Aug 18 '16 at 6:57
• @TomvanderZanden I use Cura. I don't think this is a printer specific feature because the speed can be changed for RAFT and the object itself. The question could also lead to a suggestion of a software which could alter the printing as required by some parameters or a way to modify the gcode to alter the speed at a certain point. – Jash Jacob Aug 18 '16 at 7:29
• It's printer specific in the sense that you hadn't even mentioned whether you have a FDM, SLS, DLP,... printer. – Tom van der Zanden Aug 18 '16 at 9:41
• You know, 50 and 40 are nearly the same speed... even more so when you factor in firmware acceleration slowdowns around complex shapes. How much real print time are you saving by printing the cube part a little faster? – Ryan Carlyle Aug 18 '16 at 19:53
• @RyanCarlyle Around 30-40 minutes. I would want to go even faster in some cases so I wanted a general solution. – Jash Jacob Aug 19 '16 at 5:05

Simplify3D has the ability to create more than one process, to be applied to the model at specific layers. It appears that feature fits perfectly with your requirements. As an example, you might create a process within S3D for layers 1 to 500 at the desired 50 mm / sec along with any other modifications you wish. The second process would specify layers 501 to 800 to be printed at 40 mm / sec.

The preview mode of S3D allows you to identify layer numbers in order to provide the necessary precision.

• Can you also set, say, a 'pause' between layer groups? I'm thinking of a case where one might want to change filaments. – Carl Witthoft Aug 19 '16 at 16:36
• It would depend on the controller within the printer, but many devices support a pause g-code. This link is specific to reprap, but other printers as well as CNC devices have capability: reprap.org/wiki/G-code#M226:_Gcode_Initiated_Pause – fred_dot_u Aug 19 '16 at 22:43

As @fred_dot_u mentions, Simplify3D has the capability to do this, but you can achieve the same effect by slicing the file twice, once at 40mm/s and once at 50mm/s, and then manually combining the generated G-code using a text editor. You should be able to find the point where it transitions from printing the cube to printing the circular structure by looking at the Z-height, and you can simply copy-paste the G-code from that point onward from the 40mm/s file into the 50mm/s file.

For instance, you might look for a point like this in the G-code (Cura):

G1 F3600 X113.543 Y94.098 E105.96969
;LAYER:25
G0 F7800 X113.743 Y91.369 Z2.700


or this (Simplify3D)

G1 X175.981 Y74.019 F2880
; layer 25, Z = 1.869
; inner perimeter
G1 X162.982 Y57.870 F7500
G1 Z2.069 F900


Note that the both include a comment line (a line that starts with ;) to indicate the layer. Everything before that you should copy from one file, everything afterwards from the other.

• This is a neat tip. Could you show a quick example on what a person should be looking for? – Jash Jacob Aug 19 '16 at 10:21

Cura has a plugin called "Tweak at Z" that let's you change the speed at a specific layer/height, I used it when printing an object that's basically a curved box for 100mm and then has tiny features in the last 10mm and it worked very well.