Exemple #1
0
 private void StartWoodCutting()
 {
     if (BladeHitDadoBlock())
     {
         previousPiecePosition = currentDado.Position;
         cuttingOutDado        = true;
         if (BladeHitPiece())
         {
             FeedRateTracker.ReduceScoreDirectly(0.5f);
         }
     }
     else if (BladeHitPiece())
     {
         FeedRateTracker.ReduceScoreDirectly(0.8f);
         cuttingOutDado = false;
     }
 }
    private void StartWoodCutting(Vector3 cutStartPoint)
    {
        SawBlade.SetEdgePosition(cutStartPoint);
        currentLine.DetermineCutDirection(SawBlade.EdgePosition());

        float distanceFromBlade = currentLine.CalculateDistance(SawBlade.EdgePosition());

        cuttingAlongLine = (distanceFromBlade <= ValidCutOffset);
        if (cuttingAlongLine && distanceFromBlade >= 0.003f)
        {
            FeedRateTracker.ReduceScoreDirectly(0.5f);
        }
        else if (!cuttingAlongLine)
        {
            FeedRateTracker.ReduceScoreDirectly(1.0f);
        }

        manager.RestrictCurrentBoardMovement(true, true);
        previousBladePosition = SawBlade.EdgePosition();
        CurrentState          = CutState.Cutting;
        totalTimePassed       = 0.0f;
    }
Exemple #3
0
    /// <summary>
    /// When the blade hits the wood material, set up the blade edge to better track how close the blade is to the line.
    /// </summary>
    /// <param name="cutStartPoint">The point at which the blade hit the wood material</param>
    private void StartWoodCutting(Vector3 cutStartPoint)
    {
        SawBlade.SetEdgePosition(cutStartPoint);
        currentLine.DetermineCutDirection(SawBlade.EdgePosition());

        float distanceFromBlade = currentLine.CalculateDistance(SawBlade.EdgePosition());

        cuttingAlongLine = (distanceFromBlade <= ValidCutOffset);
        //If the blade is already to far from the line, change the score in the Feed Rate
        if (cuttingAlongLine && distanceFromBlade >= 0.003f)
        {
            FeedRateTracker.ReduceScoreDirectly(0.5f);
        }
        else if (!cuttingAlongLine)
        {
            FeedRateTracker.ReduceScoreDirectly(1.0f);
        }
        //Restrict the movement of the board to just the z direction
        manager.RestrictCurrentBoardMovement(false, true);
        previousPiecePosition = manager.GetCurrentBoardPosition();
        CurrentState          = CutState.Cutting;
        totalTimePassed       = 0.0f;
    }