we have alot of old mastercam version 7 parts that we need posted for one of our new machines. It is a five axis with a c axis that rotates in the xy plane and a A axis that rotates in the xz plane.

we have severel old post for version 7 but am unable to figure out how to change the way the machine figures the angles.

i thing this line is what is needing changed, but not sure to what

pgetab # Get A and B axis angles
b=90-atan2(vtoolz,vtoolx)
a=atan(-vtooly/(sqrt(vtoolx^2+vtoolz^2)))
pchkab


whole post:


# ---------------------------------
#| MASTERCAM MP POST PROCESSOR |
#| CNC Software, Inc. |
#| Control Model: Cincinnati |
#| Machine Model: v30 |
#| PST File Name: MPCINC.PST/TXT |
#| Executable : MP.EXE 3.06 |
# ---------------------------------
#
# ---------------
#| REVISION LOG |
# ------------------------------------------------------------------------
# Programmers Note:
# CNC 5/12/94 - Initial post setup for Mill5
# 1.0 Jph 08/19/94 Initial source control check-in
# 1.1 jph 08/24/94 Correct coolant text
# 1.2 jph 09/02/94 Ques. 86. was 0.2 delay
# 1.3 pdr 09/06/94 Updated and corrected numbered questions
# 1.4 pdr 09/07/94 Updated reverse post name (q 93.)
# 1.5 bkr 10/02/95 fixed drill 5axis problem
# 1.6 BPH MODIFIED TO RAMB PST
#
# ---------------
#| FEATURES: |
# ------------------------------------------------------------------------
# Users Note:
#
# --------------------------------------------------------------------------
# DEBUG/PROGRAM SWITCHES, debugging and program switches
# --------------------------------------------------------------------------
bug1 : 1 # 1 = Output post to screen, 2 = output leader to screen
bug2 : 0 # Append postline labels, non-zero is column position?
bug3 : 0 # Append whatline no. to each NC line?
bug4 : 0 # Append NCI line no. to each NC line?
whatno : 0 # Do not perform whatline branches?

rpd_typ_v7 : 1 #Use Version 7 style contour flags?
strtool_v7 : 2 # Use Version 7 toolname, 1= path components, 2=string
get_1004 : 1 # Find gcode 1004 with getnextop?

# --------------------------------------------------------------------------
# FORMAT STATEMENTS - n=nonmodal, l=leading, t=trailing, i=inc, d=delta
# --------------------------------------------------------------------------
fs 1 0.3 #Decimal, absolute, 4 place
fs 2 0.4d #Decimal, delta
fs 3 1 0 #Integer, not leading
fs 4 2 0l #Integer, two leading
fs 5 3 0l #Integer, three leading
fs 6 4 0l #Integer, four leading
fs 7 0.1 #Decimal, absolute, 1 place
fs 8 0.2 #Decimal, absolute, 2 place
fs 9 0.3 #Decimal, absolute, 3 place
fs 10 0 4t #No decimal, absolute, four trailing
fs 11 0.4t #Decimal, absolute, four trailing

# --------------------------------------------------------------------------
# FORMAT ASSIGNMENTS
# --------------------------------------------------------------------------
# Axis output formats - Linear
# --------------------------------------------------------------------------
fmt X 1 xd # X delta axis position x+(vtoolx*(gauge+pivot))
fmt Y 1 yd # Y delta axis position y+(vtooly*(gauge+pivot))
fmt Z 1 zd # Z delta axis position z-(vtoolz*(gauge+pivot))-(gauge+pivot)
fmt X 1 xdd # X axis position feed in and out of part along tool axis
fmt Y 1 ydd # Y axis position " "
fmt Z 1 zdd # Z axis position " "
fmt X 1 xrd # X delta rapid position from tc xr+(vtoolx*(gauge+pivot))
fmt Y 1 yrd # Y delta rapid position from tc yr+(vtooly*(gauge+pivot))
fmt Z 1 zrd # Z delta rapid position from tc zr+(vtoolz*(gauge+pivot))
fmt X 1 xfd # X delta feedto position
fmt Y 1 yfd # Y delta feedto position
fmt Z 1 zfd # Z delta feedto position
fmt X 1 x # X axis position
fmt Y 1 y # Y axis position
fmt Z 1 z # Z axis position
fmt X 1 xr # X rapid position from tool change
fmt Y 1 yr # Y rapid position from tool change
fmt Z 1 zr # Z rapid position from tool change
fmt X 1 xh # X home position
fmt Y 1 yh # Y home position
fmt Z 1 zh # Z home position

# --------------------------------------------------------------------------
# Axis output formats - Circular
# --------------------------------------------------------------------------
fmt I 2 i # Arc center description in X
fmt J 2 j # Arc center description in Y
fmt K 2 k # Arc center description in Z
fmt R 1 arcrad # Arc Radius
fmt R- 1 arcradm # Arc Radius over 180 degree sweep

# --------------------------------------------------------------------------
# Axis output formats - 5 axis ( 2 tilting heads )
# --------------------------------------------------------------------------
fmt A 9 a # A axis mounted on b ( A axis rotation about x axis )
fmt B 9 b # B axis rotation ( B axis rotation about y axis)
fmt A 9 aa # A axis mounted on b ( A axis rotation about x axis )
fmt B 9 bb # B axis rotation ( B axis rotation about y axis)
fmt A 9 atv # A axis mounted on b ( A axis rotation about x axis )
fmt B 9 btv # B axis rotation ( B axis rotation about y axis)
fmt 9 xangle
fmt 9 yangle

# --------------------------------------------------------------------------
# Program & Sequence number format
# --------------------------------------------------------------------------
fmt "O" 6 progno # Program number
fmt N 3 n # Sequence nos.

# --------------------------------------------------------------------------
# Tool format
# --------------------------------------------------------------------------
fmt T 3 t # Tool No
fmt T 3 first_tool# First Tool Used (bldnxtool: yes)
fmt T 3 next_tool # Next Tool Used (bldnxtool: yes)
fmt D 3 diacomp # Diameter Offset No
fmt H 3 tlngno # Length Offset No

fmt "TOOL " 4 tnote # Note format
fmt "DIA. OFF. - " 4 toffnote # Note format
fmt "LENGTH - " 4 tlngnote # Note format
fmt 11 tldia # Note format
fmt "MSG, GAUGE LENGTH = " 11 gauge # Note format
fmt "MSG, PIVOT DISTANCE = " 11 pivot # Note format
fmt 3 awarn # Note format
fmt 3 bwarn # Note format


