Integration Utility Kit Return to previous

SurfCAM Best Practices





ICAM Recommended Best Practices for SurfCAM

Table of Content

  1. Review of SurfCAM Settings
    1. NC Operation Manager
    2. Options Panel
    3. Tool Information
  2. Customization
    1. Accessing a PST File
    2. Insert Post Processor Commands
  3. Standard Samples

1. Review of SurfCAM Settings

 A. NC Operation Manager


  1. NC Project

  2. Setup section

  3. Operation

  4. Blackplot Toolpath

  5. Regenerate Toolpath with original geometry

 B. Options Panel

2 Axis NC Options
3 Axis NC Options
4 Axis NC Options
5 Axis NC Options
Turning NC Options

Note: Pressing OK will save those SurfCAM settings as default.

 C. Tool Information

This dialog can be used to output fixture offsets and coolant syntax. The following setting will output a G54, G55, G56, etc. Edit an offset in the "Work Offset" Editbox. Number 1 sets 54, 2 sets 55, etc.
To output a coolant syntax, select, in the "Tool information" tab, in the "Coolant" Combo box, the coolant MINOR word. (usually: OFF, FLOOD, MIST, FLOOD , etc.)

Note: Pressing OK will save those SurfCAM settings as default


2. Customization

 A. Accessing the PST File

SURCAM.PST

You must use custom PST file if one was supplied to you along with your post processor. Default PST file location is:
C:\Program Files\Surfcam\Velocity

 B. Insert Post Processor Commands

