Meldas 5000C OKK [VT] D952.14.1.txt

(20 KB) Pobierz
{10/2/89
This prog incorporates the new vectoring commands per
Post Note 10 and also has the format changes originally
made by Stan Lytle.
J. Cusimano}

{11/3/89
 Copied & modified: Meldas 5000C OKK M241.61
 For: Seibens
 Added Zeros to G92 line.
 Deleted G99 & M05 from MachSpec.
 Jim Radcliffe}

{7/24/90, Added InitProg globally to posts with this remark, DWB}
{12/12/90, Updated: Meldas 5000C OKK M241.63  to .76.1 format, JR}

{4/03/91
 Modified: Meldas 5000C OKK M241.76.1
 For: Gibbs & Associates
 Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}

{4/28/95
 Modified: Meldas 5000C OKK M241.79
 For: Vitols Tool & Machine
 Moved CoolOn to line by itself.
 Made all coords decimal point output.
 Sub call changed.  sample: G22L2,  not M98H2.
 Start of sub is L, sub number has no decimal pt.
 End of sub is G23,  not M99.
 No % sign at Sub Call line.
 Added IF Tap? 'F' FeedTapIPR#('1')  lines in IF Drilling? area.  
Dan Pilone}

{9/12/95
 Modified: Meldas 5000C OKK M241.79
 For: Vitols Tool & Machine
 Changed SetMaxRPM to 8000.
Dan Pilone}

{10/25/95
	Initial: Meldas 5000C OKK M241.79.2 (from Dan Pilone)
	Created: Meldas 5000C OKK [VT] Mxxx.86
	ForUser: Vitols
	Control: ????
	Machine: ????
	Develop: ComPost 4.21.34, Catalyst68K v3.02.02C
	Comment: Modified per marked up readout.
		Updated to .86 format per Meldas 5000C OKK M241.86
		Deleted G28 line from beginning of program.
		Changed 'G44Z-1.' to 'G60Z0'
		Deleted 'G28Z0'
		Fixed up tapping cycles.
		Deleted Home from end of program.
		Changed 'G28X0Y0Z0' to 'G60X0Y0' at end of program.
Jim Radcliffe}

{10/25/95
	Initial: Meldas 5000C OKK [VT] M952.86
	Created: Meldas 5000C OKK [VT] M952.86.1
	ForUser: Vitols
	Develop: ComPost 4.21.34, Catalyst68K v3.02.02C
	Comment: Added ToolChng to 1st operation.  Removed Drill Subs.
Jim Radcliffe}