# --------------------------------------------------------------------------
# Spindle Speeds & Feedrate output formats
# --------------------------------------------------------------------------
fmt S 6 speed # Spindle Speed
fmt F 7 fr # Feedrate
fmt F 7 frx # Tool tip Feedrate 5 axis
fmt F 7 rapidfr # Rapid Feedrate
fmt F 7 frdeg # Feedrate for rotary
fmt M 3 gear # Gear range
fmt 3 chrdif # character count differance

# --------------------------------------------------------------------------
# Drill variable formats
# --------------------------------------------------------------------------
fmt G 3 drillref # Initial / Reference Toggle (G98/G99)
fmt P 1 dwell # Dwell
fmt X 1 initx # Initial Height X Point ( 5 - axis drill )
fmt Y 1 inity # Initial Height Y Point ( 5 - axis drill )
fmt Z 1 initz # Initial Height Z Point ( 5 - axis drill )
fmt Z 1 initht # Initial Height
fmt X 1 refx # Reference Height X Point ( 5 - axis drill )
fmt Y 1 refy # Reference Height Y Point ( 5 - axis drill )
fmt Z 1 refz # Reference Height Z Point ( 5 - axis drill )
fmt R 1 refht # Reference Height
fmt X 1 depthx # Depth X Point ( 5 - axis drill )
fmt Y 1 depthy # Depth Y Point ( 5 - axis drill )
fmt Z 1 depthz # Depth Z Point ( 5 - axis drill )
fmt Z 1 depth # Depth
fmt K 1 peck1 # First peck increment (positive)
fmt 1 peck2 # Second or last peck (positive)
fmt 1 peckclr # Safety distance
fmt 1 retr # Retract height
fmt F 8 frplunge # Plunge feedrate in drill cycles

# --------------------------------------------------------------------------
# Miscellaneous output formats
# --------------------------------------------------------------------------
fmt M 5 ssrange # Spindle Speed Range

# --------------------------------------------------------------------------
# INITIALIZE - initialize system variables and define user variables
# --------------------------------------------------------------------------
andflag : 0 # boolean
modalflg : 0 # Molal Flag for coolant
ask : 0 # Flag whether to ask question #1
arcoutput : 0 # 0 = IJK, 1 = R no sign, 2 = R signed neg. over 180
breakarcs : 1 #Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs

stagetool : 0 # 0 = Do not pre-stage tools, 1 = Stage tools
use_gear : no # Set to yes to output gear range codes
getnextop : yes # Get next OP code in NEXTOP? yes/no
rotaxtyp : 4 # 5-axis toolplane rotation (not tombstone)
omitround : yes # Omit initial rounding of -.NCI data? yes/no
linarc : no # Linearize arcs? yes/no
qtoolpln : no # MP386 - Enable tool plane option
qtoolopt : no # MP386 - Enable tool optimization
arctype : 1 # Arc center 1=abs, 2=St-Ctr, 3=Ctr-St, 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
bldnxtool : no # Build next tool table (**** WARNING ****)
#(*** DO NOT SET TO YES IF DOING FIXED AXIS SURFACE CONTOURING ***)

ldrcode : 65 # Leader character dec. equiv. (fleader outputs code)
ncldr : 20 # No. of leader characters (fleader outputs code)
nobrk : no # Omit breakup of x/y & z rapid moves
omitcrlf : no # Omit CR/LF
omitrefht : no # Don't use reference height on first non-canned Z move
omitseq : no # Omit sequence no.
omitz : no # Omit first Z movement for non-canned-cycles
progname : 1 # Use uppercase for program name
scalex : 1.0 # Scaling of .NCI at input - x,y,z,i,j,k
scaley : 1.0 # Scaling of .NCI at input - x,y,z,i,j,k
scalez : 1.0 # Scaling of .NCI at input - x,y,z,i,j,k
seqmax : 9999 # Max. sequence no.
skipmotest: no # Skip motion test in linear
spaces : 0 # No. of spaces to add between fields
tooltable : 0 # Read for tool table and pwrtt (**** WARNING ****)
#(*** DO NOT SET TO YES IF DOING FIXED AXIS SURFACE CONTOURING ***)

absswp : 0 # Absolute sweep
drlgsel : -1 # Drill Select Initialize
maxfrdeg : 999 # Limit for feed in deg/min
absinc : 0 # Absolute/Incremental toggle for modality
tcnt : 0 # Count the number of tool changes
adelta : 0 # Calculation for deg/min
ldelta : 0 # Calculation for deg/min
zdelta : 0 # Calculation for deg/min
alzdelta : 0 # Calculation for deg/min
frdelta : 0 # Calculation for deg/min
frdegcalc : 0 # Calculation for deg/min
circum : 0 # Calculation for deg/min
rotstrt : 1 # Flag for first rotary position
rapidfr : 300 # Rapid feedrate
tpln : 0 # 1=Tool Plane used 0=Tool plane not used
atv : 0 # Tool angle from tool plane
btv : 0 # Tool angle from tool plane
xa : 0 #
ya : 0 #
za : 0 #
lx : 0 #
ly : 0 #
lz : 0 #
lxd : 0 #
lyd : 0 #
lzd : 0 #
len1 : 0 #
len2 : 0 #
frx : 0 # 5-axis calculated feedrate
frxnci : 0 # 5-axis nci feedrate
xdd : 0 # 5-axis x value
ydd : 0 # 5-axis y value
zdd : 0 # 5-axis z value
rpnlxdd : 0 # 5-axis rapid z plane x value
rplnydd : 0 # 5-axis rapid z plane y value
rplnzdd : 0 # 5-axis rapid z plane z value
rl : 0 # retract to clearance plane length
typ : 0 # 5-axis cut type
prvx : 0
prvy : 0
prvz : 0
prvxd : 0
prvyd : 0
prvzd : 0
fedratmin : 0 # minimize feedrate chances
gauge : 0 # tool gauge length
chrexced : 3200000# Total number of charaters
chrdif : 0 # difference between nchar and current char count
aaxexced : 20 # A axis max angle
baxexced : 20 # B axis max angle
chka : 0 # A axis check variable
chkb : 0 # B axis check variable
atc : 0 # Tool change toggle
d : 0 # A AXIS + or -
arcerror : 0 # ERROR FLAG FOR ARCS OVER 650 RADIUS
awarn : 0 # FLAG FOR A AXIS OVERTRAVEL
bwarn : 0 # FLAG FOR B AXIS OVERTRAVEL
vtlngx : 0 # vector tool length (used when 1014 line is used)
vtlngy : 0 # vector tool length (used when 1014 line is used)
vtlngz : 0 # vector tool length (used when 1014 line is used)
pivot : 5. # Machine Pivot Distance

