
В чем заключается преимущество DriveWorks Pro перед другими программными комплексами автоматизации семейства SOLIDWORKS? Какими инструментами достигается высокий уровень автоматизации и на что способен SOLIDWORKS вместе с DriveWorks?
Прежде чем начать проект автоматизации необходимо продумать базовую цепочку процесса автоматизации: «Какие вводные данные?», «Как произвести расчет необходимых параметров?», «Каков результат?».

Это основные 3 вопроса, которые справедливы практически на всем жизненном цикле проекта автоматизации. При более глубоком погружении в проект неизбежно будут возникать локальные вопросы на определенных этапах.
Разберем пример:

Есть металлическая пластина с определенной геометрией и параметрами. В результате автоматизации возникает вопрос: сделать дубль данного файла 3D модели с измененными параметрами и при необходимости проводить динамическую/статическую замену модели или заранее создать множество конфигураций базовой модели и на основе правил переключатся между ними. При этом теряется большой объем данных модели для возможного изменения параметров в конкретной конфигураций.
Задача решается, если таких моделей немного, но представим, что таких моделей может быть намного больше и мы не знаем заранее о параметрах новой конфигурации.
Такая задача достаточно реальная и ее решение даст большую свободу для дальнейшего понимания процесса автоматизации.
DriveWorksPro предлагает следующие инструменты для решения: «Дополнительные задачи генерации», «Макросы», «Таблицы» или «Таблицы расчетов».

Логика процесса, следующая: решением для создания неограниченного количества разнообразных конфигураций, как и в SOLIDWORKS, является таблица. Таблица данных – основной элемент процесса автоматизации. Она может формироваться вручную или на основе правил автоматически при помощи макросов. Для передачи данных таблиц в модель SOLIDWORKS и создания на ее основе конфигураций есть инструмент «Дополнительные задачи генерации».
«Дополнительные задачи генерации» - позволяют запускать дополнительные задачи автоматизации для деталей, сборок и чертежей. К функциям «задач генерации» также относится и циклы. «Циклы» - позволяют последовательно задачам проходить через компоненты или чертежи, при этом каждая итерация дает уникальные результаты. Это позволяет DriveWorks выполнять генеративное моделирование.

«Макросы» – еще один неотъемлемый элемент автоматизации. Макросы в DriveWorks отличаются от макросов в SOLIDWORKS тем, что описывают логику происходящего внутри проекта. Про макросы можно и нужно говорить, и это будет в следующих публикациях. . Макрос будет создавать данную таблицу конфигураций.

Рассмотрим практическую сторону вопроса.
Вот пример проекта, который продемонстрирует весь вышеизложенный процесс на практике:

Видим пользовательскую форму, на которой есть 2 таблицы. В них есть 3 заранее установленные строки. Данные таблицы транслируются из соответствующего раздела «Таблицы» проекта.
Введем различные значения в 4 поле и нажмем на кнопку «Создать конфигурацию».

В таблице «Новая таблица конфигураций» появилась 4-ястрока с ранее заданными параметрами.
Таким образом можно создать любое количество строк в данной таблице.
Перейдем к инструменту «Дополнительные задачи генерации»:

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

Для того, чтобы вставить из определенной ячейки таблицы значение в правило модели в DriveWorks есть специальная функция: TableGetValue. Нужно указать: таблицу, индекс столбца и индекс строки. В данном проекте количество столбцов статично, изменяется только количество строк. Для того, чтобы правильно определить текущий цикл создания модели, в DriveWorks есть специальная функция отслеживания текущего цикла: DWCurrentReleasetLoopIndex. По умолчанию, для данной функции, значение будет «0». Для определения строки и будет использоваться данная функция.

Вернемся к запущенному проекту. Для отладки проекта в DriveWorks существует специальный режим «Test mode», благодаря которому можно поэтапно отследить весь процесс прохождения автоматизации. Перейдем в данный режим.

Мы видим все расчетные параметры. Здесь можно отследить правильность полученных данных. Запустим создание модели и проверим, создается ли новая конфигурация или нет.

