{Change Comments ***********************************************************}
{1/25/91
Copied & modified: Cin 18C Acr 900TC L130.71
For: Nook Industries
Machine: Cincinnati Cinturn Series 1212 (AT series)
Control: Acramatic 900TC
Control is a Radius Lathe.
All Comments to begin with MSG,
Added PGM Program Identifier statement.
Added PostScript Coolant options.
Deleted all 'G75's.
Changed G21 in position Commands to G1 normal stuff in MachSpec.
Changed M13 & M14 Spindle Commands to M3 & M4 normal stuff in MachSpec.
Added CannedCycles, although very limited support.
JR}
{2/19/91
Modified: Cin AT Acr 900TC L202.71
For: Nook Industries
Machine: Cincinnati Cinturn Series AT 12U-40 (a universal 1212)
Control: Acramatic 900TC
Turret stations: 8 OD , 4 ID (also can adapt ID holders at an OD station)
Deleted space in Comments after 'MSG,'.
Deleted custom Tool list at beginning of Program.
Added O SeqLab to Program Indentifier line.
Moved Speed to before DoOpComments & change to an O SeqLab line.
Moved SpinOn to G70 line & change to standard SeqLab line.
Moved GetCoolant to line with AbsOrInc.
Moved Tool call from Approach sub to main.
Added G95 & ToolChng to Tool call line.
Added V00 to Tool call line; this is for Tool Retract and may need to be edited.
Added Turret position commands at beginning of operations before Tool call.
Cancell Offset on line by itself.
Modified Coolant for ID or OD tools, deleted Mist/Flood Coolant PostScript Comments.
Added GetSpeed sub to simplify layout.
Arcs Stop On Quadrants checked in MachSpec.
Added spaces between codes.
Deleted IncValue from Threading cycle.
NOTE: **BUGS**
Threading Canned Cycle - see commented out commands needed.
SetAddTools - Not adding Offset to I&K Arc values.
JR}
{4/9/91
Modified: Cin AT Acr 900TC L202.72
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
SetAddTools now adds Offset to I&K Arc values.
Only Canned Cycles supported are SimpleRough and Threading.
Added FORMULAs for Canned Threading Cycle.
Added OptCyc1 PostScript Command to offer user the option to output a G33 long-hand Threading
Cycle, as opposed to a G63 Canned Threading Cycle.
Added Flag('1') to aid in output of OptCyc1 Canned Threading Cycle AutoFinish Pass.
NOTE: **BUGS**
Threading Canned Cycle still requires a variable Tangent Angle of Attack; see ThreadAngleApproach#.
DWB}
{4/29/91
Modified: Cin AT Acr 900TC L202.80
For: Nook Industries
No Feed or Feedrate in Approach for a Threading operation.
Changed the A value in Threading to reflect the Major Dia not the first cuts depth.
SetAddTools is not working with FinZ command, using FinishZ# command instead in Threading.
JR}
{8/6/91
Updated: Cin AT Acr 900TC L202.81
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.82 Format.
KLM}
{2/27/93
Modified: Cin AT Acr 900TC L202.82
For: Nook Industries
Changed Feed to FeedRate in GetFeedRate sub, seems to have been an error.
Updated Approach subs and AutoFinish to .82.1 format, changes name of GetFeedRate sub to FeedRateNoCan.
Changed GearRange to output high gear only.
Deleted Offset cancel lines.
JR}
{5/25/93
Modified: Cin AT Acr 900TC L202.82.1
For: Nook Industries
Updated to Version 4.1 per Fanuc 10T MS [-] L001.82.1 Format.
Changed IF NOT Threading to IF NOT CannedCycle at FeedNoCan and FeedRateNoCan subs.
Added StandardXZArcs at setup and initializations.
Changed LAST XCPC to SETLASTOP XCPC at NewTool.
Changed LAST ZCPC to SETLASTOP ZCPC at NewTool.
Changed SetPass2 to SetPass1 at CannedCycle Roughing RoughSimple.
This was necessary as ncPost quit unexpectadly.
Added SeqLabC StockOff StrtPosC EOL at non-CannedCycle AutoFinish.
DWB}
{9/7/95, Updated Cin AT Acr 900TC L202.82.2 to .85 format per v2.20 Update Instructions .01
Incorporated the command InFeedAngle# where ThreadAngleApproach# was asked for! JR}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '##^###0'
#3 = '#######0'
#4 = '##^#0'
#5 = '##^####0'
#6 = '##^##0'
#7 = '#'
#8 = '*##^###0' { Used for ApproachOD ThreadDepth; ApproachID uses FORMAT #2 }
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ABS#,2) { Uses FORMAT #2 for DistanceToThread and FORMAT #5 for Taper }
FORMAT(ADD#,2)
FORMAT(SUB#,2)
FORMAT(TurretX#,2)
FORMAT(TurretZ#,2)
FORMAT(CycleStartX#,2)
FORMAT(CycleStartZ#,2)
FORMAT(EPX#,2)
FORMAT(FirstMoveEPX#,2)
FORMAT(FinishXRadius#,2)
FORMAT(FinishXRadiusInc#,2)
FORMAT(FinishZ#,2)
FORMAT(FinishZInc#,2)
FORMAT(CutDepth#,2)
FORMAT(ThreadXInc#,2)
FORMAT(FeedIPR#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(Taper#,5)
FORMAT(TAN#,6)
FORMAT(RapidF#,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
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'(MSG,OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'(MSG,' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'(MSG,' WorkGroupComment$ ' )' EOL
END
IF SameTool?
IF NewToolOffset?
IF ToolTypeComment?
'(MSG,TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'(MSG,' ToolComment$ ' )' EOL
END
END
ELSE
IF ToolTypeComment?
'(MSG,TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'(MSG,' ToolComment$ ' )' EOL
END
END
RestoreScale
END
RETURN
PSInit: {reset flags from last Op, .70}
OptCyc1F
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
GetSpeed:
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
RETURN
GetCoolant:
IF NOT CoolOff?
IF ToolOver?('10')
' M07' {ID coolant}
ELSE
' M08' {OD coolant}
END
END
RETURN
GetChamfer: { For Threading Cycles }
IF Chamfer?
' X'
IF OptCyc1? { User wants 'G33' Long-hand Canned Threading Cycle }
IF Flag?('1') { Do AutoFinish Pass now }
{ The FORMULA = XAtFinZFinishPass + ThreadPitch when ApproachOD = TRUE. }
{ The FORMULA = XAtFinZFinishPass - ThreadPitch when ApproachID = TRUE. }
IF ApproachOD?
ADD# FinishXRadius# MUL# FeedIPR# NumSc#('1')
ELSE
SUB# FinishXRadius# MUL# FeedIPR# NumSc#('1')
END
ELSE { Still in ToolPath }
{ The FORMULA = XAtFinZEachPass + ThreadPitch when ApproachOD = TRUE. }
{ The FORMULA = XAtFinZEachPass - ThreadPitch when ApproachID = TRUE. }
IF ApproachOD?
ADD# EPX# MUL# FeedIPR# NumSc#('1')
ELSE
SUB# EPX# MUL# FeedIPR# NumSc#('1')
END
END
ELSE { NOT OptCyc1? - User wants 'G63' Canned Threading Cycle }
{ The FORMULA = XAtFinZFirstPass + ThreadPitch when ApproachOD = TRUE. }
{ The FORMULA = XAtFinZFirstPass - ThreadPitch when ApproachID = TRUE. }
IF ApproachOD?
ADD# FirstMoveEPX# ADD# FeedIPR# MUL# Taper# NumSc#('-1')
ELSE
SUB# FirstMoveEPX# SUB# FeedIPR# MUL# Taper# NumSc#('-1')
END
END
ELSE { NOT Chamfer? }
IF OptCyc1?
MoveXC
END
END
RETURN
GetTaper: { For Threading Cycles }
IF Taper?
FORMAT(ABS#,5)
' I'
{ The FORMULA = ABS ( ( XThreadDepth * ThreadPitch ) / ZThreadLength }
ABS# MUL# FinishXRadiusInc# MUL# FeedIPR# DIV# Num#('1') MUL# FinishZInc# NumSc#('1')
END
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN
FeedNoCan:
IF NOT CannedCycle?
FeedC
END
RETURN
FeedRateNoCan:
IF NOT CannedCycle?
FeedRateC
END
RETURN
ODApproachSP:
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN
IDApproachSP:
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL { for SameTool ApproachID }
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN
FaceApproachSP:
SeqLabC StockOnNoCan XSPC EOL { for SameTool ApproachFace }
SeqLabC StockOff ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqLabC FeedNoCan ZSPC FeedRateNoCan EOL
END
RETURN
AppMove:
StockOff ThisOpEntryZCP
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Rapid RapidF# { RapidF# Forces FeedRate }
IF ApproachOD?
SeqLabC StockOff ThisOpEntryXCP AppMove EOL
ODApproachSP
ELSE
IF ApproachID?
SeqLabC StockOff XOpCD AppMove EOL
IDApproachSP
ELSE {ApproachFace}
SeqLabC StockOnNoCan XSP AppMove EOL
FaceApproachSP
END
END
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqLabC ' M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
END
IF NewGear?
SeqLabC SpinOff EOL
END
SeqLabC CSSOff ' G97' GetSpeed GearRange EOL
IF NewGear?
SeqLabC SpinOn EOL
END
IF LAST ProgStop?
IF NOT NewGear?
SeqLabC SpinOn EOL
END
SeqLabC GetCoolant EOL
ELSE
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC GetCoolant EOL
END
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
CkCRC: { 4.2 }
IF XMove? OR ZMove? { Approach Length Feature and Multiple Pockets }
CRCOnC
END
IF LastFeat? AND EmptyLine? { Exit Length Feature }
CRCOffC
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqLabC SpinOff EOL
SeqLabC ' G04 F200' EOL
SeqLabC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqLabC ' G04 F' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqLabC RapidC MoveXC MoveZC EOL
ELSE
IF LineFeat?
SeqLabC CkCRC FeedC MoveXC MoveZC FeedRateC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqLabC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqLabC ' G33' GetChamfer MoveZC GetTaper ThrdLead EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN
CheckRapid:
CRCOffC
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
PosSideLathe
StandardXZArcs
XsAreRadii
SetMaxRPM('2240')
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
' OPTIONALCYCLE1, OPTCYC1 -' EOL
' This PostScript Command has been included in your Post Processor.' EOL
' Normally, a G63 Canned Threading Cycle will be output for Threading Operations.' EOL
' However, the user is offered the option of outputting a G33 Canned Threading' EOL
' Cycle, instead. Just enter this PostScript Command in your ncCam Threading' EOL
' Operation, and the Post Processor will output a G33 Cycle.' EOL
END
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
EOR EOL
'O?' '(PGM,I' Program# ')' EOL
IF UseComments?
IF ProgramNameComment?
'(MSG,' ProgramName$ ' )' EOL
END
IF ProgramComment?
'(MSG,' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'(MSG,FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'(MSG,' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'(MSG,OUTPUT IN ' MoveType$ ' INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane
'O?' CSSOff ' G97' GetSpeed GearRange EOL
DoOpComments
SeqLabC ' G70' SpinOn EOL
SeqLabC AbsOrInc GetCoolant EOL
SeqLabC Rapid ' X' TurretX# ' Z' TurretZ# EOL
SeqLabC ' G95' ' V00' OpToolID LatheOffset ToolChng EOL
DoPostScript
SetAddTools
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqLabC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
END
SeqLabC LAST OpExitZCPC EOL
SetAddToolsF
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqLabC CSSOff ' G97' CalcRPM2 EOL
END
SeqLabC ' X' TurretX# ' Z' TurretZ#
IF NewGear?
SpinOff
END
EOL
IF LAST ProgStop?
SeqLabC ' M00' EOL
ELSE
SeqLabC ProgStop EOL
END
{Start new Operation}
'O?' CSSOff ' G97' GetSpeed GearRange EOL
DoOpComments
SeqLabC ' G70' SpinOn EOL
SeqLabC AbsOrInc GetCoolant EOL
SeqLabC Rapid ' X' TurretX# ' Z' TurretZ# EOL
SeqLabC ' G95' ' V00' OpToolID LatheOffset ToolChng EOL
DoPostScript
SetAddTools
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqLabC StockOnNoCan XSPC ZSPC EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqLabC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC LAST OpExitXCPC EOL
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC XOpCDC EOL
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqLabC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed?
IF FirstOperation? OR LAST NOT ConstantSurfaceFeed?
SeqLabC Preset MaxRPM EOL
END
SeqLabC SetAddToolsF CSSOn ' G96 R' CycleStartX# Speed SetAddTools EOL
END
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
SeqLabC '(DIN,G' CutDepth# ')' EOL
IF ApproachFace?
SeqLabC '(EXS,Z' CutDepth# ')' EOL {exit cut}
SeqLabC LCycle ' Z' FinishZ# ' I' FinishXRadiusInc# XTapAtZ ' A0' EOL
ELSE
SeqLabC '(EXS,X' CutDepth# ')' EOL {exit cut}
SeqLabC LCycle ' X' FinishXRadius# XTapAtZ ' K' FinishZInc# ' A0' EOL
{A must be programmed but Cam already has it at the first position so A=0}
END
END
ELSE
IF Threading?
IF OptCyc1?
StockOn
SetPass1
ToolPath
IF AutoFinish?
SetFlag('1')
SeqLabC ' X'
{ The FORMULA = XAtFinZFinishPass + Taper. }
ADD# FinishXRadius# MUL# Taper# NumSc#('1')
EOL
SeqLabC ' G33' GetChamfer ' Z' FinishZ# GetTaper ThrdLead EOL
SeqLabC Rapid ' X' CycleStartX# EOL
SeqLabC ' Z' CycleStartZ# EOL
SetFlagF('1')
END
ELSE { NOT OptCyc1? }
SeqLabC '(DIN,' CutDepth ')' EOL
IF ApproachOD?
FORMAT(ThreadXInc#,8)
ELSE
FORMAT(ThreadXInc#,2)
END
SeqLabC '(DTH,G' ThreadXInc# ')' EOL
IF SingleEdgeCut?
{ The FORMULA = Tangent 29Ą. }
{ IF ApproachOD = TRUE, then the value must be multiplied by -1. }
{ This is for normal approach moves in the Z minus direction. }
{ For approach moves in the Z plus direction, the sign must be reversed. }
IF ApproachOD?
SeqLabC '(TAA,G' TAN# MUL# InFeedAngle# NumSc#('1') ')' EOL
ELSE
SeqLabC '(TAA,G' TAN# MUL# InFeedAngle# NumSc#('-1') ')' EOL
END
END
SeqLabC LCycle GetChamfer {FinZ} ' Z' FinishZ# GetTaper ThrdLead
{ This gives the distance between the Cycle Start point and the Major Dia }
SetAddToolsF
FORMAT(ABS#,2)
' A' ABS# DIV# DiaDistanceToThread# NumSc#('2')
SetAddTools
EOL
END { IF OptCyc1? }
END { IF Threading? }
END { IF Roughing? }
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple?
StockOff
IF Turning?
SetPass1
RapidC
IF ApproachFace?
SeqLabC ZOpECPC EOL
FaceApproachSP
ELSE
SeqLabC XOpECDC EOL
IF ApproachOD?
ODApproachSP
ELSE {ApproachID}
IDApproachSP
END
END
ELSE
SetPass2
SeqLabC RapidC XSPC ZSPC EOL
END
SeqLabC StockOff StrtPosC EOL
ToolPath
END
END
END
IF Drilling? AND Tap?
SeqLabC SpinOff EOL
SeqLabC ' G04 F200' EOL
SeqLabC Speed 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?
SeqLabC OpExitXCPC EOL
ELSE
IF ApproachID?
SeqLabC XOpECDC EOL
END
END
SeqLabC OpExitZCPC EOL
SetAddToolsF
DoEndOpPS
SeqLabC ' X' FIRST TurretX# ' Z' FIRST TurretZ# SpinOff EOL
IF ProgStop?
SeqLabC ' M00' EOL
END
SeqLabC EOP EOL
Post
EOR EOL
Close
Retag
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'(MSG,FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'(MSG,FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'(MSG,FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
Cin MA Acr 900TC L211 85Cin 18C Acr 900TC L130 85Cin MA Acr 900TC [WSR] L812 85Cin AT 900TC [GT] L737 85 2Cin AT 900TC [TC] L702 85 1Cin AT 900TC [CINC] L445 85 1mCin Acr CNC L367 85 03Cin Acr 850TC L102 85Cin 720 Acr 5 [PAMA] M492 87Cin 10VC Acr 900MC M245 80 2mCin T10 Acr 950MC[JD] M535 87Cin 10HC Acr 900 PMW DV69 15 1Cin 10VC Acr 900MC AM M840 80 6Cin 5VC Acr 900V2 M238 80 2więcej podobnych podstron