On Monday 19 October 2015 19:48:31 Robert Ellenberg wrote:

> Depending on your machine's acceleration, and the feed you requested,
> that could be correct default behavior. The default blend tolerance is
> unlimited. Given the speed limitations the TP used to have, it may not
> have been able to go fast enough to need a big blend like that, so you
> might not have seen it before. Does it still happen at lower feeds?
>
I didn't notice any such effect when a cousin of that code was running on 
my toy mill about a year ago.

> Another possible cause is a large maximum feed override, which causes
> the TP to take larger blends. For example, a maximum feed override of
> 200% means that at any time, the TP is prepared to go 2x your
> requested feed, and doing so safely means a larger corner radius, even
> if your requested feed isn't that fast.
>
Hummm, my feed override is larger than any axis, Z in particular, can 
move at.  These are things I an still "fine tuning" as I bring this 
machine online to make parts.

Recommendations?

> In general, I would always recommend using an explicit tolerance for
> blending.
>
> Can you share a code snippet that leads to this behavior (also a
> config file so I can see your max acceleration / velocity)?

Finger-bores.ngc attached. Remove the G64 line to see it in whats 
supposed to be a square cutout for a decorative ebony button.

And GO704fast.ini is attached also,

Thanks for looking, Rob, its appreciated.

> Rob
>
> On Mon, Oct 19, 2015, 7:33 PM Gene Heskett <[email protected]> wrote:
> > Greetings all;
> >
> > I was just forced to add a G64 P0.001 to my code for making the
> > screw shank, a circular cut just deep enough to absorb the screw
> > head, topped by a square cutout with 1/16" radius corners as left by
> > a 1/8" mill run in a square pattern.  Without it, that square pocket
> > was turned into a 1 corner pointed circle!
> >
> > That sure seems like way too aggressive path blending to me.  I also
> > noted that turning the alpha-blend checkbox on and off, had zero
> > effect on the cut result. The initial white backplot trace was
> > perfect, but not the wooden result when the code was executed, it
> > was hugely, completely unusably bad.
> >
> > This is 2.7.0, updated Saturday IIRC.
> >
> > Is that the expected result?

