Dynapath Delta 20 MT M779.85.1.txt

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

{9/22/95, Updated Dynapath Delta 20 MT M779.81.3 to .85 format per Dynapath 20M Conv[RB] M617.85, JR}

{11/2/95
 Modified: Dynapath Delta 20 MT M779.85
 For: Gibbs & Associates
 Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.08/Catalyst v2.28.04/Compost 4.21.33/1.0a
 Various necessary minor changes, too numerous to list due to time constraints.
DWB}

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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(SPX#,4)
FORMAT(SPY#,4)
FORMAT(Retract#,4)
FORMAT(ToolDiameter#,4)    {.72}
FORMAT(Recall#,5)
FORMAT(Tag#,5)
FORMAT(CallMasterNum#,5)
FORMAT(Program#,5)         {.72}
FORMAT(Operation#,5)       {.72}
FORMAT(Tool#,5)            {.72}
FORMAT(Parts#,5)           {.72}
FORMAT(RapidF#,6)
FORMAT(Dwell#,6)           {.72}
FORMAT(NewWFO#,7)          {.72}
FORMAT(ToolOffset#,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

Get$: { For conversational output }
	IF NOT EmptyLine?
		'$'
	END
RETURN

TurnCRCOn:
	IF CutterRadiusCompensation? AND NOT Flag?('2')
		IF NOT LastFeat? AND NOT ZMove?
			SetFlag('2')
			SeqLab '(1)'
			IF AutoCycle?
				MoveSX '/' MoveSY '/'
			ELSE
				MoveSX MoveSY
			END
			CRCOff Get$ EOL
		END
	END
RETURN

TurnCRCOff:
	IF CutterRadiusCompensation? AND Flag?('2')
		SetFlagF('2')
		SeqLab '(1)'
		IF AutoCycle?
			MoveX '/' MoveY '/'
		ELSE
			MoveXY
		END
		CRCOff Get$ EOL
	END
RETURN

DoSubComment:
	IF UseComments? AND SubComment?
		SeqLab '(T) SUB NUMBER ' Tag# Get$ EOL
	END
RETURN

DoOpComments:
	IF UseComments?
		SetScale('1')
		IF OperationIDComment?
			SeqLab '(T) OPERATION ' Operation# ' ' OperationType$ Get$ EOL
		END
		IF OperationComment?
			SeqLab '(T) ' OperationComment$ Get$ EOL
		END
		IF WorkGroupComment?
			SeqLab '(T) ' WorkGroupComment$ Get$ EOL
		END
		IF ToolTypeComment?
			SeqLab '(T) TOOL# ' Tool# ' ' ToolDiameter# ' ' ToolType$ Get$ EOL
		END
		IF ToolComment?
			SeqLab '(T) ' ToolComment$ Get$ EOL
		END
		RestoreScale
	END
RETURN

PSInit: {reset flags}
	NewWFOF
	RotateF
	OptCyc1F
	MasterOpF
	CallMasterOpF
RETURN

PSStuff: {revised.72}
	FourthCWF {reset flag}
	FourthCCWF {reset flag}
	FifthCWF {reset flag}
	FifthCCWF {reset flag}
RETURN

DoPostScript:
	PSInit
	EachPS
		SeqLab PostScript Get$ EOL {literals}
		PSStuff {commands}
	NextPS
RETURN

DoEndOpPS:
	PSInit
	EachEOPS
		SeqLab EndOpPS Get$ EOL {literals}
		PSStuff {commands}
	NextPS
RETURN

EntryMove:
	SeqLab
	IF FeedEntry?
		'(1)'
	ELSE
		'(0)'
	END
	ZIn
	IF AutoCycle? { Implies Incremental }
		'/'
	END
	IF FeedEntry?
		FeedEnt
	END
	Get$ EOL
RETURN

StartSub:
	OpenSub
	DoSubComment
	'>' Tag# EOL
RETURN

SubWarning:
	IF NOT FeedConnect?
		IF AnyZshift?
			SeqLab '(T) ' Get$ EOL
			SeqLab '(T) *** WARNING ***' Get$ EOL
			SeqLab '(T) Z CLEARANCE WILL' Get$ EOL
			SeqLab '(T) CHANGE WITH EACH' Get$ EOL
			SeqLab '(T) CYCLE OF SUB!' Get$ EOL
			SeqLab '(T) ' Get$ EOL
		END
	END
RETURN

StdSub:
	'?' Tag# EOL
	SeqLab '(7)F?' Tag# 'L?' Tag# Get$ EOL
	SeqLab '(6)F?' Tag# 'T' RepsLess1 Get$ EOL
	StartSub
RETURN

FinishSub1: {part 1}
	IF NOT FeedConnect?
		SeqLab
		IF AutoCycle?
			'(0)' ZCP3
		ELSE
			IF FIFO? {.81}
				'(1)' ZCP3 FeedEntC
			ELSE
				'(0)' ZCP3
			END
		END
		Get$ EOL
	END
RETURN

FinishSubG92: {part 2}
	SeqLab '(0)' ShiftRC Preset Get$ EOL
	'<' Tag# EOL
	TagDown
	CloseSub
	SeqLab '(0)' UnshftRC Preset Get$ EOL
RETURN

OpenMP:
	TagUp TagInc
	IF WorkFixtureOffsets?
		NewWFO
		EachWFO
			SeqLab '(9)' SetWFO Get$ EOL
			SeqLab '(7)F?' Tag# 'L?' Tag# Get$ EOL
			IncWFO
		NextWFO
	ELSE
		'?' Tag# EOL
		SeqLab '(7)F?' Tag# 'L?' Tag# Get$ EOL
		SeqLab '(6)F?' Tag# 'T' PartsLess1 Get$ EOL
	END
	StartSub
RETURN

UnToolChng:
	SeqLab '(9)' ToolChng Get$ EOL
RETURN

CloseMP:
	IF WorkFixtureOffsets?
		IF AllToolsOnePart?
			UnToolChng
		END
		'<' Tag# EOL
		TagDown
		CloseSub
		SeqLab '(9)' WFO1 Get$ EOL
	ELSE
		SeqLab '(0)' ShiftPC Preset Get$ EOL
		IF AllToolsOnePart?
			UnToolChng
		END
		'<' Tag# EOL
		TagDown
		CloseSub
		SeqLab '(0)' UnshftPC Preset Get$ EOL
	END
RETURN

DoAbsOrInc:
	IF Flag?('1') { AbsoluteMoves? = TRUE }
		IF ZMove? AND AbsValue?
			SetInc
		ELSE
			IF NOT ZMove? AND NOT AbsValue?
				SetAbs
			END
		END
	END
RETURN

DoDrillAbsOrInc:
	IF Flag?('1') { AbsoluteMoves? = TRUE }
		IF SPZMove? AND AbsValue?
			SetInc
		ELSE
			IF NOT SPZMove? AND NOT AbsValue?
				SetAbs
			END
		END
	END
RETURN

RestoreAbsOrInc:
	IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE }
		SetAbs
	END
RETURN

GetPlane:
	IF XYPlane?
		IF NOT AutoCycle?
			IF FirstFeat?
				IF XMove? OR YMove?
					'P0' { This is the default Plane select }
				END
			END
		END
	ELSE
		IF XZPlane?
			'P2'
		ELSE {YZPlane}
			'P1'
		END
	END
RETURN

CheckMove:
	IF Drilling?
		IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE }
			IF XMove?
				MoveSX '/'
			END
			IF YMove?
				MoveSY '/'
			END
			IF ZMove?
				MoveSZ '/' {.80.01}
			END
		ELSE
			MoveSXYZC {.80.01}
		END
	ELSE
		IF AutoCycle? { Implies Incremental }
			IF XMove?
				MoveX '/'
			END
			IF YMove?
				MoveY '/'
			END
			IF ZMove?
				MoveZ '/'
			END
		ELSE
			IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE }
				IF XMove?
					MoveX '/'
				END
				IF YMove?
					MoveY '/'
				END
				IF ZMove?
					MoveZ '/'
				END
			ELSE
				MoveXYZC
			END
		END
	END
RETURN

FormatArc:
	DoAbsOrInc GetPlane CheckMove
	IF AutoCycle?
		ArcI '/' ArcJ '/'
	ELSE
		IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE }
			ArcI '/' ArcJ '/'
		ELSE
			ArcIJ
		END
	END
	IF ArcCW?
		CWArc
	ELSE
		CCWArc
	END
RETURN

ckCRC:
	IF CutterRadiusCompensation? AND Flag?('2')
		IF NOT LastFeat? AND NOT ZMove?
			CRCOnC
		END
	END
RETURN

FormatLine:
	DoAbsOrInc GetPlane CheckMove ckCRC
RETURN

ckCRCNum:
	{ Not supported }
RETURN

DrillCycle:
	Dwell Peck
	IF PeckChipBreaker?
		'/Q' Retract#
	END
	FeedEnt Cycle
RETURN

ToolPath:
	EACHFeat
		IF PointFeat?
			IF AutoCycle?
				IF NOT FirstFeat?
					SeqLab '(0)' MoveSXYC Get$ EOL
				END
				SeqLab '(7)F?' Tag# 'L?' Tag# Get$ EOL
				CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
			ELSE
				IF NOT FirstFeat?
					IF RetractToCP1?
						SeqLab '(0)' ZCP1 Rapid Get$ EOL
						SeqLab '(0)' MoveSXYC RLevel MoveSZ DrillCycle Get$ EOL
					ELSE
						SeqLab '(0)' DoDrillAbsOrInc CheckMove Get$ EOL
					END
				END
			END
		ELSE
			IF RapidFeat?
				IF XMove? OR YMove? OR ZMove?
					TurnCRCOn
					IF CutterRadiusCompensation? AND Flag?('2')
						SeqLab '(1)' FormatLine RapidFC Get$ EOL
					ELSE
						SeqLab '(0)' FormatLine Get$ EOL
					END
				END
			ELSE
				IF LineFeat?
					IF XMove? OR YMove? OR ZMove?
						TurnCRCOn
						IF Decelerate?
							IF RoomToDecel?
								DecelMove1
								SeqLab '(1)' FormatLine FeedRateC Get$ EOL
								DecelMove2
							END
							SeqLab '(1)' FormatLine DecelFeed Get$ EOL
						ELSE
							SeqLab '(1)' FormatLine FeedRateC Get$ EOL
						END
					END
				ELSE
					IF ArcFeat?
						EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
							IF LastQuadrant? AND Decelerate?
								IF RoomToDecel?
									DecelMove1
									SeqLab '(2)' FormatArc ArcFeedC Get$ EOL
									DecelMove2
								END
								SeqLab '(2)' FormatArc DecelFeed Get$ EOL
							ELSE
								SeqLab '(2)' FormatArc ArcFeedC Get$ EOL
							END
						NEXTQuadrant
					END
				END
			END
			IF LastFeat? { Exit Length Feature }
				TurnCRCOff {.70}
			END
		END
	NEXTFeat
	RestoreAbsOrInc
RETURN

WFOStuff:
	IF NewWFO?
		IF MultipleParts?
			Get$ EOL
			SeqLab '(T) ' Get$ EOL
			SeqLab '(T) *** WARNING ***' Get$ EOL
			SeqLab '(T) DO NOT USE' Get$ EOL
			SeqLab '(T) NEWWFO() WITH' Get$ EOL
			SeqLab '(T) NCPOST MULTIPLE' Get$ EOL
			SeqLab '(T) PARTS!' Get$ EOL
			SeqLab '(T) ' Get$ EOL
		ELSE
			'E' NewWFO#
		END
	ELSE
		IF NOT SameTool?
			IF NeedWFO1?
				'E' NewWFO#
			END
		END
	END
RETURN

AutoCycCutSub1: {part 1}
	SaveSubStatus {save tool position}
	SetPass1 {element cut moves}
	StartSub
	SetSRXYtoSP
	SetInc
	SeqLab '(1)' 'P0X0./Y0./' Get$ EOL { AutoCycle dummy move to select correct Plane }
RETURN

AutoCycCutSub2: {part 2}
	ToolPath
	SetAbs
	IF Repeats? AND FeedConnect? AND ZshiftOnly?
		{.69 removed RapidC} {.71.2 removed CRCOffC, gets turned off in ToolPath}
	ELSE
		IF FIFO? {.81}
			SeqLab '(1)' ZCP2 FeedEntC Get$ EOL
		ELSE
			SeqLab '(0)' ZCP2 Get$ EOL
		END
	END
	'<' Tag# EOL
	CloseSub
	SetSRSubXY {restore SR to 1st position value}
	SetSRSubMove
RETURN

AutoCycPat:
	SetPass2 {position pattern}
	ToolPath {call after TagInc for correct sub calls}
	SetPass1 {reset}
RETURN

Milling:
	IF AutoCycle?
		TagUp TagInc
		AutoCycCutSub1
		EntryMove
		AutoCycCutSub2
		AutoCycPat
		TagDown
	ELSE
		EntryMove
		ToolPath
	END
RETURN

G92Sub:
	SubWarning
	StdSub
	SetAbs
	IF FeedConnect?
		'(1)'
	ELSE
		'(0)'
	END
	SeqLab StrtPos Get$ EOL
	Milling
	FinishSub1
	FinishSubG92
RETURN

ZonlyRepAutoCycle:
	AutoCycPat {write pattern moves and main ca...
Zgłoś jeśli naruszono regulamin