# Parameters for lead-in and lead-out - 5 axis only
# See LEADIN.MAN
# ************************************************** ************
# ** DOT NOT CHANGE ANY OF THE LEAD-IN OR LEAD-OUT VALUES **
# ************************************************** ************
ldinl1 : .0000001 #lead-in 1 length (no output if zero)
ldina1 : 90 #lead-in 1 angle (90 = along tool axis)
ldinl2 : 0 #lead-in 2 length (no output if zero)
ldina2 : 90 #lead-in 2 angle (90 = along tool axis)
ldoutl1 : .0000001 #lead-out 1 length (no output if zero)
ldouta1 : 90 #lead-out 1 angle (90 = along tool axis)
ldoutl2 : 0 #lead-out 2 length (no output if zero)
ldouta2 : 90 #lead-out 2 angle (90 = along tool axis)

# --------------------------------------------------------------------------
# FORMULAS - global formulas
# --------------------------------------------------------------------------
ssrange = mi3 # Gear Range Select
speed = abs ( ss ) # Absolute spindle speed
arcradm = arcrad # Negative arcrad
spdlsel = fsg3(ss) # Spindle on selector based on pos. or neg. ss
diacomp = tloffno+20 # Tool dia offset Number

# --------------------------------------------------------------------------
# CANNED CYCLES - select long or short code
# --------------------------------------------------------------------------
usecandrill : yes # Use canned cycle for drill
usecanpeck : yes # Use canned cycle for Peck
usecanchip : yes # Use canned cycle for Chip Break
usecantap : yes # Use canned cycle for Tap
usecanbore1 : yes # Use canned cycle for Bore1
usecanbore2 : yes # Use canned cycle for Bore2
usecanmisc1 : yes # Use canned cycle for Misc1
usecanmisc2 : yes # Use canned cycle for Misc2

# --------------------------------------------------------------------------
# Lookup table definitions - for math functions FLOOK and FRANGE
# --------------------------------------------------------------------------
flktbl 1 3 # Lookup table definitions - table no. - no. entries
40 1000 # Low gear range
41 2500 # Med gear range
42 5000 # Hi gear range

# --------------------------------------------------------------------------
# Strings - String labels must start with 's' - they are not pre-assigned
# --------------------------------------------------------------------------
#Select operation note
sop00 NULL # String definition
sop01 2D-CONTOUR # " "
sop02 3D-CONTOUR # " "
sop03 DRILL/MISC # " "
sop04 POCKET # " "
sop05 RULED # " "
sop06 2D-SWEPT # " "
sop07 3D-SWEPT # " "
sop08 REVOLVED # " "
sop09 LOFT # " "
sop10 COONS # " "
sop11 TRIM # " "
sop12 FILLET # " "
sop13 ROUGH # " "
sop14 OP14 # " "
sop15 OP15 # " "

sopnote # Target string

fstrsel sop00 opcode sopnote

# --------------------------------------------------------------------------
# Select motion G code
sg00 G0 # Linear movement at rapid feedrate
sg01 G1 # Linear movement at feedrate
sg02 G2 # Circular interpolation CW
sg03 G3 # Circular interpolation CCW
sg04 # *
sg05 # *
sg06 # *
sg07 # fillers
sg08 # *
sg09 # *
sg10 # *
sg11 G1 # 5 axis linear move

sgcode # Target string

fstrsel sg00 gcode sgcode

# --------------------------------------------------------------------------
# Select incremental or absolute G code
sg90 G90 # Absolute G code
sg91 G91 # Incremental G code

sgabsinc # Target string

fstrsel sg90 absinc sgabsinc

# --------------------------------------------------------------------------
# Select spindle start
sm04 M4 # Spindle reverse
sm05 M5 # Spindle off
sm03 M3 # Spindle forward

spdlon # Target string

fstrsel sm04 spdlsel spdlon

# --------------------------------------------------------------------------
# Cutter compensation code
scc0 "" # Cutter compensation state not changed
sg40 G40 # Cancel cutter compensation
sg41 G41 # Cutter compensation left
sg42 G42 # Cutter compensation right
sg140 G40 # 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 # Target string

fstrsel scc0 ccomp sccomp

# --------------------------------------------------------------------------
# Select work plane G code
sg17 G17 # XY plane code
sg19 G19 # XZ plane code
sg18 G18 # YZ plane code

sgplane # Target string

fstrsel sg17 plane sgplane

# --------------------------------------------------------------------------
# Work coordinate system
sg50 G92 # Work coordinate system G code
sg51 G92 # " " " " "
sg52 G92 # " " " " "
sg53 G92 # " " " " "
sg54 G54 # " " " " "
sg55 G55 # " " " " "
sg56 G56 # " " " " "
sg57 G57 # " " " " "
sg58 G58 # " " " " "
sg59 G59 # " " " " "

sgwcs # Target string

fstrsel sg50 mi1 sgwcs

# --------------------------------------------------------------------------
# Canned drill cycle string select
sg81 G81 # drill - no dwell
sg81d G82 # drill - with dwell
sg83 G83 # peck drill - no dwell
sg83d G83 # peck drill - with dwell
sg73 G73 # chip break - no dwell
sg73d G73 # chip break - with dwell
sg84 G84 # tap - no dwell
sg84d G74 # tap - with dwell (selects left hand)
sg85 G85 # bore #1 - no dwell
sg85d G89 # bore #1 - with dwell
sg86 G86 # bore #2 - no dwell
sg86d G86 # bore #2 - with dwell
sgm1 G81 # misc #1 - no dwell
sgm1d G82 # misc #1 - with dwell
sgm2 G81 # misc #2 - no dwell
sgm2d G82 # misc #2 - with dwell

sgdrill # Target string

drlgsel = drillcyc * 2 + fsg2 ( dwell ) # 16 possible combinations:
# drillcyc = 0..7
# dwell = 0 or non-zero (2 states)
fstrsel sg81 drlgsel sgdrill

# --------------------------------------------------------------------------
# Generate 'sgear' string
# --------------------------------------------------------------------------
sgear0 M** # auto gear range
sgear1 M41 # Low gear range
sgear2 M42 # Med gear range
sgear3 M43 # High gear range - selected in parameters by mi3
sgear

fstrsel sgear0 gear sgear

