How to print just the part, nothing else

Hi,
I wounder how can I force X1 Carbon to print only the part and nothing else.

I often want to print small parts one after the other with the same filament.
So I would like to force printer to only print the part and skip everything else.

  1. initial purge after loading filament
  2. this lines at the perimeter of the build plate.

How do I do that?

Cris.

Hello Meldner.tech,

This will help get you started.

You can also add custom bed Z offsets as needed to the start G-code below the nozzle load line.

;===== for Textured PEI Plate, High Temp Plate and Wham Bam Plate ===============
;curr_bed_type={curr_bed_type}
{if curr_bed_type==“Textured PEI Plate”}
G29.1 Z{-0.04} ;squish of -0.04mm for Textured PEI Plate
{elsif curr_bed_type==“High Temp Plate”}
G29.1 Z{+0.02} ;raise of 0.02mm for High Temp or Wham Bam Plate
{endif}

Ok I have made some updates to the start G-code, but would like to customize a bit more.

  1. Can someone explain what E command does and how it is used.

  2. Also in the code there is G0 used with F. does Bambu printer makes rapid movements with specified speed?

Cris.

E is the extruder movement; this is a distance measurement on most 3d printers where E2 means 2 mm this can be different depending on the printer’s firmware.

Samples:

G0 E2 F300 ; Nozzle 2 mm purge blob and F is the speed F300 = 5mm/s

G1 E-0.8 F1800 ; Retract some filament

The G0 and G1 commands both perform linear movements Marlin has loads of information on these if you need more information.

I am kind of familiar with G-code in general, as I am running my DIY CNC mill.
G0 accepting F was a surprise.

But getting back to E.
how is the rate of the extrusion set?
It seems that F sometimes defined extrusion speed and sometimes linear motion speed.

Cris.

Are you doing a custom purge line ?

I think this is what you want to know.

G1 E-0.8 F1800 ; Retract some filament

G1 X## E1.2 ; The E 1.2 would be the extrusion line width and the speed would be F1800 unless you change it again in the g-code after the ; Retract some filament

E value is calculated in conjunction with the printhead speed and distance
.

You can also do things like this with purge lines.

G1 Y## E2 F{outer_wall_volumetric_speed/(0.3*0.6) * 60 / 2} ; over extrude the first part at half speed

G1 X## E6 F{outer_wall_volumetric_speed/(0.3*0.6) * 60} ; standard extrusion

To test your g-code purge settings put the code in your start g-code slice a file and see what happens in the preview screen on your purge lines.

Thanks for the effort,
and it is entirely my fault that I am not getting it (at lease not yet).

What I am trying to do now is I want to check and understand what is in the standard start g-code provided by bambulab to be able to find pieces I want to change.

At this point I need to understand the syntax of using E command.

So for instance:
G1 X100 F100 - should result in toolhead travelling to X100 with a speed of 100mm/min

But in the same time will extruder extrude filament?

in the same time:
G1 E-0.8 F1800 - should result in retracting some filament. so in this context F1800 seems to set extrusion rate. but in what units? mm/min or some volumetric mm^3/min?

And this command:
G1 x100 E1 F300 - how E1 and F300 interact? E1 seems to be some arbitrary extrusion distance but than how this goes together with requirement to extrude appropriate volume of filament for the length of the travel so from wherever toolhead is to X100.
It is obviously not the case so extrusion distance needs to be calculated for every move like F in inverse time movement mode.

So trying some simple examples:

  1. lets say I want to extrude 5mm of filament without any movement. Would it just be:
    G1 E5 with optionally use of Fxxxx to set extrusion rate?

  2. lets say I want to make a line traveling at 100mm/min and extruding 20mm^3/min. How do I code that?
    xxxx

At this point I need understanding on basic syntax for the extruder codes uses.

Cris.

So for instance:
G1 X100 F100 - should result in toolhead traveling to X100 with a speed of 100 mm/min

  • Yes and @ 1.67 mm/s = Snail speed lol

But at the same time will extruder extrude filament?

  • No

