Skip to content

Commit

Permalink
Fixed issue where offset was causing "move out of range" error
Browse files Browse the repository at this point in the history
  • Loading branch information
Turge08 authored Dec 9, 2021
1 parent 163133e commit a6ebee4
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions print_area_bed_mesh.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -47,21 +47,21 @@ gcode:
{% set OffsetY = probeConfig.y_offset|default(0)|float %}
{% endif %}

{% set print_min_x = params.PRINT_MIN.split(",")[0] %}
{% set print_min_y = params.PRINT_MIN.split(",")[1] %}
{% set print_max_x = params.PRINT_MAX.split(",")[0] %}
{% set print_max_y = params.PRINT_MAX.split(",")[1] %}
{% set print_min_x = params.PRINT_MIN.split(",")[0]|float %}
{% set print_min_y = params.PRINT_MIN.split(",")[1]|float %}
{% set print_max_x = params.PRINT_MAX.split(",")[0]|float %}
{% set print_max_y = params.PRINT_MAX.split(",")[1]|float %}

{% if last_area_start_x > 0 %}
{ action_respond_info("last_bed_mesh: %s,%s %s,%s" % (last_area_start_x, last_area_start_y, last_area_end_x, last_area_end_y)) }
{% endif %}

{% if (params.FORCE_NEW_MESH != null) or (print_min_x|float < last_area_start_x|float) or (print_max_x|float > last_area_end_x|float) or (print_min_y|float < last_area_start_y|float) or (print_max_y|float > last_area_end_y|float) %}
{% if (params.FORCE_NEW_MESH != null) or (print_min_x < last_area_start_x) or (print_max_x > last_area_end_x) or (print_min_y < last_area_start_y) or (print_max_y > last_area_end_y) %}
{% if klicky_available %}
_CheckProbe action=query
Attach_Probe
{% endif %}
{% if (print_min_x|default(0)|float < print_max_x|default(0)|float) and (print_min_y|default(0)|float < print_max_y|default(0)|float) %}
{% if (print_min_x < print_max_x) and (print_min_y < print_max_y) %}

# Get bed_mesh config (probe count, mesh_min and mesh_max for x and y
{% set bedMeshConfig = printer['configfile'].config["bed_mesh"] %}
Expand All @@ -77,53 +77,53 @@ gcode:
{% set probe_count_y = probe_count_x|int %}
{% endif %}
{% set relative_reference_index = bedMeshConfig.relative_reference_index %}
{% set mesh_min_x = bedMeshConfig.mesh_min.split(",")[0]|int %}
{% set mesh_min_y = bedMeshConfig.mesh_min.split(",")[1]|int %}
{% set mesh_max_x = bedMeshConfig.mesh_max.split(",")[0]|int %}
{% set mesh_max_y = bedMeshConfig.mesh_max.split(",")[1]|int %}
{% set mesh_min_x = bedMeshConfig.mesh_min.split(",")[0]|float %}
{% set mesh_min_y = bedMeshConfig.mesh_min.split(",")[1]|float %}
{% set mesh_max_x = bedMeshConfig.mesh_max.split(",")[0]|float %}
{% set mesh_max_y = bedMeshConfig.mesh_max.split(",")[1]|float %}

# If print area X is smaller than 50% of the bed size, change to to 3 probe counts for X instead of the default
{% if print_max_x|float - print_min_x|float < (mesh_max_x|float - mesh_min_x|float) * 0.50 %}
{% if print_max_x - print_min_x < (mesh_max_x - mesh_min_x) * 0.50 %}
{% set probe_count_x = minimum_probe_count %}
{% endif %}

# If print area Y is smaller than 50% of the bed size, change to to 3 probe counts for Y instead of the default
{% if print_max_y|float - print_min_y|float < (mesh_max_y|float - mesh_min_y|float) * 0.50 %}
{% if print_max_y - print_min_y < (mesh_max_y - mesh_min_y) * 0.50 %}
{% set probe_count_y = minimum_probe_count %}
{% endif %}

{% if print_min_x|default(0)|float >= mesh_min_x %}
{% set mesh_min_x = print_min_x|default(0)|float - buffer %}
{% if print_min_x - buffer >= mesh_min_x %}
{% set mesh_min_x = print_min_x - buffer %}
{% endif %}

{% if print_min_y|default(0)|float >= mesh_min_y %}
{% set mesh_min_y = print_min_y|default(0)|float - buffer %}
{% if print_min_y - buffer >= mesh_min_y %}
{% set mesh_min_y = print_min_y - buffer %}
{% endif %}

{% if print_max_x|default(0)|float <= mesh_max_x %}
{% set mesh_max_x = print_max_x|default(0)|float + buffer %}
{% if print_max_x + buffer <= mesh_max_x %}
{% set mesh_max_x = print_max_x + buffer %}
{% endif %}

{% if print_max_y|default(0)|float <= mesh_max_y %}
{% set mesh_max_y = print_max_y|default(0)|float + buffer %}
{% if print_max_y + buffer <= mesh_max_y %}
{% set mesh_max_y = print_max_y + buffer %}
{% endif %}

{ action_respond_info("mesh_min: %s,%s" % (mesh_min_x, mesh_min_y)) }
{ action_respond_info("mesh_max: %s,%s" % (mesh_max_x, mesh_max_y)) }
{ action_respond_info("probe_count: %s,%s" % (probe_count_x,probe_count_y)) }

; Set variables so they're available outside of macro
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_start_x VALUE={print_min_x|float}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_start_y VALUE={print_min_y|float}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_end_x VALUE={print_max_x|float}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_end_y VALUE={print_max_y|float}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_start_x VALUE={print_min_x}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_start_y VALUE={print_min_y}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_end_x VALUE={print_max_x}
SET_GCODE_VARIABLE MACRO=BED_MESH_CALIBRATE VARIABLE=last_area_end_y VALUE={print_max_y}

{% if (relative_reference_index == 0) %}
_BED_MESH_CALIBRATE mesh_min={mesh_min_x|float},{mesh_min_y|float} mesh_max={mesh_max_x|float},{mesh_max_y|float} probe_count={probe_count_x},{probe_count_y}
_BED_MESH_CALIBRATE mesh_min={mesh_min_x},{mesh_min_y} mesh_max={mesh_max_x},{mesh_max_y} probe_count={probe_count_x},{probe_count_y}
{% else %}
{% set relative_reference_index = ((probe_count_x * probe_count_y)-1)/2|int %}
{ action_respond_info("relative_reference_index: %s" % relative_reference_index|int) }
_BED_MESH_CALIBRATE mesh_min={mesh_min_x|float},{mesh_min_y|float} mesh_max={mesh_max_x|float},{mesh_max_y|float} probe_count={probe_count_x},{probe_count_y} relative_reference_index={relative_reference_index|int}
_BED_MESH_CALIBRATE mesh_min={mesh_min_x},{mesh_min_y} mesh_max={mesh_max_x},{mesh_max_y} probe_count={probe_count_x},{probe_count_y} relative_reference_index={relative_reference_index|int}
{% endif %}
{% else %}
_BED_MESH_CALIBRATE
Expand Down

0 comments on commit a6ebee4

Please sign in to comment.