В режиме отладки видно все этапы создания модели. Можем отследить циклы и значения, которые передаются в модель в определенном цикле. Видим, что 2 цикла прошли без ошибок и значения все переданы корректно. Запустим проект до конца.

Можно увидеть, что все 4 цикла прошли успешно и все значения переданы корректно.
Стоит сравнить результаты с первоначальной таблицей конфигураций:



Все сходится.
На этом примере в подробностях виден данный процесс. Весь этот процесс можно произвести полностью автоматически. Программа может сама определить количество новых конфигураций и нужно ли их создавать.
Этот процесс можно применить также к файлам сборки и не ограничиваться только созданием конфигураций. Инструменты «Дополнительных задач генерации» значительно расширяют возможности автоматизации процесса проектирования.
Рассмотрим пример работы инструмента «Дополнительной задачи генерации» со сборкой.
В этом примере посмотрим, как происходит передача данных на прямую, без предварительного расчета. Рассмотрим задачу: есть основание для шкафчика, боковые стенки, верхнее/нижнее основание и задняя стенка. Автоматизация будет заключатся в том, что в данном шкафчике может не быть заранее определенно количество полок или их не будет вообще.

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

Сразу видим, что циклы применяются только к сборочной единице. Видим какие функции используются для настройки проекта:
- «Вставить компонент»
- «Сопряжение совпадение»
- «Сопряжение совпадение!
- «Сопряжение расстояние»
- «Масштабирование по окну»

Рассмотрим особенности и настройки каждой функции.
1. «Вставить компонент» - вставляет компонент в сборку (детали/сборки).
В настройках данной функции нужно указать конфигурацию компонента, который будет вставлен, полный путь к файлу для вставки.

Стоит отметить, что для того, чтобы программа правильно определила полный путь к файлу можно использовать функцию: «FsGetFullPathGroupContent». Данная функция разрешает путь к файлу относительно папки содержимого группы.
2 . Пункт 2 и 3 «Сопряжение совпадение» - создает сопряжение совпадение между указанными плоскостями компонентов сборки.

При построении правила для имен плоскостей оно должно ссылаться на сгенерированное имя файла, а не на мастер файл. Правило должно быть построено в виде: [Имя плоскости] @ [Сгенерированное название модели]-[номер экземпляра].
Если плоскость находится в сборке верхнего уровня, требуется только имя плоскости.
Правило должно включать номер экземпляра, даже если в сборке есть только один экземпляр компонента.
Плоскости сопряжения могут иметь несколько уровней глубины. Например, правило:
[Имя плоскости] @ [Сгенерировано название модели] - [номер экземпляра] @ [Сгенерировано суб суб имя сборки] - [номер экземпляра] @ [Сгенерировано суб имя сборки] - [номер экземпляра]
будет действительно.
3. «Сопряжение расстояние» -задача создания сопряжения расстояния создаст сопряжение расстояния в сборке между опорными плоскостями в каждом компоненте.

Помимо указания опорных плоскостей нужно указать величину расстояния.
Рассмотрим пользовательскую форму.

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

По завершению первого цикла видно, что все задачи выполнены корректно, без ошибок.
Посмотрим на созданные сопряжения.

Мы видим, что новое сопряжение ссылается на указанные базовые плоскости. Второй цикл проходит точно также.

Конечный результат можно увидеть на скриншоте выше.
Вывод:
1. При помощи расширенных функций программного обеспечения DriveWorks Pro можно автоматизировать и более детально настроить свой проект.
2.Познакомились с назначением инструмента «Дополнительные инструменты генерации».
3. Увидели какой путь проходит значение из пользовательской формы в 3D модель.
4. Познакомились с циклами задач в DriveWorks.
Главное, при помощи циклов можно решить большинство задач автоматизации и упростить работу над первоначальной настройкой 3D модели. Не обязательно иметь полностью «собранную» модель перед тем, как начать процесс написания правил автоматизации данной модели.