Yasnac MX1 Matsuura B021.15.txt

(22 KB) Pobierz
{Change Comments ***********************************************************}

{7/24/90, Updated: Yasnac MX1 Matsuura M021.55  to .72.1 format, JR}
{7/30/90, Replaced SetSRXYZero with SetSRXYtoSP, JR}

{4/03/91
 Modified: Yasnac MX1 Matsuura M021.73
 For: Gibbs & Associates
 Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}

{8/31/95, Updated Yasnac MX1 Matsuura M021.79 to .85 version per Fanuc 6M M001.85.01.03, JR}
{1/17/96, Updated .85 to .86 version, MPK}
{3/22/96, Tested ZOnlyRepAutoCycle, Changed version # to .89, MPK}
{6/17/96, Converted to Metric Format Chanved to Yasnac MX1 Matsuura M021.89 M JM}
{6/19/96, Upped Max Sep Sub calls to 200 as per customer NM Created Yasnac MX1 Matsuura M021.89.1m}

{8/28/96
 Updated: Yasnac MX1 Matsuura M021.89.1m
 Created: Yasnac MX1 Matsuura M021.89.2m
 For: National Machinery
 Machine: 
 Control: 
 Versions: Catalyst v3.05.03C/Compost 4.21.37/v1.0b1
 Changes made per Ken Hoffman of National Machinery.
 Updated for Catalyst v3.05C per Fanuc 6M M001.89 Format.
 Increased SetMaxFeed from 500 to 2540 at setup and initializations.
DWB}

{9/11/96
 Modified: Yasnac MX1 Matsuura M021.89.2m
 Created: Yasnac MX1 Matsuura M021.89.2
 For: National Machinery
 Versions: Catalyst v3.05.03C/Compost 4.21.37/v1.0b1
 Changes made per Ken Hoffman of National Machinery.
 Created English version.
  Changed Compost General Default Formats.
   Changed Address F from ####.##;0. to ###.###;0.
   Changed Addresses I, J, K, Q, R, X, Y and Z from #####.###;0. to ####.####;0.
  Changed Prog Numeric Format Definitions.
   Changed Format#4 from #####.###;0. to ####.####;0.
  Changed RestoreScale sub.
   Changed IF NOT Metric? to IF Metric?
   Changed SetScale argument from 25.4 to .03937007874
   Switched English and Metric words in commented stuff.
  Changed literal INCHES to MILLIMETERS at FirstOperation ProgComments.
 Decreased SetMaxFeed from 2540 to 500 at setup and initializations.
DWB}

{10/29/96
 Modified: Yasnac MX1 Matsuura M021.89.2
 Created: Yasnac MX1 Matsuura M021.89.3
 For: National Machinery
 Versions: Catalyst v3.09C/Compost 4.21.37/v1.0b1
 Changes made per Ken Hoffman of National Machinery.
 Added SetMaxFeed(12700) condition for Metric Files at setup and initializations.
DWB}

{3Sep98
	Original: Yasnac MX1 Matsuura M021.89.3
	Created: Yasnac MX1 Matsuura B021.15
	For: Unique Mfg
	Changes made per: David Bird
	Created B_Style Advanced Mill Post per Fanuc 6M (FW) B001.15
Charles Winston}

{Prog Numeric Format Definitions ****}

#1 = '#.00'
#2 = '#####.###;0.'
#3 = '*#####.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '####^##0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(CSOffsetA#,3)
FORMAT(CSOffsetB#,3)
FORMAT(ToolDiameter#,4)
FORMAT(CSOffsetX#,4)
FORMAT(CSOffsetY#,4)
FORMAT(CSOffsetZ#,4)
FORMAT(TrackZNO#,4)
FORMAT(ADD#,5)
FORMAT(CS#,5)
FORMAT(Program#,5)
FORMAT(CallMasterNum#,5)
FORMAT(CSSubID#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(NewWFO#,5)
FORMAT(Parts#,5)
FORMAT(Dwell#,6)

{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

CSPartNum#:
	ADD# CS# MUL# NumOfCS# SUB# PartNum# Num#('1')
RETURN

CSWFO:
	'G' ADD# CSPartNum# Num#('53')
RETURN

WFO:
	'G' ADD# PartNum# Num#('53')
RETURN

WFOStuff:
	IF Flag?('2')
		IF NOT SameTool?
			IF WFOCS?
				CSWFO
			ELSE
				WFO
			END
		ELSE
			IF WFOCS?
				IF ChangeCS?
					IF MultipleParts?
						{MP ChangeCS is handled in SubCSMP and CloseMP}
					ELSE
						CSWFO
					END
				END
			END
		END
	END
	SetFlagF('2')
RETURN

CSG52:
	IF FirstOperation? OR NewTool? OR ChangeCS?
		SeqC 'G52X' CSOffsetX# 'Y' CSOffsetY# 'Z' CSOffsetZ# EOL
	END
	ClearCSOffset
RETURN

G52Stuff:
	IF AAxisAvail? OR BAxisAvail?
		IF NOT WFOCS?
			IF MultipleParts?
				IF WorkFixtureOffsets?
					CSG52
				END
			ELSE
				CSG52
			END
		END
	END
RETURN

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

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

DoCSWFOComment:
	IF AAxisAvail? OR BAxisAvail?
		IF FirstOperation? OR NewTool? OR ChangeCS?
			'( ' CSWFO ' = X' CSOffsetX# ' Y' CSOffsetY# ' Z' CSOffsetZ#
			IF AAxisAvail?
				' A' CSOffsetA#
			END
			IF BAxisAvail?
				' B' CSOffsetB#
			END
			' )' EOL
		END
		ClearCSOffset
	END
RETURN

CSComments:
	IF WFOCS?
		IF MultipleParts?
			IF OneToolAllParts? AND ExitClearancePlane?
				ClearCSOffset { Necessary for correct StrtPos in Main }
			END
		ELSE
			DoCSComment
			DoCSWFOComment
		END
	ELSE
		DoCSComment
	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
	CSComments
RETURN

CSAngleA:
	IF AAxisAvail?
		IF WFOCS?
			'A0.'
		ELSE
			'A' CSOffsetA#
		END
	END
RETURN

CSAngleAC:
	IF AChange?
		CSAngleA
	END
RETURN

CSAngleB:
	IF BAxisAvail?
		IF WFOCS?
			'B0.'
		ELSE
			'B' CSOffsetB#
		END
	END
RETURN

CSAngleBC:
	IF BChange?
		CSAngleB
	END
RETURN

PSInit:
	NewWFOF
	FourthCWF
	FourthCCWF
	FifthCWF
	FifthCCWF
	RotateF
	OptCyc1F
	MasterOpF
	CallMasterOpF
RETURN

PSStuff:
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
	SubID 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
	CloseSub
	SeqC Preset UnshftRC EOL
RETURN

ToggleIncDecWFO:
	IF Flag?('3')
		SetFlagF('3')
	ELSE
		SetFlag('3')
	END
RETURN

DoCSG52Ops:
	IF Flag?('5')
		SetFlagF('5') { Suppress Redundant WFO for MP-OTAP-ECP }
	ELSE
		SeqC SetWFO EOL
	END
	SeqC SubCall CallLab RepLab OnePart EOL
RETURN

OpenMP:
	NewProg
	IF WorkFixtureOffsets?
		IF WFOCS?
			StartSub
			SaveCSProg
			SaveCSOpStart
			ClearCSOffset
		ELSE
			IF OneToolAllParts? AND ExitClearancePlane?
				SetFlag('5') { Suppress Redundant WFO for MP-OTAP-ECP }
			END
			IF Flag?('3')
				NewWFO
				EachWFO {simple eachPart}
					DoCSG52Ops
					IncWFO
				NextWFO {simple NextPart}
				DecWFO
			ELSE
				LastWFO
				EachWFO {simple eachPart}
					DoCSG52Ops
					DecWFO
				NextPrevWFO {simple NextPart}
				IncWFO
			END
			IF Flag?('4')
				ToggleIncDecWFO
			END
			StartSub
		END
	ELSE
		SeqC SubCall CallLab RepLab Parts EOL
		IF OneToolAllParts? AND ExitClearancePlane?
			SetFlag('2') { WFOStuff }
		END
		StartSub
	END
RETURN

DoCSWFOOps:
	EachCSOp
		DoCSComment
		DoCSWFOComment
		IF Flag?('5')
			SetFlagF('5') { Suppress Redundant WFO for MP-OTAP-ECP }
		ELSE
			SeqC CSWFO EOL
		END
		SeqC SubCall CallLabB CSSubID# RepLab OnePart EOL
	NextCSOp
RETURN

CloseMP:
	IF WorkFixtureOffsets?
		SeqC EndSub EOL
		CloseSub
		IF WFOCS?
			IF OneToolAllParts? AND ExitClearancePlane?
				SetFlag('5') { Suppress Redundant WFO for MP-OTAP-ECP }
			END
			IF Flag?('3')
				NewWFO
				EachWFO {simple eachPart}
					DoCSWFOOps
					IncWFO
				NextWFO {simple NextPart}
				DecWFO
			ELSE
				LastWFO
				EachWFO {simple eachPart}
					DoCSWFOOps
					DecWFO
				NextPrevWFO {simple NextPart}
				IncWFO
			END
			IF Flag?('4')
				ToggleIncDecWFO
			END
		END
	ELSE
		SeqC Preset ShiftPC EOL
		SeqC EndSub EOL
		CloseSub
		SeqC Preset UnshftPC EOL
	END
RETURN

SubCSMP:
	IF WFOCS?
		IF ChangeCS?
			SeqC EndSub EOL
			CloseSub
			NewProg
			StartSub
			SaveCSProg
		END
		ClearCSOffset
	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

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

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
			END
		ELSE
			IF RapidFeat?
				IF XMove? OR YMove? OR ZMove?
					SeqC DoAbsOrInc ckCRC RapidC MoveXYZC...
Zgłoś jeśli naruszono regulamin