Hi guys!
I've ran into a nasty post processor problem when doing 4th axis machining with solidcam. I suspect the problem lies within @usr_rapid code. (see below)
The post processor generated multiple A axis movements in the same line. This happens for G00 rapid movement only.
For G01 movements the post processor sometimes generates unnecessary A axis movements, for example lines N362 and N364.
The code for @usr_rapid:
Code:
@usr_rapid
; Handle output for Rapid Move (G00)
; Note: XYZ not allowed together on a single line
; ---- 4x
; - Set Rotary Position
call @usr_r1pos_calc
if !bSkipxyrapid
if change(apos) and !change(xmpos) and !change(ympos) and !change(zmpos) and !change(bpos) ;Ignore apos prepositioning, handled at toolchange
skipline = false
endif
if bCoolspinaftertc and bTlchg
skipline = true
call @start_tool
if bCoolExist
skipline = true
call @usr_coolant
endif
endif
if !bSyncdrapid
if job_type eq '3-d model'
iMotionmode = 1
else
iMotionmode = 0
endif
else
iMotionmode = 0
endif
if (change(xmpos)or change(ympos)) and change(zmpos) ;!@#$% clear change
bTest = true
endif
{nb,['G'iMotionmode:mcode_f ' '],['G'iMplane' '],[cWo,iWorkoffset' '],['G'iAbsincmode ' '],['X'xmpos ' '],['Y'ympos ' '],[cR1,nR1pos ' '],[cR2,nR2pos ' ']}
if change(zmpos)
;if change(xmpos) eq true or change(ympos) eq true
if bTlchg
if !bCoolspinaftertc
skipline = false
call @start_tool
if !bHeightComponToolCh
call @usr_heightcomp_on
{'Z'zmnext_start_tool_level ' '}
endif
if bCoolExist
if !bCoolAfterHeightComp
skipline = false
endif
call @usr_coolant
skipline = true ;!@#$%AC Incase no coolant output, need to override 'skipline = false' 3 lines above
endif
else
if !bHeightComponToolCh
call @usr_heightcomp_on
{'Z'zmnext_start_tool_level ' '}
skipline = false
endif
endif
else
if bTest ;!@#$% clear change
{nb,['Z'zmpos ' ']}
bTest = false
else
{['Z'zmpos ' ']}
endif
endif
endif
if !bSyncdrapid
if job_type eq '3-d model'
{['F'nRapidfeed' ']}
endif
endif
bSkipxyrapid = false
else
{nb,['Z'zmpos ' ']}
if !bSyncdrapid
if job_type eq '3-d model'
{['F'nRapidfeed' ']}
endif
endif
bSkipxyrapid = false
endif
if bTlchg
if bCoolExist
skipline = false
call @usr_coolant
endif
endif
if change(iMotionmode)
change(iMotionmode) = false
endif
if change(iMplane)
change(iMplane) = false
endif
if change(iWorkoffset)
change(iWorkoffset) = false
endif
if change(iAbsincmode)
change(iAbsincmode) = false
endif
if change(nRapidfeed)
change(nRapidfeed) = false
endif
if !bSyncdrapid
bFeedoutput = true
endif
change(cWo) = FALSE ;!@#$%AC Fix for ChangeBit Intermittent problem
if bMultiplefixtures and bTlchg
mltfixxmpos = xmpos
mltfixympos = ympos
mltfixzmpos = zmpos
bFromendchangetool = True
call @Multiple_Fixtures
endif
bTlchg = false
bfirst_rapid = false
skipline = true
bTest = false
endp
The post processor is for a 5 axis machine(CNC Router + 2 axis rotary table). Post processor has been downloaded from this forum if I'm not mistaken.
I must mention that I have little knowledge in programming and let alone in post processor programming.
If someone has any fix for this I'd be very greatful.
Similar Threads: