Exemple #1
0
        public movementCase TestDiskConfiguration1()
        {
            // create each gear and assign name first
            Watch.gears.BaseGear Disk1 = new Watch.gears.BaseGear();
            Disk1.GearName = "Disk1";
            Disk1.GearID   = 1;
            Disk1.Rotation = gears.BaseGear._Rotation.Clockwise;

            Watch.gears.BaseGear Disk2 = new Watch.gears.BaseGear();
            Disk2.GearName = "Disk2";
            Disk2.GearID   = 2;

            Disk1.BaseTeeth              = 30;
            Disk1.BaseTeethDriving       = true;
            Disk1.BaseTeethDrivingGearID = Disk2.GearID;

            Disk2.BaseTeeth               = 50;
            Disk2.BaseTeethDrivenBy       = true;
            Disk2.BaseTeethDrivenByGearID = Disk1.GearID;

            // create the movement
            Watch.movement.movementCase oMovementCase = new Watch.movement.movementCase();
            oMovementCase.BaseGears.Add(Disk1);
            oMovementCase.BaseGears.Add(Disk2);

            // now get the movement working
            oMovementCase.incNotches(ref oMovementCase, 1);
            return(oMovementCase);
        }
Exemple #2
0
        public movementCase MakeMoonDisk59Daily()
        {
            // create each gear and assign name first
            Watch.gears.BaseGear DailyDriver = new Watch.gears.BaseGear();
            DailyDriver.GearName           = "DailyDriver";
            DailyDriver.GearID             = 1;
            DailyDriver.Rotation           = gears.BaseGear._Rotation.AntiClockwise;
            DailyDriver.DiskBaseUnitDriver = gears.BaseGear._DiskBaseUnitDriver.daily;

            Watch.gears.BaseGear MoonDisk = new Watch.gears.BaseGear();
            MoonDisk.GearName = "MoonDisk";
            MoonDisk.GearID   = 2;

            // now create the properties of each gear and their relationships to each other
            DailyDriver.BaseTeeth              = 12;
            DailyDriver.BaseTeethDriving       = true;
            DailyDriver.BaseTeethDrivingGearID = MoonDisk.GearID;

            MoonDisk.BaseTeeth               = 59;
            MoonDisk.BaseTeethDrivenBy       = true;
            MoonDisk.BaseTeethDrivenByGearID = DailyDriver.GearID;

            // create the movement
            Watch.movement.movementCase oMovementCase = new Watch.movement.movementCase();
            oMovementCase.BaseGears.Add(DailyDriver);
            oMovementCase.BaseGears.Add(MoonDisk);

            return(oMovementCase);
        }
Exemple #3
0
        public Watch.gears.BaseGear BaseMove(Watch.gears.BaseGear previousbaseGear, gears.InnerGear previousInnerGear, int Notches)
        {
            int OnceOnly = 0; // for trouble shooting purposes, if entry into more than 1 routine, there is a bug

            Watch.movement.supporting oSupport = new Watch.movement.supporting();

            EffectiveRatioBaseDrive = 1; // calculate intra-gear ratio

            if ((!BaseTeethDrivenBy) && (BaseTeethDriving))
            {
                BaseTeethNotchesTraversed = BaseTeethNotchesTraversed + (double)Notches;
                OnceOnly++;
            }

            if ((BaseTeethDrivenBy) && (previousbaseGear.BaseTeethDriving))
            {
                if (BaseTeethDrivenByGearID.Equals(previousbaseGear.GearID))
                {
                    if (previousbaseGear.BaseTeethDrivingGearID.Equals(GearID))
                    {
                        BaseTeethNotchesTraversed = previousbaseGear.BaseTeethNotchesTraversed;
                        Rotation = oSupport.GetNxtRotation(previousbaseGear.Rotation);
                        OnceOnly++;
                    }
                }
            }

            if ((BaseTeethDrivenBy) && (previousInnerGear.BaseTeethDriving))
            {
                if (BaseTeethDrivenByGearID.Equals(previousInnerGear.GearID))
                {
                    if (previousInnerGear.BaseTeethDrivingGearID.Equals(GearID))
                    {
                        BaseTeethNotchesTraversed = previousInnerGear.BaseTeethNotchesTraversed;
                        Rotation = oSupport.GetNxtRotation(previousInnerGear.Rotation);
                        OnceOnly++;
                    }
                }
            }
            if ((BaseTeethDrivenBy) && (previousInnerGear.InnerTeethDriving))
            {
                if (BaseTeethDrivenByGearID.Equals(previousInnerGear.GearID))
                {
                    if (previousInnerGear.InnerTeethDrivingGearID.Equals(GearID))
                    {
                        BaseTeethNotchesTraversed = previousInnerGear.InnerTeethNotchesTraversed;
                        Rotation = oSupport.GetNxtRotation(previousInnerGear.Rotation);
                        OnceOnly++;
                    }
                }
            }
            if (!OnceOnly.Equals(1))
            {
                throw new Exception("Base Teeth, entered " + OnceOnly.ToString() + " times!");
            }
            BaseGearRevolutions = BaseTeethNotchesTraversed / BaseTeeth;
            return(this);
        }
