Exemplo n.º 1
0
        /// <summary>
        /// Возвращает формат листа чертежа согласно ГОСТ 2.301.
        /// </summary>
        /// <param name="height">Высота листа в миллиметрах.</param>
        /// <param name="width">Ширина листа в миллиметрах.</param>
        /// <returns></returns>
        public static SheetSizeEnum GetSheetSize(int height, int width)
        {
            // Возвращает результат проверки соответствия размера формата листа требованиям ГОСТ 2.301.
            bool CheckSize(int checkValue, int standardValue)
            {
                bool result;

                if ((checkValue <= 150) & (System.Math.Abs(standardValue - checkValue) <= 1.5))
                {
                    result = true;
                }
                else if ((checkValue > 150) & (checkValue <= 600) & (System.Math.Abs(standardValue - checkValue) <= 2.0))
                {
                    result = true;
                }
                else if ((checkValue > 600) & (System.Math.Abs(standardValue - checkValue) <= 3.0))
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
                return(result);
            }

            SheetSizeEnum resultValue = SheetSizeEnum.NonStandard;

            foreach (SheetSizeEnum size in _heightList.Keys)
            {
                int standardHeight = _heightList[size];
                int standardWidth  = _widthList[size];
                // Проверяются альбомные и портретные ориентации листа.
                if ((CheckSize(height, standardHeight) & CheckSize(width, standardWidth)) ||
                    (CheckSize(height, standardWidth) & CheckSize(width, standardHeight)))
                {
                    resultValue = size;
                    break;
                }
            }
            return(resultValue);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Возвращает площадь указанного формата в квадратных миллиметрах.
 /// </summary>
 /// <param name="sheetSize">Формат листа чертежа согласно ГОСТ 2.301.</param>
 /// <returns></returns>
 public static int GetArea(this SheetSizeEnum sheetSize) =>
 sheetSize.Height() * sheetSize.Width();
Exemplo n.º 3
0
 /// <summary>
 /// Возвращает ширину указанного формата в миллиметрах (для альбомной ориентации).
 /// </summary>
 /// <param name="sheetSize">Формат листа чертежа согласно ГОСТ 2.301.</param>
 /// <returns></returns>
 public static int Width(this SheetSizeEnum sheetSize) =>
 _widthList[sheetSize];
Exemplo n.º 4
0
 /// <summary>
 /// Возвращает высоту указанного формата в миллиметрах (для альбомной ориентации).
 /// </summary>
 /// <param name="sheetSize">Формат листа чертежа согласно ГОСТ 2.301.</param>
 /// <returns></returns>
 public static int Height(this SheetSizeEnum sheetSize) =>
 _heightList[sheetSize];
Exemplo n.º 5
0
 /// <summary>
 /// Возвращает имя указанного формата.
 /// </summary>
 /// <param name="sheetSize">Формат листа чертежа согласно ГОСТ 2.301.</param>
 /// <returns></returns>
 public static string Name(this SheetSizeEnum sheetSize) =>
 System.Enum.GetName(typeof(SheetSizeEnum), sheetSize);