В настоящее время разработка технологического процесса сборки многокомпонентного изделия машиностроения в системах автоматизированного проектирования происходит вручную. Актуальность задачи автоматизации проектирования технологических процессов сборки была подробно обоснована в работах [1, 2], где также был проведен обзор последних публикаций в этой области.
В данной работе рассматриваются особенности составления алгоритма для проектирования реализуемых сборочных последовательностей и его программной реализации. В качестве рабочей модели для отладки работы программы используется модель устройства для обслуживания раскрываемых космических конструкций [2]. Модель состоит из 10 уникальных деталей, сборка которых осуществляется параллельно, при этом некоторые детали в комплекте повторяются. Это позволяет протестировать алгоритм не только на корректную генерацию параллельных сборочных операций, но и на учет повторяющихся элементов при выведении результирующей последовательности сборки, что делает его уникальным и перспективным. Одним из способов решения данной задачи является технология обнаружения подсборок, т. е. сборочных единиц внутри общей сборки изделия [3].
В качестве исходных данных для работы алгоритма используются базы данных конструктивных сборочных ограничений и связей между деталями, то есть соединения между ними. Совокупность данных о связях между деталями и конструктивных ограничениях, накладываемых на эти связи, позволяет определить допустимые сборочные последовательности, которые будут сформированы в ходе выполнения алгоритма. Выбор оптимальных сборочных последовательностей, из числа допустимых, будет осуществляться с помощью наложения дополнительных технологических ограничений, таких как время сборки, количество разъемных и неразъемных соединений, удобство монтажа, логистика производства и т. д.
Связи между деталями удобно представить в виде графа связей – матрицы, содержащей в себе информация о сборочных взаимосвязях для каждой детали. Деталь с наибольшем количество связей в сборке назначается базовой деталью, относительно которой будут выстраиваться параллельные сборочные операции. При последующем усовершенствовании создаваемой системы автоматизации проектирования последовательности сборки граф связей, а также фрагменты реализуемых сборочных последовательностей можно будет извлекать автоматически из CAD-файла сборки.
Конструктивные ограничения на сборку рассматриваемой модели, или, иначе говоря, ограничения геометрической разрешимости сборки формируются аналогично с тем, как это было реализовано в работе [4]. Каждому такому ограничению соответствует одна строка таблицы. Для формирования ограничений рассматриваются пары деталей, которые имеют между собой связь. Номера деталей формирующих пару указаны на одной строке в первых двух столбцах таблицы. В последнем столбце записан номер детали, которая не сможет быть собрана, если перед ней будут собраны детали из рассматриваемой пары.
Работа алгоритма начинается с извлечения исходных данных из заранее подготовленных файлов. Сразу после извлечения, происходит их подготовка к дальнейшим вычислениям, а также определение базовой детали. Следующим этапом работы алгоритма является составление начальных звеньев сборочной последовательности, состоящих из двух деталей. В ходе выполнения этой операции, формируются пары деталей, имеющих между собой связь. В момент формирования, каждая пара деталей в прямом и обратном порядке сравнивается с графом ограничений, и если она там присутствует, исключается из дальнейших вычислений. Это исключает большое количество нереализумых сборочных последовательностей, значительно оптимизируя алгоритм, снижая количество элементарных вычислений и необходимый объем памяти. Таким образом, после первой итерации алгоритма, мы получаем первые звенья реализуемых последовательностей, и их зеркальные отражения, например 1–2 и 2–1. С точки зрения реальной физической сборки последовательность деталей на этом этапе не имеет значения, однако в рамках математической модели верное расположение деталей даже на этом этапе является важным. При выполнении следующего шага некорректно сформированные первые звенья сборочной последовательности, также будут исключены. Во второй итерации следующая пара деталей формируется из последней детали первого звена сборочной последовательности и связанных с ней деталей графа связей. Новые пары сравниваются с графом ограничений только в прямом порядке, и исключается из расчета, если находится совпадение.
На данном этапе следующая, третья итерация алгоритма находится в разработке на уровне программных средств. При этом необходимо учитывать уже использованные детали, исключая из графа ограничений неактуальные, для каждой формируемой сборочной последовательности. Кроме того, начиная с этого этапа необходимо определить какие из последовательностей являются параллельным. Одним из способов такого определения может быть отслеживание появления в последовательности базовой детали, выбранной в начале работы алгоритма.
На данный момент реализация разработанного алгоритма производится на одном из языков программирования высокого уровня с широкими возможностями и относительной простой синтаксиса. При этом в качестве способов совершенствования алгоритма рассматриваются различные подходы к написанию программы, которые предполагают не только изменение структуры цикла, но и формата исходных данных об изделии.