Exemple #4
0
        public movementCase MakeMoonDisk90Daily()
        {
            // create each gear and assign name first
            Watch.gears.BaseGear BaseDailyDriver = new Watch.gears.BaseGear();
            BaseDailyDriver.GearName           = "BaseDailyDriver";
            BaseDailyDriver.GearID             = 1;
            BaseDailyDriver.Rotation           = gears.BaseGear._Rotation.AntiClockwise;
            BaseDailyDriver.DiskBaseUnitDriver = gears.BaseGear._DiskBaseUnitDriver.daily;

            Watch.gears.InnerGear DailyDisk = new Watch.gears.InnerGear();
            DailyDisk.GearName = "DailyDriver";
            DailyDisk.GearID   = 2;

            Watch.gears.InnerGear Intermediatetepper = new Watch.gears.InnerGear();
            Intermediatetepper.GearName = "Intermediatetepper";
            Intermediatetepper.GearID   = 3;

            Watch.gears.BaseGear MoonDisk = new Watch.gears.BaseGear();
            MoonDisk.GearName = "MoonDisk";
            MoonDisk.GearID   = 4;

            // now create the properties of each gear and their relationships to each other

            BaseDailyDriver.BaseTeeth              = 24;
            BaseDailyDriver.BaseTeethDriving       = true;
            BaseDailyDriver.BaseTeethDrivingGearID = DailyDisk.GearID;

            DailyDisk.InnerTeeth               = 7;
            DailyDisk.BaseTeeth                = 30;
            DailyDisk.InnerTeethDrivenBy       = true;
            DailyDisk.InnerTeethDrivenByGearID = BaseDailyDriver.GearID;
            DailyDisk.BaseTeethDriving         = true;
            DailyDisk.BaseTeethDrivingGearID   = Intermediatetepper.GearID;

            Intermediatetepper.BaseTeeth               = 90;
            Intermediatetepper.InnerTeeth              = 32;
            Intermediatetepper.BaseTeethDrivenBy       = true;
            Intermediatetepper.BaseTeethDrivenByGearID = DailyDisk.GearID;
            Intermediatetepper.InnerTeethDriving       = true;
            Intermediatetepper.InnerTeethDrivingGearID = MoonDisk.GearID;

            MoonDisk.BaseTeeth               = 90;
            MoonDisk.BaseTeethDrivenBy       = true;
            MoonDisk.BaseTeethDrivenByGearID = Intermediatetepper.GearID;

            // create the movement
            Watch.movement.movementCase oMovementCase = new Watch.movement.movementCase();
            oMovementCase.BaseGears.Add(BaseDailyDriver);
            oMovementCase.BaseGears.Add(DailyDisk);
            oMovementCase.BaseGears.Add(Intermediatetepper);
            oMovementCase.BaseGears.Add(MoonDisk);

            return(oMovementCase);
        }
