{6/1/89
Modified; Cincinnati 900V2 (1) M099.54, for C G Richter.
Change "RapidC" to "Rapid" after Drilling.
Add "NullFoot" twice to beginning and twice to end of prog.
Changed "'( MSG" to "'(MSG".
Checked "Use Absolute Drill Depths" in Booleans.
Jim Radcliffe}
{9/6/89
Copied & modified: Cincinnati 900V2 (1) M099.55
For: Hughes T&CSD
Machine: Cincinnati Cintimatic 5VC-750
Control: Acramatic 900 V2
New processer from Manual and Customer requests.
Jim Radcliffe}
{9/15/89, add PostScript, JR}
{9/21/89
Copied & modified: Cin 5VC Acr 900V2 M238.56
For: Hughes T&CSD
Machine: Cincinnati Cintimatic 10VC
Control: Acramatic 900 MC
Added Probing Operation utilizing PostScript commands SetZSurf & OptCyc1.
Probing and setting of Z axis should be OK.
Needs method for X an Y axis.
Jim Radcliffe}
{10/11/89, modified operation comments, JR}
{12/5/89
Modified: Cin 10VC Acr 900MC M245.62
For: Hughes T&CSD
Machine: Cincinnati Cintimatic 10VC
Control: Acramatic 900 MC
Added PostScript for Coolant, Program Stop & Index.
Jim Radcliffe}
{3/29/90, Updated: Cin 10VC Acr 900MC M245.63 to .70.3 format, JR}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}
{7/24/90, Deleted SetZSurf command at start of prog, DWB}
{12/14/90, Updated: Cin 10VC Acr 900MC M245.71 to .76.1 format, JR}
{4/03/91
Modified: Cin 10VC Acr 900MC M245.76.1
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}
{6/18/91, Changed ArcIJC & ArcRC to ArcIJ & ArcR. Added OptCyc1f to PSInit, JC}
{6/27/91
Modified: Cin 10VC Acr 900MC M245.79.1
For: Hughes T&CSD per Terry Lowe
Modified Subs;
changed Sub ID from "PGM" to "DFS",
changed to output subs in front of program,
deleted all EOR codes except for the 1st one.
Modified Cutter Radius Compensation, must be in Feed when CRCOn is called and cannot have 2 G codes on same line;
deleted boolean statement that ouputs Feed, after a rapid entry, from; EntryMove, ZonlyRepAutoCycle & ZonlyRep,
added sub CheckCRC to put Feed on line by itself before CRCOn, using flag to check condition,
put CRCOff on line by itself following move line and reset flag.
Jim Radcliffe}
{7/29/91
Modified: Cin 10VC Acr 900MC M245.80
For: Hughes T&CSD per Terry Lowe
Added codes to allow Retract to 1st Clearance Plane for Drilling Cycles.
For proper drill cycle depths:
changed ZDepth to 'Z' ADD# ZDepth# NumSc#('.1'),
unchecked "Use Absolute Drill Depths" in the MachSpec.
Jim Radcliffe}
{2/19/92
Modified: Cin 10VC Acr 900MC M245.80.1
For: Hughes T&CSD per Terry Lowe
Changed to no sub output, all long hand output.
Jim Radcliffe}
{8/22/95
Initial: Cin 10VC Acr 900MC M245.80.2
Created: Cin 10VC Acr 900MC M840.80.2
ForUser: Murtaugh Represents / Applied Materials
Control: Cincinnati Acramatic 900
Machine: Cincinnati 10VC
Develop: ComPost 4.21.32, Virtual v.2.20
Comment: New Post Processor per marked up readout and conversation with John King
Changed 'T' ToolComment$ to OpToolID
Deleted PreTooling.
Deleted O code from StrtPos line.
Changed O code to output the tool number.
Suppressed SameTool output of Speed, SpinOn and ToolOfst.
Added TCZ# default to 3.000
Strung ProgStop/CoolOff to TCZ line
Jim Radcliffe}
{8/24/95, M840.80.3, force endpoints in proper plane for arcs with helical in XY, JR}
{8/24/95, M840.80.4, force a line move if there is not motion in both of the arc planes axis, JR}
{10/11/95, M840.80.5, addded FeedEnt to Approach for Peck, JR}
{19Sep97
Original: Cin 10VC Acr 900MC AM M840.80.5
Created: Cin 10VC Acr 900MC AM M840.80.6
For: Applied Materials
Changes made per: John King
Deleted ToolOfst from FirstOperation, NewTool and SameTool
Deleted IF NewToolOffset Boolean from SameTool
Charles Winston}
#1 = '#.00'
#2 = '###^##0'
#3 = '*###^##0'
#4 = '###^###0'
#5 = '#0'
#6 = '#.0000'
#7 = '00'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(CalcZSurf#,4)
FORMAT(TCZ#,4)
FORMAT(ArcZRads#,4)
FORMAT(Tag#,5)
FORMAT(Operation#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Tool#,5)
FORMAT(ToolDiameter#,6)
FORMAT(NewWFO#,7)
FORMAT(SUB#,4)
FORMAT(ADD#,4)
DoSubComment:
IF UseComments? AND SubComment?
SeqLabC '( CYCLE START )' EOL
END
RETURN
DoPartSubComment:
IF UseComments? AND SubComment?
TagInc
'( Part Number: ' Tag# ' )' EOL
IF LastPart?
TagInit
END
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
SeqLabC '( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
SeqLabC '( ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
SeqLabC '( ' WorkGroupComment$ ' )' EOL
END
IF SameTool?
IF NewToolOffset?
IF ToolTypeComment?
SeqLabC '( TOOL ' Tool# ': (' ToolDiameter# ') ' ToolType$ ' )' EOL
END
IF ToolComment?
SeqLabC '( ' ToolComment$ ' )' EOL
END
END
ELSE
IF ToolTypeComment?
SeqLabC '( TOOL ' Tool# ': (' ToolDiameter# ') ' ToolType$ ' )' EOL
END
IF ToolComment?
SeqLabC '( ' ToolComment$ ' )' 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
END
RETURN
PSInit: {reset flags}
NewWFOF
RotateF
OptCyc1f
RETURN
PSStuff: {revised.72}
{see CheckIndexer for rotate stuff}
RETURN
DoPostScript:
PSInit
EachPS
SeqLabC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
CheckCRC:
IF CutterRadiusCompensation?
IF Flag?('1')
FeedC
ELSE
FeedC EOL
SeqLabC CRCOn SetFlag('1')
END
ELSE
FeedC
END
RETURN
FormatArc2:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
IF XYPlane?
IF ZMove?
MoveX MoveY MoveZ ArcIJ 'K' ArcZRads#
ELSE
MoveX MoveY ArcIJ
END
ELSE
IF XZPlane?
IF YMove?
MoveX MoveY MoveZ ArcI 'J' ArcZRads# ArcJ
ELSE
MoveX MoveYC MoveZ ArcIJ
END
ELSE {YZ Plane}
IF XMove?
MoveX MoveY MoveZ 'I' ArcZRads# ArcI ArcJ
ELSE
MoveXC MoveY MoveZ ArcIJ
END
END
END
RETURN
FormatArc:
IF XYPlane? AND XMove? AND YMove?
FormatArc2
ELSE
IF XZPlane? AND XMove? AND ZMove?
FormatArc2
ELSE
IF YZPlane? AND YMove? AND ZMove?
FormatArc2
ELSE
FeedC MoveXYZC
END
END
END
RETURN
StdRapid:
IF XMove? OR YMove? OR ZMove?
SeqLabC RapidC MoveXYZC EOL
END
RETURN
StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC CheckCRC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqLabC CheckCRC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqLabC CheckCRC MoveXYZC FeedRateC EOL
END
END
RETURN
StdArc:
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC FormatArc ArcFeedC EOL
DecelMove2
END
SeqLabC FormatArc DecelFeed EOL
ELSE
SeqLabC FormatArc ArcFeedC EOL
END
NEXTQuadrant
RETURN
ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
IF LastFeat?
SeqLabC RapidC MoveXYZC EOL
SeqLabC CRCOffC SetFlagF('1') EOL
ELSE
StdRapid
END
ELSE
IF LineFeat?
IF LastFeat?
SeqLabC FeedC MoveXYZC FeedRateC EOL
SeqLabC CRCOffC SetFlagF('1') EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqLabC FeedC MoveXYZC FeedRateC EOL
ELSE
StdLine {enables CRC on first call}
END
END
ELSE
IF ArcFeat?
StdArc
END
END
END
NEXTFeat
RETURN
EntryMove:
IF FeedEntry?
SeqLabC Feed ZIn FeedEnt EOL
ELSE
SeqLabC RapidC ZIn EOL
END
RETURN
CutAutoCycle:
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqLabC IncValue EOL
IF Repeats? AND ZshiftOnly?
EachRep
EntryMove
ToolPath2
IF NOT FeedConnect?
SeqLabC RapidC PRIME ZCP2 EOL
END
NextRep
SeqLabC AbsOrInc EOL
SeqLabC RapidC ZCP2 EOL
ELSE
EntryMove
ToolPath2
SeqLabC AbsOrInc EOL
SeqLabC RapidC ZCP2 EOL
END
SetSRSubXY {restore tool position}
SetSRSubMove
ReSetPass2 {restore for positioning moves}
RETURN
ToolPath:
EACHFeat
IF PointFeat?
SeqLabC MoveSXYC EOL
IF AutoCycle?
CutAutoCycle
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
END
ELSE
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
END
NEXTFeat
RETURN
WFOStuff:
IF NewWFO?
IF MultipleParts?
'*** WARNING *** DO NOT USE NEWWFO() WITH NCPOST MULTIPLE PARTS'
ELSE
'H' NewWFO#
END
ELSE
IF NOT SameTool?
IF NeedWFO1?
'H' NewWFO#
END
END
END
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
Approach:
IF Drilling? AND NOT Peck?
GetCycle
IF FIFO? AND Dwell?
'G89'
ELSE
Cycle
END
StrtPos 'Z' ADD# ZDepth# NumSc#('.1') RLevelCin FeedEnt
ELSE {milling or pecking}
Rapid StrtPos
IF Peck?
ZCP2 FeedEnt
ELSE {milling}
IF NOT SameTool?
ZCP1
END
END
END
RETURN
CheckSpinOn: {turns on spindle and coolant}
IF CoolOff?
IF CWSpindle?
'M03'
ELSE
'M04'
END
ELSE
IF Mist?
IF CWSpindle?
'M17'
ELSE
'M18'
END
ELSE
IF CWSpindle?
'M13'
ELSE
'M14'
END
END
END
RETURN
CheckIndexer:
IF FourthCW?
FORMAT(FourthDegree#,2)
'B' FourthDegree#
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
'B' FourthDegree#
FourthCCWF {reset flag}
END
RETURN
{************************ Set-Up ***************************************}
InitProg
ReverseXZArcs
SetMist
InitWFONum
SetMaxRPM('4000')
SetMaxFeed('200')
SetTCZ('3')
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
' Use Literals to specify a Spindle Rotate for probing operations.' EOL
' Commands: may be capital and/or lower case letters. Separate commands with a space.' 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
' NewWFO(56), NWFO(56) -' EOL
' The Work Fixture Offset # you specify will be used for all following operations.' EOL
' Do not use with the ncPost multiple part option.' EOL
' OPTCYC1' EOL
' This is a non-modal command affecting the current operation only.' EOL
' It instructs the Post application that this is to be a Probe & Set' EOL
' operation. Use this command before an ENDOP command.' EOL
' SetZSurf(-.05)' EOL
' This is a non-modal command affecting the current operation only.' EOL
' The value in ( ) establishes the Z surface position incrementally' EOL
' from clearance plane #2. For example, if clearance plane #2 equals' EOL
' Z.1 and SetZSurf(-.05) is given for that operation, the Z top surface' EOL
' will be Z.05. This command only effects drilling operations and' EOL
' must be used with the OPTCYC1 command and before the ENDOP command' EOL
' for a Probe & Set Z axis operation. If SetZSurf() is not specified,' EOL
' the value will be taken from ncCAM, if it is version 3.2 or better' EOL
' MistCoolant, MCool' EOL
' This is a non-modal command affecting the current operation only.' EOL
' Turns on the spindle with mist coolant.' EOL
' SetMist, SM' EOL
' This is a modal command affecting all operations.' EOL
' Turns on the spindle with mist coolant.' EOL
' This is the default setting.' EOL
' SetFlood, SF' EOL
' This is a modal command affecting all operations.' EOL
' Turns on the spindle with flood coolant.' EOL
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' This is a non-modal command affecting the current operation only.' EOL
' generates a + B move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' This is a non-modal command affecting the current operation only.' EOL
' generates a - B move of the value you specify' EOL
' ToolChangeZ(3.0), TCZ(3.0) -' EOL
' The value in parenthese establishes the value the spindle will retract to.' EOL
' Its is Modal and 30000 is the default.' EOL
END
{**************** Customized header comments with tool list *****************}
EACHOp
IF FirstOperation?
IF UseComments?
IF ProgramNameComment?
SeqLabC '( PROGRAM: ' ProgramName$ ' )' EOL
END
IF ProgramComment?
SeqLabC '( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
SeqLabC '( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
SeqLabC '( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
SeqLabC '( OUTPUT IN ' MoveType$ ' INCHES )' EOL
END
IF PartsComment?
SeqLabC '( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
SeqLabC '( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
SeqLabC '( )' EOL
END
IF SameTool?
IF NewToolOffset?
SeqLabC '( TOOL ' Tool# ' (' ToolDiameter# ') ' ToolType$ ' ' ToolComment$ ' ' ToolOfst ' )' EOL
END
ELSE
SeqLabC '( TOOL ' Tool# ' (' ToolDiameter# ') ' ToolType$ ' ' ToolComment$ ' ' ToolOfst ' )' EOL
END
NEXTOp
{*************************** Beginning **********************************}
EACHOp
IF FirstOperation?
SeqLabC '( )' EOL
EOR EOL
IF ToolChangeAtHome?
SetHome
END
OpenSub
IF Metric? {CAM file is in metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
IF MultipleParts? AND AllToolsOnePart?
EACHPart
DoPartSubComment
END
'O' Tool# Rapid OpToolID ToolChng EOL
DoOpComments
SeqLabC Plane EOL
SeqLabC AbsOrInc EOL
DoPostScript
CheckPass
IF OptCyc1? {OptCyc1 used for Probe}
SeqLabC 'G75' StrtPos ZCP1 CheckIndexer SpinOff EOL
ELSE
SeqLabC Approach CheckIndexer Speed WFOStuff CheckSpinOn EOL
END
IF MultipleParts? AND OneToolAllParts?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
SeqLabC StrtPos EOL
END
END
ELSE
IF NewTool?
IF MultipleParts? AND OneToolAllParts?
NEXTPart
END
DoEndOpPS
SeqLabC Rapid 'Z' TCZ# CoolOff EOL
IF ToolChangeAtHome?
SeqLabC RapidC Home EOL
END
IF LAST ProgStop?
SeqLabC 'M00' EOL
ELSE
SeqLabC ProgStop EOL
END
{************* Beginning of a new tool ******************}
'O' Tool# Rapid OpToolID ToolChng EOL
DoOpComments
SeqLabC PlaneC EOL
DoPostScript
CheckPass
IF OptCyc1? {OptCyc1 used for Probe}
SeqLabC 'G75' StrtPos ZCP1 CheckIndexer SpinOff EOL
ELSE
SeqLabC Approach CheckIndexer Speed WFOStuff CheckSpinOn EOL
END
IF MultipleParts? AND OneToolAllParts?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
SeqLabC StrtPos EOL
END
END
ELSE
IF SameTool?
DoEndOpPS
SeqLabC
IF LAST ProgStop? OR NewToolOffset?
Rapid 'Z' TCZ#
END
IF LAST ProgStop? OR CoolOff? AND LAST NOT CoolOff?
CoolOff
END
EOL
IF LAST ProgStop?
IF ToolChangeAtHome?
SeqLabC Rapid Home EOL
END
SeqLabC 'M00' EOL
END
{************* Beginning of a new operation with same tool ******************}
DoOpComments
SeqLabC PlaneC EOL
DoPostScript
CheckPass
IF OptCyc1? {OptCyc1 used for Probe}
SeqLabC 'G75' StrtPos ZCP1 CheckIndexer SpinOff EOL
ELSE
SeqLabC Approach CheckIndexer
IF LAST ProgStop?
Speed
END
WFOStuff
IF LAST ProgStop?
CheckSpinOn
ELSE
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn
END
END
EOL
END
END
END
END {Common point for all operations}
IF Milling?
SeqLabC ZCP2C EOL
IF OptCYC1?
SeqLabC ZInC EOL
SeqLabC 'G77' MoveXYC '( Add I or J Value )' EOL {needs an I or J value to set X or Y}
SeqLabC Rapid ZCP3 EOL
SeqLabC 'G74' EOL
ELSE
IF Repeats?
IF ZshiftOnly? AND AutoCycle?
{done in CutAutoCycle called from ToolPath}
ELSE
EACHRep
DoSubComment
IF NOT FirstCycle?
SeqLabC Connect StrtPos EOL
IF NOT FeedConnect?
SeqLabC ZCP2C EOL
END
END
END
END
IF NOT AutoCycle?
EntryMove
END
ToolPath
IF Repeats?
IF ZshiftOnly? AND AutoCycle?
{done in CutAutoCycle called from ToolPath}
ELSE
IF NOT FeedConnect?
SeqLabC RapidC PRIME ZCP3C EOL
END
NEXTRep
END
END
SeqLabC RapidC ZCP3C EOL
SeqLabC CRCOffC SetFlagF('1') EOL
END
ELSE
IF Drilling?
IF OptCyc1?
SeqLabC ZCP2C EOL
SeqLabC 'G77' ZIn 'K' CalcZSurf# EOL {find & set Z surface}
SeqLabC 'G75' EOL
SeqLabC Rapid ZCP3 EOL
SeqLabC 'G74' EOL
ELSE
IF Repeats?
EACHRep
DoSubComment
IF NOT FirstCycle?
SeqLabC Approach EOL
END
END
EACHFeat
IF Peck?
SeqLabC RapidC MoveSXYC EOL
SeqLabC ZCP2C EOL
PeckManual
IF RetractToCP1?
SeqLabC RapidC ZCP1C EOL
END
ELSE
IF RetractToCP1?
IF NOT FirstFeat?
SeqLabC
IF FIFO? AND Dwell?
'G89'
ELSE
Cycle
END
MoveSXYC 'Z' ADD# ZDepth# NumSc#('.1') RLevelCin EOL
END
IF NOT LastFeat?
SeqLabC DrillOff 'R' SUB# ClearancePlane1# NumSc#('.1') EOL
END
ELSE
SeqLabC MoveSXYC EOL
END
END
NEXTFeat
IF NOT Peck?
SeqLabC DrillOff EOL
END
SeqLabC Rapid ZCP3 EOL
IF Repeats?
NEXTRep
END
END
END
END
{NEXTOp} {modified to prevent endless looping in ncPOST}
IF MultipleParts?
IF LastOp?
IF MultipleParts? AND OneToolAllParts?
NEXTPart
END
DoEndOpPS
SeqLabC Rapid 'Z' TCZ# CoolOff EOL
IF FIRST ToolChangeAtHome?
SeqLabC FirstHome EOL
END
IF ProgStop?
SeqLabC 'M00' EOL
ELSE
SeqLabC ProgStop EOL
END
IF MultipleParts? AND AllToolsOnePart?
NEXTPart
END
ELSE
NEXTOp
END
ELSE
NEXTOp
DoEndOpPS
SeqLabC Rapid 'Z' TCZ# CoolOff EOL
IF FIRST ToolChangeAtHome?
SeqLabC FirstHome EOL
END
END
SeqLabC EOP EOL
CloseSub
Post2 {organize Subs into one program}
EOR EOL
Close
Retag
IF UseComments?
SetScale('1')
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:
Cin 10VC Acr 900MC M245 80 2mCin 10VC Acr 900MC M245 80 2Cin Acr 900MC [ABB] DU62 12Cin 5VC Acr 900V2 M238 80 2Cin 720 Acr 5 [PAMA] M492 87Cin 10VC [CG] M732 81 2Cin MA Acr 900TC [WSR] L812 85Cin T10 Acr 950MC[JD] M535 87Cin MA Acr 900TC L211 85Cin 10HC Acr 900 PMW DV69 15 1Cin 10VC Big Blue O&F M641 87Cin 18C Acr 900TC L130 85Cin 10VC Big Blue SP MU38 87 2Cin 10VC Big Blue [TC] MY29 87Cin AT Acr 900TC L202 85Cin 10VC Big Blue [TC] MQ27 87Cin T10 Acr 950MC M324 87mCin 10VC [CG] M732 81 2mwięcej podobnych podstron