воскресенье, 24 января 2021 г.

Создание мультиразмерных таблиц

Сегодня мы поговорим о создании мультиразмерных таблиц на примере четырех ГОСТов. В этом посте вы узнаете об трудностях с которыми мы столкнулись и как пришлось улучшить Валентину для преодоления этих трудностей.

Для примера мы взяли четыре ГОСТа: 

Сами ГОСТы уже устарели, но вот данные которые они предлагают все еще имею некоторую ценность для нас. Ведь их все так же можно использовать для тестирования выкроек. В данном случаи нас дополнительно интересовала возможность протестировать последние изменения в формате мультиразмерных таблиц

Если вы попытаетесь найти эти стандарты в интернете у вас это достаточно легко выйдет. Трудности наступят на этапе конвертации данных в формат мерок Валентины. Данные наборы данных интересны тем, что сами таблицы это самый сложный из всех возможных вариантов таблиц. 

  1. Они имеют три измерения: Рост, Размер и Обхвати Талии (Бедер). 
  2. Не описываются только с использованием коэффициентов приращений и требуют расчетов коррекций.
  3. Вместо удобных названий мерок приводятся их порядковые номера, что доставляет дополнительные неудобства, заставляя обращаться к отдельной табличке.
  4. Таблицы имеют сложную конфигурацию и требуют настройки ограничений для измерений.
Вообщем на лицо идеальный пример таблиц с практически полным набором используемых функций. Разве что метки не понадобились.

С первого же взгляда стало понято, что человеку конвертировать такой масив данных в ручную не выйдет за сколько то адекватный отрезок времени. Но где человек не справиться прекрасно справиться машина. Так пускай она и займется нашими таблицами. Достаточно быстро был написан алгоритм, который позволил нам автоматически конвертировать данные массивы данных. Детали реализации мы, пожалуй, упустим, отметим только, что наш скрип умеет определять начальные параметри измерений и их количество. Рассчитывает ограничения для всех измерений. Но самое главное он умеет рассчитывать приращения и коррекции для всех мерок и комбинаций измерений. Завораживающие зрелище, конечный результат просто поражает.

Ну а теперь о самом главном, о трудностях. Всего их было три.

Дробный шаг измерений

Как вам уже должно быть известно в новом формате мерок вы можете выбрать шаг от 1 до 8 если при делении получается целое число. Стандарты ГОСТ 17916-86 и ГОСТ 17917-86 не вписывались в эту схему. Шаг третьего измерения в обоих стандартах 3 см. Что в полуобхвате равняется 1.5 см. По этому отныне количество возможных значений для шага измерения увеличено. Шаг самой сетки уменьшен с 1 до 0.5 см. На практике это 1, 1.5, 2, 2.5, 3, 3.5 ... 8.

Улучшение диалога ограничений измерений


Накладывая ограничения для измерения, вы столкнетесь вот с такой таблицей. Она должна вам уже быть знакомой с предыдущего раза если вы уже ознакомились с изменениями для нового формата. Поскольку измерения работают по принципу матрешки каждое последующее ограничено предыдущими. Именно по этому высока вероятность, что часть комбинаций для измерения просто не будет существовать из за ограничений на предыдущем уровне. То есть мы явно указали, что для Роста 116 существуют только пять доступных значений размеров со всего диапазона (смотри рисунок ниже). В предыдущем варианте все строки, не зависимо от того как мы будем ограничивать на предыдущих уровнях, были доступны для редактирования. Это не имеет никакого смысла, а так же сбивает с толку. Как видите теперь Tape корректно отображает недоступные значения при этом строки становятся недоступными для редактирования. И становиться прекрасно визуально видно с какими строками теперь возможна работа.

Исключение значений


Ну и последнее изменение. А именно возможность исключения отдельных значений из диапазона ограниченного минимальным и максимальным значениями. Вам уже наверняка известно, что в Tape у вас есть возможность ограничить минимальное и максимальное значение диапазона значений для измерения. Но в стандартах обнаружился еще один нюанс. Часть значений там идут с выпадами. Значения в таблице могут пропускать одно или несколько значений измерения. По этому нам тоже пришлось добавить эту функцию для того что бы в точности повторить данные таблицы. 

В зеленых квадратиках мы выделили для вас примеры таких исключений. Для того что бы исключить значение вызовите контекстное меню правой кнопкой мыши и выберите пункт Исключить. Проделайте ту же операцию для включения значения обрано. Контекстное меню доступно только для значений в диапазоне от минимального до максимального значений. Если после исключения строка не будет иметь хотя бы одно допустимое значение, то будут использованы значения в диапазоне от минимального до максимального без учета исключений.

Возможность добавления исключений распространяться так же и на первое измерение.

Данные улучшения будут доступны в тестовой версии 0.7.42. Которая выйдет на днях.

Комментариев нет:

Отправить комментарий