Siemens 880T [CGB] L746 85 5


{
MILL=F
LATHE=T
SIMPLE_ROT_POS=F
ROTARY_MILL=F
ADV_MILL=F
SUBS=F
}

{Change Comments ***********************************************************}

{8/29/95, L155.82.1, Updated for Catalyst v2.20 per Fanuc 10T MS [-] L001.85 Format, DWB}

{15Jul98
Original: Siemens 810T EM L155.85
Created: Siemens 880T [CGB] L746.85
Control: Siemens Sinumeric 880T
Machine: Tacci HD3 Series 105L
For: C.G.Bretting Mfg
Changes made per: CNC Manual, FAX and conversations with Gerry Beebe
New Post: FIRST DRAFT
Added Formatting for FeedEntIPR#, StockZ#, SpeedRPM#, Recall#, SpringPasses# and CycleStartZ#
Moved CoolOn from AppMove to Common Point
Added Spaces to all Address Codes
Changed to R Format Arcs.
Changed R to B for Arc Address in MachSpec
Changed M8 to M7 in MachSpec
Added Gear Table to MachSpec
Added GearRange to FirstOp, NewTool and CheckOffset
Deleted CRC from ToolPath, Not Supported. CRC is Called in Canned Cycles
Changed SetMaxRPM to 720 at Init Prog
Rewrote the Logic in CheckOffset
Rewrote FirstOp and NewTool per Sample code and Manual
Added Booleans to handle Block Deletes on all Threading and Finish Operations, at NewTool and End of Prog
Rewrote RoughContour and Threading Canned Cycles
Added RoughPatternShift Canned Cycle
Added support for a Finish Canned Cycle using OptCyc1 Postscript Command
Added Utility Data at ProgInit
Added OptCyc1F to PSInit
Changed ProgStop Literal from 'M0' to ' 'M0 M1=5' { Spindle Off }
Charles Winston}

{21Jul98
Original: Siemens 880T [CGB] L746.85
Created: Siemens 880T [CGB] L746.85.1
Control: Siemens Sinumeric 880T
Machine: Tacci HD3 Series 105L
For: C.G.Bretting Mfg
Added Format#7 in Prog Numeric Format Definitions
Added Formatting for CycleStartZ#, StockXRadius#, StockZ#, CutDepth#, SPX#, SPZ#, LastCutXRadius#
CalcNumCuts#, FeedContour#
Added Boolean to suppress ToolComment IF SameTool is True
Moved OptCyc1F from PSInit to DoPostScript ( Not called in DoEndOpPS )
Commented out the CycleStart Booleans in ApproachSP
Modified Post for Tailstock Approach
Added CheckFinishPass Sub. Sets Flag('1') to TRUE if the current Operation does not leave any stock on the contour.
Modified CheckOffset to suppress the ProgStop when NewGear? is TRUE
Added CycleToolPath Sub. Outputs Unconditional X and Z Moves. Used in Lathe Subs
Set MaxRPM to 1200
Modified CSS Boolean to output FeedRate when OptCyc1 is TRUE
Modified Block Delete Booleans to allow for Flag('1') status.
Added SpinOn M1=3 in FirstOperation and NewTool on the CSSOff Line
Changed Canned Cycles to force the StartMove onto the 'Start of Contour' Line
Deleted the StartPos move in Canned Cycles after the OpenSub Command
All Canned Cycles are now L95P1 except RoughPatternShift
Other Changes to Threading and RoughPatternShift Cycles too numerous to list.
Modified GearTable Resource in MachSpec
Charles Winston}

{27Jul98
Original: Siemens 880T [CGB] L746.85.1
Created: Siemens 880T [CGB] L746.85.2
Control: Siemens Sinumeric 880T
Machine: Tacci HD3 Series 105L
For: C.G.Bretting Mfg
Added Boolean in ApprochchSP to suppress CycleStartZ# when Canned Cycle is False
Added Boolean in ApprochchSP to suppress SPX# when Canned Cycle or OptCyc1 is True
Added a Dwell line in Toolpath, when doing Plunge Grooving.
Added EOL to the "IF Last Turning Booleans" at Finish off last Op, to output a line-break when Flag('1') is False
Deleted RapidF# before all Canned Cycle prior to the Sub Call. It was forcing the Feed Rate to be output. Not Required
Added a Boolean in the Optcyc1-Cycle to distinguish between OD and ID Cycles.
Charles Winston}

