示例#1
0
        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);
        }
示例#2
0
        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);
        }