Code:
(name,Misura Assi)
O<PlanetCNC> if[[#<_probe_pin_1> EQ 0] AND [#<_probe_pin_2> EQ 0]]
(msg,Sensore non configurato)
M2
O<PlanetCNC> endif
(dlgname,Misura Assi)
(dlg,Selezionare posizione di partenza, typ=label, x=20, w=455, color=0xffa500)
(dlg,data::MeasureAxis, typ=image, x=0)
(dlg,|X+|X-|Y+|Y-, typ=checkbox, x=50, w=425, def=1, param=strt)
(dlg,Spessore Sonda a contatto, typ=label, x=40, w=455, color=0xffa500)
(dlg,mm, x=0, dec=2, def=1.5, min=0.1, max=200, param=sonda)
(dlgshow)
M73 ;store state, auto restore
G17 G90 G91.1 G90.2 G08 G15 G94
M50P0 ;disable speed override
M55P0 ;disable trans
M56P0 ;disable warp
M57P0 ;disable swap
M10P1 ;motor enable
M11P1 ;probe enable
#<startx> = #<_machine_x>
#<starty> = #<_machine_y>
#<startz> = #<_machine_z>
o<st> if [#<strt> EQ 1]
#<axis> = 0
#<dir> = +1
o<st> elseif [#<strt> EQ 2]
#<axis> = 0
#<dir> = -1
o<st> elseif [#<strt> EQ 3]
#<axis> = 1
#<dir> = +1
o<st> elseif [#<strt> EQ 4]
#<axis> = 1
#<dir> = -1
o<st> else
(msg,Error)
M2
o<st> endif
#<pos> = #<_machine_axis|#<axis>>
O<probe> call [#<axis>] [#<dir>] [#<sonda>]
#<_measure> = #<_return>
G53 G00 H#<axis> E#<pos>
G53 G00 Z#<_probe_safeheigh>
G53 G00 H#<axis> E#<_measure>
o<st> if [#<strt> EQ 1]
(print,Coordinata Assoluta X)
(print,|!#<_measure>)
(print,Spessore Sonda)
(print,|!mm #<sonda>)
(print,Raggio Utensile)
(print,|!mm #<_probe_sizeXY>)
G92 X0.0000
(print,Coordinata di lavoro X impostata a 0)
(print,|!------------------------------------)
o<st> elseif [#<strt> EQ 2]
(print,Coordinata Assoluta X)
(print,|!#<_measure>)
(print,Spessore Sonda)
(print,|!mm #<sonda>)
(print,Raggio Utensile)
(print,|!mm #<_probe_sizeXY>)
G92 X0.0000
(print,Coordinata di lavoro X impostata a 0)
(print,|!------------------------------------)
o<st> elseif [#<strt> EQ 3]
(print,Coordinata Assoluta Y)
(print,|!#<_measure>)
(print,Spessore Sonda)
(print,|!mm #<sonda>)
(print,Raggio Utensile)
(print,|!mm #<_probe_sizeXY>)
G92 Y0.0000
(print,Coordinata di lavoro Y impostata a 0)
(print,|!------------------------------------)
o<st> elseif [#<strt> EQ 4]
(print,Coordinata Assoluta Y)
(print,|!#<_measure>)
(print,Spessore Sonda)
(print,|!mm #<sonda>)
(print,Raggio Utensile)
(print,|!mm #<_probe_sizeXY>)
G92 Y0.0000
(print,Coordinata di lavoro Y impostata a 0)
(print,|!------------------------------------)
o<st> else
(msg,Error)
M2
o<st> endif
M2
O<probe> sub
M73
#<axis> = #1
#<dir> = #2
#<sonda> = #3
M11P0 G38.2 H#<axis> E[#<dir> * 100000] F#<_probe_speed>
G91 G01 H#<axis> E[-#<dir> * #<_probe_swdist>]
o<low> if [#<_probe_speed_low> GT 0]
G90 G38.2 H#<axis> E[#<dir> * 100000] F#<_probe_speed_low>
G91 G01 H#<axis> E[-#<dir> * #<_probe_swdist>] F#<_probe_speed>
o<low> endif
M11P1 G90
; #<_measure> = [#<_probe_axis|#<axis>> + #<dir> * #<_probe_size_axis|#<axis>>]
#<_measure> = [#<_probe_axis|#<axis>> + #<dir> * #<_probe_size_axis|#<axis>> + #<dir> * #<sonda>]
O<probe> endsub [#<_measure>]