Exemple #5
0
        public Watch.gears.InnerGear InnerMove(Watch.gears.BaseGear previousbaseGear, gears.InnerGear previousInnerGear, int Notches)
        {
            int OnceOnly = 0;

            Watch.movement.supporting oSupport = new Watch.movement.supporting();

            // calculate intra-gear ratios
            EffectiveRatioBaseDrive  = (Double)BaseTeeth / InnerTeeth;
            EffectiveRatioInnerDrive = (Double)InnerTeeth / BaseTeeth;

            if (GearID.Equals(1))
            {
                if (((!BaseTeethDrivenBy) && (InnerTeethDriving)) || ((BaseTeethDriving) && (!InnerTeethDriving)))
                {
                    BaseTeethNotchesTraversed  = BaseTeethNotchesTraversed + (double)Notches;
                    InnerTeethNotchesTraversed = BaseTeethNotchesTraversed * EffectiveRatioInnerDrive;
                    OnceOnly++;
                }
            }
            else
            {
                if ((InnerTeethDrivenBy) && (previousbaseGear.BaseTeethDriving))
                {
                    if (InnerTeethDrivenByGearID.Equals(previousbaseGear.GearID))
                    {
                        if (previousbaseGear.BaseTeethDrivingGearID.Equals(GearID))
                        {
                            InnerTeethNotchesTraversed = previousbaseGear.BaseTeethNotchesTraversed;
                            BaseTeethNotchesTraversed  = InnerTeethNotchesTraversed * EffectiveRatioBaseDrive;
                            Rotation = oSupport.GetNxtRotation(previousbaseGear.Rotation);
                            OnceOnly++;
                        }
                    }
                }

                if ((BaseTeethDrivenBy) && (previousbaseGear.BaseTeethDriving))
                {
                    if (BaseTeethDrivenByGearID.Equals(previousbaseGear.GearID))
                    {
                        if (previousbaseGear.BaseTeethDrivingGearID.Equals(GearID))
                        {
                            BaseTeethNotchesTraversed  = previousbaseGear.BaseTeethNotchesTraversed;
                            InnerTeethNotchesTraversed = EffectiveRatioInnerDrive * BaseTeethNotchesTraversed;
                            Rotation = oSupport.GetNxtRotation(previousbaseGear.Rotation);
                            OnceOnly++;
                        }
                    }
                }


                if ((BaseTeethDrivenBy) && (previousInnerGear.BaseTeethDriving))
                {
                    if (BaseTeethDrivenByGearID.Equals(previousInnerGear.GearID))
                    {
                        if (previousInnerGear.BaseTeethDrivingGearID.Equals(GearID))
                        {
                            BaseTeethNotchesTraversed  = previousInnerGear.BaseTeethNotchesTraversed;
                            InnerTeethNotchesTraversed = BaseTeethNotchesTraversed * EffectiveRatioInnerDrive;
                            Rotation = oSupport.GetNxtRotation(previousInnerGear.Rotation);
                            OnceOnly++;
                        }
                    }
                }
                if ((BaseTeethDrivenBy) && (previousInnerGear.InnerTeethDriving))
                {
                    if (BaseTeethDrivenByGearID.Equals(previousInnerGear.GearID))
                    {
                        if (previousInnerGear.InnerTeethDrivingGearID.Equals(GearID))
                        {
                            BaseTeethNotchesTraversed  = previousInnerGear.InnerTeethNotchesTraversed;
                            InnerTeethNotchesTraversed = BaseTeethNotchesTraversed * EffectiveRatioInnerDrive;
                            Rotation = oSupport.GetNxtRotation(previousInnerGear.Rotation);
                            OnceOnly++;
                        }
                    }
                }
            }

            if (!OnceOnly.Equals(1))
            {
                throw new Exception("Inner Teeth, entered " + OnceOnly.ToString() + " times!");
            }

            BaseGearRevolutions  = Math.Round(BaseTeethNotchesTraversed / BaseTeeth, 10);
            InnerGearRevolutions = Math.Round(InnerTeethNotchesTraversed / InnerTeeth, 10);

            if (!BaseGearRevolutions.Equals(InnerGearRevolutions))
            {
                throw new Exception("Inner and Base teeth revs do not match!");
            }
            return(this);
        }
