public function drawCubicSpline($xStart, $yStart, $xFromEnd, $yFromEnd, $xEnd, $yEnd)
	{
		$this->setCode("(cubic spline)");
		$this->setCode("G0 X{$xStart} Y{$yStart} Z{$this->spindleAxisStartPosition}");
//		$this->setCode("G1 Z{$zStart}");
		
		// G5 Cubic spline
		$this->setCode("G5 I{$xStart} J{$yStart} P{$xFromEnd} Q-{$yFromEnd} X{$xEnd} Y{$yEnd}");
		
		$this->setCode("G0 Z{$this->spindleAxisStartPosition}");
		$this->setCode("G0 X{$xStart} Y{$yStart}");
		$this->setCode("(/cubic spline)");
		
		return $this;
	}
public function drawCubicSpline($xStart, $yStart, $xFromEnd, $yFromEnd, $xEnd, $yEnd)
	{
		$this->setCode("(cubic spline)");
		$this->setCode("G0 X{$xStart} Y{$yStart} Z{$this->spindleAxisStartPosition}");
//		$this->setCode("G1 Z{$zStart}");
		
		// G5 Cubic spline
		$this->setCode("G5 I{$xStart} J{$yStart} P{$xFromEnd} Q-{$yFromEnd} X{$xEnd} Y{$yEnd}");
		
		$this->setCode("G0 Z{$this->spindleAxisStartPosition}");
		$this->setCode("G0 X{$xStart} Y{$yStart}");
		$this->setCode("(/cubic spline)");
		
		return $this;
	}
public function drawCubicSpline ( $ xStart , $ yStart , $ xFromEnd , $ yFromEnd , $ xEnd , $ yEnd ) { $ this -> setCode ( "(cubic spline)" ) ; $ this -> setCode ( "G0 X{$xStart} Y{$yStart} Z{$this->spindleAxisStartPosition}" ) ; //		$this->setCode("G1 Z{$zStart}"); // G5 Cubic spline $ this -> setCode ( "G5 I{$xStart} J{$yStart} P{$xFromEnd} Q-{$yFromEnd} X{$xEnd} Y{$yEnd}" ) ; $ this -> setCode ( "G0 Z{$this->spindleAxisStartPosition}" ) ; $ this -> setCode ( "G0 X{$xStart} Y{$yStart}" ) ; $ this -> setCode ( "(/cubic spline)" ) ; return $ this ; }
G5 creates a cubic B-spline in the XY plane with the X and Y axes only.
P and Q must both be specified for every G5 command.

@param float $xStart
@param float $yStart
@param float $xFromEnd
@param float $yFromEnd
@param float $xEnd
@param float $yEnd
@return \GCode
G5 creates a cubic B - spline in the XY plane with the X and Y axes only . P and Q must both be specified for every G5 command .