{Change Comments ***********************************************************}
{6/5/89, changed tool path to force feed on first TP move after a tool change,added Metric, WFG}
{10/30/89, Modified from Fanuc 10T-MS [-] L001.60
To be used with ncPost 3.197 or later ONLY!!!
This post does not handle incremental output.
Added Event Codes:
(0)=Position
(1)=Turn
(2)=Face
(3)=Taper
(4)=Arc
(5)=Thread
(6)=Groove (Not Used)
(7)=Drill
(8)=Repeat (Not Used)
(9)=Subroutine (Not Used)
(M)='M' Function
(R)=Roughing
(F)=Finishing
(T)=Text
Added 'LineFeatureEventType' sub to check whether LineFeat was a 'Z' move, 'X' move or both.
11/1/89 DWB}
{12/7/89
Modified: Dynapath 10T Lagun L132.61
For Coast Craft
Added 'END' to end of prog.
Added ascii 36 to mach spec for line terminator.
Switched the "(1)" and "(2)" in the prog sub "LineFeatureEventType".
Jim Radcliffe}
{Added 'G0' to the '(3)' event. JR, 12/8/89}
{Deleted "ReverseXZArcs" & switched "C0" & "C1" in ForamtArc pro sub. JR, 12/8/89 }
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{7/24/90, Replaced all occurances of FinishThreadRadius# with FinishXRadius#, DWB}
{8/9/90
Copied & modified: Dynapath 10T Lagun L132.63
For: Coastcraft Rubber
Machine: Lagun
Control: Dynapath 10T
Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.1 Format
DWB}
{4/26/91
Changed Format #2 from '#.##0;0' to '#.###0;0'.
Also took out Quadstopping.
JC}
{7/9/96, Updated Dynapath 10T Lagun L132.71.2 to .85 format & modified Threading, JR}
{5/22/97, Fixed Stupid JR Literal problem 'end' created post Dynapath 10T Lagun L132.85.1 JM}
{5/22/97, Recreated LineFeatureEventType prog sub. It was removed during the 85 update
Removed FeedRate from LIneFeat
created post Dynapath 10T Lagun L132.85.2
***** NOTE POST WILL NOT SUPPORT VARABLE FEEDRATES******
JM}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '#.###0;0'
#3 = '#######0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(FirstMoveEPZ#,2)
FORMAT(FirstMoveEPX#,2)
FORMAT(Dwell#,2)
FORMAT(Retract#,2)
FORMAT(EPX#,2)
FORMAT(EPZ#,2)
FORMAT(FeedConIPR#,2)
FORMAT(ZStockMax#,2)
FORMAT(FinishXRadius#,2)
FORMAT(LastCutXRadius#,2)
FORMAT(ADD#,2)
FORMAT(SUB#,2)
FORMAT(ATAN#,2)
FORMAT(InfeedAngle#,2)
FORMAT(Program#,3) {.70}
FORMAT(Operation#,3) {.70}
FORMAT(Tool#,3) {.70}
FORMAT(SpringPasses#,3)
FORMAT(ThreadStarts#,3)
{Special Subroutines *******************************************************}
DoRapid:
Rapid { no output }
'(0)'
RETURN
DoRapidC:
IF NotEqual? Recall# Num#('1') Recall# Num#('3')
DoRapid
ELSE
IF NotEqual? Recall# Num#('2') Recall# Num#('4')
DoRapid
END
END
RETURN
DoFeed:
Feed { no output }
IF NotEqual? Recall# Num#('1') Recall# Num#('3')
IF NotEqual? Recall# Num#('2') Recall# Num#('4')
'(3)'
ELSE
'(2)'
END
ELSE
IF NotEqual? Recall# Num#('2') Recall# Num#('4')
'(1)'
END
END
RETURN
DoFeedC:
IF NotEqual? Recall# Num#('1') Recall# Num#('3')
DoFeed
ELSE
IF NotEqual? Recall# Num#('2') Recall# Num#('4')
DoFeed
END
END
RETURN
SaveOld:
Save# Num#('3') Recall# Num#('1')
Save# Num#('4') Recall# Num#('2')
RETURN
SaveThisOpEntryXCP:
SaveOld
Save# Num#('1') ThisOpEntryXCP#
RETURN
SaveThisOpEntryZCP:
SaveOld
Save# Num#('2') ThisOpEntryZCP#
RETURN
SaveXSP:
SaveOld
Save# Num#('1') CycleStartX#
RETURN
SaveXSPZSP:
SaveOld
Save# Num#('1') CycleStartX#
Save# Num#('2') CycleStartZ#
RETURN
SaveZOpCP:
SaveOld
Save# Num#('2') ZOpCP#
RETURN
SaveZSP:
SaveOld
Save# Num#('2') CycleStartZ#
RETURN
SaveXOpCD:
SaveOld
Save# Num#('1') XOpCD#
RETURN
SaveEPXEPZ:
SaveOld
Save# Num#('1') EPX#
Save# Num#('2') EPZ#
RETURN
SaveLastOpExitXCP:
SaveOld
Save# Num#('1') LAST OpExitXCP#
RETURN
SaveLastXOpECD:
SaveOld
Save# Num#('1') LAST ClearancePlane3#
RETURN
SaveLastOpExitZCP:
SaveOld
Save# Num#('2') LAST OpExitZCP#
RETURN
SaveOpExitXCP:
SaveOld
Save# Num#('1') OpExitXCP#
RETURN
SaveXOpECD:
SaveOld
Save# Num#('1') ClearancePlane3#
RETURN
SaveOpExitZCP:
SaveOld
Save# Num#('2') OpExitZCP#
RETURN
SaveZOpECP:
SaveOld
Save# Num#('2') ClearancePlane3#
RETURN
SaveLastZOpECP:
SaveOld
Save# Num#('2') LAST ClearancePlane3#
RETURN
ThreadEvent:
'(5)'
IF SingleEdgeCut?
IF ApproachOD?
'G5'
ELSE
'G6'
END
ELSE
IF NotEqual? RunOutZ# Num#('0') OR NotEqual? RunOutX# Num#('0')
IF ApproachOD?
'G5'
ELSE
'G6'
END
ELSE
IF ApproachOD?
IF Taper?
'G2'
ELSE
'G0'
END
ELSE
IF Taper?
'G4'
ELSE
'G3'
END
END
END
END
'X' FinishXRadius#
IF ApproachOD?
'U' ADD# FinishXRadius# ThreadXInc#
ELSE
'U' SUB# FinishXRadius# ThreadXInc#
END
FinZ ThrdLead 'W' FirstMoveEPZ# CutDepth 'L' LastCutXRadius#
IF GreaterThan? SpringPasses# Num#('1')
'S' SpringPasses#
END
IF GreaterThan? ThreadStarts# Num#('1')
'M' ThreadStarts#
END
IF Taper?
'T' ATAN# DIV# Taper# FinishZInc#
END
IF SingleEdgeCut?
'A' InfeedAngle#
END
IF NotEqual? RunOutZ# Num#('0') OR NotEqual? RunOutX# Num#('0')
'B' ATAN# DIV# RunOutZ# RunOutX#
END
RETURN
{Prog Subroutines **********************************************************}
RestoreScale:
IF Metric? {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
SeqC '(T) OPERATION ' Operation# ': ' OperationType$ EOL
END
IF OperationComment?
SeqC '(T) ' OperationComment$ EOL
END
IF WorkGroupComment?
SeqC '(T) ' WorkGroupComment$ EOL
END
IF ToolTypeComment?
SeqC '(T) TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ EOL
END
IF ToolComment?
SeqC '(T) ' ToolComment$ EOL
END
RestoreScale
END
RETURN
PSInit: {reset flags from last Op, .70}
RETURN
PSStuff:
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN
FeedNoCan:
IF NOT CannedCycle?
DoFeed
ELSE
DoRapid
END
RETURN
ApproachSP:
IF ApproachFace?
SeqC StockOnNoCan SaveXSP DoRapidC XSPC EOL
SeqC StockOff SaveZOpCP DoRapidC ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqC SaveZSP FeedNoCan ZSPC EOL
END
ELSE { ODApproach/IDApproach }
SeqC StockOnNoCan SaveZSP DoRapidC ZSPC EOL
SeqC StockOff SaveXOpCD DoRapidC XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC SaveXSP FeedNoCan XSPC EOL
END
END
RETURN
AppMove:
StockOff SaveThisOpEntryZCP ThisOpEntryZCP
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Rapid
IF ApproachOD?
SeqC SaveThisOpEntryXCP DoRapid ThisOpEntryXCP AppMove EOL
ELSE
IF ApproachID?
SeqC SaveXOpCD DoRapid XOpCD AppMove EOL
ELSE {ApproachFace}
SeqC StockOnNoCan SaveXSP DoRapid XSP AppMove EOL
END
END
ApproachSP
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC '(M)' 'M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC '(M)' CoolOff EOL
END
END
SeqC
IF NewToolOffset?
'(M)'
OpToolID LatheOffset 'D' LatheOffset
END
IF NotEqual? SpeedRPM# LAST SpeedRPM#
IF EmptyLine?
'(M)'
END
Speed
END
IF NotEqual? FeedIPR# LAST FeedIPR#
IF EmptyLine?
'(M)'
END
Feedrate
END
IF LAST ProgStop?
IF EmptyLine?
'(M)'
END
SpinOn EOL
IF NOT CoolOff?
SeqC '(M)' CoolOn EOL
END
ELSE
EOL
IF NOT CoolOff? AND LAST CoolOff?
SeqC '(M)' CoolOn EOL
END
END
DoPostScript
RETURN
LineFeatureEventType:
IF VOnly?
'(2)'
ELSE
IF HOnly?
'(1)'
ELSE
'(3)G0'
END
END
RETURN
FormatArc:
MoveX MoveZ ArcR
IF ArcCW?
'C1'
ELSE
'C0'
END
RETURN
ToolPath:
EACHFeat
SaveEPXEPZ
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC '(M)' SpinOff EOL
SeqC '(M)' 'L2000' EOL
SeqC '(M)' InverseSpinOn EOL
ELSE
IF Dwell?
SeqC '(M)' 'L' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC '(7)' MoveSXYC EOL
ELSE
IF RapidFeat?
SeqC DoRapidC MoveXC MoveZC EOL
ELSE
IF LineFeat?
SeqC LineFeatureEventType MoveXC MoveZC EOL
ELSE
IF ArcFeat?
SeqC '(4)' FormatArc EOL
END
END
END
END
NEXTFeat
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
XsAreRadii
PosSideLathe
SetAbs
SetMaxRPM('10000') {?}
SetMaxFeed('500') {?}
Save# Num#('1') Num#('0') { current X position }
Save# Num#('2') Num#('0') { current Z position }
Save# Num#('3') Num#('0') { old X position }
Save# Num#('4') Num#('0') { old Z position }
IF PSComment? AND UseComments?
'PostScript:' EOL
' Literals: put between single or double quotes.' EOL
' Separate commands and literals with at least one space.' EOL
' A CR ( RETURN key ) will start a new line.' EOL
' Commands: must be all capital letters when typed in.' EOL
' ENDOP -' EOL
' all literals and commands before an ENDOP command' EOL
' will appear at the beginning of the operation. All ' EOL
' literals and commands after an ENDOP command will appear' EOL
' at the end of the operation. ' EOL
END
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
IF UseComments?
IF ProgramNameComment?
SeqC '(T) ' ProgramName$ EOL
END
IF ProgramComment?
SeqC '(T) ' ProgramComment$ EOL
END
IF FormatNameComment?
SeqC '(T) FORMAT: ' FormatName$ EOL
END
IF TimeComment?
SeqC '(T) ' Date$ ' AT ' Time$ EOL
END
IF MovesComment?
SeqC '(T) OUTPUT IN ABSOLUTE INCHES' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
Seq '(M)' OpToolID LatheOffset 'D' LatheOffset ToolChng Speed Feedrate EOL
IF NOT CoolOff?
SeqC '(M)' CoolOn EOL
END
SeqC '(M)' SpinOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
IF LAST ApproachOD?
SeqC SaveLastOpExitXCP DoRapidC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqC SaveLastXOpECD DoRapidC LAST XOpECDC EOL
END
END
SeqC SaveLastOpExitZCP DoRapidC LAST OpExitZCPC EOL
DoEndOpPS
IF LAST ProgStop?
SeqC '(M)' 'M00' EOL
ELSE
IF OptionalStops?
SeqC '(M)' ProgStop EOL
END
END
{Start new Operation}
DoOpComments
DoPostScript
Plane
Seq '(M)' OpToolID LatheOffset 'D' LatheOffset ToolChng Speed Feedrate EOL
IF NOT CoolOff?
SeqC '(M)' CoolOn EOL
END
SeqC '(M)' SpinOn EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
SeqC SaveXSPZSP DoRapidC StockOnNoCan XSPC ZSPC EOL
ELSE
IF ApproachOD?
IF LAST ApproachOD?
SeqC SaveLastXOpECD DoRapidC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqC SaveLastXOpECD DoRapidC LAST XOpECDC EOL
END
SeqC SaveLastOpExitZCP DoRapidC LAST OpExitZCPC EOL
SeqC SaveLastOpExitXCP DoRapidC LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC SaveLastXOpECD DoRapidC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC SaveLastOpExitXCP DoRapidC LAST OpExitXCPC EOL
END
SeqC SaveLastOpExitZCP DoRapidC LAST OpExitZCPC EOL
SeqC SaveXOpCD DoRapidC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC SaveLastZOpECP DoRapidC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC SaveLastOpExitXCP DoRapidC LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqC SaveLastXOpECD DoRapidC LAST XOpECDC EOL
END
SeqC SaveLastOpExitZCP DoRapidC LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
ToolPath
ELSE
IF RoughContour?
SetPass2
SeqC LCycle
IF ApproachFace?
'G2' CutDepth ZStkLeft
ELSE
IF ApproachID?
'G1'
ELSE
'G0'
END
CutDepth XStkLeft
END
FeedRate Speed OpToolID LatheOffset 'D' LatheOffset EOL
IF AutoFinish?
SeqC '(F)'
IF ApproachFace?
'G2'
ELSE
IF ApproachID?
'G1'
ELSE
'G0'
END
END
'P1' FeedRate Speed EOL
END
SeqC SaveXSPZSP
StepMove {no output}
IF Rapid?
DoRapid
ELSE
DoFeed
END
StrtPos EOL
ToolPath
SeqC '(M)G7' EOL
ELSE
IF RoughPatternShift?
SetPass2
SeqC LCycle
IF ApproachFace?
'G2' CutDepth ZStkLeft
ELSE
IF ApproachID?
'G1'
ELSE
'G0'
END
CutDepth XStkLeft
END
FeedRate Speed OpToolID LatheOffset 'D' LatheOffset EOL
IF AutoFinish?
SeqC '(F)'
IF ApproachFace?
'G2'
ELSE
IF ApproachID?
'G1'
ELSE
'G0'
END
END
'P1' FeedRate Speed EOL
END
SeqC SaveXSPZSP '( DoFeed )' StrtPos EOL
ToolPath
SeqC '(M)G7' EOL
END
END
END
ELSE
IF Threading?
SeqC ThreadEvent EOL
ELSE
IF Drilling?
SeqC LCycle ZDepth Retract Peck FeedRate Dwell EOL
IF AutoFinish?
SeqC '(1)' ZDepth FeedRate EOL
SeqC '(0)Z' Retract# EOL
END
ELSE
IF Grooving?
SeqC '(0)' SaveXSPZSP StrtPos EOL
ToolPath
END
END
END
END
ELSE
IF Threading?
StockOff
SeqC ThreadEvent EOL
ELSE
StockOn
SetPass1
ToolPath
END
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqC SaveZOpECP DoRapidC ZOpECPC EOL
ELSE
SeqC SaveXOpECD DoRapidC XOpECDC EOL
END
ApproachSP
StockOff
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqC SaveXSPZSP DoRapidC XSPC ZSPC EOL
ToolPath
SetPass1
END
END
END
END
IF Drilling? AND Tap?
SeqC '(M)' SpinOff EOL
SeqC '(M)' 'L2000' EOL
SeqC '(M)' SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
IF ApproachOD?
SeqC SaveOpExitXCP DoRapidC OpExitXCPC EOL
ELSE
IF ApproachID?
SeqC SaveXOpECD DoRapidC XOpECDC EOL
END
END
SeqC SaveOpExitZCP DoRapidC OpExitZCPC EOL
DoEndOpPS
SeqC '(M)' CoolOff EOL
SeqC '(M)' OpToolID LatheOffset 'D' LatheOffset ToolChng EOL
SeqC '(M)' SpinOff EOL
SeqC '(M)' EOP EOL
Post
'END' EOL
Close
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
SeqC '(T) FILE LENGTH: ' FileBytes# ' CHARACTERS' EOL
END
IF FileFeetComment?
SeqC '(T) FILE LENGTH: ' FileFeet# ' FEET' EOL
END
IF FileMetersComment?
SeqC '(T) FILE LENGTH: ' FileMeters# ' METERS' EOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
Dynapath 10T Lagun L132 85 2mFanuc 10T [TK] L758 85Fanuc 10T MS [ ] L004 85Dynapath 10M QMC M224 85Dynapath 10M [CM] M715 85 1Dynapath 10M [AM] M906 85 2DeltaT PMAC 10T [HM] L783 85Fanuc 10T MS [ ] L001 85 01Dynapath 20M (ATD) M304 85Fanuc 10T HS [KMT] L759 85Fanuc 10T MS [PT] L703 85 1Fanuc 10T Mazak QT L088 85Fanuc 10T Cincom F20 L527 85 1Fanuc 10T MS [BMR] L768 85Fanuc 10T MS [ TPM] L455 85więcej podobnych podstron