{10Aug98
Original: Siemens 880T [CGB] L746.85.2
Created: Siemens 880T [CGB] L746.85.3
Control: Siemens Sinumeric 880T
Machine: Tacci HD3 Series 105L
For: C.G.Bretting Mfg
Changes made per Gerry Beebe
Changed the Approach and Exit moves as follows:
Deleted the call to FeedNoCan at AppMove.
Deleted the call to FeedRateNoCan at AppMove.
Forces a Rapid Move to XSP and ZSP coordinates
Added CheckFeed Sub and Modified CheckRapid Sub
Forces a Feed Move away from the part at the end of each Operation
followed by a Rapid Move.
Added CheckFeed to NewTool and SameTool
Charles Winston}

{17Sep98
Original: Siemens 880T [CGB] L746.85.2
Created: Siemens 880T [CGB] L746.85.3
Control: Siemens Sinumeric 880T
Machine: Tacci HD3 Series 105L
For: C.G.Bretting Mfg
Changes made per Gerry Beebe
Added Post Boolean Description at the top of comments.
Added Formatting for TurretX# and TurretZ# in Prog Numeric Format Definitions
ReWrote the Logic in CheckOffset per conversations with Gerry Beebe
Added Boolean in CheckFeed to check for CutOff
Added Save# Num#('3') Sequence# before the Preset in FirstOperation
Added Rapid Turret Home X and Z moves at End Of Prog.
Charles Winston}

{14Mar99
Original: Siemens 880T [CGB] L746.85.4
Created: Siemens 880T [CGB] L746.85.5
Control: Siemens Sinumeric 880T
Machine: Tacci HD3 Series 105L
For: C.G.Bretting Mfg
Develop: Catalyst 5.05/ComPost2 1.7b15
Changes made per Gerry Beebe
Added Rapid to XOpCDC in ApproachSP at ODApproach/IDApproach.
Re-wrote the Logic in CheckOffset for NewToolOffset?, NewGear?, LAST ProgStop? and CSS.
Added a Boolean to CheckFeed sub for RapidC when LAST CannedCycle? and NOT SameTool? is TRUE.
Deleted the Boolean in CannedCycle at RoughContour which permitted R29=21 to be output when
a zero stock value was entered in the Canned Cycle Dialog Box.
R29=31 is the only permitted value. R29=21 is only allowed but only on a finish Contour pass.
Charles Winston}

{Prog Numeric Format Definitions *******************************************}

