{Change Comments ***********************************************************}
{added separate sub call code and warning for not separate, 7/5/88 WFG}
{separate sub calls turned off in this post- 'UseSeparateSubCalls' commented out}
{ncPost3ż24 or better}
{added IF ToolChangeAtHome?, & SetHome 9/26/88 WFG}
{added PostScript commands 3/11/89 WFG}
{added PostScript command comments 5/9/89, WFG, use ncPost 3.10Ś9 or better}
{removed run time comments, 5/9/89, WFG}
{added "must be all capital letters when typed in" to Postscript Command comment, 5/17/89, JR}
{added metric, 6/5/89, WFG}
{suppressed first cycle StrtPos for sep subs,7/17/89 WFG}
{last tool now goes to FirstHome when finished, 7/26/89, WFG}
{changed to Sep Sub standard}
{.65, corrected Sep sub problem if 1st cut <> Z step, 9/14/89 WFG, requires ncPost 3.19Ś5}
{.66, added name comment to Prog ID # line, 10/30/89, WFG}
{.67, new prog commands, 11/20/89, WFG}
{*.68, AutoCycles and 3.2 support, 12/4/89, WFG (Good luck on the upgrades to other posts)}
{.69, corrected 2 repeat op/autocycle problems, 12/21/89, WFG}
{1/8/90-2/7/90
Changes to M001.69
Moved DoPostScript command to very beginning of NewTool & SameTool op's, same as FirstOp.
Deleted last line of NewWFO PostScript comment, it no longer applies.
Move DoEndOpPS command in NewTool & end of prog to end of operation outside of Full-up MP.
Restucture to have M01 or M00 in New Tool.
Deleted ProgStop? from end of prog, not neccesary.
Check for ProgStop at beginning AND end of operation does not work, it comes out both places,
only using for end of operation. Reflected in PSComments.
Deleted StopProg sub.
Re-wrote SameTool section for many reasons.
Deleted ClearancePlane3# prog format it is no longer needed.
New sub CheckPass to replace statement in main for SetPass.
Modified WFOStuff sub to include SameTool.
Deleted StrtPos from OpenMP sub and added to main where needed.
Updated to .70 format.
Jim Radcliffe}
{3/15/90
Copied & modified: Fanuc 6M M001.70.3
For: Rollason
Machine: Moore Speacial Jig Grinder
Control: GE 1050
No Z Moves Added SkipZ to Initializations
Negate Y & J in MachSpec.
No Feedrates
Basically stripped it down minimaly as needed.
Some things still unsure of as I am writing this with no manual and only a sample read-out.
Jim Radcliffe}
{4/9/90
Deleted StdLine subroutine and replaced where it was called.
Removed ArcFeed command.
DWB}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}
{6/3/91, Updated GE 1050 Moore JG M295.71 to .80 format, JR}
{6/3/91
Copied & modified: GE 1050 Moore JG M295.80
For: Unitech Engineered Products, Inc.
Control: Allen Bradley 8400
Machine: Moore Jig Grinder model G-18
Changed G02's to G03's & G03's to G02's in MachSpec.
Modified comments to use semi-colons instead of parentheses.
Jim Radcliffe}
{6/12/91, UnNegated Y & J in MachSpech, also switched back G02 & G03, JR}
{6/14/91
Modified: AB 8400 Moore JG M422.80.1
Changed to not stop on arcs quadrants
Jim Radcliffe}
{6/14/91
Modified: AB 8400 Moore JG M422.80.2
Changed FormatArc sub to unconditional arc information
Jim Radcliffe}
{6/20/91
Modified: AB 8400 Moore JG M422.80.3
For: Unitech Engineered Products, Inc.
Control: Allen-Bradley 8400
Machine: Moore Jig Grinder model G-18
Modified per manual:
Absolute arc centers.
The 3rd axis is a C axis mainly used to keep the U axis perpendicular to the work piece;
added "2-DAN" codes (G50 - G52), similar to CRC, automaticly takes care of the C axis.
**Do not choose cutter center in ncCAM for "2-DAN" to function properly.**
The 4th axis (indexing axis) is an A axis;
3.4 format, modified FORMAT #2 & #3;
added spacing to codes.
The 5th axis is a U axis which is an offset departure of the main spindle centerline and the grinding wheel centerline;
changed B to U for 5thaxis PostScript;
3.5 format, added FORMAT #8 & #9.
Planetary Spindle modes are not supported.
The Plane command has no output as G17 is activated at power-up and no other planes are possible.
Deleted literal F4.0 and added FeedRateC, format 2.2, to ToolPath.
Added Decel info to ToolPath.
Can only have 1 G code per line, fixed all possibilities.
CRC uses T word offset
No Drilling operations, added literal comment to be output to indicate this.
Fixture offsets E01 to E99.
Added ProID1, format 00.
Deleted SubCall command, subs called by calling the subs program number only.
Return From Sub command is M02.
Added Coolant, M07 on M09 off.
Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0.'
#3 = '*###.####;0.'
#4 = '####.####;0.'
#5 = '########;0'
#6 = '##.##'
#7 = '00'
#8 = '###.#####;0.'
#9 = '*###.#####;0.'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {uses D word}
FORMAT(NewWFO#,7)
{Prog Subroutines **********************************************************}
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# ': ' ToolDiameter# ' ' 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}
NewWFOF
RotateF
RETURN
PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqC ' A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqC ' A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,8)
SeqC ' U' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,9)
SeqC ' U' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
StartSub:
OpenSub
SubID EOL
DoSubComment
RETURN
StdSub:
SeqC CallLab RepLab RepCycs EOL
StartSub
SeqC Connect StrtPos EOL
RETURN
FinishSub1: {part 1}
SeqC CRCOffC EOL
RETURN
FinishSubG92: {part 2}
SeqC Preset ShiftRC EOL
SeqC EndSub EOL
CloseSub
SeqC Preset UnshftRC EOL
RETURN
OpenMP:
NewProg
IF WorkFixtureOffsets?
NewWFO
EachWFO
SeqC SetWFO EOL
SeqC CallLab RepLab OnePart EOL
IncWFO
NextWFO
ELSE
SeqC CallLab RepLab Parts EOL
END
StartSub
RETURN
CloseMP:
IF WorkFixtureOffsets?
SeqC EndSub EOL
CloseSub
SeqC WFO1 EOL
ELSE
SeqC Preset ShiftPC EOL
SeqC EndSub EOL
CloseSub
SeqC Preset UnshftPC EOL
END
RETURN
FormatArc:
IF ArcCW?
CWArc
ELSE
CCWArc
END
MoveXYZC
IF ArcIJFormat?
ArcIJ
ELSE
ArcR
END
RETURN
ToolPath:
EACHFeat
IF PointFeat?
SeqC MoveSXYC EOL
IF AutoCycle?
SeqC CallLab EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
END
ELSE
IF RapidFeat?
IF LastFeat? AND AutoCycle? {.70}
SeqC CRCOffC EOL
SeqC RapidC MoveXYZC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC RapidC MoveXYZC EOL
END
END
ELSE
IF LineFeat?
IF AutoCycle? {.70}
IF LastFeat?
SeqC CRCOffC EOL
SeqC FeedC MoveXYZC EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqC FeedC MoveXYZC EOL
ELSE
SeqC CRCOnC CRCOffsetC EOL
SeqC FeedC MoveXYZC EOL
END
END
ELSE
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC CRCOnC CRCOffsetC EOL
SeqC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqC CRCOnC CRCOffsetC EOL
SeqC FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC CRCOffsetC EOL
SeqC FeedC MoveXYZC FeedRateC EOL
END
END
END
ELSE
IF ArcFeat?
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN
WFOStuff:
IF NewWFO?
IF MultipleParts?
'*** WARNING *** DO NOT USE NEWWFO() WITH NCPOST MULTIPLE PARTS' EOL
ELSE
SeqC ' E' NewWFO# EOL
END
ELSE
IF NOT SameTool?
IF NeedWFO1?
SeqC ' E' NewWFO# EOL
END
END
END
RETURN
AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
StartSub
SetSRXYtoSP
SeqC IncValue EOL
RETURN
AutoCycCutSub2: {part 2}
IF WireLeft?
SeqC ' G51' EOL
ELSE
SeqC ' G52' EOL
END
ToolPath
SeqC ' G50' EOL
SeqC AbsOrInc EOL
SeqC EndSub EOL
CloseSub
SetSRSubXY {restore tool position}
SetSRSubMove
RETURN
AutoCycPat:
SetPass2 {position pattern}
ToolPath {call after NewProg for correct sub calls}
SetPass1 {reset}
RETURN
Milling:
IF AutoCycle?
NewProg
AutoCycCutSub1
AutoCycCutSub2
AutoCycPat
ELSE
IF WireLeft?
SeqC ' G51' EOL
ELSE
SeqC ' G52' EOL
END
ToolPath
SeqC ' G50' EOL
END
RETURN
G92Sub:
StdSub
Milling
FinishSub1
FinishSubG92
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SkipZ
ReverseXZArcs
InitWFONum
SetFlood
UseSeparateSubCalls
SetMaxSeparateSubCalls ('50') {?}
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: 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
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' generates a + A move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' generates a - A move of the value you specify' EOL
' 5thAxisCW(30), 5ACW(30) -' EOL
' generates a + U move of the value you specify' EOL
' 5thAxisCCW(22.5), 5ACCW(22.5) -' EOL
' generates a - U move of the value you specify' EOL
END
EachOp {Start of post processing *********************}
IF FirstOperation?
EOR EOL
ProgID1 EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'; ' 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
IF PartsComment?
'; PARTS PROGRAMMED: ' Parts# EOL
END
IF StartToolComment?
'; FIRST TOOL NOT IN SPINDLE' EOL
END
END
OpenSub
IF Metric? {CAM file is in metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
Plane {no output}
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Seq AbsOrInc EOL
DoOpComments
DoPostScript
WFOStuff
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqC Rapid StrtPos EOL
SeqC ' M15' EOL {grinding head down}
SeqC CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC StrtPos EOL
END
ELSE
IF NewTool?
{Finish off last Operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqC CoolOff EOL
SeqC ' M16' EOL {grinding head up}
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC Rapid Home EOL
END
IF LAST ProgStop?
SeqC ' M00' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
Seq AbsOrInc EOL
DoOpComments
DoPostScript
WFOStuff
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqC Rapid StrtPos EOL
SeqC ' M15' EOL {grinding head down}
SeqC CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
SeqC CoolOff EOL
SeqC ' M16' EOL {grinding head up}
IF LAST ProgStop?
SeqC ' M00' EOL
END
{Start new Operation}
SeqC AbsOrInc EOL
DoOpComments
DoPostScript
WFOStuff
CheckPass
SeqC Rapid StrtPos EOL
SeqC ' M15' EOL {grinding head down}
SeqC CoolOn EOL
END
END
END {common point for all operations}
IF Milling?
IF Repeats?
NewProg
G92Sub
ELSE {no repeat OPs}
Milling
END
SeqC CRCOffC EOL
ELSE
IF Drilling? {I dont think we are going to be using drilling on this machine}
'; Drilling operations are not support in this Processor' EOL
END
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqC CoolOff EOL
SeqC ' M16' EOL {grinding head up}
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome?
SeqC Rapid FirstHome EOL
END
IF ProgStop?
SeqC ' M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqC EOP EOL
CloseSub
Post2 {organize Subs into one program}
EOR EOL
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:
GE 1050 Moore JG M295 80AB 8400 [AQL] M609 89 2Fanuc 18MB Moore JG MW18 89 1AB 8400 Rev F [Gin] M417 82 1AB 8400 Cincinnati M292 87AB 8400 Monarch L610 85AB 8400 Rev E M581 87AB 8400 Rev F [CAS] M876 89 2AB 8400 Rev F [EI] MW43 89 1AB 8400 (OSF)[Y] M309 79AB CNC 8400 LP L623 85AB 7300 J & L [ ] L163 80 1Stromlaufplan Passat 80 Zusatzheizung ab 01 2001AB CNC 8400 LP L623 85mżuraw 80Bandit IV AB [DM] MV32 89 1więcej podobnych podstron