Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

stein

Members
  • Posts

    5
  • Joined

  • Last visited

Posts posted by stein

  1. What am I doing wrong here? :help:

     

    I get this out put with this logic - just a single line with multiple tools and calling the tools at different places within the program

    IF[#592EQ1211]GOTO1211 (RESTART FOR : T12)

     

     

     

     

    # -------------------------------------------------------------------------- 

    # Buffer 1 - Tool Recall Table
    # --------------------------------------------------------------------------
    wc1         : 1     #Initial count for write buffer 1
    rc1         : 1     #Initial count for read buffer 1
    size1     : 0     #Buffer 1 size
    b1_tool_number    : 0          #Saved Tool number at tool change
    b1_ntooltrack    : 0          #Saved tool count
    fbuf 1 0 2 0 0    

    # Format of Recall List Variables
    fmt ""     4    b1_tool_number          #Saved Tool number at tool change
    fmt ""     4    b1_ntooltrack          #Saved tool count
    fmt ""     5  ptool_count3
    recalltable_out    : 1 #Recall Table is written to NC code - flag

    pWriteBuffer_1 # Write Tool Buffer at every opertion (@ pre-read)
        b1_tool_number = abs(t$)          #Saved Tool number at tool change
        b1_ntooltrack = ptool_count3      #Tool call count at tool change
        b1_tool_number = wbuf(1,wc1)
        
    pRecallTable    #Writes standalone recall table
        size1 = rbuf(1,0)
        rc1 = 1
        recalltable_out = 1
        while rc1 < size1, # Loop to find
            [
            b1_tool_number = rbuf(1, rc1)
            b1_ntooltrack = rbuf(1, rc1)
            ]
                if recalltable_out = 1, "IF[#592EQ", *b1_tool_number, *b1_ntooltrack,"]", "GOTO", *b1_tool_number, *b1_ntooltrack, "(RESTART FOR", ":", "T", *b1_tool_number, ")", e$
                if recalltable_out = 0,

     

     

     

    # --------------------------------------------------------------------------      
    ptool_count3     # Track number of times each tool is used
          tused3 = finc(11,t$)
          *tused3

    # -------------------------------------------------------------------------- 

     

     

    pwrtt$          #Pre-read NCI file
          if tool_info > 1 & t$ > 0 & gcode$ <> 1003, ptooltable
          if op_id$ <> prv_op_id$ & gcode$ <> 1003,
             [
             pWriteBuffer_1 # Tool Number // Tool Count    
             ]
             !op_id$

     

     

     

     

    psof$            #Start of file for non-zero tool number  
        
          "(*****TOOL RESTART LIST*****)",e$
         pRecallTable

  2. I need some help with getting my tool recalls at the top of my program below my tool list as I'm tired of "copy/paste"

     

    Heres the output I have so far. In red is what I need to add, but for the life of me I can't get the out put I need.  I hope this can be done without a buffer as my head is not wrap tightly around them yet. Maybe I just need to walk away from this for a few days :wallbash: :wallbash:

     

     

     

    %
    O2001( SC2001 REVD MILL PROGRAM )


    #6=1
    M97 P9900 (TOOL/PROGRAM CHECK SUB)
    (NO COMMENTS ABOVE THIS LINE)

    (CUSTOMER      - ADD CUSTOMER)
    (PROGRAM REV  - N/C)
    ( DATE - MAR. 08 2015 )

    (SET #600= TO PROGRAM NUMBER)
    (PROGRAM# 2001 )

    (*****BEGIN TOOL LIST*****)
    (---------------------------------------------------------)
    ( T11 -  NO. 47 CARB DRILL MELIN BRD - H11 | D11 )
    ( HOLDER STYLE - CT40 SMALL KEYLESS CHUCK )
    ( TOOL PROJECTION - 1.25 )
    ( ================================= )
    ( T12 -  NO. 2-56 YMW FORM TAPRH - H12 | D12 )
    ( HOLDER STYLE - CT40 - SOLID - JACOBS CHUCK )
    ( TOOL PROJECTION - 1.2 )
    ( ================================= )
    (---------------------------------------------------------)
    (*****END TOOL LIST*****)
    I need to add this here

    IF[#592EQ1101]GOTO1101 (RESTART FOR T11 FIRST CALL)
    IF[#592EQ1201]GOTO1201 (RESTART FOR T12 FIRST CALL)
    IF[#592EQ1102]GOTO1102 (RESTART FOR T11 SECOND CALL)

    ....

    ....

    ....

    #3000=123(INVALID RESTART)

    G20
    G0 G17 G40 G49 G80 G90 (SAFETY LINE)




    N1101
    G103 P1
    #592= HERE I NEED TO ADD 1101 FROM 2 LINES ABOVE
    G103
    (  NO. 47 CARB DRILL MELIN BRD - TOOL - 11 )
    T11 M6
    IF [ #6 NE 1 ] THEN #3000= 666 (RESET AND CYCLE START)
    /M8
    G0 G90 G55 X-.5512 Y-.5512 A0. S7299 M3
    G43 H11 Z.25 T12
    G98 G83 Z-1.0873 R-.5 Q.1 F7.3
    X.5512
    Y.5512
    X-.5512
    G80
    M09
    M5
    G91 G28 Z0.
    G90 G49
    T#3026
    G0 G90
    G103 P1
    G65 P9853 B1. T#3026 H.01
    G103
    N1201
    G103 P1
    #592= HERE I NEED TO ADD 1201 FROM 2 LINES ABOVE
    G103
    (  NO. 2-56 YMW FORM TAPRH - TOOL - 12 )
    T12 M6
    IF [ #6 NE 1 ] THEN #3000= 666 (RESET AND CYCLE START)
    /M8
    G0 G90 G55 X-.5512 Y-.5512 A0. S2000 M3
    G43 H12 Z.25 T11
    G98 G84 Z-1.03 R-.35 J2 F35.7
    X.5512
    Y.5512
    X-.5512
    G80
    M09
    M5
    G91 G28 Z0.
    G90 G49
    T#3026
    G0 G90
    G103 P1
    G65 P9853 B1. T#3026 H.01
    G103
    N1102
    G103 P1
    #592= HERE I NEED TO ADD 1102 FROM 2 LINES ABOVE
    G103
    (  NO. 47 CARB DRILL MELIN BRD - TOOL - 11 )
    T11 M6
    IF [ #6 NE 1 ] THEN #3000= 666 (RESET AND CYCLE START)
    /M8
    G0 G90 G55 X-.5512 Y-.5512 A0. S7299 M3
    G43 H11 Z.25 T11
    G98 G83 Z-1.0873 R-.5 Q.1 F7.3
    X.5512
    Y.5512
    X-.5512
    G80
    M09
    M5
    G91 G28 Z0.
    G28 Y0.
    GOTO9999
    N9900(TOOL LENGTH/PROGRAM # CHECKS)
    G103 P1
    (THIS ROUTINE INCLUDES LENGTH CHECKS FOR PROBE ONLY )
    IF[#2025 NE 5.5122] THEN #3000=333 (PROBE LENGTH WRONG)
    IF[#2225 NE 0] THEN #3000=334 (NO LENGTH WEAR ALLOWED)
    IF[#2625 NE 0] THEN #3000=335 (NO DIA WEAR ALLOWED)
    IF[#600 NE2001 ]GOTO9601
    IF[#800NE-24.1905]THEN#3000=336(WRONG X VALUE DNL#1)
    IF[#801NE-10.0269]THEN#3000=337(WRONG Y VALUE DNL#1)
    IF[#806NE-12.1896]THEN#3000=336(WRONG X VALUE DNL#2)
    IF[#807NE-10.0271]THEN#3000=337(WRONG Y VALUE DNL#2)
    G103
    M99
    N9600 (ERRORS)
    N9601 #3000=336 (WRONG PROGRAM TO RUN)
    M99
    G103
    N9999
    G103 P1
    G0 G90 G55 X0.
    #592=0 (PROGRAM COMPLETE)
    G28 G91 A0.0
    G103
    M30
    %
     

    Thanks

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...