{3/22/96, Tested zonlyRepAutoCycle, Changed version # to .89, MPK}

{1/29/97, created .14 advanced mill post per Fanuc 6M (NW) D001.14, MPK}

{7Jul97
	Original:  Meldas 5000C OKK [VT] D952.14
	Created:  Meldas 5000C OKK [VT] D952.14.1
	For:  Vitols
	Changes made per:  Joe Sczesny
	Added FORMAT#9 for CSOffsetA# and B
	Set FourthDegree# and FifthDegree to FORMAT#9
	Deleted Formatting in psStuff
	Added doCoolOn sub for Mist and Pulse for use with postscript Commands and MDD?
	Changed SeqC CoolOn to doCoolOn throughout prog
	Added doHighSpeed sub for HighSpeed machining of Lines and Arcsfor use with Postscript OptCyc1
	Changed nextVector sub to output offsets only on the first line with CRCOn
	Added doHighSpeed to Lines and Arc in Toolpath
	Added SetFlag('3') at progStart, nextVector and Toolpath
	Added Utility data for OpCyC1, FCool, PCool and MColl commands
	Deleted PreSet 'Z0' at firstOP, newToolOp3 and sameToolOp3
Charles Winston}

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

#1 = '0.00'
#2 = '###.####;0' { used for CRC vectors}
#3 = '*###.####;0' { used for CRC vectors}
#4 = '###^##0'
#5 = '*###^##0'
#6 = '####.####;0.'
#7 = '#######0'
#8 = '####^###;'
#9 = '*###.###;0' { used for CSOffset}

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(EPX#,2)
FORMAT(EPY#,2)
FORMAT(ToolDiameter#,6)
FORMAT(FeedTapIPR#,6)
FORMAT(Program#,7)
FORMAT(Operation#,7)
FORMAT(Tool#,7)
FORMAT(NewWFO#,7)
FORMAT(Parts#,7)
FORMAT(Dwell#,8)
FORMAT(CSOffsetA#,9)
FORMAT(CSOffsetB#,9)
FORMAT(FourthDegree#,9)
FORMAT(FifthDegree#,9)

{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

mpESWFO: { MultipleParts EquallySpaced }
	{This post does not support WFOs}
RETURN

wfo:
	{This post does not support WFOs}
RETURN

wfoNum:
	{This post does not support WFOs}
RETURN

wfoStuff:
	{This post does not support WFOs}
RETURN

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

doCSComment:
	IF AAxisAvail? OR BAxisAvail?
		'( CS#' CS# ' - ' CSComment$ ' )' EOL
	END
RETURN

offsetComments:
	IF ChangeCS?
		doCSComment
	ELSE
		IF NOT SameTool?
			doCSComment
		END
	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
		restoreScale
	END
	offsetComments
RETURN

csAngleA:
	IF AAxisAvail?
		'A' CSOffsetA#
	END
RETURN

csAngleAC:
	IF AChange?
		csAngleA
	END
RETURN

csAngleB:
	IF BAxisAvail?
		'B' CSOffsetB#
	END
RETURN

csAngleBC:
	IF BChange?
		csAngleB
	END
RETURN

psInit:
	NewWFOF
	RotateF
	OptCyc1F
	MasterOpF
	CallMasterOpF
RETURN

psStuff:
	IF FourthCW?
		SeqC 'A' FourthDegree# EOL
		FourthCWF
	END
	IF FourthCCW?
		SeqC 'A' FourthDegree# EOL
		FourthCCWF
	END
	IF FifthCW?
		SeqC 'B' FifthDegree# EOL
		FifthCWF
	END
	IF FifthCCW?
		SeqC 'B' FifthDegree# EOL
		FifthCCWF
	END
RETURN

doPostScript:
	psInit
	EachPS
		SeqC PostScript EOL
		psStuff
	NextPS
RETURN

doEndOpPS:
	psInit
	EachEOPS
		SeqC EndOpPS EOL
		psStuff
	NextPS
RETURN

entryMove:
	IF FeedEntry?
		SeqC Feed ZIn FeedEnt EOL
	ELSE
		SeqC RapidC ZIn EOL
	END
RETURN

startSub:
	OpenSub
	'L'
	{SubID} Program# EOL
	doSubComment
RETURN

subWarning:
	IF NOT FeedConnect?
		IF AnyZshift?
			' ' EOL
			'( WARNING   Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL
			' ' EOL
		END
	END
RETURN

stdSub:
	SeqC SubCall CallLab RepLab RepCycs EOL
	startSub
RETURN

finishSub1: {part 1}
	SeqC CRCOffC
	IF NOT FeedConnect?
		IF AutoCycle?
			ZCP3C
		ELSE
			IF FIFO?
				FeedC ZCP3C FeedEntC
			ELSE
				RapidC ZCP3C
			END
		END
	END
	EOL
RETURN

finishSubG92: {part 2}
	SeqC Preset ShiftRC EOL
	SeqC EndSub EOL
	{'%'} NullFoot EOL
	CloseSub
	SeqC Preset UnshftRC EOL
RETURN

toggleIncDecWFO:
RETURN

openMP:
	IF WorkFixtureOffsets?
		'***THIS POST PROCESSOR DOES NOT SUPPORT WORK FIXTURE OFFSETS***' EOL
		'***********SWITCH TO EQUALLY SPACED AND REPOST FILE************' EOL
	ELSE
		NewProg
		SeqC SubCall CallLab RepLab Parts EOL
		startSub
	END
RETURN

closeMP:
	IF WorkFixtureOffsets?
	ELSE
		SeqC Preset ShiftPC EOL
		SeqC EndSub EOL
		{'%'} NullFoot EOL
		CloseSub
		SeqC Preset UnshftPC EOL
	END
RETURN

doAbsOrInc:
	IF Flag?('1') AND AbsoluteMoves?
		IF ZMove? AND AbsValue?
			IncValue
		ELSE
			IF NOT ZMove? AND NOT AbsValue?
				AbsValue
			END
		END
	END
RETURN

doDrillAbsOrInc:
	IF Flag?('1') AND AbsoluteMoves?
		IF SPZMove? AND AbsValue?
			IncValue
		ELSE
			IF NOT SPZMove? AND NOT AbsValue?
				AbsValue
			END
		END
	END
RETURN

doCoolOn:
	IF Mist?
		IF NOT CoolOff? AND NOT Mist? { Is the coolant already on and set to Flood? or Pulse? }
			SeqC 'M9' EOL { CoolOff }
		END
		SeqC 'M7' EOL
	ELSE
		IF Pulse?	{ used for AIR BLOW }
			IF NOT CoolOff? AND NOT Pulse? { CoolOn and Flood or Mist }
				SeqC 'M9' EOL
			END
			SeqC 'M50' EOL
		ELSE
			IF NOT CoolOff? AND NOT Flood? { CoolOn and Pulse or Mist }
				SeqC 'M9' EOL
			END
			SeqC CoolOn EOL { =Flood, M8}
		END
	END
RETURN

restoreAbsOrInc:
	IF Flag?('1') AND AbsoluteMoves? AND NOT AbsValue?
		SeqC AbsValue EOL
	END
RETURN

formatArc:
	doAbsOrInc
	IF ArcCW?
		CWArcC
	ELSE
		CCWArcC
	END
	MoveXYZC
	IF ArcIJFormat?
		ArcIJC
	ELSE
		ArcRC
	END
RETURN

doHighSpeed: { for High Speed Machining  }
	IF OptCyc1?
		'G09'
	END
RETURN

nextVector: {only called for this feat a line}
	IF NOT LastFeat? AND CutterRadiusCompensation? AND NOT Flag?('3')
		SetFlag('3') { only output once for each Toolpath }
		IF AbsValue?
			SetFlag('2')
			SetInc
		END
			IF NEXT LineFeat?
				SetStatusOff
				'I' NEXT EPX# 'J' NEXT EPY#
				SetStatusOn
			ELSE
				IF NEXT ArcFeat?
					IF NEXT ArcCW?
						FORMAT(ArcJ#,3)
						FORMAT(ArcI#,2)
						'I' NEXT ArcJ# 'J' NEXT ArcI#
					ELSE
						FORMAT(ArcJ#,2)
						FORMAT(ArcI#,3)
						'I' NEXT ArcJ# 'J' NEXT ArcI#
					END
				END
			END
			IF Flag?('2')
				SetFlagF('2')
				SetAbs
			END
		END
	END
RETURN

ckCRC:
	IF LastFeat?
		CRCOffC
	ELSE
		IF NOT ZMove?
			CRCOnC
		END
	END
RETURN

ckCRCNum:
	IF NOT LastFeat? AND Equal? SPZ# EPZ#
		CRCOffsetC
	END
RETURN

toolPath:
	ResetCRCNum
	EACHFeat
		IF PointFeat?
			IF AutoCycle?
				SeqC MoveSXYC EOL
				SeqC SubCall CallLab EOL
				CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
			ELSE
				SeqC doDrillAbsOrInc MoveSXYZC EOL {.80.01}
			END
		ELSE
			IF RapidFeat?
				IF XMove? OR YMove? OR ZMove?
					SeqC doAbsOrInc ckCRC RapidC MoveXYZC ckCRCNum EOL
				END
			ELSE
				IF LineFeat?
					IF XMove? OR YMove? OR ZMove?
						SeqC doHighSpeed doAbsOrInc ckCRC FeedC MoveXYZC nextVector FeedRateC ckCRCNum EOL
					END
				ELSE
					IF ArcFeat?
						EACHQuadrant
							IF LastQuadrant? AND Decelerate?
								IF RoomToDecel?
									DecelMove1
									SeqC formatArc ArcFeedC EOL
									DecelMove2
								END
								SeqC doHighSpeed formatArc DecelFeed EOL
							ELSE
								SeqC doHighSpeed formatArc ArcFeedC EOL
							END
						NEXTQuadrant
					END
				END
			END
		END
	NEXTFeat
	restoreAbsOrInc
	SetFlagF('3')
RETURN

autoCycCutSub1: {part 1}
	SaveSubStatus {save tool position}
	SetPass1 {element cut moves}
	startSub
	SetSRXYtoSP
	Seq In...
Zgłoś jeśli naruszono regulamin