Set blockheight via python

More
7 years 6 months ago #130447 by MatthiasF1210

You ngc code is IMHO a mess

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....

But now everything is working as it should. I adapted the change.ngc:
Code:
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

Attachment not found



I added all the Files, if someone is interested....


Thanks for the help

Matthias

Please Log in to join the conversation.

Time to create page: 0.402 seconds
Powered by Kunena Forum