{Change Comments ***********************************************************}
{7/8/94
Copied & modified: Fanuc 6M M001.81.2
For: I.C.E., Inc
He wants to use this processor to get points on a surface by running a zero dia ball end mill
on an imported surface received from his customer with boundrys control surfaces etc. He does
not want to use this processor for any other purposes.
Outputting only XYZ coordinate data to be used to import into ncCAD.
All feed moves are output. Only rapid moves output are those that are followed by a feed move.
If "Out and Over" is used on a surface, be sure that ALL 3 clearnce move selections are Rapid!.
Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '####^##0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(NewWFO#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
{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
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
RETURN
PSInit: {reset flags}
RETURN
PSStuff: {revised.72}
RETURN
DoPostScript:
PSInit
EachPS
PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
ToolPath:
EACHFeat
IF PointFeat?
MoveSX MoveSY MoveSZ EOL
ELSE
IF RapidFeat?
IF NEXT LineFeat? { suppress all rapid moves }
ASCII('13') EOL { blank line between step over for "Out & Over" selection }
MoveXYZ EOL { output the next feed moves start point }
END
ELSE
IF LineFeat?
MoveXYZ EOL
ELSE
IF ArcFeat?
EACHArcSegment
MoveXYZ EOL
NEXTArcSegment
END
END
END
END
NEXTFeat
RETURN
CheckOperation:
IF MultipleParts?
'( Multiple Parts are not supported in this Processor )' EOL
END
IF Repeats?
'( Repeated operations are not supported in this Processor )' EOL
END
IF Drilling?
'( Drilling is not supported in this Processor )' EOL
END
IF AutoCycle?
'( Auto Cycles are not supported in this Processor )' EOL
END
SetPass1
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetArcSegmentAccuracy('.001')
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
END
EachOp {Start of post processing *********************}
IF FirstOperation?
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'( PROGRAM: ' 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
RestoreScale
DoOpComments
DoPostScript
CheckOperation
StrtPos
ELSE
IF NewTool?
{Finish off last Operation}
DoEndOpPS
{Start new Operation}
DoOpComments
DoPostScript
CheckOperation
StrtPos
ELSE
IF SameTool?
{Finish off last Operation}
DoEndOpPS
{Start new Operation}
DoOpComments
DoPostScript
CheckOperation
StrtPos
END
END
END {common point for all operations}
IF Milling?
IF Repeats? OR AutoCycle?
EOL
ELSE
ZIn EOL
ToolPath
END
ELSE
EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{Finish off last Operation}
DoEndOpPS
CloseSub
Post2 {organize Subs into one program}
IF UseComments?
SetScale('1') {restore scale for comments}
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
END
Close
Wyszukiwarka
Podobne podstrony:
Fanuc 10M (AGA) M147 81 2Tosnuc 600M VMC 45 M442 81 3DM 81 Diper KenwoodaBP IIA (HAC) M200 81Depeche Mode Only When I Lose Myself30 (81)The Complete Pentium Instruction Set Table (32 Bit Addressing Mode Only)Artran Contour MV83 81xyz blhYas MX3 Mat [AbsZAC] M591 81 2T81 2node S0281więcej podobnych podstron