# --------------------------------------------------------------------------
# Generate 5 axis cut type string
# --------------------------------------------------------------------------
styp0 UNKNOWN # Unknown tool path
styp1 ZIG-ZAG # zig-zag tool path
styp2 ONE-WAY # one-way tool path
styp3 CIRCULAR # Circular tool path
styp4 SWARF # Swarf tool path

scutyp # Target String

fstrsel styp0 cuttyp scutyp

# --------------------------------------------------------------------------
# Question Definitions - set up questions to be posed during postprocessing
# --------------------------------------------------------------------------
fq 1 gauge Enter gauge length for 5-axis tool path:
fq 2 omitseq Omit line numbers (0=no, 1=yes):

# --------------------------------------------------------------------------
# POSTLINES, USER-DEFINED - Postline labels start with 'p'.
# End a line with ',' to continue on the next line.
# End a line with ', e' to generate carriage return and linefeed.
# --------------------------------------------------------------------------
# Program general output control, user defined
# --------------------------------------------------------------------------
pinit # Initialize Vars
prv_fr = 999.999
prv_frdeg = 999.999
prv_frplunge = 999.999
prv_x = 0
prv_y = 0
prv_z = 0
a = 0.00
b = 0.00
linarc = 0
rotstrt = 1
whatline = 0

pchkab # CHECK A & B AXIS FOR OVERTRAVEL
chka = abs(a)
chkb = abs(b)
if chka > aaxexced , awarn = awarn+1
if chkb > baxexced , bwarn = bwarn+1


pgetab # Get A and B axis angles
b=90-atan2(vtoolz,vtoolx)
a=atan(-vtooly/(sqrt(vtoolx^2+vtoolz^2)))
pchkab

p5engage0 # 5 axis engage parameters NO TOOL CHANGE
pgetab

p5engage1 # 5 axis engage parameters at tool change
gauge=t
q1
ask = 1
n,"(",*gauge,")",e
n,"(",~pivot,")",e
n,"(",*scutyp," TOOL PATH)",e
fr = 22.9

p5engage # 5 axis select engage type
!xr,!yr
andflag = 0
if atc = 0 , andflag = 1 # psof
if ask = 0, andflag = andflag+1
if ask = 1, andflag = andflag+2
if atc = 1, andflag = andflag+4 # ptlchg0
if atc = 2, andflag = andflag+8 # ptlchg
if andflag = 2, p5engage1 # ask for gauge length
if andflag = 5, p5engage1 # ask for gauge length
if andflag = 9, p5engage1 # ask for gauge length
if andflag = 3, p5engage0 # don't ask for gauge length
if andflag = 6, p5engage0 # don't ask for gauge length
if andflag = 10, p5engage0 # don't ask for gauge length

pcooloff # Coolant off "M" code output
"M09"
modalflg = 0

pcoolon # Coolant "M" code output
andflag = 0
if coolant >= 1 , andflag = 1
if modalflg = 0, andflag = andflag+1
if andflag = 2, "M08" # Flood
modalflg = 1

pcomment # Manual Entry - COMMENTS (on a block by itself) 1005,1006
n, "(MSG,", scomm, ")"

presetab # Reset A and B axis to 0.00
if a <> 0, "A0."
if b <> 0, "B0."

presetab1 # Reset A and B axis to 0.00
andflag = gcode
gcode = 0
if a <> 0, a = 0
if b <> 0, b = 0
n, sgcode, a, b, e
gcode = andflag

presetab0 # Reset A and B axis to 0.00 (at tool change / no tool change)
andflag = 0
if prv_a <> 0 , andflag = 1
if prv_b <> 0 , andflag = andflag+1
if andflag > 0, presetab1


ptoolaxis # Get tool axis from tool plane
if tpln = 1, p5engage

andflag = 0
if tpln = 0 , andflag = 1
if nextop <> 11 , andflag = andflag+1
if andflag = 2, presetab0

andflag = 0
if atc = 0 , andflag = 1
if atc = 1 , andflag = 1
if atc = 2 , andflag = 1
if tpln = 0 , andflag = andflag+1
if nextop = 11 , andflag = andflag+1
if andflag = 3, p5engage


pfixedax # FIXED AXIS CONTOURING CODE
rl = (1/vtoolz)*(zh-zr) # retract to clearance plane lngth
xd = xr+(vtoolx*(gauge+pivot+rl)) # 5 axis x rapid position
yd = yr+(vtooly*(gauge+pivot+rl)) # 5 axis y rapid position
n,xd,yd,e

ptllnth # Output correct tool length comp codes
if tpln = 0, n,xr,yr,e
if nextop = 11, ptoolaxis,e
if tpln = 1, ptoolaxis,e
if tpln = 1, pfixedax

andflag = 0
if tpln = 0 , andflag = 1 # no tool plane used
if tpln = 1, andflag = 2 # tool plane used
if nextop = 11, andflag = andflag+2 # 5-axis tool path
if nextop < 11, andflag = andflag+4 # not 5-axis
if andflag = 3, n, *zh, pcoolon,e
if andflag = 5, n, *zr, pcoolon
if andflag = 6, n, *zh, pcoolon,e
if andflag = 4, "*** Cant use tool plane with 5-axis tool path ***"

pabs # Absolute G code output
absinc = 0
sgabsinc

pinc # Incremental G code output
absinc = 1
sgabsinc


pfr # Feedrate W/O Negative Feedrates and
if fr > 0, fr

pfrx # Calculate Feedrate Changes on 5 -axis moves (tip speed)
lx = x-prvx
ly = y-prvy
lz = z-prvz
!x,!y,!z
lxd = xd-prvxd
lyd = yd-prvyd
lzd = zd-prvzd
len1 = sqrt((lx*lx)+(ly*ly)+(lz*lz))
len2 = sqrt((lxd*lxd)+(lyd*lyd)+(lzd*lzd))
frx = 10/(int(10*((fr*len2)/len1)))
fedratmin = int(frx-prv_frx)
if fedratmin = 0 , frx = prv_frx
if frx > 0, fr = frx
if whatline = 2 , fr = rapidfr
#if whatline = 3 , *frx
fr

pcan # Canned text - cantext = 0, 1, 2, 3
if cantext = 1, "M01" #optional stop
if cantext = 2, " " #user option
if cantext = 3, " " #user option