in the same time:
G1 E-0.8 F1800 - should result in retracting some filament. so in this context F1800 seems to set the extrusion rate. but in what units? mm/min or some volumetric mm^3/min?

  • This would be just a retraction of 0.8 and the F1800 would be the extruder motor retraction speed in mm/min or 30 mm/s. We have no G move commands in this g-code.

And this command:
G1 x100 E1 F300 - how do E1 and F300 interact? E1 seems to be some arbitrary extrusion distance but then how this goes together with requirement to extrude appropriate volume of filament for the length of the travel so from wherever toolhead is to X100.

  • This would be a X100 move with a very thin extrusion line and slow print head travel speed @ 5 mm/s

So trying some simple examples:

  1. Let’s say I want to extrude 5 mm of filament without any movement. Would it just be:
    G1 E5 with optionally use of Fxxxx to set extrusion rate?
  • Yes and the Fxxxx would be the extruder motor deretraction speed now if you don’t put a F speed value in this g-code it will use the last F value it seen let just say it was the G1 x100 E1 F300 so the deretraction speed would be F300
  1. Let’s say I want to make a line traveling at 100 mm/min and extruding 20mm^3/min. How do I code that?
  • G1 X120 E10 F100 ; The E will adjust the amount filament extruded and affect the line width; it can be like E2 to E10 for a purge line on the bed plate.

  • 20mm^3/min you would have to do extruder testing to figure this out I don’t know off hand.

I have exported g-code from random model.
It seems that for every G1 line of code appropriate E value is calculated based on the move length.
So it seems this works like inverse time mode for extruder. This explains a lot.

So F command actually defines either linear speed of the toolhead or extruding speed depending on whether linear move takes place.
If not than it simply defines extrusion speed, and if yes it defines linear toolhead speed and extruder just extrudes given amount of filament in the same time.

Therefore it seems that all restrictions line volumetric extrusion rate are controlled by the slicer and not the printer.

Do I get this right?

Cris.

Yes

They have the start g-codes commands and then the slicer g-codes plus all the other g-codes in the printer settings machine G-code tab you can tweak as needed… :smiley:

OK I totally get it now.

here is an explanation how you can understand this, this may be useful for someone that is coming from CNC milling background.

In fact we have a very simple situation here. 3D printer is just a 4 axis machine.
Only it works slightly different from what you may be used to.

We have standard 3 axis XYZ system for toolhead movement and we have 4-th axis E, that is the extruder.

XYZ work in standard absolute mode and G1, G2 and rest of movement commands work just as in any 3axis machine. F, as always specifies feed rate, that is speed of linear movement of the toolhead.

E, the 4-th axis, works a little bit different, as it is also linear axis moving in mm, but it always work in incremental mode.
So any E command causes filament to move of specified distance during current movement.

So in fact controller is feed with a series of standard commands for 4 axis system
for example:
G1 X100 Y20 Z50 E3 F100

now it is quite simple to understand, XYZ movement of the toolhead is executed at feed of F100 and during the time required to travel XYZ distance E axis (extruder) will extrude 3mm of filament.

What will be the physical effect of such movement, neither controller, nor the printer it self does not care.
It is the pre processor (slicer) that does all the math and takes in to account other user input like line weight, layer height, max volumetric flow of the filament, etc.
Than for each XYZ movement that is required to produce expected shape, slicer calculates required volume of filament, and than in the end length of the filament, that needs to be pushed through the extruder during this particular movement.
And exports all of that in simple set of commands for the controller
G1 X Y Z E
G2 X Y Z E

And it is the same when there is a command for the extruder it self only. So for instance filament purge or retraction.
In such case slicer will export a command to move only E axis, but in such case linear speed appropriate for toolhead movement in 3D space will most likely not be appropriate for the extrusion rate that is feasible.
Thus slicer also explicitly sets F for this particular move.
G1 E10 F10

And resets it again when next move of the toolhead is to take place.

So in fact it is super easy, and I couldn’t figure this out not expecting this is so simple.
I thought, I do not really know why, that it is the printer that takes care of some high level control of the extrusion process.

But now I know, and had made a step forward.

Cris.