Exemple #6
0
        public movementCase MakeMoonDisk135Hourly()
        {
            // create each gear and assign name first
            Watch.gears.BaseGear HourDisk = new Watch.gears.BaseGear();
            HourDisk.GearName = "HourlyDriver";
            HourDisk.GearID   = 1;
            HourDisk.Rotation = gears.BaseGear._Rotation.Clockwise;

            Watch.gears.InnerGear Stepper = new Watch.gears.InnerGear();
            Stepper.GearName = "MoonDiskDriver";
            Stepper.GearID   = 2;

            Watch.gears.BaseGear Intermediate1 = new Watch.gears.BaseGear();
            Intermediate1.GearName = "Intermediate1";
            Intermediate1.GearID   = 3;


            Watch.gears.BaseGear Intermediate2 = new Watch.gears.BaseGear();
            Intermediate2.GearName = "Intermediate2";
            Intermediate2.GearID   = 4;

            Watch.gears.BaseGear MoonDisk = new Watch.gears.BaseGear();
            MoonDisk.GearName = "MoonDisk";
            MoonDisk.GearID   = 5;

            // now create the properties of each gear and their relationships to each other
            HourDisk.BaseTeeth              = 12;
            HourDisk.BaseTeethDriving       = true;
            HourDisk.BaseTeethDrivingGearID = Stepper.GearID;

            Stepper.BaseTeeth               = 105;
            Stepper.InnerTeeth              = 10;
            Stepper.BaseTeethDrivenBy       = true;
            Stepper.BaseTeethDrivenByGearID = HourDisk.GearID;
            Stepper.InnerTeethDriving       = true;
            Stepper.InnerTeethDrivingGearID = Intermediate1.GearID;

            Intermediate1.BaseTeeth               = 50;
            Intermediate1.BaseTeethDrivenBy       = true;
            Intermediate1.BaseTeethDrivenByGearID = Stepper.GearID;
            Intermediate1.BaseTeethDriving        = true;
            Intermediate1.BaseTeethDrivingGearID  = Intermediate2.GearID;

            Intermediate2.BaseTeeth               = 90;
            Intermediate2.BaseTeethDrivenBy       = true;
            Intermediate2.BaseTeethDrivenByGearID = Intermediate1.GearID;
            Intermediate2.BaseTeethDriving        = true;
            Intermediate2.BaseTeethDrivingGearID  = MoonDisk.GearID;

            MoonDisk.BaseTeeth               = 135;
            MoonDisk.BaseTeethDrivenBy       = true;
            MoonDisk.BaseTeethDrivenByGearID = Intermediate2.GearID;

            // create the movement
            Watch.movement.movementCase oMovementCase = new Watch.movement.movementCase();
            oMovementCase.BaseGears.Add(HourDisk);
            oMovementCase.BaseGears.Add(Stepper);
            oMovementCase.BaseGears.Add(Intermediate1);
            oMovementCase.BaseGears.Add(Intermediate2);
            oMovementCase.BaseGears.Add(MoonDisk);

            return(oMovementCase);
        }
