2.5 D machining - B-spline

In the following test program, a circle with a radius of 40 mm is approximated via 265 interpolation points. The block length is approximately 1 mm, and the radius of the circle interpolation points fluctuates around +-0.5%.

%L uprg_secant 
N01 P5 = 40 ( Radius )
N02 P3 = 256 ( Number of interpolation points )
N03 P4 = 360/P3 ( Angle staggering )
N04 P6 = 0.5*P3
N04 G01 X-P5 Y0 F6
N06 G151 (Spline selection )
N05 X0
N07 $FOR P1=1, P3, 1
N08 P2=P1*P4 F6
N09 P6=P5*[1.0 + 0.005*COS[P2*P6]]
N10 X=P6*SIN[P2] Y=P5 - P6*COS[P2]
N11 $ENDFOR
N12 XP5
N13 G150 (Spline cancellation )
M29
%Main
N50 #SET SPLINETYPE BSPLINE
N100 LL uprg_secant
M30
2.5 D machining - B-spline 1:
Figure 1-30: B-spline circle contour
2.5 D machining - B-spline 2:
Figure 1-31: Comparison of exactly interpolated circle contour and B-spline circle contour zoomed at circle angle phi=0
2.5 D machining - B-spline 3:
Figure 1-32: Contouring speed profile in B-spline circle contour

You can see that the maximally attainable contouring speed drops substantially due to the radius fluctuations. However, the programmed feed rate can be reduced to nevertheless operate without excessive contouring speed fluctuations.