{Change Comments ***********************************************************}
{ 9/1/88 }
{ for whom I dont know }
{ deleted G96's & G97's for constant surface speed control,
although if the box was checked in cam, post will still
calc the correct 1st speed, otherwise CSS is ineffective. }
{ Jim Radcliffe }
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{9/25/90, Update to Version 3.2 per Fanuc 10T MS [-] L001.71.1 Format, DWB}
{6/13/91, Changed #2 formating for First Move EPX# - to '####^###0' - DWB/KLM}
{07/24/91
For: San Val Tool & Die Co., Inc.
Modified: Yasnac 2000B MS (2) L062.71.2
Replaced LatheOffset with ToolOffset# and FORMATED.
Rearranged ToolID and CoolOn onto same line,
Put preset on a line by itself,
Arranged Rapid on line with Speed and SpinOn.
Kim Michelman}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '####^###0'
#3 = '########;0'
#4 = '###^##0'
#5 = '00'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(FirstMoveEPX#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(ToolOffset#,5) {.80}
{Prog Subroutines **********************************************************}
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'( ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'( TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
IF Metric? {CAM file is in metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
END
RETURN
PSInit: {reset flags from last Op, .70}
ProgStopF {reset ProgStop?}
CoolOffF {reset CoolOff?}
RETURN
PSStuff:
RETURN
DoPostScript:
PSInit
EachPS
SeqLabC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN
Approach: { NOT FOR TAILSTOCK, .69.8 }
StockOff
IF NOT SameTool?
SeqLabC RapidC
IF ApproachOD?
XCP
ELSE
IF ApproachID?
XOpCD
ELSE {ApproachFace}
StockOnNoCan XSP StockOff
END
END
ZCP OpToolID ToolOffset# EOL
END
IF ApproachOD?
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL
SeqLabC StockOnNoCan XSPC EOL
ELSE
IF ApproachID?
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC XSPC EOL
ELSE {ApproachFace}
SeqLabC StockOff ZOpCPC EOL
SeqLabC StockOnNoCan ZSPC EOL
END
END
RETURN
CheckOffset:
DoEndOpPS
IF NewToolOffset?
SeqLabC LOfstOff '00' EOL
SeqLabC OpToolID ToolOffset# EOL
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
FirstFeed: { This will force a Feedrate on FirstFeat for each operation }
IF FirstFeat? AND NOT CannedCycle? { CannedCycles force a Feedrate on the Cycle line }
Feedrate
ELSE
FeedrateC
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling? AND Dwell?
SeqLabC 'G04U' Dwell# EOL
END
IF CannedCycle?
SeqLab
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqLabC RapidC MoveXC MoveZC FirstFeed EOL { force Feedrate on FirstFeat, even if Rapid }
ELSE
IF LineFeat?
SeqLabC FeedC MoveXC MoveZC FirstFeed EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqLabC FormatArc FirstFeed EOL {force Feedrate on FirstFeat, even if Arc}
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqLabC 'G32' MoveXC MoveZC XTapAtZ ThrdLead EOL
END
END
END
END
END
NEXTFeat
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
ReverseXZArcs
NegSideLathe
SetMaxRPM('10000')
SetMaxFeed('500')
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
' ProgramStop, PS' - EOL
' Outputs an M00 at the end of the tool.' EOL
' CoolantOff, COff -' EOL
' suppress coolant on command for current operation' EOL
END
EachOp {Start of post processing *********************}
TagInc
GetLCycle
IF FirstOperation?
EOR EOL
IF UseComments?
IF ProgramNameComment?
'( PROGRAM: ' ProgramName$ ' )' EOL
END
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ' MoveType$ ' )' EOL
END
END
IF Metric? {CAM file is in metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
OpenSub
SetHome
DoOpComments
DoPostScript
Plane
SeqLab OpToolID '00' CoolOn EOL
SeqLabC Preset Home EOL
SeqLabC Rapid
SeqLabC CSSOff
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
IF Last CannedCycle?
Rapid
ELSE
RapidC
END
IF LAST ApproachOD?
SeqLabC XCPC EOL
END
SeqLabC ZCPC EOL
DoEndOpPS
SeqLabC FirstHome LOfstOff '00' EOL
IF ProgStop?
SeqLabC 'M00' EOL
ELSE
SeqLabC ProgStop EOL
END
{Start new Operation}
DoOpComments
DoPostScript
Plane
SeqLab OpToolID '00' CoolOn EOL
SeqLab Preset Home EOL
SeqLabC Rapid
SeqLabC CSSOff
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
DoOpComments
StockOff
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
IF LAST StraightConnect?
CheckOffset
SeqLabC StockOnNoCan XSPC ZSPC EOL
ELSE
IF ApproachOD?
IF LAST NOT ApproachOD?
SeqLabC ZCPC EOL
END
SeqLabC XCPC EOL
CheckOffset
ELSE
IF LAST ApproachOD?
SeqLabC XCPC EOL {around}
END
IF ApproachID?
IF LAST NOT ApproachID?
SeqLabC ZCPC EOL
END
CheckOffset
SeqLabC XOpCDC EOL
ELSE {ApproachFace}
SeqLabC ZCPC EOL
CheckOffset
SeqLabC StockOnNoCan XSPC EOL
END
END
Approach
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed?
SeqLabC CSSOn SpeedC EOL
END
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
IF ApproachFace?
SeqLabC LCycle 'Z' FirstMoveEPZ# XatFinZ XTapAtZ FeedRate EOL
ELSE
SeqLabC LCycle XatFinZ FinZ XTapAtZ FeedRate EOL
END
SimpleRough
ELSE
IF RoughContour?
SetPass2
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft CutDepth FeedRate EOL
'>' Tag# EOL
SeqLab StepMove StrtPos EOL
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC 'G70' 'PÅ‚' Tag# 'Q²' Tag# EOL
END
ELSE
IF RoughPatternShift?
SetPass2
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft XminusU ZminusW NumCuts FeedRate EOL
'>' Tag# EOL
SeqLab Rapid StrtPos EOL
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC 'G70' 'PÅ‚' Tag# 'Q²' Tag# EOL
END
END
END
END
ELSE
IF Threading?
IF Chamfer?
SeqLabC 'M23' EOL
END
SeqLabC 'G92X' FirstMoveEPX# FinZ ThrdLead EOL
SimpleRough
IF AutoFinish?
SeqLabC Feed XatFinZ EOL
SeqLabC LCycle FinZ ThrdLead EOL
SeqLabC RapidC XCSP EOL
SeqLabC ZCSP EOL
END
IF Chamfer?
SeqLabC 'M24' EOL
END
ELSE
IF Drilling?
SeqLabC LCycle FromCP ZDepth RLevel Dwell Peck Retract FeedRate EOL
SeqLabC DrillOff EOL
IF AutoFinish?
SeqLabC Feed ZDepth EOL
SeqLabC RLevel EOL
END
ELSE
IF Grooving?
SeqLab StrtPos EOL
ToolPath
END
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving?
StockOff
IF Turning?
SetPass1
ELSE
SetPass2
END
SeqLab RapidC StrtPos EOL
ToolPath
END
END
END
IF ApproachID? {.62}
SeqLabC RapidC XOpCDC EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
IF CannedCycle?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqLabC XCPC EOL
END
SeqLabC ZCPC EOL
DoEndOpPS
SeqLabC CoolOff EOL
SeqLabC NewHome OpToolID '00' SpinOff EOL
SeqLabC 'T800' EOL
SeqLabC EOP EOL
Post
EOR EOL
Close
Retag
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
Yasnac 2000B MS ( ) L061 85Yasnac 2000B MS (3) L068 85Yasnac MX1 MS [BI] M076 89 2Yasnac MX2 MS [GT] MW35 89 1Yasnac MX1 3 MS M315 89 1mYasnac 2000GII MS SL2 L032 85Yasnac MX1 3 MS B315 12mYasnac MX1 3 MS [CM] M429 80Yasnac LX3 MS SL 25 L277 85Yasnac LX3 MS [MT] L719 85Yasnac MX1 3 MS M315 89Yasnac 2000G MS [PC] L055 82Yasnac I80 MS [CBM] L544 85 1Yasnac 2000GII MS [GT] L658 85Yasnac 2000G MS [BMR] L769 85Yasnac LX1 MS L010 85 1mwięcej podobnych podstron