Exemple #7
0
        public movementCase MakeMoonDisk(string sMoonDiskConfig)
        {
            Watch.movement.movementCase oMovementCase = new Watch.movement.movementCase();

            string GearType = string.Empty;
            int    GearID;
            string line = string.Empty;

            using (StreamReader reader = new StreamReader(sMoonDiskConfig))
            {
                while (!reader.EndOfStream)
                {
                    line     = reader.ReadLine();
                    GearType = line.Substring(line.IndexOf("=", 0) + 1);
                    line     = reader.ReadLine();
                    GearID   = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                    switch (GearType)
                    {
                    case "Base":
                    {
                        Watch.gears.BaseGear Base = new Watch.gears.BaseGear();
                        line          = reader.ReadLine();
                        Base.GearName = line.Substring(line.IndexOf("=", 0) + 1);

                        line = reader.ReadLine();
                        string DiskBaseUnitDriver = line.Substring(line.IndexOf("=", 0) + 1);
                        if (DiskBaseUnitDriver.Equals("hourly"))
                        {
                            Base.DiskBaseUnitDriver = gears.BaseGear._DiskBaseUnitDriver.hourly;
                        }
                        else if (DiskBaseUnitDriver.Equals("daily"))
                        {
                            Base.DiskBaseUnitDriver = gears.BaseGear._DiskBaseUnitDriver.daily;
                        }

                        Base.GearID = GearID;
                        line        = reader.ReadLine();
                        string Direction = line.Substring(line.IndexOf("=", 0) + 1);

                        if (Direction.Equals("Clockwise"))
                        {
                            Base.Rotation = gears.BaseGear._Rotation.Clockwise;
                        }
                        else if (Direction.Equals("AntiClockwise"))
                        {
                            Base.Rotation = gears.BaseGear._Rotation.AntiClockwise;
                        }

                        line                   = reader.ReadLine();
                        Base.BaseTeeth         = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        line                   = reader.ReadLine();
                        Base.BaseTeethDrivenBy = Convert.ToBoolean(line.Substring(line.IndexOf("=", 0) + 1));
                        line                   = reader.ReadLine();
                        if (Base.BaseTeethDrivenBy)
                        {
                            Base.BaseTeethDrivenByGearID = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        }
                        line = reader.ReadLine();
                        Base.BaseTeethDriving = Convert.ToBoolean(line.Substring(line.IndexOf("=", 0) + 1));
                        line = reader.ReadLine();

                        if (Base.BaseTeethDriving)
                        {
                            Base.BaseTeethDrivingGearID = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        }
                        oMovementCase.BaseGears.Add(Base);
                        break;
                    }

                    case "InnerGear":
                    {
                        Watch.gears.InnerGear Inner = new Watch.gears.InnerGear();
                        line           = reader.ReadLine();
                        Inner.GearName = line.Substring(line.IndexOf("=", 0) + 1);

                        line = reader.ReadLine();
                        string DiskBaseUnitDriver = line.Substring(line.IndexOf("=", 0) + 1);
                        if (DiskBaseUnitDriver.Equals("hourly"))
                        {
                            Inner.DiskBaseUnitDriver = gears.BaseGear._DiskBaseUnitDriver.hourly;
                        }
                        else if (DiskBaseUnitDriver.Equals("daily"))
                        {
                            Inner.DiskBaseUnitDriver = gears.BaseGear._DiskBaseUnitDriver.daily;
                        }


                        Inner.GearID = GearID;
                        line         = reader.ReadLine();
                        string Direction = line.Substring(line.IndexOf("=", 0) + 1);
                        if (Direction.Equals("Clockwise"))
                        {
                            Inner.Rotation = gears.BaseGear._Rotation.Clockwise;
                        }
                        else if (Direction.Equals("AntiClockwise"))
                        {
                            Inner.Rotation = gears.BaseGear._Rotation.AntiClockwise;
                        }

                        line                    = reader.ReadLine();
                        Inner.BaseTeeth         = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        line                    = reader.ReadLine();
                        Inner.InnerTeeth        = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        line                    = reader.ReadLine();
                        Inner.BaseTeethDrivenBy = Convert.ToBoolean(line.Substring(line.IndexOf("=", 0) + 1));
                        line                    = reader.ReadLine();
                        if (Inner.BaseTeethDrivenBy)
                        {
                            Inner.BaseTeethDrivenByGearID = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        }

                        line = reader.ReadLine();
                        Inner.BaseTeethDriving = Convert.ToBoolean(line.Substring(line.IndexOf("=", 0) + 1));
                        line = reader.ReadLine();
                        if (Inner.BaseTeethDriving)
                        {
                            Inner.BaseTeethDrivingGearID = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        }

                        line = reader.ReadLine();
                        Inner.InnerTeethDriving = Convert.ToBoolean(line.Substring(line.IndexOf("=", 0) + 1));
                        line = reader.ReadLine();
                        if (Inner.InnerTeethDriving)
                        {
                            Inner.InnerTeethDrivingGearID = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        }

                        line = reader.ReadLine();
                        Inner.InnerTeethDrivenBy = Convert.ToBoolean(line.Substring(line.IndexOf("=", 0) + 1));
                        line = reader.ReadLine();
                        if (Inner.InnerTeethDrivenBy)
                        {
                            Inner.InnerTeethDrivenByGearID = Convert.ToInt16(line.Substring(line.IndexOf("=", 0) + 1));
                        }

                        oMovementCase.BaseGears.Add(Inner);
                        break;
                    }
                    }
                }
            }

            return(oMovementCase);
        }