Exemple #1
0
        public List <StructPos> ComputeRobotMvt()
        {
            List <StructPos> Ret = null;
            int AngleStep        = 10;
            int DistStep         = 10;
            int Count            = 0;
            int Sign             = 1;

            switch (_CurrentCommand.Cmd)
            {
            // ________________________________________
            case EnumCmd.Mvt_UseAngleOnly:
            case EnumCmd.MvtSimple_RotateInDeg:
            case EnumCmd.MvtSimple_RotateToAngleInDeg:
                Count = Math.Abs(Convert.ToInt32((_ComputedPosAngle - _PosAngle) / AngleStep));

                if (_ComputedPosAngle - _PosAngle < 0)
                {
                    Sign = -1;
                }
                else
                {
                    Sign = 1;
                }

                Ret = new List <StructPos>();

                for (int i = 0; i < Count; i++)
                {
                    StructPos RobotPosition = new StructPos();
                    RobotPosition.x     = _ComputedPosX;
                    RobotPosition.y     = _ComputedPosY;
                    RobotPosition.angle = _ComputedPosAngle + i * AngleStep * Sign;

                    Ret.Add(RobotPosition);
                }
                break;

            // ________________________________________
            case EnumCmd.Mvt_UseDistOnly:
            case EnumCmd.MvtSimple_MoveInMM:
                break;

            // ________________________________________
            case EnumCmd.Mvt_UseMixedMode:
            case EnumCmd.Mvt_UsePivotMode:
            case EnumCmd.Mvt_UseSpline:
                break;

            // ________________________________________
            default:
                break;
            }

            return(Ret);
        }
Exemple #2
0
        public List<StructPos> ComputeRobotMvt()
        {
            List<StructPos> Ret = null;
            int AngleStep = 10;
            int DistStep = 10;
            int Count = 0;
            int Sign = 1;

            switch (_CurrentCommand.Cmd)
            {
                // ________________________________________
                case EnumCmd.Mvt_UseAngleOnly:
                case EnumCmd.MvtSimple_RotateInDeg:
                case EnumCmd.MvtSimple_RotateToAngleInDeg:
                    Count = Math.Abs(Convert.ToInt32((_ComputedPosAngle - _PosAngle) / AngleStep));

                    if (_ComputedPosAngle - _PosAngle < 0)
                        Sign = -1;
                    else
                        Sign = 1;

                    Ret = new List<StructPos>();

                    for (int i = 0; i < Count; i++)
                    {
                        StructPos RobotPosition = new StructPos();
                        RobotPosition.x = _ComputedPosX;
                        RobotPosition.y = _ComputedPosY;
                        RobotPosition.angle = _ComputedPosAngle + i * AngleStep * Sign;

                        Ret.Add(RobotPosition);
                    }
                    break;

                // ________________________________________
                case EnumCmd.Mvt_UseDistOnly:
                case EnumCmd.MvtSimple_MoveInMM:
                    break;

                // ________________________________________
                case EnumCmd.Mvt_UseMixedMode:
                case EnumCmd.Mvt_UsePivotMode:
                case EnumCmd.Mvt_UseSpline:
                    break;

                // ________________________________________
                default:
                    break;
            }

            return Ret;
        }