pentry # Feed to part from rapid z plane along tool axis
pgetab
gcode = 0
xrd = x+(vtoolx*(gauge+pivot+rl)) # 5 axis x rapid position
yrd = y+(vtooly*(gauge+pivot+rl)) # 5 axis y rapid position
zrd = zh+(vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z rapid pos
n,sgcode,xrd,yrd,zrd,e
n,sgcode,a,b,e
gcode = 11
prv_xfd = xrd
prv_yfd = yrd
prv_zfd = zrd
xfd = xd #x+(prv_vtoolx*(gauge+pivot)) # 5 axis x feedin position
yfd = yd #y+(prv_vtooly*(gauge+pivot)) # 5 axis y feedin position
zfd = zd #z+(prv_vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z feedin position
fr = 60
n,sgcode,xfd,yfd,zfd,pfr
prv_xd = xfd
prv_yd = yfd
prv_zd = zfd

p5retract # 5 axis retract parameters
a = 0
b = 0
n,sgcode,x,y,zh,a,b,fr

pstZig # Start of 5 - axis Zig-zag
"5-AXIS ZIG-ZAG START"

pstOne # Start of 5 - axis One-way
"5-AXIS ONE-WAY"

pstCir # Start of 5 - axis Circular
"5-AXIS CIRCULAR"

pstSwf # Start of 5 - axis Swarf
frxnci = fr
pchkab
pentry
fr = frxnci
!x,!y,!z

pmidZig # Middle of 5 - axis Zig-zag (THERE IS NO MIDDLE ON ZIG-ZAG)

pmidOne # Middle of 5 - axis One-way

pmidCir # Middle of 5 - axis Circular

pmidSwf # Middle of 5 - axis Swarf
pgetab
pchkab
n,sgcode,xd,yd,zd,a,b,pfrx

pendZig # end of 5 - axis Zig-zag
"ZIG-ZAG END"

pendOne # end of 5 - axis One-way
"ONE-WAY END"

pendCir # end of 5 - axis Circular
"CIRCULAR END"

pendSwf # end of 5 - axis Swarf
pgetab
pchkab
n,sgcode,xd,yd,zd,a,b,pfrx,e
fr = 100
#!rl
prv_xrd = xd
prv_yrd = yd
prv_zrd = zd
xrd = x+(vtoolx*(gauge+pivot+rl)) # 5 axis x rapid position
yrd = y+(vtooly*(gauge+pivot+rl)) # 5 axis y rapid position
zrd = zh+(vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z rapid pos
n,sgcode,xrd,yrd,zrd,a,b,pfr

pseltyp # Select type of cut (5 - axis)
rl = (1/vtoolz)*(zh-z) # retract to clearance plane lngth
xd = x+(vtoolx*(gauge+pivot)) # 5 axis x position
yd = y+(vtooly*(gauge+pivot)) # 5 axis y position
zd = z+(vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z position
typ = 0
if cutpos = 1 , typ = typ + 10
if cutpos = 2 , typ = typ + 20
if cutpos = 3 , typ = typ + 30
if cuttyp = 1 , typ = typ + 1
if cuttyp = 2 , typ = typ + 2
if cuttyp = 3 , typ = typ + 3
if cuttyp = 4 , typ = typ + 4
if typ = 11 , gauge = t
if typ = 11 , q1
if typ = 11 , pstZig # Start of 5 - axis Zig-zag
if typ = 12 , pstOne # Start of 5 - axis One-way
if typ = 13 , pstCir # Start of 5 - axis Circular
if typ = 14 , pstSwf # Start of 5 - axis Swarf
if typ = 21 , pmidZig # Middle of 5 - axis Zig-zag
if typ = 22 , pmidOne # Middle of 5 - axis One-way
if typ = 23 , pmidCir # Middle of 5 - axis Circular
if typ = 24 , pmidSwf # Middle of 5 - axis Swarf
if typ = 31 , pendZig # end of 5 - axis Zig-zag
if typ = 32 , pendOne # end of 5 - axis One-way
if typ = 33 , pendCir # end of 5 - axis Cricular
if typ = 34 , pendSwf # end of 5 - axis Swarf

# --------------------------------------------------------------------------
# Work coordinate output, user defined
# --------------------------------------------------------------------------

pwcs # G54+ coordinate setting
if mi1 >= 4, *sgwcs

# --------------------------------------------------------------------------
# Gear selection control, user defined
# --------------------------------------------------------------------------
pgear # Find spindle range
gear = frange ( 1, speed )
*gear

prange # Find spindle range
if use_gear = 1, pgear

# --------------------------------------------------------------------------
# Cutter comp. output control, user defined
# --------------------------------------------------------------------------
pccdia2 # Cutter Compensation2
# if ccomp <> 4, *diacomp

pccdia # Cutter Compensation
# if ccomp <> 0, pccdia2

# --------------------------------------------------------------------------
# Axis substitution motion, user defined
# --------------------------------------------------------------------------
pdrlxyrot # Substitute Axis X/Y with Rotary axis w/ drilling
xangle = xs
yangle = ys
if rotaxis = 0, x, y
if rotaxis = 1, y, xangle
if rotaxis = 2, x, yangle

pfrd # Feedrate W/O Negative Feedrates (deg/min)
if frdeg > maxfrdeg, frdeg = maxfrdeg
if frdelta > .5, *frdeg #Value to exceed to output frdeg


# --------------------------------------------------------------------------
# Axis linear/circular motion, user defined
# --------------------------------------------------------------------------
parctyp2 # Arc output for R w/ sign over 180 degree sweep
absswp = abs ( sweep )
if absswp <= 180, *arcrad
if absswp > 180.0001, *arcradm
if arcrad > 650, arcerror = 1

parctyp1 # Arc output for R w/ no sign
*arcrad

parctyp0 # Arc output for IJK
if plane = 0, *i, *j, k
if plane = 1, i, *j, *k
if plane = 2, *i, j, *k

parctyp # Select the arc output
if arcoutput = 0, parctyp0
if arcoutput = 1, parctyp1
if arcoutput = 2, parctyp2

prapidm # Linear line movement - at rapid feedrate
n, sgplane, sccomp, pccdia, sgcode, x, y, z, pcan

plinm # Linear line movement - at feedrate
!coolant
n, sccomp, pccdia, sgcode, x, y, z, pfr, pcan

plin5ax # 5 - axis toolplane Linear line movement - at feedrate
!coolant,!x,!y,!z
xd = x+(vtoolx*(gauge+pivot)) # 5 axis x position
yd = y+(vtooly*(gauge+pivot)) # 5 axis y position
zd = z+(vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z position
n, sgcode, xd, yd, zd, a, b, pfr

plin5ax1 # 5 - axis toolplane Linear line movement - at zhome plane
!coolant,!x,!y,!z
rl = (1/vtoolz)*(zh-zr) # retract to clearance plane lngth
xd = x+(vtoolx*(gauge+pivot+rl)) # 5 axis x position
yd = y+(vtooly*(gauge+pivot+rl)) # 5 axis y position
zd = zh+(vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z position
n, sgcode, a, b, pfr

pcirm # Circular interpolation
n, sgplane, sccomp, pccdia, sgcode, x, y, z, parctyp, pfr, pcan

# --------------------------------------------------------------------------
# Drilling, user defined
# --------------------------------------------------------------------------

pdrillref # Determine G98 or G99
if initht <> refht, drillref = 98
if initht = refht, drillref = 99
if initht = zr, n, *initht, ptoolaxis, pcoolon,e
if initht <> zr, n, *zr, ptoolaxis, pcoolon,e

pdwell # Determine whether to output dwell
if dwell <> 0, *dwell

ptlchg0dr3 # Null tool change for drilling
gcode = 6
if zr < prv_zr, n, sgcode, *xr, *yr, e
if zr < prv_zr, n, sgcode, *zr, e

ptlchg0dr2 # Null tool change for drilling
if zr <> prv_zr, ptlchg0dr3

ptlchg0drl # Null tool change for drilling
if prv_opcode = 3, ptlchg0dr2

# --------------------------------------------------------------------------
# POSTLINES, PRE-DEFINED - Postline names are pre-assigned.
# Lines do not need to end with ', e' for carriage return and linefeed.
# --------------------------------------------------------------------------
pq # get initial values
q2

pheader # File header
if progno = 0 ,progno = 1
":", e
"(MSG, PROGRAM NAME ", progname, ")"
"(MSG, POSTED FOR CINCINNATI-3)"
"(MSG,PROGRAMMER - DJA)"
"(MSG, ", time,", ",month,"-",day,"-",year,")"

psof0 # Start of file for tool zero
psof

psof # Start of file for non-zero tool number
pinit
atc = 0
!opcode
if tcnt = 1, stagetool = 2
comment
gcode = 0
n, *sgcode,"G70G90G94"
":", *t, "M06"
n, *speed, *spdlon
n, *sgcode, pabs, pwcs, *xh, *yh, speed, spdlon
ptllnth
# !coolant

ptlchg0 # Null tool change
atc = 1
whatline = 0
if opcode = 3, ptlchg0drl
if prv_speed <> speed, n, speed
if coolant <> prv_coolant, n, pcoolon
!opcode, !zr
ptoolaxis

ptlchg # Tool change
pinit
gcode = 0
ask = 0
atc = 2
!opcode
n, pcooloff
presetab0
n, "G98", "Z24."
n, "G90M05"
":", *t, "M06"
comment
n, *speed, *spdlon
n, *sgcode, pabs, pwcs, *xr, *yr, speed, spdlon
ptllnth

pmx0 # Calculate tool axis
# b=90-atan2(vtoolz,vtoolx)
# a=atan(-vtooly/(sqrt(vtoolx^2+vtoolz^2)))

pmx1 # Retract - first point of cut (reads leadin length and adjusts)
if whatline = 2, pseltyp

pmx2 # Rapid to start of cut at retract height

pmx # 5-Axis tool path
pseltyp

peof0 # End of file for tool zero
peof

peof # End of file for non-zero tool
n, pcooloff
n, "G98", "Z24."
n, "G90", "M5"
n, "G0", "X0.", "Y0.", "A0.", "B0."
n, pabs
n, "M2"
if nchar > chrexced , chrdif = nchar-chrexced
if nchar > chrexced , "(** WARNING! **)","(number or characters ","exceeded by ",chrdif,")"
if awarn > 0 , "** WARNING **"," EXCEEDED A TRAVEL",awarn,"TIMES"
if bwarn > 0 , "** WARNING **"," EXCEEDED B TRAVEL",bwarn,"TIMES"
if arcerror = 1 , "** WARNING **","(exceeded max radius of 650 R)"

# --------------------------------------------------------------------------
# Axis motion
# --------------------------------------------------------------------------
prot0 # Toolplane postline - Custom post required
tpln = 0

prot # Toolplane postline - Custom post required
prot0

prapid # Linear line movement - at rapid feedrate
if tpln = 0, prapidm

pzrapid3 # 3-axis Linear movement in Z axis only - at rapid feedrate
n, sgcode, z

pzrapid5 # 5-axis using tool plane return to clearance plane
!coolant,!x,!y
rl = (1/vtoolz)*(zh-prv_z) # retract to clearance plane lngth
xd = x+(vtoolx*(gauge+pivot+rl)) # 5 axis x position
yd = y+(vtooly*(gauge+pivot+rl)) # 5 axis y position
zd = zh+(vtoolz*(gauge+pivot))-(gauge+pivot) # 5 axis z position
n, sgcode, xd, yd, zd, pfr

pzrapid # Linear movement in Z axis only - at rapid feedrate
if tpln = 0, pzrapid3
if tpln = 1, pzrapid5

plin1 # First linear movement after SOF/toolchg, whatno must be set
if tpln = 0, plinm
if tpln = 1, plin5ax1

plin2 # Second linear movement after SOF, whatno must be set
plin

plin # Linear line movement - at feedrate
if tpln = 0, plinm
if tpln = 1, plin5ax

pz # Linear movement in Z axis only - at feedrate
n, sgcode, z, pfr

pcir1 # First circular movement after SOF, whatno must be set
pcir

pcir2 # Second circular movement after SOF, whatno must be set
pcir

pcir # Circular interpolation
if rotaxis = 0, pcirm

# --------------------------------------------------------------------------
# Drilling
# --------------------------------------------------------------------------
pdrill3 # 3 - axis drilling
# pdrillref
!coolant
n, pdrlxyrot
z = refht - depth
n, *sgdrill, pdrlxyrot, z, *refht, pdwell, *frplunge

pdrill5 # 5 - axis drilling
!depth,!refht,!initht,!fr
gauge = t
q1
n,"(",*gauge,")",e
n,"(",*pivot,")",e
n,"(MSG, 5-AXIS DRILL TOOL PATH)",e
n, *zh, pcoolon,e
initx = u+(vtoolx*(gauge+pivot+initht-refht))
inity = v+(vtooly*(gauge+pivot+initht-refht))
initz = w+(vtoolz*(gauge+pivot+initht-refht))-(gauge+pivot)
refx = u+(vtoolx*(gauge+pivot))
refy = v+(vtooly*(gauge+pivot))
refz = w+(vtoolz*(gauge+pivot))-(gauge+pivot)
depthx = u+(vtoolx*(gauge+pivot+depth-refht))
depthy = v+(vtooly*(gauge+pivot+depth-refht))
depthz = w+(vtoolz*(gauge+pivot+depth-refht))-(gauge+pivot)
b=90-atan2(vtoolz,vtooly)
a=atan(-vtoolx/(sqrt(vtooly^2+vtoolz^2)))
pchkab
frxnci = fr
gcode = 0
n,sgcode,initx,inity
n,sgcode,a,b
gcode = 11
fr = 100
n,sgcode,*initx,*inity,*initz,fr,e
n,sgcode,*refx,*refy,*refz,fr,e
fr = frxnci
n,sgcode,*depthx,*depthy,*depthz,fr,e
n,sgcode,*refx,*refy,*refz,fr,e
fr = 100
n,sgcode,*initx,*inity,*initz,fr,e
fr = frxnci

pdrill # Canned Drill Cycle
if drill5 = 0, pdrill3
if drill5 > 0, pdrill5

ppeck # Canned Peck Drill Cycle
# pdrillref
n, pdrlxyrot
z = refht - depth
n, *sgdrill, pdrlxyrot, z, *refht, *peck1, "J1", *frplunge

pchpbrk # Canned Chip Break Cycle
# pdrillref
n, *sgdrill, pdrlxyrot, *depth, *refht, *peck1, *frplunge

ptap # Canned Tap Cycle
# pdrillref
n, pdrlxyrot
z = refht - depth
n, *sgdrill, pdrlxyrot, z, *refht, *frplunge

pbore1 # Canned Bore #1 Cycle
# pdrillref
z = refht - depth
n, *sgdrill, pdrlxyrot, z, *refht, pdwell, *frplunge

pbore2 # Canned Bore #2 Cycle
# pdrillref
z = refht - depth
n, *sgdrill, pdrlxyrot, z, *refht, *frplunge

pmisc1 # Canned Misc #1 Cycle (User Option)
pdrill

pmisc2 # Canned Misc #2 Cycle (User Option)
pdrill

pdrill_25 # Canned Drill Cycle 5-axis
initx = u+(vtoolx*(gauge+pivot+initht-refht))
inity = v+(vtooly*(gauge+pivot+initht-refht))
initz = w+(vtoolz*(gauge+pivot+initht-refht))-(gauge+pivot)
refx = u+(vtoolx*(gauge+pivot))
refy = v+(vtooly*(gauge+pivot))
refz = w+(vtoolz*(gauge+pivot))-(gauge+pivot)
depthx = u+(vtoolx*(gauge+pivot+depth-refht))
depthy = v+(vtooly*(gauge+pivot+depth-refht))
depthz = w+(vtoolz*(gauge+pivot+depth-refht))-(gauge+pivot)
b=90-atan2(vtoolz,vtoolx)
a=atan(-vtooly/(sqrt(vtoolx^2+vtoolz^2)))
pchkab
frxnci = fr
gcode = 0
n,sgcode,a,b,e
gcode = 11
fr = 100
n,sgcode,*initx,*inity,*initz,fr,e
n,sgcode,*refx,*refy,*refz,fr,e
fr = frxnci
n,sgcode,*depthx,*depthy,*depthz,fr,e
n,sgcode,*refx,*refy,*refz,fr,e
fr = 100
n,sgcode,*initx,*inity,*initz,fr,e
fr = frxnci

pdrill_23 # Canned Drill Cycle 3-axis
n,x,y,refht

pdrill_2 # Canned Drill Cycle
if drill5 = 0, pdrill_23
if drill5 > 0, pdrill_25

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

pcandc3 # Cancel canned drill cycle 3-axis
n,"G80"

pcandc5 # Cancel canned drill cycle 5-axis
!gcode
gcode = 0
a = 0
b = 0
n,sgcode,a,b,zfd

pcanceldc # Cancel canned drill cycle
if drill5 = 0, pcandc3
if drill5 > 0, pcandc5

pcancelcc # Cancel cutter comp.
#n, "G40"

pwrtt # Write tool table, scans entire file, null tools are negative
tnote = t
toffnote = tloffno
tlngnote = tlngno
if t >= 0, "(", *tnote," ", *tldia, " DIA. ", *sopnote, ")"
if t >= 0, tcnt = tcnt + 1

# --------------------------------------------------------------------------
# Numbered questions for Mastercam -- Used by Mill 5
# --------------------------------------------------------------------------
38. Rapid feedrate? 300.0
1538. Rapid feedrate (metric)? 10000.0

70. Chaining tolerance? 0.0002
74. Minimum arc length? 0.0002
#76. Startup configuration file? MILL5
78. Name of startup C-Hook program? NONE
79. Name of exit C-Hook program? NONE
80. Communications port number for receive and transmit (1 or 2) ? 1
81. Data rate (110,150,300,600,1200,2400,4800,9600,14400,19200,3 8400)? 4800
82. Parity (E/O/N)? E
83. Data bits (7 or 8)? 7
84. Stop bits (1 or 2)? 2
85. Strip line feeds? y
86. Delay after end of line (seconds)? 0.1
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?C:\ANTONIO'S\mill7\NC
91. Name of executable post processor? MP
92. Name of reverse post processor? RP
93. Reverse post PST file name? RPFAN
97. Number of places after decimal for analyze (2-6)? 5
98. Number of places after decimal for NCI files (3-7)? 7
99. System tolerance? 0.000005
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? 3500
104. Default starting sequence number? 1
105. Default sequence number increment? 1
107. Average time for tool change (seconds)? 2.0
#110. Default tool library? TOOLS.MTL
111. Maximum number of tools? 100
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

190. Display the tool? y
191. Display the toolpath? y
192. Default tool display: 1 = animated, 2 = static? 2
193. Default tool display: 1 = interpolate, 2 = endpoints? 2
194. Default tool display: 1 = run, 2 = step? 1
195. Default tool display step size? 0.1
196. Default tool display delay? 0.0
197. Repaint the toolpath? Y
201. Default Misc. Real [1]?
301. Default Misc. Int. [1]? 0


9999. General NC parameters
1001. Display solid toolpath (y = solid, n = striped)? y
1002. Cutter compensation in computer (L, R or blank)? L
1003. Compensate to tip? Y
1004. Amount of stock to leave? 0.0
1005. Cutter compensation in control (L, R or blank)?L
1006. Default tool plane (0 = none, 1 = T, 2 = F, 5 = S)? 0
1007. Tool origin: X? 0.0
1008. Tool origin: Y? 0.0
1009. Tool origin: Z? 0.0
1010. Rotary axis (X, Y or blank)?N
1011. Rotary axis diameter? 2.0
1012. Rapid depth? 0.0
1014. Roll cutter around (0 = no, 1 = sharp, 2 = all) corners? 2
1015. Coolant on? Y
1016. Number of times to step and repeat in X? 1
1017. Amount to step and repeat in X? 0.0
1018. Number of times to step and repeat in Y? 1
1019. Amount to step and repeat in Y? 0.0
1020. Number roughing depth cuts? 0
1021. Amount of roughing depth cut? 0.0
1022. Number of finishing depth cuts? 0
1023. Amount of finishing depth cut? 0.0
1024. Entry line length? 0.05
1025. Entry arc radius? 0.0
1026. Entry arc angle? 90.0
1027. Use "infinite" look-ahead in cutter compensation? y
1028. Entry line direction (1 = perpendicular, 0 = parallel)? 1

9999. Contour
1040. Number of roughing cuts? 0
1041. Rough cut amount? 0.0
1042. Number of finish cuts? 1
1043. Finish cut amount? 0.0

9999. Drilling
1050. Drilling cycle (0=drill,1=peck,2=c.b.,3=tap,4=b1,5=b2,6=m1,7=m2)? 0
1051. Dwell? 0.0
1052. Initial height? 6.0
1053. Reference height? 0.05
1054. Use incremental depth? n
1055. Incremental drill depth? 0.0
1056. First peck increment? 0.1
1057. Subsequent peck increment? 0.1
1058. Peck clearance? 0.01
1059. Retraction amount? 0.0

9999. Pocket
1070. Cutting method (0 = zig-zag, 1 = spiral out, 2 = spiral in)? 0
1071. Find multiple collapse points for spiral pocket? y
1072. Roughing angle for zig-zag pocketing? 0.0
1073. Roughing step over? 0.1
1074. Number of finish passes? 0
1075. Finish pass step over? 0.0

9999. Ruled surface
1080. Cutting method (0 = zig-zag, 1 = one way, 2 = circ., 3 = EDM)? 0
1081. Across cut distance? 0.05
1082. Taper angle for Wire EDM cutting? 0.0
1083. Constant z cutting? n
1084. Initial z for constant z cutting? 0.0
1085. Final z for constant z cutting? -1.0
1086. Z increment for constant z cutting? -0.25

9999. Swept surface
1095. Translate the across contour for 3d swept? n
1096. Along cut distance? 0.1
1097. Across cut distance? 0.1
1098. Cutting method (0=zig,1=one w.,2=circ.,3=5 zig,4=5 one,5= 5 cir)? 0
1099. Cutting direction (0 = along, 1 = across)? 0

9999. Surface of revolution
1110. Step over? 0.1
1111. Concave (y/n)? y
1112. Retract to the reference height? n
1113. Reference height for surface of revolution? 0.1

9999. Projection
1120. Minimum step size? 0.001
1121. Maximum step size? 100.0
1122. Maximum error? 0.0002
1123. Step over for project onto surface? 0.02
1124. Does the toolpath lie partially off the surface? n

9999. Lofted surface
1130. Along cut distance? 0.1
1131. Across cut distance? 0.1
1132. Cutting method (0=zig,1=one w.,2=circ,3=zig5,4=one5,5=circ5)? 0
1133. Cutting direction (0 = along, 1 = across)? 0

9999. Coons
1140. Along cut distance? 0.1
1141. Across cut distance? 0.1
1142. Blending (0 = lin, 1 = par, 2 = cubic, 3 = cubic w. slope match)? 0
1143. Cutting method (0=zig,1=one w.,2=circ,3=zig5,4=one5,5=circ5)? 0
1144. Cutting direction (0 = along, 1 = across)? 0
1145. Number of along patches? 1
1146. Number of across patches? 1

9999. NURBS surface
1160. File options (1 = surface, 2 = ofs, 3 = both, 4 = nci, 5 = ofs & nci)? 4
1161. Stepping method (1 = distance, 2 = chord. dev and scallop height)? 2
1162. Step distance in along direction? 0.05
1163. Step distance in across direction? 0.05
1164. Maximum chordal deviation? 0.001
1165. Maximum scallop height? 0.001
1166. Cutting method (0 = zig zag, 1 = one way, 2 = circular)? 0
1167. Cutting direction (0 = along, 1 = across)? 0

9999. Fillet
1180. Starting fillet radius? 0.1
1181. End fillet radius? 1.0
1182. Surface selection (1=lFf,2=lF,3=fF,4=F,5=l,6=f)? 1
1183. Cutting method (0 = one way, 1 = zig zag)? 1

9999. Roughing
1190. Cutting direction (-1 = CCW, 1 = CW)? -1
1191. 1 = Pocket at each level, 2 = contour only? 2
1192. 1 = mountain, -1 = cavity? 1
1193. Cut top down (y/n)? y
1194. Z step increment? 0.1
1195. Top clearance? 0.01
1196. Stock to leave on bottom? 0.05

9999. Recomp
1200. Write the NCI file? y
1201. Cutting method (0=zig,1=one w.,2=circ.,3=5 zig,4=5 one,5= 5 cir)? 0
1202. Cutting direction (0 = along, 1 = across)? 0

9999. Reverse surface
1210. Surfaces to reverse (1 = surf and ofs, 2 = surf, 3 = ofs)? 1
1211. Write the NCI file (y/n)? y
1212. Cutting method (0=zig,1=one w.,2=circ.,3=5 zig,4=5 one,5= 5 cir)? 0

9999. Gouge checking
1220. Perform gouge check in the along direction (y/n)? y
1221. Method for gouge elimination (1 = closest approach, 2 = proj. plane)? 1

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

1520. Display a warning when cutter compensation in control simulation finds an error? n

# 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


# --------------------------------------------------------------------------
# Default Miscellaneous Real Values
# --------------------------------------------------------------------------
201. Default miscellaneous real variable 1 (mr1)? 0.0
202. Default miscellaneous real variable 2 (mr2)? 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 thru 3=G92, 4 thru 9=G54-G59)? 1
302. Miscellaneous integer variable 2 (mi2)? 0
303. Miscellaneous integer variable 3 (mi3)? 0
304. Miscellaneous integer variable 4 (mi4)? 0
305. Miscellaneous integer variable 5 (mi5)? 0
306. Miscellaneous integer variable 6 (mi6)? 0
307. Miscellaneous integer variable 7 (mi7)? 0
308. Miscellaneous integer variable 8 (mi8)? 0
309. Miscellaneous integer variable 9 (mi9)? 0
310. 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