Set blockheight via python
- MatthiasF1210
- Offline
- Junior Member
Less
More
- Posts: 37
- Thank you received: 0
07 Apr 2019 18:18 #130447
by MatthiasF1210
But now everything is working as it should. I adapted the change.ngc:
I used probe_screen.py as basis and added functions. First I probe the z-zero and after that the blockheight and safe the value to a hal pin. If the checkbox "Activate Blockheight " is not set, the gmoccapy blockheiht is used
I added all the Files, if someone is interested....
Thanks for the help
Matthias
Replied by MatthiasF1210 on topic Set blockheight via python
Till now I am not an Expert in G-gode. I use AutodeskFusion which generates the code. To be honest, I was wondering about that as well, but it worked. Later I will take care of that....You ngc code is IMHO a mess
But now everything is working as it should. I adapted the change.ngc:
o<change> sub
;(debug, in change tool_in_spindle=#<tool_in_spindle> current_pocket=#<current_pocket>)
;(debug, selected_tool=#<selected_tool> selected_pocket=#<selected_pocket>)
;otherwise after the M6 this information is gone!
#<tool> = #<selected_tool>
#<pocket> = #<selected_pocket>
; we must execute this only in the milltask interpreter
; or preview will break, so test for '#<_task>' which is 1 for
; the milltask interpreter and 0 in the UI's
O100 if [#<_task> EQ 0]
(debug, Task ist Null)
O100 return [999]
O100 endif
;=====================================================
; Goto Tool Changeposition from INI File
;=====================================================
;first go up
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]
; then move to change position
G53 G0 X[#<_ini[CHANGE_POSITION]X>] Y[#<_ini[CHANGE_POSITION]Y>]
; cancel tool offset
G49
;=====================================================
; Request Tool Change
;=====================================================
; using the code being remapped here means 'use builtin behaviour'
M6
;(debug, Refernce Change Position x=#<_ini[CHANGE_POSITION]X> y=#<_ini[CHANGE_POSITION]Y>)
;check the auto tool measurment setting from the settingspage
O200 if [#<_hal[gmoccapy.toolmeasurement]> EQ 0]
O200 return [3] ; indicate no tool measurement
O200 endif
;=====================================================
; Goto Tool Measureposition incl. Diameteroffset
;=====================================================
;Coorection of X/Y Position by half of the tool diameter
#10 = [#<_ini[TOOLSENSOR]X> + #5410/2*0.7]
#11 = [#<_ini[TOOLSENSOR]Y> - #5410/2*0.7]
;(debug, New Tool Diameter x=#5410)
;(debug, New Change Position x=#10 y=#11)
;go to new position
G53 G0 X[#10] Y[#11]
G53 G0 Z[#<_ini[TOOLSENSOR]Z>]
;check the velocity setting
O300 if [#<_hal[gmoccapy.searchvel]> LE 0]
O300 return [-1] ; indicate searchvel <= 0
O300 endif
;check the velocity setting
O400 if [#<_hal[gmoccapy.probevel]> LE 0]
O400 return [-2] ; indicate probevel <= 0
O400 endif
;===================================================
; start probing
;===================================================
F #<_hal[gmoccapy.searchvel]>
G91
G38.2 Z #<_ini[TOOLSENSOR]MAXPROBE>
G0 Z2
; This is commented out only for sim.
F #<_hal[gmoccapy.probevel]>
G38.2 Z-4
; check "G38" probe result #5070 - 1 if success, 0 if probe failed to close
O500 if [#5070 EQ 0]
G90
O500 return [-3] ; indicate probe contact failure to epilog
O500 endif
;===================================================
; probing finished
;===================================================
; back to change position
G90
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]
#<touch_result> = #5063
;===================================================
; Edit by Matthias, automated blockheight
;===================================================
#<probeheight> = #<_hal[gmoccapy.probeheight]>
;#<blockheight> = #<_hal[gmoccapy.blockheight]>
o1 if [EXISTS[#<_hal[probe.actautoblockheight]>]] (blockheight set auto by script)
o2 if [[#<_hal[probe.actautoblockheight]>] EQ 1]
o3 if [[#<_hal[probe.ps_blockheight]>] EQ -999]
(debug, Error - Auto-Blockheight has not been detected. Blockheight is calculated with 0.00)
#<blockheight> = 0
o3 else
#<blockheight> = #<_hal[probe.ps_blockheight]>
;(debug, blockheight via script #<blockheight>)
o3 endif
o2 else
#<blockheight> = #<_hal[gmoccapy.blockheight]>
;(debug, blockheight via gmoccapy button used #<blockheight>)
o2 endif
o1 else (blockheight set manually via gmoccapy button)
#<blockheight> = #<_hal[gmoccapy.blockheight]>
;(debug, blockheight via gmoccapy button used #<blockheight>)
o1 endif
;(DEBUG, #<touch_result> #<probeheight> #<blockheight>)
;calculation tool lenght compenation
G10 L1 P#<tool> Z[#<touch_result> - #<_hal[gmoccapy.probeheight]> + #<_hal[gmoccapy.blockheight]>]
G43
; signal success be returning a value > 0:
o<change> endsub [1]
M2
I used probe_screen.py as basis and added functions. First I probe the z-zero and after that the blockheight and safe the value to a hal pin. If the checkbox "Activate Blockheight " is not set, the gmoccapy blockheiht is used
I added all the Files, if someone is interested....
Thanks for the help
Matthias
Please Log in or Create an account to join the conversation.
Moderators: newbynobi, HansU
Time to create page: 0.189 seconds