Началось все с поиска публикаций. В тех публикациях, в которых решались задачи раскроя-упаковки, в основном были генетические алгоритмы, эволюционные алгоритмы в комбинации с генетическими, в одном месте упоминалось об использовании нейронных сетей, были еще варианты. Свою задачу один в один, которая решалась бы генетическим алгоритмом, не нашел, поэтому то, что я сделал - это результат комбинации разных источников, адаптированный к своей специфике и направленный на цель получить приемлемое для практики решение. Интересно было попробовать применить генетические алгоритмы для решения близкой к известным мне аналогам задачи и посмотреть, что из этого выйдет. RL-алгоритмы, применяемые для решения таких задач, не изучал и поэтому утверждать, что задачи раскроя-упаковки не решаются эффективно RL-алгоритмами не берусь.
Благодарю за ценные замечания! Исходя из них, объясню предпосылки написания своей статьи.
Изначально я опирался на свой опыт. В двух организациях я сталкивался с такими задачами: имеется комплект разнородной аппаратуры в коробках, которые надо упаковать в деревянные ящики нестандартных типоразмеров. Ящики либо выбираются из уже спроектированных, либо проектируются под нужные размеры. Таких ящиков на комплекс немного - скажем, штук 5. В остальные ящики укладываются разнородные по размерам грузы не в коробках - антенны, металлоконструкции и др. Спутниковые антенны большой массы и габаритов - это отдельная тема, ими я не занимался. Конечно, есть ГОСТы и ОСТы на ряды типоразмеров ящиков, но я предполагаю, что в данной ситуации они не дадут особого преимущества. Комплексы, как правило, единичные или мелкосерийные, что также накладывает требования на глубину оптимизации задачи.
В статье я ставил задачу описать движок для компоновки. Предполагается, что логика компоновки, требования к которой Вы перечислили, решается в другой программе.
В публикациях, которые я изучал по данному вопросу, не указан полный объем логики компоновки, о котором Вы писали. Упоминались, разве что, отдельные вопросы. Например, допустимая ориентация упаковываемых изделий.
Есть программа для решения задачи компоновки, не сочтите за рекламу (http://www.packer3d.ru/program/functional). Там грузы в коробках упаковываются сразу в вагоны, фуры и т.п. Она имеет далеко не всю функциональность, что Вы перечислили, если судить по данным, представленным на ее сайте.
Добавлю ещё, что вывод об одинаковой трудоемкости сделан для допущения, что понимание того как программировать уже имеется, и не надо искать, например, подходящие методы объектной модели SolidWorks. На освоение нового уходит дополнительное время. В этом плане шаблоны спецификации и ведомости покупных изделий на поле чертежа будут проще.
В контексте того, как я Вас понял, попробую сравнить 2 идеи. Я немного вольно интерпретирую и разовью Вашу логику, опираясь на описание методики, которую использовал мой коллега для решения этой же задачи.
Идея, рассматриваемая в статье:
Имеется 35 шаблонов 3D-моделей сборок и связанных с ними чертежей.
3D-модель сборки конфигурируется через связку уравнений и таблицы параметров в файле Excel.
Файлы спецификации и ведомости покупных изделий генерируются автоматически через доступ к API Excel.
Идея, производная от Вашей:
Имеется некоторе количество шаблонов 3D-моделей сборок и связанных с ними чертежей. Точно посчитать количество не могу, т.к. гвозди, указываемые в спецификации, могут различаться по числу позиций в зависимости от толщины планок. И это может дать свой набор комбинаций шаблонов.
3D-модель сборки конфигурируется через связку уравнений и таблицы параметров в файле Excel.
Файлы спецификации и ведомости покупных изделий создаются на отдельных листах сборочного чертежа. Переменные данные в спецификацию вытаскиваются через ссылки на свойства файла 3D-модели сборки. При этом надо описать спец
На мой взгляд, примерно одинаковые по трудоемкости реализации идеи.
Была подобного рода проблема при работе над этой программой, правда не с API, а с таблицей параметров 3D-модели сборки. При переходе с SolidWorks 2013 на (если не ошибаюсь) 2017 или 2019 пропадала возможность редактировать взаимосвязи в таблице параметров. Хоть и делаешь все по справке SolidWorks, но не все взаимосвязи можно задать. Потом после переработки 3D-модели сборки и таблицы параметров результат получился такой, что, как в SolidWorks 2013, так и в SolidWorks 2019 все работает в плане перестроения модели.
Началось все с поиска публикаций. В тех публикациях, в которых решались задачи раскроя-упаковки, в основном были генетические алгоритмы, эволюционные алгоритмы в комбинации с генетическими, в одном месте упоминалось об использовании нейронных сетей, были еще варианты. Свою задачу один в один, которая решалась бы генетическим алгоритмом, не нашел, поэтому то, что я сделал - это результат комбинации разных источников, адаптированный к своей специфике и направленный на цель получить приемлемое для практики решение. Интересно было попробовать применить генетические алгоритмы для решения близкой к известным мне аналогам задачи и посмотреть, что из этого выйдет. RL-алгоритмы, применяемые для решения таких задач, не изучал и поэтому утверждать, что задачи раскроя-упаковки не решаются эффективно RL-алгоритмами не берусь.
Благодарю за ценные замечания! Исходя из них, объясню предпосылки написания своей статьи.
Изначально я опирался на свой опыт. В двух организациях я сталкивался с такими задачами: имеется комплект разнородной аппаратуры в коробках, которые надо упаковать в деревянные ящики нестандартных типоразмеров. Ящики либо выбираются из уже спроектированных, либо проектируются под нужные размеры. Таких ящиков на комплекс немного - скажем, штук 5. В остальные ящики укладываются разнородные по размерам грузы не в коробках - антенны, металлоконструкции и др. Спутниковые антенны большой массы и габаритов - это отдельная тема, ими я не занимался. Конечно, есть ГОСТы и ОСТы на ряды типоразмеров ящиков, но я предполагаю, что в данной ситуации они не дадут особого преимущества. Комплексы, как правило, единичные или мелкосерийные, что также накладывает требования на глубину оптимизации задачи.
В статье я ставил задачу описать движок для компоновки. Предполагается, что логика компоновки, требования к которой Вы перечислили, решается в другой программе.
В публикациях, которые я изучал по данному вопросу, не указан полный объем логики компоновки, о котором Вы писали. Упоминались, разве что, отдельные вопросы. Например, допустимая ориентация упаковываемых изделий.
Есть программа для решения задачи компоновки, не сочтите за рекламу (http://www.packer3d.ru/program/functional). Там грузы в коробках упаковываются сразу в вагоны, фуры и т.п. Она имеет далеко не всю функциональность, что Вы перечислили, если судить по данным, представленным на ее сайте.
Добавлю ещё, что вывод об одинаковой трудоемкости сделан для допущения, что понимание того как программировать уже имеется, и не надо искать, например, подходящие методы объектной модели SolidWorks. На освоение нового уходит дополнительное время. В этом плане шаблоны спецификации и ведомости покупных изделий на поле чертежа будут проще.
В контексте того, как я Вас понял, попробую сравнить 2 идеи. Я немного вольно интерпретирую и разовью Вашу логику, опираясь на описание методики, которую использовал мой коллега для решения этой же задачи.
Идея, рассматриваемая в статье:
Имеется 35 шаблонов 3D-моделей сборок и связанных с ними чертежей.
3D-модель сборки конфигурируется через связку уравнений и таблицы параметров в файле Excel.
Файлы спецификации и ведомости покупных изделий генерируются автоматически через доступ к API Excel.
Идея, производная от Вашей:
Имеется некоторе количество шаблонов 3D-моделей сборок и связанных с ними чертежей. Точно посчитать количество не могу, т.к. гвозди, указываемые в спецификации, могут различаться по числу позиций в зависимости от толщины планок. И это может дать свой набор комбинаций шаблонов.
3D-модель сборки конфигурируется через связку уравнений и таблицы параметров в файле Excel.
Файлы спецификации и ведомости покупных изделий создаются на отдельных листах сборочного чертежа. Переменные данные в спецификацию вытаскиваются через ссылки на свойства файла 3D-модели сборки. При этом надо описать спец
На мой взгляд, примерно одинаковые по трудоемкости реализации идеи.
Была подобного рода проблема при работе над этой программой, правда не с API, а с таблицей параметров 3D-модели сборки. При переходе с SolidWorks 2013 на (если не ошибаюсь) 2017 или 2019 пропадала возможность редактировать взаимосвязи в таблице параметров. Хоть и делаешь все по справке SolidWorks, но не все взаимосвязи можно задать. Потом после переработки 3D-модели сборки и таблицы параметров результат получился такой, что, как в SolidWorks 2013, так и в SolidWorks 2019 все работает в плане перестроения модели.