среда, 24 июля 2019 г.

Приоритет деталей в раскладке

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

Существование автоматической раскладки, или САР, продиктовано целями проекта о которых я уже ранее говорил. Я как автор всецело поддерживаю такой подход. Имею на руках примеры впечатляющих результатов, созданных с помощью данной системы. Но, мое виденье разделяют не все участники проекта. И поскольку я ценю их вклад, нам еще предстоит создать систему для ручной раскладки. Но это уже тема для другого поста.

Не считая периодических добавлений функций к САР, первым значительным изменением была Раскладка по времени. Это позволило значительно облегчить работу с системой.

Поскольку вся идея состоит в том что бы забрать в пользователя контроль над некоторыми функциями и передать его программе, это имеет свои негативные последствия. Те кто следил за Инстаграмом проекта возможно вспомнят жалобу "на самую большую раскладку".


Вот такой "проблемный" чертеж мне предоставила Эллина.


Особое внимание обратите на длинную деталь пояса.


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


Если логически подумать, то деталь пояса удобней укладывать первой. Уже это позволит улучшить раскладку. В качестве эксперимента второй деталью я сделал деталь спинки.

 
И вот такой результат был получен.

Как видите деталь пояса теперь размещается слева. А все потому что мы изменили приоритет в детали. 

Данная функция работает следующим образом. Каждой детали можно назначить приоритет от 0 до 99. Несколько деталей могу иметь один и тот же приоритет. Для деталей с одинаковым приоритетом действуют стандартные правила выбора порядка на основе площади. Детали с приоритетом 0 укладываются в последнюю очередь. Детали с меньшим порядковым номеров, кроме 0, размещаются первыми.


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

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

Очень важно получать обратную связь в таких случаях. Ведь без этого не удастся улучшить программу.

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

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