private static void Retract(Curve toolpathCurve, int direction, int outsideSign, ProcessingParams par) { if (par.RetractionType == FeedType.None) { return; } var feedGroup = CalcUtils.CalcFeedGroup(toolpathCurve, direction == -1, outsideSign, par.RetractionType, par.RetractionRadius, par.RetractionAngle, par.RetractionLength); Machine.RetractMove(feedGroup.Arc, par.GreatSpeed); if (Settings.WithCompensation) { Machine.SetCompensation(CompensationSide.None); } Machine.RetractMove(feedGroup.Line, par.GreatSpeed); }
private static void Feed(Curve toolpathCurve, int direction, int outsideSign, ProcessingParams par, bool isFirstPass) { var feedGroup = CalcUtils.CalcFeedGroup(toolpathCurve, direction == 1, outsideSign, par.FeedType, par.FeedRadius, par.FeedAngle, par.FeedLength); if (isFirstPass) { Machine.SetPosition(feedGroup.Point, par.GreatSpeed); } else { Machine.Move(feedGroup.Point, par.GreatSpeed); } if (Settings.WithCompensation) { Machine.SetCompensation(direction * outsideSign == 1 ? CompensationSide.Left : CompensationSide.Right); } Machine.EngageMove(feedGroup.Line, par.SmallSpeed); Machine.EngageMove(feedGroup.Arc, par.SmallSpeed); Machine.SetSpeed(par.GreatSpeed); }