#1 = '#.00'
#2 = '####.####;0'
#3 = '#######0'
#4 = '#####.###;0'
#5 = '0000'
#6 = '#'
#7 = '####.##0#;0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(MUL#,2) { Non-Canned Threading AutoFinish }
FORMAT(CycleStartXDia#,2)
FORMAT(FeedIPR#,2)
FORMAT(FinishXDia#,2)
FORMAT(FinishZ#,2)
FORMAT(ThreadXInc#,2)
FORMAT(Retract#,2)
FORMAT(Peck#,2)
FORMAT(SPX#,2)
FORMAT(SPZ#,2)
FORMAT(ADD#,2)
FORMAT(SUB#,2)
FORMAT(LastCutXRadius#,2)
FORMAT(ToolOffset#,3)
FORMAT(Operation#,3)
FORMAT(Tool#,3)
FORMAT(SpeedRPM#,3)
FORMAT(SpringPasses#,3)
FORMAT(CalcNumCuts#,3)
FORMAT(Dwell#,4)
FORMAT(CycleStartZ#,4)
FORMAT(TurretX#,4)
FORMAT(TurretZ#,4)
FORMAT(StockZ#,4)
FORMAT(Program#,5)
FORMAT(Recall#,5)
FORMAT(RapidF#,6)
FORMAT(StockXRadius#,7)
FORMAT(StockZ#,7)
FORMAT(FeedEntIPR#,7)
FORMAT(FeedContour#,7)
FORMAT(CutDepth#,7)

{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

DoSubComment:
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Program# ' )' EOL
END
RETURN

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 NOT SameTool?
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
END
RestoreScale
END
RETURN

PSInit: {reset flags from last Op, .70}
RETURN

PSStuff:
RETURN

DoPostScript:
PSInit
OptCyc1F
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?
RapidC
END
RETURN

FeedRateNoCan:
IF NOT CannedCycle?
{ Not Supported }
END
RETURN

ApproachSP:
IF ApproachFace?
SeqC StockOnNoCan XSPC EOL
SeqC StockOff ZOpCPC EOL
StockOnNoCan
IF NOT CannedCycle?
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan ZSPC FeedRateNoCan EOL
END
END
ELSE { ODApproach/IDApproach }
IF CannedCycle? OR OptCyc1?
IF Threading?
SeqC StockOnNoCan ZSPC EOL
ELSE
TrackZNO# SPZ#
END
ELSE
SeqC StockOnNoCan ZSPC EOL
END
SeqC StockOff Rapid XOpCDC EOL
StockOnNoCan
{ The following move is suppressed if CannedCycle? is TRUE, OR OptCyc1? is TRUE }
{ However the move is NOT suppressed if Threading? is TRUE }
IF CannedCycle? OR OptCyc1?
IF Threading?
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
ELSE
IF NotEqual? CycleStartX# XOpCD#
TrackXNO# SPX#
END
END
ELSE
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
END
END
RETURN

AppMove:
StockOff
RETURN

Approach: { MODIFIED FOR TAILSTOCK - 21Jul98, CW }
Rapid RapidF# { RapidF# Forces FeedRate }
IF ApproachOD?
SeqC ThisOpEntryZCP AppMove EOL
SeqC ThisOpEntryXCP EOL
ELSE
IF ApproachID?
SeqC ThisOpEntryZCP AppMove EOL
SeqC XOpCD EOL
ELSE {ApproachFace}
SeqC ThisOpEntryZCP AppMove EOL
SeqC StockOnNoCan XSP EOL
END
END
ApproachSP
RETURN

CheckFinishPass:
IF Equal? StockXRadius# Num#('0') AND Equal? StockZ# Num#('0') { Is there any Stock Left on this Pass? }
SetFlag('1') { This is a Finish pass }
ELSE
SetFlagF('1') { This is not a Finish pass }
END
RETURN

CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC Rapid ' D0' Home CoolOff EOL
SeqC ' M0 M1=5' EOL
ELSE
IF NewGear?
SeqC ' M1=5' CoolOff EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
END
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqC Preset MaxRPM EOL
END
ELSE
SeqC Preset MaxRPM EOL
END
ELSE { not CSS }
IF LAST ConstantSurfaceFeed?
SeqC Preset ' S700' EOL
ELSE
END
END
IF LAST ProgStop?
SeqC Rapid ' D0' Home EOL
END
IF NewToolOffset? OR NewGear? OR LAST ProgStop?
SeqC
IF NewToolOffset? OR LAST ProgStop?
OpToolID ' D' ToolOffset#
END
IF NewGear? OR LAST ProgStop?
GearRange
END
EOL
END
IF ConstantSurfaceFeed?
SeqC CSSOn ' G96 S1=' SpeedRPM# ' M1=3'
IF LAST ConstantSurfaceFeed?
IF LAST ProgStop?
IF Roughing? AND RoughContour?
FeedRate
ELSE
IF Turning? AND OptCyc1?
FeedRate
END
END
EOL
END
ELSE
IF Roughing? AND RoughContour?
FeedRate
ELSE
IF Turning? AND OptCyc1?
FeedRate
END
END
EOL
END
ELSE { not CSS }
IF LAST ConstantSurfaceFeed?
SeqC CSSOff ' G95 S1=' SpeedRPM# ' M1=3' EOL
ELSE
IF LAST ProgStop?
SeqC CSSOff ' G95 S1=' SpeedRPM# ' M1=3' EOL
END
END
END
DoPostScript
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN

CkCRC: { 4.2 }
{ Not Supported }
RETURN

ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
InverseSpinOn
ELSE
IF Dwell?
SeqC ' G4X' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqC RapidC MoveXC MoveZC EOL
ELSE
IF LineFeat?
SeqC FeedC MoveXC MoveZC FeedRateC EOL
IF FirstFeat? AND RoughPlunge? AND NOT CannedCycle?
SeqC ' G4 U.75' EOL
END
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqC ' G33' MoveXC MoveZC FeedRateC EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN

CycleToolPath: { Outputs Unconditional X & Z moves in Subs }
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
InverseSpinOn
ELSE
IF Dwell?
SeqC ' G4X' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSX MoveSY EOL
ELSE
IF RapidFeat?
SeqC RapidC MoveX MoveZ EOL
ELSE
IF LineFeat?
SeqC FeedC MoveX MoveZ FeedRateC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqC ' G33' MoveX MoveZ FeedRateC EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN

CheckFeed:
CRCOffC
IF LAST CannedCycle?
IF NOT SameTool?
RapidC
END
ELSE
IF LAST CutOff?
RapidC
ELSE
FeedC
END
END
RETURN

CheckRapid:
RapidC
RETURN

{Start of executable Prog **************************************************}

{setup and initializations}
InitProg
PosSideLathe
StandardXZArcs
SetMaxRPM('1200')
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
' The OPTCYC1 command can be entered in the Utility Data At Op Start BOX.' EOL
' This will cause the Post to output a Finish Canned Cycle' EOL
END
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
EOR 'MPF ' Program# 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$ ' INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane
Save# Num#('3') Sequence#
Seq Preset
IF ConstantSurfaceFeed?
MaxRPM
ELSE
' S700'
END
EOL
SeqC Rapid ' D0' Home EOL
SeqC OpToolID ' D' ToolOffset# GearRange EOL
DoOpComments
DoPostScript
IF ConstantSurfaceFeed?
SeqC CSSOn ' G96 S1=' SpeedRPM# ' M1=3'
IF Roughing? AND RoughContour?
FeedRate
ELSE
IF Turning? AND OptCyc1?
FeedRate
END
END
EOL
ELSE
SeqC CSSOff ' G95 S1=' SpeedRPM# ' M1=3' EOL
END
Approach
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
CheckFeed
IF LAST ApproachOD?
SeqC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqC LAST XOpECDC EOL
END
END
CheckRapid
SeqC LAST OpExitZCPC EOL
DoEndOpPS
SeqC Rapid ' D0' NewHome CoolOff EOL
SeqC ' M0 M1=5'
IF LAST Turning? OR LAST Threading?
IF LAST Threading?
' ( Check Threads )' EOL
'( Block Skip -NO- Repeats )' EOL
SeqC ' @714' EOL
'/ @100 K-' Recall# Num#('3') EOL
ELSE
IF Flag?('1')
' ( Check Size )' EOL
'( Block Skip -NO- Repeats )' EOL
SeqC ' @714' EOL
'/ @100 K-' Recall# Num#('3') EOL
ELSE
EOL
END
END
ELSE
EOL
END

{Start new Operation}
' ' EOL
Save# Num#('3') Sequence#
Seq Preset
IF ConstantSurfaceFeed?
MaxRPM
ELSE
' S700'
END
EOL
SeqC Rapid ' D0' Home EOL
SeqC OpToolID ' D' ToolOffset# GearRange EOL
DoOpComments
DoPostScript
IF ConstantSurfaceFeed?
SeqC CSSOn ' G96 S1=' SpeedRPM# ' M1=3'
IF Roughing? AND RoughContour?
FeedRate
ELSE
IF Turning? AND OptCyc1?
FeedRate
END
END
EOL
ELSE
SeqC CSSOff ' G95 S1=' SpeedRPM# ' M1=3' EOL
END
Approach
ELSE
IF SameTool? {.62}

{Start new Operation}

StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqC StockOnNoCan XSPC ZSPC EOL
ELSE
CheckFeed
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC EOL
END
SeqC LAST OpExitZCPC EOL
CheckRapid
SeqC LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC EOL
END
SeqC LAST OpExitZCPC EOL
CheckRapid
SeqC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC EOL
END
CheckRapid
SeqC LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
SetFlagF('1') { Block Delete False }
IF Threading?
SeqC ' L150' EOL
END
SeqC CoolOn EOL
IF CannedCycle?
StockOff
IF Roughing?
IF RoughContour?
SetPass2
NewProg
FORMAT(Program#,6)
'R20=' Program# ' ( Sub# )' EOL
'R21=' SPX# ' R22=' SPZ# ' ( Start of Contour )' EOL
'R24=' StockXRadius# ' R25=' StockZ# ' ( Finishing Stock )' EOL
'R26=' CutDepth# ' ( Depth of Cut )' EOL
IF CutterRadiusCompensation?
IF CRCLeft?
'R27=41' ' ( G41 OR G42 )' EOL
ELSE
'R27=42' ' ( G41 OR G42 )' EOL
END
ELSE
'R27=40' ' ( G41 OR G42 )' EOL
END
'R28=' FeedContour# ' R30=1.' ' ( Feed Rate )' EOL
IF ApproachOD?
'R29=31' ' ( Cycle# )' EOL { Default Value. Stock amount has no affect here. }
ELSE
IF ApproachID?
IF Equal? StockXRadius# Num#('0') AND Equal? StockZ# Num#('0')
'R29=23' ' ( Cycle# )' EOL { This is a Finish pass }
ELSE
'R29=33' ' ( Cycle# )' EOL { This is a Roughing pass }
END
ELSE { Face Approach }
IF Equal? StockXRadius# Num#('0') AND Equal? StockZ# Num#('0')
'R29=22' ' ( Cycle# )' EOL { This is a Finish pass }
ELSE
'R29=32' ' ( Cycle# )' EOL { This is a Roughing pass }
END
END
END
'L95 P1' EOL
OpenSub
' ' EOL
EOR 'SPF ' Program# EOL
{ SeqC StepMove StrtPos EOL }
CycleToolPath
SeqC ' M17' EOL
CloseSub
IF AutoFinish?
SeqC ' R24=0 R25=0'
IF ApproachID?
' R29=22'
ELSE
' R29=21'
END
EOL
'L95 P1' EOL
END
SetPass1
TrackXNO# CycleStartX#
TrackZNO# CycleStartZ#
ELSE
IF RoughPatternShift?
SetPass2
NewProg
FORMAT(Program#,6)
'R20=' Program# ' ( Sub# )' EOL
'R21=' CycleStartXDia# ' R22=' CycleStartZ# ' ( Start of Contour )' EOL
'R24=' StockXRadius# ' R25=' StockZ# ' ( Finishing Stock )' EOL
'R26=' CutDepth# ' ( Depth of Cut )' EOL
IF CutterRadiusCompensation?
IF CRCLeft?
'R27=41' ' ( G41 OR G42 )' EOL
ELSE
'R27=42' ' ( G41 OR G42 )' EOL
END
ELSE
'R27=40' ' ( G41 OR G42 )' EOL
END
'R29=21' ' ( Cycle# )' EOL
'L96 P1' EOL
OpenSub
' ' EOL
EOR 'SPF ' Program# EOL
{ SeqC Feed StrtPos EOL }
CycleToolPath
SeqC ' M17' EOL
CloseSub
SetPass1
TrackXNO# CycleStartX#
TrackZNO# CycleStartZ#
END
END
ELSE
IF Threading?
'R20=' FeedIPR# ' ( Pitch )' EOL
IF ApproachID?
'R21=' SUB# FinishXDia# MUL# ThreadXInc# Num#('2')
ELSE
'R21=' ADD# FinishXDia# MUL# ThreadXInc# Num#('2')
END
' R22=' CycleStartZ# ' ( Starting Point )' EOL
'R23=' SpringPasses# ' ( Free Passes )' EOL
IF ApproachID?
'R24=' ThreadXInc# ' ( Thread Depth )' EOL
ELSE
'R24=-' ThreadXInc# ' ( Thread Depth )' EOL
END
'R25=' LastCutXRadius# ' ( Finish Inc )' EOL
'R26=0' {Thread in amount} ' R27=0' {Thread out amount} EOL
'R28=' CalcNumCuts# ' ( Rough Passes )' EOL
'R29=30' ' ( InFeed Angle )' EOL
IF ApproachID?
'R31=' SUB# FinishXDia# MUL# ThreadXInc# Num#('2')
ELSE
'R31=' ADD# FinishXDia# MUL# ThreadXInc# Num#('2')
END
' R32=' FinishZ# ' ( End Point )' EOL
'L97 P1' EOL
ELSE
IF Drilling?
IF PeckChipBreaker?
'R22=' CycleStartZ#
'R24=' Retract# {Peck decrease amount}
'R25=' Peck#
'R26=' FinishZ#
'R27=' Dwell# {Dwell at start}
'R28=' Dwell# {Dwell at end}
'L98 P1' Feedrate EOL
END
END
END
END
ELSE
IF Turning? AND OptCyc1? { Finish Contour Cycle }
SetPass1
NewProg
FORMAT(Program#,6)
'R20=' Program# ' ( Sub# )' EOL
'R21=' SPX# ' R22=' SPZ# ' ( Start of Contour )' EOL
'R24=' StockXRadius# ' R25=' StockZ# ' ( Finishing Stock )' EOL
CheckFinishPass
IF CutterRadiusCompensation?
IF CRCLeft?
'R27=41' ' ( G41 OR G42 )' EOL
ELSE
'R27=42' ' ( G41 OR G42 )' EOL
END
ELSE
'R27=40' ' ( G41 OR G42 )' EOL
END
'R28=' FeedContour# ' R30=.5' ' ( Feed Rate )' EOL
IF ApproachOD?
'R29=21' ' ( Cycle# )' EOL
ELSE
IF ApproachID?
'R29=23' ' ( Cycle# )' EOL
END
END
'L95 P1' EOL
OpenSub
' ' EOL
EOR 'SPF ' Program# EOL
StockOff
CycleToolPath
SeqC ' M17' EOL
CloseSub
ELSE
StockOn
SetPass1
IF Turning? OR Threading? { Finish Contour Cycle }
CheckFinishPass
END
ToolPath
END
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqC RapidC ZOpECPC EOL
ELSE
SeqC RapidC XOpECDC EOL
END
ApproachSP
SeqC StockOff StrtPosC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqC RapidC XSPC ZSPC EOL
SeqC StockOff StrtPosC EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqC ' X' MUL# Num#('2') ADD# FinishXRadius# Taper# EOL
SeqC ' G33'
IF Taper?
' X' MUL# Num#('2') FinishXRadius#
END
' Z' FinishZ# EOL
SeqC Rapid XSP EOL
SeqC ZSP EOL
END
END
END
END
END
IF Drilling? AND Tap?
SeqC SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}

{End of program ************************************************************}

{finish last operation}
StockOff
CRCOffC
IF CannedCycle?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqC OpExitXCPC EOL
ELSE
IF ApproachID?
SeqC XOpECDC EOL
END
END
SeqC OpExitZCPC EOL
SeqC Rapid ' D0' ' X' FIRST TurretX# CoolOff EOL
SeqC ' Z' FIRST TurretZ# EOL
DoEndOpPS
IF Turning? OR Threading?
IF Threading?
SeqC ' M0 M1=5' ' ( Check Threads )' EOL
'( Block Skip -NO- Repeats )' EOL
SeqC ' @714' EOL
'/ @100 K-' Recall# Num#('3') EOL
ELSE
IF Flag?('1')
SeqC ' M0 M1=5' ' ( Check Size )' EOL
'( Block Skip -NO- Repeats )' EOL
SeqC ' @714' EOL
'/ @100 K-' Recall# Num#('3') EOL
END
END
END
SeqC ' M0 M1=5' EOL
SeqC EOP EOL
Post
Close
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:
Fanuc 15T Dianichi CGB L754 85 2
Siemens 805 [Gimbel] L634 85 4m
GN Siemens 810T Hard L580 85
Siemens Tos 5 [GT] L636 85 1
Siemens Tos 4 [GT] L635 85 1
Siemens 810T EM L265 85
Siemens 3T4C [LTV] L505 85 1
Fanuc 16T Mon [CGB] L775 85 1
Siemens 810T EM L155 85
Fanuc 15T Act 20 CGB L757 85
Fanuc 6T MS [ CGB] L747 85 4
Siemens 810T [TCR] EM L390 85 9
Siemens 3T Tacchi NE L614 85 2
Siemens 810T Em340 [FA] L511 85
Using the Siemens S65 Display
85 (12)
Fanuc 10T HS [KMT] L759 85

więcej podobnych podstron