Example #1
0
        public override bool Equals(object obj)
        {
            if (Object.ReferenceEquals(obj, null))
            {
                return(false);
            }
            if (Object.ReferenceEquals(this, obj))
            {
                return(true);
            }

            азмерCОтклонениями размер = ( азмерCОтклонениями)obj;

            if (номинальныйРазмер != размер.номинальныйРазмер)
            {
                return(false);
            }
            if (нижнееОтклонение != размер.нижнееОтклонение)
            {
                return(false);
            }
            if (верхнееОтклонение != размер.верхнееОтклонение)
            {
                return(false);
            }
            return(true);
        }
        public static decimal ВычислитьРазмерСкобыПРизнош(азмерCОтклонениями размерОтверстия)
        {
            int квалитет;
            int номерИнтервала;

            ПроверитьРазмерОтверстияИНайтиКвалитетИНомерИнтервала(размерОтверстия, out квалитет, out номерИнтервала);

            decimal размерПробкиПРизнош = размерОтверстия.НаибольшийПредельныйРазмер() + Y1(квалитет, номерИнтервала) - Al1(квалитет, номерИнтервала);

            return(размерПробкиПРизнош);
        }
 private static void ПроверитьРазмерОтверстияИНайтиКвалитетИНомерИнтервала(азмерCОтклонениями размерОтверстия, out int квалитет, out int номерИнтервала)
 {
     ПроверитьНоминальныйРазмерОтверстия(размерОтверстия.НоминальныйРазмер);
     квалитет = ТаблицаДопусков.НайтиБлижайшийКвалитет(размерОтверстия);
     ПроверитьКвалитет(квалитет);
     if (квалитет == 17)
     {
         квалитет = 16;
     }
     номерИнтервала = НайтиНомерИнтервала(размерОтверстия.НаименьшийПредельныйРазмер());
 }
        public static азмерCОтклонениями ВычислитьРазмерСкобыНЕ(азмерCОтклонениями размерОтверстия, bool округлять = true)
        {
            int квалитет;
            int номерИнтервала;

            ПроверитьРазмерОтверстияИНайтиКвалитетИНомерИнтервала(размерОтверстия, out квалитет, out номерИнтервала);

            decimal номинальныйРазмер = (размерОтверстия.НаименьшийПредельныйРазмер() + Al1(квалитет, номерИнтервала) - H1(квалитет, номерИнтервала) / 2);
            decimal нижнееОтклонение  = H1(квалитет, номерИнтервала);
            decimal верхнееОтклонение = 0;

            if (округлять)
            {
                номинальныйРазмер = ОкруглитьРазмерДоПоловиныМикрометраВМеньшуюСторону(номинальныйРазмер);
            }

            return(new  азмерCОтклонениями(номинальныйРазмер, нижнееОтклонение, верхнееОтклонение));
        }
 public static int НайтиБлижайшийКвалитет(азмерCОтклонениями размерCОтклонениями)
 {
     return(НайтиБлижайшийКвалитет(размерCОтклонениями.НоминальныйРазмер, размерCОтклонениями.Допуск()));
 }
 public static int НайтиКвалитетТочноИлиСтроже(азмерCОтклонениями размерCОтклонениями)
 {
     return(НайтиКвалитетТочноИлиСтроже(размерCОтклонениями.НоминальныйРазмер, размерCОтклонениями.Допуск()));
 }