ARCDAT/$x,$y,$z,$i,$j,$k,$r,!Defines the circle for an arc motion command.
ARCMOV/@CCLW-CLW,$xe,$ye,$zw,$a,!Arc motion command which follows all ARCDAT commands.
ARCSLP/@ON-OFF-AUTO,$[d],!(M) Toggle helical arc blocks OFF AUTO or ON with 3rd Axis linear lead d.
AUXFUN/#m,@[NEXT],!Generates an M-Code with the value m -NEXT generates with the next output block.
BREAK,!End of section in the part program.
CHECK/@[XAXIS,$x1,$x2],@[YAXIS,$y1,$y2],!(L) Modify the axes limit values for limit checking.
CHECK/@[XAXIS,$x1,$x2],@[YAXIS,$y1,$y2],@[ZAXIS,$z1,$z2],@[AAXIS,$a1,$a2],@[BAXIS,$b1,$b2],@[CAXIS,$c1,$c2],!(M) Modify the axes limit values for limit checking.
CLEARP/@XYPLAN,@d-OFF,!(M) Establish clearance plane parallel to XY at d -OFF cancels clearance plane.
CLRSRF/@plane-NOW,!(M) Defines clearance surface plane -NOW commands rapid onto this plane.
COOLNT/@MIST-FLOOD-OFF-ON,@[NEXT],!(L) Generates Coolant M-Code. ON reinstates last. NEXT generates with the next output block.
COOLNT/@AUTO,@MIST-FLOOD-OFF-ON,@[NEXT],!(M) Generates Coolant M-Code. ON reinstates last. NEXT generates with the next output block.
CUTCOM/@OFF-LEFT-RIGHT,$t,@[XYPLAN-ZXPLAN-YZPLAN],!(M) Generates cutter radius compensation block.
CUTCOM/@ZAXIS,$h,!(M) Generates cutter radius compensation block.
CUTCOM/@OFF-LEFT-RIGHT,!(M) Generates PQ Vector cutter radius compensation block.
CUTCOM/@IN-OUT,!(M) Generates PQ Vector cutter radius compensation block for circle.
CUTCOM/@PERPTO-PLUS-MINUS,!(M) Generates PQ Vector cutter radius compensation block.
CYCLE/$type,$z,$f,$unit,$c,$optn,!Generates Hardware or Software cycle G-Codes.
CYCLE/$type,$z,$f,$unit,$c,$[sc],$[optn],!Generates Hardware or Software cycle G-Codes with secondary clearance.
CYCLE/@ON-OFF,!ON reinstates last cycle type. OFF cancels current cycle.
CYCLE/@AVOID,!(M) AVOID cancels current cycle and retracts.
CYCLE/@BORE,$z,$f,@IPM-MMPR-MMPM,$c,@[LOCK,$i],!(L)(SW) Generates a lathe boring cycle.
CYCLE/@BORE-85,$z,$f,@IPM-IPR,$c,@[LOCK,$i],@[CAM,$n],@[PULBAC,$g],!(M)(HW) Generates a mill boring cycle.
CYCLE/@BORE,$z,$f,@IPM-IPR,$c,@[LOCK,$i],@[ORIENT,$y],!(M)(SW) Generates a mill boring cycle.
CYCLE/@CSINK,$d,$a,$f,@IPM-IPR-MMPR-MMPM,$c,@[LOCK,$i],!(L)(SW) Generates a lathe sink cycle.
CYCLE/@CSINK,$d,$a,$f,@IPM-IPR,$c,@[LOCK,$i],!(M)(SW) Generates a mill sink cycle.
CYCLE/@DEEP,$z1,$z2,$z3,$z4,$z5,$z6,$z7,$z8,$z9,$z10,$z11,$z12,$f,@IPM-IPR-MMPR-MMPM,$c,!(L)(SW) Generates a lathe deep cycle.
CYCLE/@DEEP,$z1,$z2,$z3,$z4,$z5,$z6,$z7,$z8,$z9,$z10,$z11,$z12,$f,@IPM-IPR,$c,!(M)(SW) Generates a mill deep cycle.
CYCLE/@DEEP-83,$z,$f,@IPM-IPR,$c,@INCR,$z1,@[PULBAC,$g],!(M)(HW) Generates a mill deep cycle.
CYCLE/@DEEPCL,$z,$f,@IPM-IPR,$c,@[START,$s],@[DECR,$d],@[LAST,$l],@[DIAMTR,$dia],!(M)(HW) Generates a mill deepcl cycle.
CYCLE/@DRILL,$z,$f,@IPM-IPR-MMPR-MMPM,$c,!(L)(SW) Generate a lathe drill cycle.
CYCLE/@DRILL-81,$z,$f,@IPM-IPR,$c,@[LOCK,$i],@[CAM,$n],@[PULBAC,$g],!(M)(HW) Generate a mill drill cycle.
CYCLE/@DRILL,$z,$f,@IPM-IPR,$c,!(M)(SW) Generate a mill drill cycle.
CYCLE/@FACE,$z,$f,@IPM-IPR-MMPR-MMPM,$c,@[LOCK,$i],!(L)(SW) Generate a lathe face cycle.
CYCLE/@FACE-82,$z,$f,@IPM-IPR,$c,@[LOCK,$i],@[CAM,$n],@[PULBAC,$g],!(M)(HW) Generate a mill face cycle.
CYCLE/@MILL-86,$z,$f,@IPM-IPR,$c,@[CAM,$n],!(M)(HW) Generate a mill cycle.
CYCLE/@MILL,$z,$f,@IPM-IPR,$c,!(M)(SW) Generate a mill cycle.
CYCLE/@REAM,$z,$f,@IPM-IPR-MMPR-MMPM,$c,!(L)(SW) Generate a lathe ream cycle.
CYCLE/@REAM-88,$z,$f,@IPM-IPR,$c,@[LOCK,$i],@[CAM,$n],@[PULBAC,$g],!(M)(HW) Generate a mill ream cycle.
CYCLE/@REAM,$z,$f,@IPM-IPR,$c,!(M)(SW) Generate a mill ream cycle.
CYCLE/@TAP,$z,$f,@IPM-IPR-MMPR-MMPM,$c,@[LOCK,$i],!(L)(SW) Generate a lathe tap cycle.
CYCLE/@TAP-84,$z,$f,@IPM-IPR,$c,@[LOCK,$i],@[CAM,$n],@[PULBAC,$g],!(M)(HW) Generate a mill tap cycle.
CYCLE/@TAP,$z,$f,@IPM-IPR,$c,@[LOCK,$i],!(M)(SW) Generate a mill tap cycle.
CYCLE/@THRU,$z1,$z2,$z3,$z4,$z5,$z6,$z7,$z8,$z9,$z10,$z11,$f,@IPM-IPR-MMPR-MMPM,$c,!(L)(SW) Generates a lathe thru cycle. (# of z parameters must be odd.)
CYCLE/@THRU-87,$z1,$z2,$z3,$z4,$z5,$z6,$z7,$z8,$z9,$z10,$z11,$f,@IPM-IPR,$c,@[PULBAC,$g],!(M)(HW) Generates a mill thru cycle. (# of z parameters must be odd.)
CYCLE/@THRU,$z1,$z2,$z3,$z4,$z5,$z6,$z7,$z8,$z9,$z10,$z11,$f,@IPM-IPR,$c,!(M)(SW) Generates a mill thru cycle. (# of z parameters must be odd.)
DELAY/#n,@[REV],!Dwell block. n is in seconds or in revolution if REV specified.
DISPLY/@ON-OFF-NEXT,!Comments displayed or disabled at the machine control unit.
END,!End of tape M-Code.
FEDRAT/$f,@[IPM-IPR-MMPR-MMPM],@[RAPTO],$[d],!(L) Feedrate for subsequent non-rapid motion.
FEDRAT/@LOCK,@ON-OFF,!Generate M-Codes to control feedrate override.
FINI,!End of the CL file.
FROM/$x,$y,!(L) Specify the initial axis position.
FROM/$x,$y,$z,!(M) Specify the initial axis position.
GOHOME,!Send axes to the home point at rapid rate.
GOTO/$x,$y,$z,!Send axes to the absolute position.
HEAD/@FRONT-REAR,@[XCOORD,$xd],@[YCOORD,$yd],!(L) Modify the default turret seperation distance.
LEADER/#n,!Causes n units of space codes to be output.
LINTOL/$[t],@ON-OFF,!(M) Test multax cut path agains tolerance t.
LOADTL/#t,@[LENGTH,$l],@[ADJUST,$h],@[OMIT],!(M) Generate tool change block.
LPRINT/@NEXT,!Postprocessor print output to start on a new page.
MACHIN/@SPOSTM,#n,@[ON-OFF],@[CIRCUL-LINEAR],@[OPTION],#[n1,$v1],#[n2,$v2],#[n3,$v3],!(M) Specifies The Mill Post Processor.
MACHIN/@SPOSTL,#n,@[ON-OFF],@[CIRCUL-LINEAR],@[OPTION],#[n1,$v1],#[n2,$v2],#[n3,$v3],!(L) Specifies The Lathe Post Processor.
MCHTOL/$[t],@[ON-OFF],!Segment a linear move into smaller steps t. ON-OFF sets or resets this option.
MODE/@INCR,@[OFF],!Generates INCR incremental or OFF absolute G-Code and output.
MODE/@INVERS,@AUTO-ON-OFF,!Generates or turns off inverse time feedrate codes.
MULTAX/@ON-OFF,!(M) Activates or disables tool axis vector components.
OPSKIP/@ON-OFF,!Generates block delete codes for subsequent machine data blocks.
OPSKIP/#n1,#n2,#n3,#n4,#n5,#n6,@ON-OFF,!Generates multiple block delete codes for subsequent machine data blocks.
OPSTOP,!Produces machine optional stop M-Code.
ORIGIN/$x,$y,!(L) Relates coordinate system to the machine.
ORIGIN/$x,$y,$z,$[a],!(M) Relates coordinate system to the machine.
PITCH/$t,@[INCR-DECR,$tt],!(L) Establishes the lead for subsequent thread commands.
PLABEL/@OPTION,#n,@TO,$v,!Choose options provided by the post processor.
PLABEL/@MODIFY,#n,@TO,$v,@TYPE,$t,!Modify options provided by the post processor.
POSTN/@[XAXIS,$xh],@[YAXIS,$yh],!(L) Modify the home coordinates.
POSTN/@[XAXIS,$xh],@[YAXIS,$yh],@[ZAXIS,$zh],@[AAXIS,$ah],@[BAXIS,$bh],@[CAXIS,$ch],!(M) Modify the home coordinates.
POSTN/@IN-OUT,#a1,$v1,@[NEXT],!Provides variable insert to output tape codes.
POSTN/@ALL,@[OUT],!OUT will output all registers. ALL will clear registers.
PREFUN/$g,@[NEXT],!Generates a G-Code with the value g.
RAPID,!Initiates rapid feed to the next motion only.
REPEAT/#a1,#a2,$v,@[ON-OFF],!Output extra address and value automatically.
REPEAT/#a1,$v1,!Output address a1 and value v1 every bloc until repeat off.
REPEAT/@OFF,!Turn off all repeat commands.
RESET,!Generate a restart sequence.
RETRCT,!(M) Retract at rapid rate to last clearance point.
REWIND/#[n],!Generate rewind M-Code.
ROTABL/@AXIS-BAXIS-CAXIS,@ATANGL-INCR-SETANG,$a,@[CLW-CCLW],@[NEXT-NOW],@[ROTREF],!(M)(5Axis) Generate rotary table motion block.
ROTABL/@ATANGL-INCR-SETANG,$a,@[CLW-CCLW],@[NEXT-NOW],@[ROTREF],!(M)(4Axis) Generate rotary table motion block.
ROTHED/@AXIS-BAXIS-CAXIS,@ATANGL-INCR,$a,@[CLW-CCLW],@[NEXT-NOW],!(M)(5Axis) Generates rotary head motion block.
ROTHED/@ATANGL-INCR,$a,@[CLW-CCLW],@[NEXT-NOW],!(M)(4Axis) Generates rotary head motion block.
SELCTL/$t,!(M) Generates a T-Code for the tool number t.
SELCTL/$t,!(L) Generates a T-Code to change the offset register number to t.
SELECT/#h,!(M) Generates a fixture offset code.
SELECT/@AUTO,!(M)(5Axis) AAxis to position between the front and rear postions.
SELECT/@BOTH,@START,@[FRONT-REAR],!(M)(5Axis) AAxis to position between the front and rear postions initally and then change.
SELECT/@FRONT-REAR,!(M)(5Axis) AAxis to the front or rear position.
SEQNO/#k,@INCR,#[m],#[n],!Sequence number starts at k -increments by m every n blocks.
SEQNO/@ON-OFF-NEXT,!Sequence number -reinstates terminates or generates with next block.
SET/@START,@AUTO,@[OFF],!(L) Adjust for gage lengths in absolute mode. OFF disables this option.
SET/@START,$[x],$[z],!(L) Generates block to preset access registers.
SET/@START,@[XAXIS,$x],@[YAXIS,$y],@[ZAXIS,$z],@[AAXIS,$a],@[BAXIS,$b],@[CAXIS,$c],!(M) Specified axes will be preset.
SPINDL/$s,@[RPM-SFM],@[CLW-CCLW],@[RANGE,#n],@[MAXRPM,#m],@[RADIUS,#r],@[INCR,#i],@[LINEAR],!(L)(Non-CSFM) Generates S-Code block for spindle condition.
SPINDL/$s,@[RPM-SFM],@[CLW-CCLW],@[RANGE,#n],@[MAXRPM,#m],@[RADIUS,#r],!(L)(CSFM) Generates S-Code block for spindle condition.
SPINDL/@ON-OFF,!Reinstates or disables last spindle condition.
SPINDL/@LOCK,@[AUTO-ON-OFF],@[LAST],!Provides speed change command.
SPINDL/$s,@[CLW-CCLW],@[RANGE,#n],!(M) Generates S-Code block for spindle condition.
STOP,!Generates a stop M-Code.
THREAD/@ON-TURN-FACE,!(L) Next motion block output as a thread block.
THREAD/@OUT,@[XAXIS,$x],@[YAXIS,$y],@[INCR],!(L) Enable automatic pullout. INCR specifies incremental xy values.
TMARK/#[n],!Generate rewind stop code.
TRANS/$x,$y,!(L) Relates machine coordinate system when not coincidental.
TRANS/$x,$y,$z,!(M) Relates machine coordinate system when not coincidental.
TRANS/$xi,$xj,$xk,$xd,$yi,$yj,$yk,$yd,$zi,$zj,$zk,$zd,@[OPTION,@00-01-10],!Relates machine coordinate system when not coincidental.
TURRET/#p,#f,$x,$y,@[CLW-CCLW],@[FRONT-REAR],!(L) Generates T-Code for turret indexing.
TURRET/@CENTER,@[OFF],!(L) Coordinates refer to turret reference point. OFF coordinates refer to tip.
TURRET/@0,!(L) Generates T00 code coordinates refer to the turret reference point.


3. Standard Samples

Data Mill Turn
Mill Turn Mill_Turn

Back to top