Bed compensation condition
-
Hello, I'm optimizing processes and wanted to figure out if it was possible to perform with conditional programming this step:
if I start printing run G29 S0 instead if I start printing after the previous print (M0) load the map with G29 S1.Alternatively I should delete the file map at the end of the program manually, I think there is no possibility to delete it via gcode.
I know that it may seem useless but in doing so I would avoid some repositioning errors due to the homing of the z-axis. Any help or advice is welcome.
Thank you -
Unless you have some issues with your hardware you should not need to create your height map frequently.
At the start of a print if you set the Z=0 datum using G30 and load the existing height map with G29 S1 things should work well.
Frederick
-
@fcwilt said in Bed compensation condition:
At the start of a print if you set the Z=0 datum using G30 and load the existing height map with G29 S1 things should work well.
Provided you used G30 at the same point before creating the heightmap and your probe is reliably repeatable.
-
@fcwilt, @Phaedrux thank you for the answers.
So, I tried to make a lot of comparisons of the detected heights and noticed that in some cases I have differences of about 0.1mm. I can not quantify whether it is so much or little but when I start a new print I would like to start from the optimal conditions, instead, in my case, if I canceled last print I would avoid probing the points again because I don't bring the Z axis home.
Now that I think it would be more logical to start printing after canceling the previous print without even probing or loading the last map, but I don't have much clear how to set instruction in start.g -
Just to give you an idea of what the code was like
If M0-false G28 G29 etc. etc. G1 X0 Y0 Z1 F5000
I know it's wrong but it's to have an idea
-
@Marco-Bona said in Bed compensation condition:
Now that I think it would be more logical to start printing after canceling the previous print without even probing or loading the last map...
Why do you thing that is more logical?
Frederick
-
@fcwilt, theoretically it should already be loaded
-
@Marco-Bona said in Bed compensation condition:
@fcwilt, theoretically it should already be loaded
Understood.
I have one macro that is called by the slicer at the start of the print.
- It starts the hotend and bed to heating
- It cancels baby-stepping and mesh compensation
- It homes the printer if needs be
- When the hotend is up to temp it primes the hotend
- A pause take place for cleaning the nozzle and bed
- The Z=0 datum is set using G30
- The existing height map is loaded using G29 S1
So it doesn't matter to me if it is a new print or a restart of a canceled print.
While it may not be the ultimate in efficiency what does it matter given that the actual printing consumes much more time than any other phase.
Frederick
-
@fcwilt, what your macro does is very similar to what I do at start printing, obviously I do not load the map but start the probing. Nowever I would like to add an additional condition, but I understand that it is not possible
-
I use this code in my homez.g to run automatic tramming (three motor bed) and mesh levelling only if the machine has been off or been reset:
if move.calibration.numFactors = 0 ; no bed levelling run yet G32 M98 P"homing/unsafe-homez.g" G29 else M98 P"homing/unsafe-homez.g"
with unsafe-homez.g containing
G1 X{move.axes[0].max/2} Y{move.axes[1].max/2} F15000 ; move to homing position M558 H10 ; careful when homing G30 ; home precise with Z-probe M558 H3 ; back to speed