View Full Version : Starting Postion

mr chris
07-21-2009, 08:28 AM
I have two problems with g-code generated.

My lathe can not go past X55 Z55 when setup to turn my work piece without reaching its end stops.

Problem 1: SolidCAM insists on sending the tool to X150, Z200 (see g-code paste below) at the beginning and end of the program. Where do I set this start position?

Problem 2: During machining sometimes the g-code sends the tool outside X55 during rapid tool movements (e.g. to go to tool change position). This also causes the X axis to hit its end stops. Is there a way to limit the travel in SolidCAM (i.e. give it a safe envelope to work in)?


/G28 U0. W0.
N01 ( T01 )
G28 U0.
G0 X150. Z200. - problem 1
G97 S750 M3
G0 X99.6 Z4.8 M8 - problem 2

07-21-2009, 03:08 PM

Have a look at the tool options under CAM Part definition...
There are some values you can change there to control the X and Z values the machine moves to when doing tool changes, it just depends how your postprocessor is setup.
IE. in the GPP file at the @change_tool it will either have a couple of lines like this:
xpos = xtool
zpos = ztool
call @rapid_move

or it will have this:

{nb ,'G28 U0'}
{nb ,'G28 W0'}

The 1st example will make the tool use the tool option figures and the latter will not, it will just go straight to the machine home position.

As for limiting the tool movments in the program, again this is a post issue so you would need to modify this to stop it happening as I am not aware of any function in SolidCam that lets you enter max values for movment.

Hope this is of some help


Sinij kot
04-01-2011, 12:15 PM
I know this is an old post but I have the same issue and can't figure out how to change GPP file to fix the problem.
During tool change I get a pause to change the tool, after that the tool goes down to zero and then back up to machining level. This is a problem if my zero is defined at the bottom of the part.
What happens is regardless of what I select for tool change position, default or defined I always get the same output. I even tried changing dflt_tool_chng to non zero values in MAC file and I still get the same output. Below is a portion of FANUC gpp that I am using.
I would greatly appreciate any suggestions.

if flag2 eq 0
call @home_number
flag2 = 1
local logical save_blknum_gen

{nb, 'M98 P9011'}

; if tool_number gt 20 and tool_number lt 40
; tool_number = (tool_number - 20)
; endif
; if tool_number gt 40 and tool_number lt 60
; tool_number = (tool_number - 40)
; endif
; if tool_number gt 60 and tool_number lt 80
; tool_number = (tool_number - 60)
; endif

{nb, 'M01'}
blknum_gen = true
{nb, 'M6 T'tool_number}
blknum_gen = FALSE
if tool_type eq 0 then
{nb, '( TOOL -'tool_number, '- DRILL DIA 'tool_diameter, ' MM )'}
if tool_type eq 1 then
{nb, '( TOOL -'tool_number, '- ROUGH DIA 'tool_diameter, ' MM )'}
if tool_type eq 2 then
{nb, '(TOOL -'tool_number, '- MILL DIA 'tool_diameter, ' R'corner_radius,' MM )'}
{nb, 'G90 G00 G40 G'(53 + home_number)}
label = first_user_proc
save_blknum_gen = blknum_gen
gcode = 43
{nb, 'G'gcode, ' H'tool_number, ' D'(tool_number+30), ' '}
blknum_gen = save_blknum_gen
xpos = xnext
ypos = ynext
zpos = znext
skipline = FALSE
call @rapid_move
tool_direction = CCW
call @start_tool
if colent eq 0
{nb, 'M8'}
if colent eq 17
{nb, 'M17'}
if colent eq 18
{nb, 'M18'}