Bed mesh at different temps
-
Bed mesh/height changes at different temperatures, ie. 50, 70, 100 for different materials.
For each temp that I use I saved mesh under different name, ie. heightmap50.csv.Can I call different heightmap from start gcode in Orca based on the filament in use?
So normall call is G29 S1 and will call heightmap.csv and G29 S1 P"heightmap50.csv" would call for 50degC.
Does this make sense to use?
-
@aceranic you can easily do this
I use a custom start macro thats called by the slicer
this is that i have in orcaslicerM98 P"start_print.g" A[bed_temperature_initial_layer_single] B"[filament_type]" C[nozzle_temperature_initial_layer] D[nozzle_diameter]
You could then have, in start_print.g
if param.B = "ABS" G29 S1 P"heightmap50.csv"
and so on.
My example start_print.g is here https://github.com/TeamGloomy/Troodon-V2/blob/improved/Config/sys/start_print.g -
I use a similar approach, I scan at varous temp and with different plate(steel and glass),with a complex bed.g called by G32.
I put this control in homez.g and do it after bed temp settled .
in orca start I have M190 followed by G28..... if {fileexists(floor(heat.heaters[0].active)^var.plate^".csv")} var map={(floor(heat.heaters[0].active)^var.plate^".csv")} if var.verbose echo "load "^var.map; G29 S1 P{var.map}; else ; if var.verbose echo "no file .csv! load heightmap.csv" G29 S1;
-
Isnt it easier, in Orca, to add for each material in Start Gcode a line to call a specific saved map?
-
I'm loading the PID values of the Nozzle and Bed, the Bedmeshing depending on Temperature and Bed Type on Print Start automatically.
It my seem like overkill but i prefer to automate as much as possible. My meshing seems consistent and varies just with Temperature. So ican mesh with higher resolution and start my prints faster.I'm using Orca slicer to send Bed Temperature and Print temperature to my macro called PrintSetup that is poart of my start code
Start Code
M190 S{first_layer_bed_temperature[0]-5}; M104 S[nozzle_temperature_initial_layer] ; Wait initial layer temp M109 S[nozzle_temperature_initial_layer] ; Wait for Bed Temp M98 P"/macros/PrintSetup" B[bed_temperature] H[first_layer_temperature];
This Macro loads the coresponding Mesh for the defined Bedplate, and with the temperatures it also loads the right PId tune information. You can also define Offsets if your Probe has drift wiht different Temperature.
; 0=Bambulab Square BS ; 1=Textured Round TR ; 2=Smooth Round SR var BED_Type = 0 ;define Bed plate Type var BED_T = {param.B}; var EXT_T = {param.H}; var Probe_height = 0.36 ; determined wiht G30-S1 after manually leveling wiht paper ;Pinda Bed Levelsensor M558 P5 C"^exp.e2stop" H2 F460 T9000 A3 K0 G31 P500 X0 Y-31 Z{var.Probe_height} M106 P2 S30 M703 T0 if var.BED_T < 65 M307 H0 R0.383 K0.618:0.000 D1.11 E1.35 S1.00 B0 ;BED PID 58 !! G31 Z{var.Probe_height + 0} ;Pinda - is higher, + is lower G28 ;Home G1 X0 Y0 Z5 F12000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS60.csv" elif var.BED_Type = 1 G29 S1 P"TR60.csv" elif var.BED_Type = 2 G29 S1 P"SR60.csv" elif var.BED_T < 75 M307 H0 R0.367 K0.732:0.000 D0.98 E1.35 S1.00 B0 ;PID 70°C G31 Z{var.Probe_height + 0} ;Pinda - is higher, + is lower G28 ;Home G1 X0 Y0 Z5 F6000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS70.csv" elif var.BED_Type = 1 G29 S1 P"TR70.csv" elif var.BED_Type = 2 G29 S1 P"SR70.csv" elif var.BED_T < 85 M307 H0 R0.367 K0.732:0.000 D0.98 E1.35 S1.00 B0 ;PID 70°C make one for 80 G31 Z{var.Probe_height + 0} ;Pinda - is higher, + is lower G28 ;Home G1 X0 Y0 Z5 F12000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS80.csv" elif var.BED_Type = 1 G29 S1 P"TR80.csv" elif var.BED_Type = 2 G29 S1 P"SR80.csv" elif var.BED_T < 95 M307 H0 R0.333 K0.400:0.000 D0.87 E1.35 S1.00 B0 ;85°C G31 Z{var.Probe_height + 0} ;Pinda - is higher, + is lower G28 ;Home G1 X0 Y0 Z5 F12000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS90.csv" elif var.BED_Type = 1 G29 S1 P"TR90.csv" elif var.BED_Type = 2 G29 S1 P"SR90.csv" elif var.BED_T < 105 M307 H0 R0.282 K0.306:0.000 D1.30 E1.35 S1.00 B0 ;110°C G31 Z{var.Probe_height + 0} ;Pinda - is higher, + is lower G28 ;Home G1 X0 Y0 Z5 F12000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS100.csv" elif var.BED_Type = 1 G29 S1 P"TR100.csv" elif var.BED_Type = 2 G29 S1 P"SR100.csv" elif var.BED_T < 115 M307 H0 R0.282 K0.306:0.000 D1.30 E1.35 S1.00 B0 ;110°C G31 Z{var.Probe_height + 0.038} ;Pinda - is higher, + is lower +0.038 G28 ;Home G1 X0 Y0 Z5 F12000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS110.csv" elif var.BED_Type = 1 G29 S1 P"TR110.csv" elif var.BED_Type = 2 G29 S1 P"SR110.csv" elif var.BED_T < 125 M307 H0 R0.282 K0.306:0.000 D1.30 E1.35 S1.00 B0 ;110°C G31 Z{var.Probe_height + 0.038} ;Pinda - is higher, + is lower +0.038 G28 ;Home G1 X0 Y0 Z5 F12000 ;move to Probe location G30 ;Probe if var.BED_Type = 0 G29 S1 P"BS120.csv" elif var.BED_Type = 1 G29 S1 P"TR120.csv" elif var.BED_Type = 2 G29 S1 P"SR120.csv" else echo "Bed Temp Setting Out of Bounds" if var.EXT_T < 195 M307 H1 R4.434 K0.887:0.000 D5.41 E1.35 S1.00 B0 V24.0 ;190°C NEW echo "Print Temp Setting: ", var.EXT_T , "°C PID @190°C loaded" if var.EXT_T < 205 M307 H1 R3.883 K0.339:0.000 D7.06 E1.35 S1.00 B0 V24.3 echo "Print Temp Setting: ", var.EXT_T , "°C PID @200°C loaded" elif var.EXT_T < 225 M307 H1 R3.899 K1.407:0.000 D6.62 E1.35 S1.00 B0 V24.3 ;200°C echo "Print Temp Setting: ", var.EXT_T , "°C PID @200°C loaded" elif var.EXT_T < 235 M307 H1 R3.990 K2.754:0.000 D6.24 E1.35 S1.00 B0 V24.1;230°C NEW echo "Print Temp Setting: ", var.EXT_T , "°C PID @230°C loaded" elif var.EXT_T < 245 M307 H1 R4.538 K2.346:0.000 D4.59 E1.35 S1.00 B0 V23.8 echo "Print Temp Setting: ", var.EXT_T , "°C PID @240°C loaded" elif var.EXT_T < 265 M307 H1 R3.978 K0.322:0.000 D5.90 E1.35 S1.00 B0 V23.9 echo "Print Temp Setting: ", var.EXT_T , "°C PID @250°C loaded" elif var.EXT_T < 285 M307 H1 R4.047 K1.118:0.000 D5.47 E1.35 S1.00 B0 V24.3 echo "Print Temp Setting: ", var.EXT_T , "°C PID @270°C loaded" elif var.EXT_T < 295 M307 H1 R4.308 K8.893:0.000 D5.01 E1.35 S1.00 B0 V24.3 echo "Print Temp Setting: ", var.EXT_T , "°C PID @280°C loaded" else echo "Print Temp Setting Out of Bounds"
Maybe you can adapt it your needs