Good morning,
I hope you don't mind me messaging you on here I've got a question about a post on your blog but I couldn't fine the contact details.
- 0 likes
👋 Hallo zusammen! Dieser Thread ist öffentlich, also lasst es uns nett und respektvoll halten. Keine Werbung, kein Spam oder unangenehme Dinge!
🇹🇭 Benutzerland: Thailand
🌐 Bevorzugte Sprache des Mitglieds: Englisch. Sie können online über DeepL übersetzen.
💡 Beziehen Sie sich auf ein bestimmtes Modell? Fügen Sie den Link, den Titel oder die Modellnummer hinzu.
🖼️ Möchten Sie Fotos einstellen? Verwenden Sie einen kostenlosen Host wie ImgBB und fügen Sie die Links in die Nachricht ein.
✍️ Schreibtipps: Verwenden Sie das Markdown-Format, um Ihre Texte zu strukturieren und lesbarer zu machen.
Good morning,
I hope you don't mind me messaging you on here I've got a question about a post on your blog but I couldn't fine the contact details.
Hi Steve. No issue at all. What is your question though??? Cheers
I've tried your start Gcode, but when it starts it doesn't actually do a purge line, I'm sure it's a tiny part i don't understand though. What should I change to get it actually doing the purge line? It's a great macro by the way, in fact, the whole blog is good.
Hi Steve. Sorry for the delayed response due to Easter and a ton of work right after. I just saw that my blog is down. Need to check what happened there. I was planning to post the "correct" Gcode there...I guess when I was posting it, some part didn't copy...Not sure which part is missing. Maybe you can do a comparison wirth the code you copied...
Anyways, to not hold you up from trying it out, here is the GCode I'm running (make sure that you change the name of the bed mesh profile to your printer name...):
[gcode_macro START_PRINT]
gcode:
#Get Printer built volume dimensions
{% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %}
{% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %}
{% set Z_MAX = printer.toolhead.axis_maximum.z|default(100)|float %}
#Get Nozzle diameter and filament width for conditioning
{% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %}
{% set FILADIA = printer.extruder.filament_diameter|default(1.75)|float %}
#Set Start coordinates of priming lines
{% set X_START = 10.0|float %}
{% set Y_START = 20.0|float %}
#Calculate Primer line extrusion volume and filament length
{% set PRIMER_WIDTH = 0.75 * NOZZLE %} #Calculate Nozzle-dependent Primer width
{% set PRIMER_HEIGHT = 0.70 * NOZZLE %} #Calculate Nozzle-dependent Primer height
{% set PRIMER_SECT = PRIMER_WIDTH * PRIMER_HEIGHT %} #Calculate Primer section
{% set PRIMER_VOL = PRIMER_SECT * (X_MAX - 3 * X_START) %} #Calculate Primer line volume
{% set FILA_SECT = 3.1415 * ( FILADIA / 2.0)**2 %} #Calculate Filament section
{% set FILA_LENGTH = 1.55 * PRIMER_VOL / FILA_SECT %} #Calculate Extrusion length with 55% overextrusion
#Get Bed and Extruder temperature from Slicer GCode
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
#Preheat nozzle and bed
M104 S{EXTRUDER_TEMP} T0 #start heating T0 to what is set in Cura
M140 S{BED_TEMP} #start heating the bed to what is set in Cura
#Clear bed mesh and reload it
BED_MESH_CLEAR
BED_MESH_PROFILE LOAD=CR10SPRO
#Home
G28
#Move up to clean bed
G0 Y{Y_MAX - 20} Z{Z_MAX/4.0} F6000 #Move toolhead to 1/3 of the build volume height and bed forward for cleaning
#Heat nozzle and bed
M190 S{BED_TEMP} #Wait to heat the bed to what is set in Cura
M109 S{EXTRUDER_TEMP} T0 #Wait to heat T0 to what is set in Cura
#Precondition extruder
G92 E0 #Reset Extruder
G0 X{X_START} Y{Y_START} Z{PRIMER_HEIGHT} F6000.0 #Move to start position
G1 X{X_MAX - 2 * X_START} Y{Y_START} Z{PRIMER_HEIGHT} F2000.0 E{FILA_LENGTH} #Draw the first line
G0 X{X_MAX - 2 * X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT} F6000.0 #Move to side a little
G1 X{X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT} F2000.0 E{2*FILA_LENGTH} #Draw the second line
G92 E0 #Reset Extruder
G0 Z2.0 F600 #Move Z Axis up
G0 Z0.2 F600 #Dip the Nozzle
G0 Z2.0 F600 #Move Z Axis up
Thats awesome, thanks.
Hi Steve. Let me know if it works for you so that I can update the code posted on the blog (which online again...)
Will do, sadly real life keeps getting in the way.
I used the website code and added the FILA_LENGTH} command to the end of a couple of lines and it worked, but now it's printing the line off my bed. I assume I can change the printer build volume dimensions to change this. Would reducing the number by 5 drag it in?
#Precondition extruder
G92 E0
G1 X{X_START} Y{Y_START} Z{PRIMER_HEIGHT} F6000.0 E{FILA_LENGTH}
G1 X{X_MAX - 2 * X_START} Y{Y_START} Z{PRIMER_HEIGHT} F2000.0
G1 X{X_MAX - 2 * X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT}
G1 X{X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT} F2000.0 E{2*FILA_LENGTH}
G92 E0
G1 Z2.0 F600
G1 Z0.2 F600
G1 Z2.0 F600
Hi. I would guess that you have a x/y offset issue. Check this: https://youtu.be/r7xHNO10H_8
Cheers
It turned out to be even easier than that.
I just adjusted the following lines and it now works perfectly.
#Set Start coordinates of priming lines
{% set X_START = 25.0|default(10.0)|float %}
{% set Y_START = 40.0|default(20.0)|float %}
Just for the record the working macro looks like this. Prints great by the way.
######################################################################
######################################################################
[gcode_macro START_PRINT]
gcode:
#Get Printer built volume dimensions
{% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %}
{% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %}
{% set Z_MAX = printer.toolhead.axis_maximum.z|default(100)|float %}
#Get Nozzle diameter and filament width for conditioning
{% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %}
{% set FILADIA = printer.extruder.filament_diameter|default(1.75)|float %}
#Set Start coordinates of priming lines
{% set X_START = 25.0|default(10.0)|float %}
{% set Y_START = 40.0|default(20.0)|float %}
#Calculate Primer line extrusion volume and filament length
{% set PRIMER_WIDTH = 0.75 * NOZZLE %}
{% set PRIMER_HEIGHT = 0.70 * NOZZLE %}
{% set PRIMER_SECT = PRIMER_WIDTH * PRIMER_HEIGHT %}
{% set PRIMER_VOL = PRIMER_SECT * (X_MAX - 3 * X_START) %}
{% set FILA_SECT = 3.1415 * ( FILADIA / 2.0)**2 %}
{% set FILA_LENGTH = 1.55 * PRIMER_VOL / FILA_SECT %}
#Get Bed and Extruder temperature from Slicer GCode
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
#Preheat nozzle and bed
M104 S{EXTRUDER_TEMP} T0
M140 S{BED_TEMP}
#Home
G28
Bed_Mesh
#Move up to clean bed
G1 Y{Y_MAX - 20} Z{Z_MAX/4.0} F6000
#Heat nozzle and bed
M190 S{BED_TEMP}
M109 S{EXTRUDER_TEMP} T0
#Precondition extruder
G92 E0
G1 X{X_START} Y{Y_START} Z{PRIMER_HEIGHT} F6000.0 E{FILA_LENGTH}
G1 X{X_MAX - 2 * X_START} Y{Y_START} Z{PRIMER_HEIGHT} F2000.0
G1 X{X_MAX - 2 * X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT}
G1 X{X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT} F2000.0 E{2*FILA_LENGTH}
G92 E0
G1 Z2.0 F600
G1 Z0.2 F600
G1 Z2.0 F600
[gcode_macro END_PRINT]
gcode:
#Get Printer built volume dimensions
{% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %}
{% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %}
#Fix-up extruder
G91
G1 E-2 F2700
G1 E-1.5 Z0.2 F2400
G1 X5 Y5 F6000
G1 Z10
G90
#Present print
G1 Z{printer.toolhead.position.z + 10} F600
G1 X{X_MAX / 2} Y{Y_MAX} F6000
M106 S0
M104 S0
M140 S0
#Disable Steppers
M84 X Y E
#Save Config
Save_Config
Great! Have fun. I'll have to fix up these issues on the blog. Worked flawlessly for me ever since... BTW, there is more to come on the blog. Working on a huge project.... Stay tuned =)
Will do, keep up the great work.
Hi! Just realizing the need for the z tensioner on my new 3 s1 pro printer. will this design need to be modified or can it be used as is for that printer? Thanks
Hi. It will not work without modifications as the extrusions of the CR-10 S Pro are different to the Ender 3 S1...