Post processor for Solidcam


Results 1 to 2 of 2

Thread: Post processor for Solidcam

  1. #1

    Default Post processor for Solidcam

    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)

    Post processor for Solidcam-gcode-problem-jpg

    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:
    Attached Thumbnails Attached Thumbnails Post processor for Solidcam-gcode-problem-jpg  
    Last edited by pollaris75; 05-08-2019 at 03:56 PM.


  2. #2

    Default Re: Post processor for Solidcam

    Never mind! I seem to have fixed it by myself.



Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Post processor for Solidcam

Post processor for Solidcam