Cheers, Gene Heskett
-- 
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Genes Web page <http://geneslinuxbox.net:6309/gene>
%
( finger counterboreing for screws and ebony chips)
( Version 0.91.00 Copyright 2015 by by Maurice E. "Gene" Heskett )
( license gpl v2 or later )
#<_side>                        =       1.00000000 (make side = 1.000000 if 
doing side board, 0 means end board)
#<_upper>                       =       1.00000000      ( zero for base boards )
G20 G40 G64 P0.001 (tool comp is in here )
(insert machine preamble here!!!!!) 
G90 (absolute distance mode)
G92.1 ( clear any offsets )
#<_x_seed>      =  -5.13700000 ( same starting seeds as blanket-chest-3.ngc )
#<_y_seed>      =       1.56000000 ( will need adjusted to center in finger 
length )
(M6 T2 ) ( load 1/8" 2 flute mill )
(G1 F40 Z-6.00000000 Y#<_y_seed> X[#<_x_seed> + 2.00000000])
(G38.2 F1 Z-7.30000000) (find the plate)
(G1 F40 Z-1 x0 y0)
(#<_z_seed>                     =       [#5063-0.03250000]) ( set to top of 
mounted board found by G38.2 )
#<_z_seed>                      =       -6.79500000
#<_z_safeNormal>                        =       [#<_z_seed> + 0.10000000]
#<_z_top>                       =       0.000000000 (used only when G92 in 
effect )
#<_finger_len>          =       0.91000000

o<ifupper0>     IF [#<_upper> gt 0.5000000]

#<_fingers>                     =       11.00000000
#<_bd_width>            =       11.25000000

o<ifupper0>     ELSE ( its a narrow base board )

#<_fingers>             =       3.00000000
#<_bd_width>            =       2.48000000

o<ifupper0> ENDIF       [#<_fingers> + #<_side>]
#<_x_inc>               =       [#<_bd_width> / [#<_fingers> * 2.00000000]]
#<_y_center>    =       [#<_y_seed> - [#<_finger_len> * 0.50000000]]
#<_tool_rad>    =       0.062500000 ( 1/8" mill)
#<_bd_thick>    =       0.75000000
#<_hole_ofs>    =       0.312500000 ( do this in y_seed above )
#<_z_depth>     =       -6.00000000 ( starter value, adjust for depth of holes )
#<_z_sq_depth>  =       -0.1250


( Useful subroutine, does the whole thing at whatever X/Y was when called )
o<do_hole> SUB
(debug,x_tmp=#<_x_tmp>)

( make wherever it is at, home for duration of subroutine )
( arrives here with z_tmp any damned place )
G92 x0.000000000 y0.0000000 Z0.00000000 ( establish locations )
#<_z_tmp>               =       0.00000000
s2350
M3 (start spindle)
G4 p.25 (half sec for speed)
M8 ( start vacuum )
( drill screw head counterbore )
G1 F40 Z#<_z_top>
#<_z_tmp> = 0.00000000

G1 f20 Z#<_z_tmp>
g1 X0.10275000
G3 X0.10275000 Y-0.00000000 I-0.10275000 J-0.00000000 P5 Z-0.200
( do a full circle at depth to clean up bottom of countersink )
G3 X0.10275000 Y-0.00000000 I-0.10275000 J-0.00000000
( screw head counterbore done )

( now cut a button pocket )
#<_z_tmp> = 0.00000000
G1 z#<_z_tmp> x0.000 y0.000
( measure these! )
( target sq is about .441" for a side or an end, but .50000" for base parts )
o<ifupper1> IF [#<_upper> lt 0.50000000]
(#<_sq_pat> = 0.1875000) (for base parts)
#<_sq_pat> = .158000000 ( check button fit! xpand to .15600 or more till it 
fits)

o<ifupper1> ELSE

#<_sq_pat>      = 0.18750000

o<ifupper1> ENDIF

o20 while [#<_z_tmp> gt -0.10000000]
#<_z_tmp> = [#<_z_tmp> - 0.02500000]
G1 z#<_z_tmp>
G1 F30 X#<_sq_pat> Y0.00000000 ( run X to center of y at right edge )
G1 Y-#<_sq_pat> ( run Y to right front corner at X )
G1 X-#<_sq_pat> ( run X to left front corner at Y )
G1 Y#<_sq_pat>  ( run Y to left rear corner at X )
G1 X#<_sq_pat>  ( run X to rt rear corner at Y )
G1 Y0.00000000  ( back to where we started )
o20 endwhile
( button pocket done )

( insert a central bore hole here )
( but it really needs to be bigger so transplant the screw head )
( code and adjust for diameter in the .90 thou area )
#<_z_tmp>               =       [#<_z_tmp> - 0.20000000]
G1 F40 X0.00000000 y0.00000000 (to center of hole )
G1 F10 z#<_z_tmp>
G1 F30 X0.0175000
G3 X0.0175000 Y-0.00000000 I-0.0175000 Z-0.7800000 J-0.00000000 P20
G1 X0 Y0 ( back to center of hole )
G0 z#<_z_safe>
G4 P1.5
G92.2 ( back to original co-ords )
o<do_hole> ENDSUB

( +++++++++++++++++++++ MAIN position loop ++++++++++++++++++++) 
( assuming machine is homed )
( for testing, put upper & side ='s here )
G1 F40 Z0.00000000

M9
M6T2 (load a 1/8" tool )
(#<_z_safeNormal>       = #5063) ( will be .0325" above wood )
G0 Z#<_z_safeNormal> ( clears wood )
G0 Y#<_y_center>
#<_startx>                      =       #<_x_seed>

o<ifside3>      IF [#<_side> lt 0.50000000]
( fix this for side=0 )
( Offset hole a finger width right )
#<_x_tmp>                       =       [#<_startx> + [#<_x_inc> * 3.0000000]]
#<_fingers_done>        =       4.0000000 ( reset for this run )

o<ifside3>      ELSE (side gt 0.00 )
( else fix this for side=1 )
( Offset 1st hole middle of 1st finger )
#<_x_tmp>                       =       [#<_startx> + #<_x_inc>] ( in middle of 
first finger )
#<_fingers_done>        =       -8.0000000 ( reset for this run )

o<ifside3>      ENDIF

#<_z_top>                       =       0.0000000 ( used when G92 is in effect )
#<_z_safe>                      =       0.03125000 ( ditto)

o<ifupper4> IF [#<_upper> gt 0.50000000]

o<ifside4>      IF      [#<_side> gt 0.50000000]

#<_fingers>             =       [#<_fingers> + 2.00000000]

o<ifside4>      ENDIF

o<ifupper4> ENDIF
o<doFingers> WHILE [#<_fingers_done> le #<_fingers>]
#<_z_tmp> = 0.00000000 ( only used in G92 )
G1 Z#<_z_safeNormal> ( this is above wood in G92.2 territory )

o<ifside> IF [#<_side> gt 0.50000000]

(debug,side=1,x_tmp=#<_x_tmp>)
G1 F40 X#<_x_tmp> Z#<_z_seed> (first hole offset set above )

o<do_hole> call ( Here if #<_side> is on WORKS)

#<_fingers_done>        = [#<_fingers_done> +  2.00000000]

G1 F40 Z#<_z_safeNormal> ( clear wood for next move )
( side is 1.0, do after the call )
#<_x_tmp>       = [#<_x_tmp> + [#<_x_inc> * 4.00000000]]
G1 F40 X#<_x_tmp>       ( position for next finger )

o<ifside>  ELSE

(debug,side=0,x_tmp=#<_x_tmp>)
G1 F40 Z#<_z_safeNormal>        ( clear wood for next x move)

( side is 0.00, so do x_tmp adjust before call )
( but make it do a 1st hole! )
o<if1st> IF [#<_fingers_done> gt 0.10000000]

#<_x_tmp>       = [#<_x_tmp> + [#<_x_inc> * 4.00000000]]

o<if1st> ENDIF

G1 F40 x#<_x_tmp> Z#<_z_seed>

o<do_hole> CALL

o<ifside>  ENDIF
( Then increment fingers_done )
#<_fingers_done>        = [#<_fingers_done> + 2.00000000]

o<doFingers> ENDWHILE

M5 ( STOP SPINDLE )
G1 F40 Z0 Y0 X0
m2
%
# Generated by PNCconf at Tue Jun 30 22:44:28 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

[EMC]
MACHINE = GO704fast
DEBUG = 0x00000000

[DISPLAY]
DISPLAY = axis
PYVCP = pyvcp-panel.xml
#GLADEVCP = -U --catalog=mill-mm features.ui
#FEATURES_PATH = /home/gene/linuxcnc/linuxcnc-features-master
#EMBED_TAB_NAME = GladeVCP
#EMBED_TAB_COMMAND = halcmd loadusr -Wn gladevcp gladevcp -c gladevcp -H 
gvcp_call_list.hal -x {XID} gvcp-panel.ui
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.50000
MIN_SPINDLE_OVERRIDE = 0.25000
DEFAULT_SPINDLE_SPEED = 100
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 4
PROGRAM_PREFIX = /home/gene/linuxcnc/nc_files
INCREMENTS = 1.000  0.500 0.200 0.100 0.050 0.02 0.01 0.005 0.002 0.001
DEFAULT_LINEAR_VELOCITY = .80
MAX_LINEAR_VELOCITY = 1.20
MIN_LINEAR_VELOCITY = 0.0100
DEFAULT_ANGULAR_VELOCITY = 5.0000
MAX_ANGULAR_VELOCITY = 7.5000
MIN_ANGULAR_VELOCITY = 0.0100000
EDITOR = geany
GEOMETRY = xyza

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE=#4990=0.0000 #4991=0.0000 #4992=0.0000 #4993=0.0000 
#4994=0.0000 #4995=0.000000

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000

[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25

[HAL]
HALUI = halui
HALFILE = GO704fast.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal

[HALUI]

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.95
MAX_LINEAR_VELOCITY = 1.2000
POSITION_FILE =

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME_SEQUENCE = 2
HOME_IS_SHARED = 1
HOME_SEARCH_VEL = 0.9842
HOME_LATCH_VEL = -0.05
HOME_FINAL_VEL = 1.0574
HOME_OFFSET = 8.8580
HOME = 0.0
FERROR = 0.02
MIN_FERROR = 0.005
MAX_VELOCITY = 1.9685
MAX_ACCELERATION = 7.874
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 2.460
STEPGEN_MAXACCEL = 15.748
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.00005
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 5000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = 16271.00379
MIN_LIMIT = -9.6456
MAX_LIMIT = 9.6456
BACKLASH = 0.00150

#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1
HOME_SEARCH_VEL = 0.93499
HOME_LATCH_VEL = -0.09842
HOME_FINAL_VEL = 1.1687375
HOME_OFFSET = 2.7
HOME = 0.0
FERROR = 0.02
MIN_FERROR = 0.00005
MAX_VELOCITY = 1.968
MAX_ACCELERATION = 7.874
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 2.460
STEPGEN_MAXACCEL = 15.74
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.00005
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP   = 5000
DIRHOLD    = 5000
STEPLEN    = 2500
STEPSPACE  = 2500
STEP_SCALE = -16298.63031
MIN_LIMIT = -2.716
MAX_LIMIT = 2.7559
BACKLASH        = .000950


#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
HOME_SEARCH_VEL = 0.675097075
HOME_LATCH_VEL = -0.035
HOME_FINAL_VEL = 0.74833333
HOME = 0.00000
HOME_OFFSET = 0.25000
MIN_LIMIT   = -7.6346
MAX_LIMIT   = 0.3690
FERROR = 0.002
MIN_FERROR = 0.0005
MAX_VELOCITY = 0.710916664
MAX_ACCELERATION = 5.00
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 0.888645829
STEPGEN_MAXACCEL = 10.00
P           = 1000
I           = 0.0
D           = 0.0
FF0         = 0.0
FF1         = 1.0
FF2         = 0.00005
BIAS        = 0.0
DEADBAND    = 0.000
MAX_OUTPUT  = 0
# these are in nanoseconds
DIRSETUP    = 6000
DIRHOLD     = 6000
STEPLEN     = 3000
STEPSPACE   = 3000
STEP_SCALE  = -32547.02363
BACKLASH        = .00250


#********************
# Axis A
#********************
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
HOME_SEQUENCE = 3
HOME_SEARCH_VEL = 0
HOME_LATCH_VEL = 0
HOME_FINAL_VEL = 0
FERROR = 0.05
MIN_FERROR = 0.005
MAX_VELOCITY = 12.0
MAX_ACCELERATION = 180.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 15.00
STEPGEN_MAXACCEL = 225.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.00
FF1 = 1.00
FF2 = 0.0005
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP   = 2500
DIRHOLD    = 2500
STEPLEN    = 1500

STEPSPACE  = 1500
STEP_SCALE = 800.0
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0

#********************
# Spindle 
#********************
[SPINDLE_9]
P = 2.0
I = 0.03
D = 0.00
FF0 = 1.00
FF1 = 0.020
FF2 = 0.00
BIAS = 0.00
FBIAS = 0.60
RBIAS = -0.60
ACCELL = 6.7
LIMIT_S_ACCEL = 750
DEADBAND = 0.00
ENCODER_SCALE = 268.0
PWMGEN_S_SCALE =46.00
MAXACCEL = 1500
PWMGEN_S_FREQ = 30000
NEAR_TOL = 5
NEAR_SCALE = 1.1
ENCODER_SAMPLE = 500000
------------------------------------------------------------------------------
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to