585,727 active members*
4,104 visitors online*
Register for free
Login
Results 1 to 7 of 7
  1. #1

    Help with Editing a Post

    I can't seem to find anyone with a post for a dx32 controller so I was hoping someone may be able to help me edit the one I have. My problem is that it spits out some crazy code whenever I have to do a Z move inside of cutter compensation. Any help would be appreciated. Following is a copy of my post;
    Code:
    [POST_VERSION] #DO NOT MOVE OR ALTER THIS LINE# V10.00 E1 P0 T1127411849 M10.00 I0 
    # Post Name           : MPDX32
    # Product             : MILL
    # Machine Name        : BRIDGEPORT
    # Control Name        : DX32
    # Description         : BRIDGEPORT DX32 POST
    # 4-axis/Axis subs.   : NO
    # 5-axis              : NO
    # Subprograms         : NO
    # Executable          : MP 9.13
    #
    # WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
    # THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
    #
    # --------------- 
    #| REVISION LOG: |
    # ------------------------------------------------------------------------
    # Programmers Note:
    # CNC 01/12/01  -  Initial post update for V8.1
    # CNC 05/22/01  -  tlchng_aft was spelled incorrectly causing motion errors
    #                  removed refht from pdrill_2.                 
    # CNC 01/09/02  -  Initial post update for V9.0
    # CNC 08/12/02  -  Added logic to ptlchg0 to address skipping outptu on null toolchange
    # CNC 02/04/03  -  Initial post update for V9.1
    # CNC 05/28/03  -  Initial post update for V9.1SP1
    #
    # ------------
    #| Features: |
    # ------------------------------------------------------------------------
    # Following Misc_Reals & Misc_Integers are used:
    #
    # mi1 - Work coordinate system 
    #        0 = Reference return is generated and G92 with the 
    #            X, Y and Z home positions at file head.
    #        1 thru 3 = Reference return is generated and G92 with the 
    #                   X, Y and Z home positions at each tool.
    #        4 thru 9 = The WCS of G54 thru G59 respectively at each tool.
    # mi2 - Rigid Tapping enabled
    #       1 = Rigid tapping mode enabled
    #       0 = Rigid tapping mode disabled
    # mi3 - Corner rounding
    #       1 = Corner rounding enabled
    #       0 = Corner rounding Disabled                    
    #
    # Options / Usage:
    # It is recommended to start and end cutter compensation on a linear move.
    #
    #Canned text:
    #    Entering cantext on a contour point from within Mastercam allows the
    #    following functions to enable/disable.
    #    Cantext value:
    #    1 = Stop =  output the "M00" stop code
    #    2 = Ostop = output the "M01" optional stop code
    #
    # END_HEADER$
    #
    #----------------------------------------------------------------------------
    # -------------------------- Format For Input Questions ---------------------
    sprognum 
    srev 
    sname 
    
    fq 1 sprognum      "Enter The Part Number"
    fq 2 srev          "Enter The Revision Number."
    fq 3 sname         "Enter The Programers Initials."
    # ------------------------------------------------------------------------
    # Format Statements - i=incr., n=nonmodal, l=leave ldg., t=leave trlg.
    # ------------------------------------------------------------------------
    fs  1  1.4
    fs  2  1.4 #ld        
    fs  3  4 0
    fs  4  2 0n
    fs  5  3.1t
    fs  6  3 0ln
    fs  7  3 0n
    fs  8  3.2
    
    # ------------------------------------------------------------------------
    # Format Assignments
    # ------------------------------------------------------------------------
    fmt  X 1 x$          # X axis position
    fmt  Y 1 y$          # Y axis position
    fmt  Z 1 z$          # Z axis position
    fmt  I 2 i$          # Arc center in X axis
    fmt  J 2 j$          # Arc center in Y axis
    fmt  K 2 k$          # Arc center in Z axis
    fmt  N 7 n$          # Sequence number
    fmt  T 4 t$          # Tool number
    fmt    4 tloffno$    # Tool diameter ofset number
    fmt  H 4 tlngno$     # Tool length offset number
    fmt  F 5 fr$         # Feedrate
    fmt    5 plane$      # Modal plane code selector
    fmt  M 3 cc$         # Cutter Comp. 
    fmt  S 3 ss$         # Spindle Speed
    fmt    6 wcs        # make Work Coord. string 'sgwcs' non-modal 
    fmt    6 drillcyc$   # make string 'sgdrlcyc' non-modal
    fmt  M 4 ssrange    # Spindle Speed Range (mi2 - M42 = hi, M43 = low)
    fmt  M 4 sscode     # Spindle Speed Code  (M59 - M77 from tbl 1)
    fmt    3 gcode$      # Format linear G-code selector for modality only
    fmt  Z 1 depth$
    fmt  Z 1 depth_out
    fmt  R 1 refht$
    fmt  Q 8 dwell$
    fmt  Z 1 initht$
    fmt  Q 1 peckincr1
    fmt  Z 1 peck1$
    fmt  Z 1 peck2$
    fmt    4 dirchg$
    fmt  C 4 coolant$
    fmt  F 5 frplunge$
    fmt    3 ccomp$       # Modal format for ccomp
    fmt  M 4 cantext$
    
    # ------------------------------------------------------------------------
    # Formulas - Use ':' instead of '=' to initialize variables
    # ------------------------------------------------------------------------
    skipmotest$ : 0     # Skip the motion test or xyz with previous xyz
    plane$     : 0      # Initialize plane code to suppress first G17
    spaces$    : 1      # Number of spaces to add between fields
    seqmax$    : 99999  # Max. sequence number
    omitseq$   : yes$     # Omit sequence numbers?
    frrapid   : 300    # Rapid feedrate? 300.0
    frmax     : 300    # Maximum feedrate? 300.0
    ssmax     : 3000   # Maximum spindle speed? 3000
    breakarcs$ : 1      # Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs
    arctype$   : 1      # Arc center 1=abs, 2=inc, 3=st-cen, 4=unsigned inc.
    do_full_arc$ : 0    # Allow full circle output? 0=no, 1=yes
    helix_arc$   : 0    # Support helix arc output, 0=no, 1=all planes, 2=XY plane only
    arccheck$  : 1      # Check for small arcs, convert to linear
    ltol$      : 0.002  # Length tolerance for arccheck
    tooltable$ : yes$     # Build next tool table
    rigid     : 0      # Rigid tapping performed
    rigidon   : 0      # Rigid Tapping enabled
    nobrk$     : 0      # break rapid moves =0 Rapid as xyz=1, all moves broken=2
    
    # Global Formulas
    wcs       = mi1$    # Work coord. system 
    #ssrange   = mi2 
    sscode    = frange(1,ss$)  # Spindle speed code
    cround    = mi3$    # Corner rouding on/off 0=on, 1=off
    
    # ------------------------------------------------------------------------
    # USE CANNED CYCLES? 
    # ------------------------------------------------------------------------
    usecandrill$ : yes$
    usecanpeck$  : yes$
    usecanchip$  : yes$
    usecantap$   : yes$
    usecanbore1$ : yes$
    usecanbore2$ : yes$
    usecanmisc1$ : no$
    usecanmisc2$ : no$
    
    # ------------------------------------------------------------------------
    # Bugs - used for post processor code customization
    # ------------------------------------------------------------------------
    fastmode$  : yes$ # Enable Quick Post Processing, (set to no for debug)
    bug1$ : 1        # 0=No display, 1=Generic list box, 2=Editor
    bug2$ : 40       # Add postline label to each line at column 'bug2'
    bug3$ : 1        # Add whatline to each line? yes/no 
    bug4$ : 1        # Add -.nci line no. to each line? yes/no
    whatno$ : yes$    # Ignore whatline branches to plin1 etc.?
    linktolvar$    : 1     #Associate X tolerance variables to V9- variable?
    linkplnvar$    : 1     #Associate X plane specific variables to V9- variable?
    linklvar$      : 1     #Associate X lathe specific variables to V9- variable?
    newglobal$     : 1     #Enable error checking for global variables?
    
    skp_lead_flgs$ : 1 # Do NOT use v9 style contour flags
    get_1004$   : 1  # Find gcode 1004 with getnextop?
    rpd_typ_v7$ : 1  # Use Version 7 style contour flags?
    strtool_v7$ : 2  # Use Version 7 toolname?
    cant_tlchng$ : 1 # Ignore cantext entry on move with tlchng_aft 
    tlchng_aft$ : 2  # Delay call to toolchange until move line 
    getnextop$  : 0
    
    # ------------------------------------------------------------------------
    # Lookup table definitions - for Math Functions FLOOK and FRANGE
    # ------------------------------------------------------------------------
    flktbl    1     12     # Lookup table no.     No. of entry pairs
             58     63     # Code 1 (output)      Match 1
             59     90     # Code 2               Match 2
             63    112     #   .                    .
             64    180     #   .                    .
             65    224     #   .                    .
             66    355
             67    450
             73    710
             74    900
             75   1400
             76   1800
             77   2800
    
    # ------------------------------------------------------------------------
    # Strings - String labels must start with 's' - they are not pre-assigned
    # ------------------------------------------------------------------------
    sg00    G0  # Linear movement at rapid feedrate G code 
    sg01    G1  # Linear movement at feedrate G code 
    sg02    G2  # Circular interpolation CW G code 
    sg03    G3  # Circular interpolation CCW G code 
    sgcode      # Target string for linear/circular motion G code 
    
    fstrsel  sg00 gcode$ sgcode 4 -1# Select motion G code string
    
    # ------------------------------------------------------------------------
    sm09    M09  # Coolant Off                   
    sm08    M08  # Coolant Flood                 
    smx8    M08  # Coolant Mist                  
    smxx    M08  # Coolant Tool                  
    smcool       # Coolant code target string
    
    fstrsel  sm09 coolant$ smcool 4 -1# Boolean handles modality
                                   # coolant = 0 - coolant off
                                   # coolant = 1 - FLOOD coolant on        
                                   # coolant = 2 - MIST coolant on        
                                   # coolant = 3 - TOOL coolant on        
    
    # ------------------------------------------------------------------------
    sm04          M04 # Spindle reverse - no coolant       "M04"
    sm05          M05 # Spindle off     - no coolant       "M05"
    sm03          M03 # Spindle forward - no coolant       "M03"
    sm04c         M04 # Spindle reverse - with coolant     "M04"
    sm05c         M05 # Spindle off     - with coolant     "M05"
    sm03c         M03 # Spindle forward - with coolant     "M03"
    sm04cc        M04 # Spindle reverse - with coolant     "M04"
    sm05cc        M05 # Spindle off     - with coolant     "M05"
    sm03cc        M03 # Spindle forward - with coolant     "M03"
    spdlon            # Target Spindle-on M-string
    
    spdlsel = fsg2(coolant$) * 3 + fsg3(ss$)      # Spindle on selector based on
                                            #   coolant - 0 = off, 1 = on
    fstrsel  sm04 spdlsel spdlon 9 -1
    
    # ------------------------------------------------------------------------
    scc0            # cutter compensation state not changed
    sg40    G40     # cancel cutter compensation
    sg41    G41     # cutter compensation left
    sg42    G42     # cutter compensation right
    sg140           # Last linear move cancel cutter comp (see note)
                    # Note: to cancel comp after last move, remove G40 string
                    # with sg140 and remove "#" at the postline call "pcancelcc"
    sccomp 
    
    fstrsel  scc0 ccomp$ sccomp 5 -1
    
    # ------------------------------------------------------------------------
    sg17        G17   # XY plane code 
    sg19        G19   # XZ plane code 
    sg18        G18   # YZ plane code 
    sgplane           # Workplane G code
    
    fstrsel  sg17 plane$ sgplane 3 -1 # Select work plane G code
    
    # ------------------------------------------------------------------------
    sg53        G53   # Work coordinate system G code #1 
    sg54        G54   # Work coordinate system G code #2 
    sg55        G55   # Work coordinate system G code #3 
    sg56        G56   # Work coordinate system G code #4 
    sg57        G57   # Work coordinate system G code #5 
    sg58        G58   # Work coordinate system G code #6 
    sg59        G59   # Work coordinate system G code #7 
    sgwcs             # Work coordinate system G code
    
    fstrsel  sg53 wcs sgwcs 7 -1
    
    # ------------------------------------------------------------------------
    sg81     G81      #  drill      - no dwell 
    sg82     G82      #  drill      - with dwell 
    sg83     G83      #  peck drill - no dwell 
    sg83d    G83      #  peck drill - with dwell 
    sg73     G87      #  chip break - no dwell 
    sg73d    G87      #  chip break - with dwell 
    sg84     G84      #  tap  
    sg84d    G84      #  tap     # must be here for selector to work
    sg85     G85      #  bore #1    - no dwell 
    sg89     G89      #  bore #1    - with dwell 
    sg86     G86      #  bore #2    - no dwell 
    sg86d    G86      #  bore #2    - with dwell 
    sgm1     GGG      #  misc #1    - no dwell 
    sgm1d    GGG      #  misc #1    - with dwell 
    sgm2     GGG      #  misc #2    - no dwell 
    sgm2d    GGG      #  misc #2    - with dwell 
    sgdrill           #  Target drill cycle G code
    
    drlgsel  = drillcyc$*2 + fsg2(dwell$)  # 16 possible combinations:
                                         #   drillcyc = 0..7
                                         #   dwell    = 0 or non-zero (2 states)
    fstrsel  sg81 drlgsel sgdrill 16 -1  # Drill cycle G string select
    
    # ------------------------------------------------------------------------
    sgaccel     G8    # Axis acceleration code 
    sgdecel     G9    # Axis deceleration code 
    sgacc 
    
    fstrsel  sgaccel dirchg$ sgacc 2 -1# Select accel/decel code with dir. chg. flag
    
    # ------------------------------------------------------------------------
    # String select for corner rounding based off of mi3 value.
    # used only when ccomp in is active.
    sg48        G48   # Corner rounding off   #0 
    sg49        G49   # Corner rounding on    #1 
    sgcnrnd           # Corner Rounding G code
    
    fstrsel  sg48 cround sgcnrnd 2 -1
    
    # --------------------------------------------------------------------------
    #Cantext string definitions (spaces must be padded here)
    sm00        "M00"
    sm01        "M01"
    strtextno 
    strcantext 
    strm          M
    sblank 
    
    # ------------------------------------------------------------------------
    # User-defined Postlines
    # ------------------------------------------------------------------------
    
    pcool       # Coolant on/off - init. off (coolant = 0)
                   if prv_coolant$ <> coolant$, n$, smcool
    
    psg00       # Output "G00" via String Select Function to maintain modality
                   gcode$ = 0
                   *sgcode
                   !gcode$
    
    pfr         # Don't output neg. feedrate
                   if fr$ > 0, fr$
    
    psccomp1    # Cutter comp on
                n$, sccomp, *sgcnrnd, sgcode, prv_x$, prv_y$, pfr, pcan, e$
                n$, sgcode, prv_x$, prv_y$, pfr, pcan, e$
    
    psccomp     # Cutter comp block used to repeat previous move for turning
                # comp on.  Comp does not take effect until two moves later due to
                # the dx32's look ahead.
                if ccomp$ = 2 | ccomp$ = 3, psccomp1
    #-----------------
    #Stuff i added
    #-----------------
    # --------------------------------------------------------------------------
    # Tool Table Function
    # --------------------------------------------------------------------------
    tcnt       : 0      # Count the number of tool changes-Used for Tool List
    opcnt      : 0      # Count the number of operations  -Used for Tool List
    
    fmt  "TOOL"      18 tnote           # Note format
    fmt  "DIA OFFSET D" 18 toffnote    # Note format  (use fs  1 0ln)
    fmt  " LEN OFFSET H" 18 tlngnote    # Note format
    fmt  " DIA "  19 tldia$              # Note format  (use fs  0.3t)
    fmt           18 opcnt              # Operation counter
    
    pwrtt$      # Tool table at start of file 
       tnote = t$
       toffnote = tloffno$
       tlngnote = tlngno$
       opcnt = tcnt + 1          # operation counter = tool counter +1
      if t$ >= 0,
       [
       ";", *tnote, pstrtool, "", e$
       tcnt = tcnt + 1
       ]
    
    # --------------------------------------------------------------------------
    # Tool Comment / Manual Entry Section
    # --------------------------------------------------------------------------
    
    ptoolcomment    #Comment for tool
          if omitseq$ = 1, pbld, *n$, e$
          tnote = t$
          toffnote = tloffno$
          tlngnote = tlngno$
          ";", *tnote, pstrtool, *tldia$, " ", e$
    
    pstrtool        #Comment for tool
          if strtool$ <> sblank,
            [
            strtool$ = ucase(strtool$)
            *strtool$, " "
            ]
    
    
    
    pcomment$        #Comment from manual entry (must call pcomment2 if booleans)
          pcomment2,e$
    
    pcomment2       #Comment from manual entry
          scomm$ = ucase (scomm$)
          if gcode$ = 1007, " ", scomm$, " "
          else, " ", scomm$, " "
    
    # ------------------------------------------------------------------------
    # Postline - (pre-assigned)
    # ------------------------------------------------------------------------
    pupstring   # Strings to upper case
                sprognum = ucase (sprognum)
                srev = ucase (srev)
                sname = ucase (sname)
                if sname = sblank & qexit = yes$,
                [
                 result = mprint(susername)
                 exitpost$  # Stops post execution
                ]
    
    pheader$     # File header
                 17,e$
                 ";", e$
                 ";Program ", sprogname$,".TXT",e$
            if tooltable$ = 1,
             [
               "; ", e$
               ";START OF TOOL LIST", e$
             ]
    
    psof0$       # Start of file for tool zero                        1001
                  psof$
    
    psof$        # Start of file for non-zero tool number             1001
                  ";START OF PROGRAM", e$
                  n$, " ",e$
                  n$, "G75", "G90",e$
                  n$, " ",e$
                  ptoolcomment
                  n$, t$, "M06",e$
                  pcan
                  pcan1, n$, ss$, "M03", strcantext,e$
                  pcan2, n$, psg00, *x$, *y$, e$
                  n$, psg00, *z$,e$
                  rigidon = mi2$
    
    ptlchg0$     # Null tool change                                   1000
                  #if prv_z <> zr, n, *sg00, zr ---Use tlchng_aft in V8
                  rigidon = mi2$
                  if gcode$ = 1, plin$
                  else, prapid$
    
    ptlchg$      # Tool change                                        1002
                  n$, " ", e$
                  ptoolcomment
                  n$, *t$, "M6",e$
                  n$, *ss$,"M03",e$                                        #JEvans
                  pcan
                  pcan1, n$, psg00, *x$,*y$, strcantext,e$
                  pcan2
                  n$, psg00, *z$,e$
                  rigidon = mi2$
                  prv_fr$ =  -1
    
    peof0$       # End of file for tool zero                          1003
                  peof$
    
    peof$        # End of file for non-zero tool                      1003
                  n$, "G00",e$
                  n$, xh$, yh$,e$
                  n$, "M22",e$
                  4,e$
                  20,e$
    
    prapid$      # Linear line movement - at rapid feedrate              0
                   pcan
                   pcan1, n$, psccomp, *sgcode, x$, y$, z$, pfr, strcantext,e$
                   pcan2
    
    pzrapid$     # Linear movement in Z axis only - at rapid feedrate    0
                   pcan
                   pcan1, n$, psccomp, *sgcode, *z$, pfr, strcantext,e$
                   pcan2
    
    pylin       # Linear movement - y motion test
                pcan
                pcan1, n$, psccomp, sgcode, *x$, *y$, pfr, strcantext
                pcan2
    
    
    plin$        # Linear line movement - at feedrate                    1
                   pcan
                   psccomp
                   pcan1, n$, sccomp, sgcode, *x$, *y$, z$, pfr, strcantext,e$
                   pcan2
    
    pz$          # Linear movement in Z axis only - at feedrate          1
                   n$, sgcode, z$, pfr,e$
    
    pcirp2      # Circular interpolation                                2
                   psccomp
                   pcan1, n$, sgplane, sccomp, *sgcode, *x$, y$, *z$, *i$, *k$, pfr,
                     strcantext
    
    pcirp1      # Circular interpolation                                2
                   psccomp
                   pcan1, n$, sgplane, sccomp, *sgcode, x$, *y$, *z$, *j$, *k$, pfr,
                     strcantext
    
    pcirp0      # Circular interpolation                                2
                   psccomp
                   pcan1, n$, sgplane, sccomp, *sgcode, *x$, *y$, z$, *i$, *j$, pfr,
                     strcantext
    
    pcir$        # Circular interpolation                                2
                   pcan
                   if plane$ = 0, pcirp0,e$
                   if plane$ = 1, pcirp1,e$
                   if plane$ = 2, pcirp2,e$
                   pcan2
    
    pdrill0$
                   depth$ = abs(depth$)
    
    
    pdrill$      # Canned Drill Cycle
                   if dwell$ <> 0,
                     n$, *sgdrill, "G04", *x$, *y$, *depth$, *dwell$, *frplunge$,e$
                   else,
                     n$, *sgdrill, *x$, *y$, *depth$, *frplunge$,e$
    
    ppeck$       # Canned Peck Drill Cycle
                   n$, *sgdrill, *x$, *y$, *depth$, *peck1$, *peck2$, *frplunge$,e$         #JEvans
    
    pchpbrk$     # Canned Chip Break Cycle
                   n$, *sgdrill, *x$, *y$, *depth$, *peck1$, *peck2$, *frplunge$,e$         #JEvans
    
    ptap$        # Canned Tap Cycle
                   if rigidon = 1, n$, "G95", "M29",e$                                #JEvans
                   n$, *sgdrill, *x$, *y$, *depth$, *frplunge$,e$
                   if rigidon = 1, rigid = 1
    
    pbore1$      # Canned Bore #1 Cycle
                   pdrill$                                                           #JEvans 
    
    pbore2$      # Canned Bore #2 Cycle
                   pdrill$                                                           #JEvans
    
    pmisc1$      # Canned Misc #1 Cycle
    
    pmisc2$      # Canned Misc #2 Cycle 
    
    pdrill_2$    # Canned Drill Cycle
                   n$, x$, y$, depth$,e$
    
    ppeck_2$     # Canned Peck Drill Cycle
                   pdrill_2$
    
    pchpbrk_2$   # Canned Chip Break Cycle
                   pdrill_2$
    
    ptap_2$      # Canned Tap Cycle
                   pdrill_2$
    
    pbore1_2$    # Canned Bore #1 Cycle
                   pdrill_2$
    
    pbore2_2$    # Canned Bore #2 Cycle
                   pdrill_2$
    
    pmisc1_2$    # Canned Misc #1 Cycle
                   pdrill_2$
    
    pmisc2_2$    # Canned Misc #2 Cycle 
                   pdrill_2$
    
    pcanceldc$   # Cancel canned drill cycle
                if rigid = 0,   n$, "G80",e$
                else, n$, "G80", "G94", "M28",e$
                rigid = 0
    
    pcancelcc$   # Cancel cutter comp.
                n$, "G40",e$
    
    pwrtt$       # Tool table line format 
    
    # --------------------------------------------------------------------------
    # Canned Text 
    # --------------------------------------------------------------------------
    pcan            #Canned text - before output call
          strcantext = sblank
          if cant_no$ > 0,
            [
            if cant_pos1$ = 0, pcant_1
            if cant_pos2$ = 0, pcant_2
            if cant_pos3$ = 0, pcant_3
            if cant_pos4$ = 0, pcant_4
            if cant_pos5$ = 0, pcant_5
            if cant_pos6$ = 0, pcant_6
            if cant_pos7$ = 0, pcant_7
            if cant_pos8$ = 0, pcant_8
            if cant_pos9$ = 0, pcant_9
            if cant_pos10$ = 0, pcant_10
            n$, strcantext, e$
            strcantext = sblank
            ]
    
    pcan1           #Canned text - with move
          strcantext = sblank
          if cant_no$ > 0,
            [
            if cant_pos1$ = 1, pcant_1
            if cant_pos2$ = 1, pcant_2
            if cant_pos3$ = 1, pcant_3
            if cant_pos4$ = 1, pcant_4
            if cant_pos5$ = 1, pcant_5
            if cant_pos6$ = 1, pcant_6
            if cant_pos7$ = 1, pcant_7
            if cant_pos8$ = 1, pcant_8
            if cant_pos9$ = 1, pcant_9
            if cant_pos10$ = 1, pcant_10
            ]
          if cstop$, strcantext = strcantext + sm00
          if cgstop$, strcantext = strcantext + sm01
          #Output of strcantext occurs at the end of the output line 
    
    pcan2           #Canned text - after output call
          strcantext = sblank
          if cant_no$ > 0,
            [
            if cant_pos1$ = 2, pcant_1
            if cant_pos2$ = 2, pcant_2
            if cant_pos3$ = 2, pcant_3
            if cant_pos4$ = 2, pcant_4
            if cant_pos5$ = 2, pcant_5
            if cant_pos6$ = 2, pcant_6
            if cant_pos7$ = 2, pcant_7
            if cant_pos8$ = 2, pcant_8
            if cant_pos9$ = 2, pcant_9
            if cant_pos10$ = 2, pcant_10
            n$, strcantext, e$
            strcantext = sblank
            ]
    
    pcant_1         #Canned text - output call
          cantext$ = cant_val1$
          pcant_out
    
    pcant_2         #Canned text - output call
          cantext$ = cant_val2$
          pcant_out
    
    pcant_3         #Canned text - output call
          cantext$ = cant_val3$
          pcant_out
    
    pcant_4         #Canned text - output call
          cantext$ = cant_val4$
          pcant_out
    
    pcant_5         #Canned text - output call
          cantext$ = cant_val5$
          pcant_out
    
    pcant_6         #Canned text - output call
          cantext$ = cant_val6$
          pcant_out
    
    pcant_7         #Canned text - output call
          cantext$ = cant_val7$
          pcant_out
    
    pcant_8         #Canned text - output call
          cantext$ = cant_val8$
          pcant_out
    
    pcant_9         #Canned text - output call
          cantext$ = cant_val9$
          pcant_out
    
    pcant_10        #Canned text - output call
          cantext$ = cant_val10$
          pcant_out
    
    pcant_out       #Canned text - build the string for output
          #Assign string select type outputs
          #Build the cantext string
          if cantext$ = 1, strcantext = strcantext + sm00
          if cantext$ = 2, strcantext = strcantext + sm01
          if cantext$ > 2,
            [
            strtextno = no2str(cantext$)
            strcantext = strcantext + strm + strtextno
            ]
    
    # ------------------------------------------------------------------------
    # Numbered questions for Mastercam Mill
    # ------------------------------------------------------------------------
    38. Rapid feedrate? 300.0
    1538. Rapid feedrate (metric)? 10000.0
    
    80. Communications port number for receive and transmit (1 or 2) ? 2
    81. Baud rate (110, 150, 300, 600, 1200, 2400, 4800, 9600)? 4800
    82. Parity (E/O/N)? N
    83. Data bits (7 or 8)? 8
    84. Stop bits (1 or 2)? 1
    85. Strip line feeds? N
    86. Delay after end of line (seconds)? 0.0
    87. Ascii, Eia, or Binary (A/E/B)? A
    88. Echo keyboard to screen in terminal emulation? N
    89. Strip carriage returns? N
    
    90. Drive and subdirectory for NC files?
    91. Name of executable post processor? MP
    92. Name of reverse post processor? RP
    93. Reverse post PST file name?
    
    100. Number of places BEFORE the decimal point for sequence numbers? 3
    101. Number of places AFTER the decimal point for sequence numbers? 0
    103. Maximum spindle speed? 5000
    107. Average time for tool change (seconds)? 2.0
    
    159. Show first and last position as fully compensated in simulation? n
    
    161. Enable Home Position button? y
    162. Enable Reference Point button? n
    163. Enable Misc. Values button? y
    164. Enable Rotary Axis button? n
    165. Enable Tool Plane button? n
    166. Enable Construction Plane button? n
    167. Enable Tool Display button? y
    168. Check tplane during automatic work origin creation? n
    
    # --------------------------------------------------------------------------
    # Default Miscellaneous Real Values
    # --------------------------------------------------------------------------
    201. Default Index start angle? 0.0
    202. Default Index incremental angle? 0.0
    203. Default miscellaneous real variable 3 (mr3)? 0.0
    204. Default miscellaneous real variable 4 (mr4)? 0.0
    205. Default miscellaneous real variable 5 (mr5)? 0.0
    206. Default miscellaneous real variable 6 (mr6)? 0.0
    207. Default miscellaneous real variable 7 (mr7)? 0.0
    208. Default miscellaneous real variable 8 (mr8)? 0.0
    209. Default miscellaneous real variable 9 (mr9)? 0.0
    210. Default miscellaneous real variable 10 (mr10)? 0.0
    
    # --------------------------------------------------------------------------
    # Default Miscellaneous Real Values (METRIC)
    # --------------------------------------------------------------------------
    1601. Default miscellaneous real variable 1 (mr1) (metric)? 0.0
    1602. Default miscellaneous real variable 2 (mr2) (metric)? 0.0
    1603. Default miscellaneous real variable 3 (mr3) (metric)? 0.0
    1604. Default miscellaneous real variable 4 (mr4) (metric)? 0.0
    1605. Default miscellaneous real variable 5 (mr5) (metric)? 0.0
    1606. Default miscellaneous real variable 6 (mr6) (metric)? 0.0
    1607. Default miscellaneous real variable 7 (mr7) (metric)? 0.0
    1608. Default miscellaneous real variable 8 (mr8) (metric)? 0.0
    1609. Default miscellaneous real variable 9 (mr9) (metric)? 0.0
    1610. Default miscellaneous real variable 10 (mr10) (metric)? 0.0
    
    # --------------------------------------------------------------------------
    # Enable/Disable Miscellaneous Real Variable switches
    # --------------------------------------------------------------------------
    1611. Enable miscellaneous real variable 1? y
    1612. Enable miscellaneous real variable 2? y
    1613. Enable miscellaneous real variable 3? y
    1614. Enable miscellaneous real variable 4? y
    1615. Enable miscellaneous real variable 5? y
    1616. Enable miscellaneous real variable 6? y
    1617. Enable miscellaneous real variable 7? y
    1618. Enable miscellaneous real variable 8? y
    1619. Enable miscellaneous real variable 9? y
    1620. Enable miscellaneous real variable 10? y
    
    # --------------------------------------------------------------------------
    # Default Miscellaneous Integer Values
    # --------------------------------------------------------------------------
    301. Default Work Coordinate System (0=G53,1=G54 to 6=G59)? 1
    302. Rigid Tapping mode enabled (1=Yes, 0=No)? 0
    303. Default Corner Rounding On (0=off, 1=on)? 1
    304. Default miscellaneous integer variable 4 (mi4)? 0
    305. Default miscellaneous integer variable 5 (mi5)? 0
    306. Default miscellaneous integer variable 6 (mi6)? 0
    307. Default miscellaneous integer variable 7 (mi7)? 0
    308. Default miscellaneous integer variable 8 (mi8)? 0
    309. Default miscellaneous integer variable 9 (mi9)? 0
    310. Default miscellaneous integer variable 10 (mi10)? 0
    
    # --------------------------------------------------------------------------
    # Enable/Disable Miscellaneous Integer Variable switches
    # --------------------------------------------------------------------------
    1621. Enable miscellaneous integer variable 1? y
    1622. Enable miscellaneous integer variable 2? y
    1623. Enable miscellaneous integer variable 3? y
    1624. Enable miscellaneous integer variable 4? y
    1625. Enable miscellaneous integer variable 5? y
    1626. Enable miscellaneous integer variable 6? y
    1627. Enable miscellaneous integer variable 7? y
    1628. Enable miscellaneous integer variable 8? y
    1629. Enable miscellaneous integer variable 9? y
    1630. Enable miscellaneous integer variable 10? y
    
    # --------------------------------------------------------------------------
    # Configuration File association parameters (default is "y")
    # --------------------------------------------------------------------------
    #400. Name of associated cfg file? 
    401. Read SYSTEM COLORS section? y
    402. Read ALLOCATIONS section? y
    403. Read TOLERANCES section? y
    404. Read DATA PATHS section? y
    405. Read COMMUNICATIONS section? y
    406. Read DRAFT SETTINGS section? y
    407. Read MISCELLANEOUS section? y
    408. Read NC SETTINGS section? y
    409. Read DIALOG SCRIPTS section? y
    410. Read DESIGN SETTINGS section? y
    411. Read PLOTTER SETTINGS section? y
    412. Read ALT-KEY ASSIGNMENTS section? y
    413. Read CAD section? y
    414. Read START/EXIT section? y
    415. Read SCREEN section? y
    416. Read FILE NAMES section? y
    
    1500. Chook to execute from 'Misc. values' button?
    1501. Insert parameter information in the ascii NCI? n
    1502. Write operation information to binary file (.ops)? n
    1503. Write transform operations (0=transform ops, 1=source ops, 2=both)? 1
    
    1520. Display a warning when cutter compensation in control simulation finds an error? n
    1521. Number of controller look-ahead blocks for CDC in control? 2
    
    1530. Ignore work offset numbers when processing subprograms? y
    1531. Ignore contour flags when processing subprograms? y
    
    # Do NOT manually change the answer for Q.1999 !
    1999. Product major version number that post supports? 9
    
    3001. Machine acceleration? 2
    3002. timing size? .1
    
    
    [CTRL_MILL|DEFAULT]
    [misc integers]
    1. //1
    3. //1
    [CTRL_MILL|MPDX32]
    [misc integers]
    1. //1
    3. //1
    [CTRL_TEXT_END]

  2. #2
    Join Date
    Mar 2005
    Posts
    988
    Post the nc code with this "crazy code" so we can see what all the craziness is about....
    It's just a part..... cutter still goes round and round....

  3. #3
    This is a slot along an arc.

    I would like the tool to enter cutter comp, Z down at the right arc side of slot(as I would use a drill to open it up to descend at the center of the arc), cut, Z up, exit cutter comp.

    What actually happens is it seems to come down to far to the right(outside of the slot), make a move beck to the left, Z down(Z should be w/o XY coords), cut the slot, then do an extra arc or two, then Z up(Z should be w/o XY coords or it ignores Z), exits cutter comp.

    G75 G90

    N100
    ; TOOL22. 1/2 TIALN ROUGHING ENDMILL DIA .51
    T22 M06
    S1000 M03
    G0 X-6.3698 Y9.4241
    G0 Z.1
    G41 G48 G1 X-6.3698 Y9.4241 F6.0 <-bad X Y
    X-6.3698 Y9.4241 <-bad XY
    X-6.1165 Y9.5956
    X-6.1165 Y9.5956 Z-.66 <- should be no X Y
    G3 X-6.4844 Y9.6673 I-6.3364 J9.4467
    G3 X-7.5055 Y8.8979 I0. J0.
    G3 X-7.4119 Y8.4408 I-7.3342 J8.6948
    G3 X-7.1647 Y8.4903 I-7.3342 J8.6948
    G2 X-6.1866 Y9.2274 I0. J0.
    G3 X-6.1165 Y9.5956 I-6.3364 J9.4467 <- no idea why this is generated
    G1 X-6.1165 Y9.5956 Z.1 F100.0 <- should be no X Y
    X-6.3698 Y9.4241 F6.0
    G40
    G00

    M22


    Thanks for looking.

  4. #4
    ;G2 X-6.1866 Y9.2274 I0. J0.
    ;G3 X-6.1165 Y9.5956 I-6.3364 J9.4467 <- no idea why this is generated
    ;G1 X-6.1165 Y9.5956 Z.1 F100.0 <- should be no X Y

    After closer examination, that G3 is legit and should be there, it closes the end of the slot, yet the controller wants to do some crazy arc outside of the slot....must be a formatting issue, just not sure what order i would have to put the code in....oh well....back to trial and error

  5. #5
    Join Date
    Mar 2005
    Posts
    988
    Most people utilize comp with the lead in move once they are in the part. You're looking to take up comp and remove it above the part which may get a little tricky. BUT, if you go into the control definitions (from the machine definitions manager), click on "Cutter Compensation". Make sure the box is checked for "Control supports cutter comp..." Then look down and theres a box to check for "Start and end cutter compensation above part". Try that and see if it does what you need.

    :cheers:
    It's just a part..... cutter still goes round and round....

  6. #6
    Join Date
    Mar 2006
    Posts
    1013
    Nearly impossible to get a Z move after the comp gets turned on. It's always going to position, drop Z, ramp on with comp.

    Mike
    Tips For Manufacturing Training CD's, DVD's for Mastercam, SolidWorks, Inventor, G-Code Training & More
    http://www.tipsforcadcam.com

  7. #7
    Join Date
    Mar 2006
    Posts
    1013
    psychomill: Checking the box is only part of it. You will still have to make MAJOR changes to the post for it to wok the way he wants.

    Mike
    Tips For Manufacturing Training CD's, DVD's for Mastercam, SolidWorks, Inventor, G-Code Training & More
    http://www.tipsforcadcam.com

Posting Permissions

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