Открытая интеграция TechnologiCS 6 с CAD-системами
Интеграция с CADсистемами: постановка задачи
По многочисленным пожеланиям наших клиентов, которые используют разнообразные CADсистемы трехмерного моделирования и хотели бы получить простой, удобный и легко расширяемый инструмент для работы с 3Dмоделями в среде TechnologiCS, решено разработать расширение «Интеграция TechnologiCS с CADсистемами».
Расширение должно обеспечивать:
- поддержку нескольких CADсистем (Autodesk Inventor, SolidWorks, КОМПАС3D) с возможностью расширения этого списка как разработчиками, так и самими пользователями;
- единый легко расширяемый интерфейс для всех CADсистем;
- выгрузку документов TechnologiCS, входящих в состав 3Dмодели, по правилам TechnologiCS;
- заимствование 3Dмоделей из архива TechnologiCS в разрабатываемую 3Dмодель;
- автоматизированный процесс публикации состава 3Dмодели в архиве TechnologiCS с созданием соответствующих связей (входимости/применяемости).
Описание модели хранения данных
Работа с файлами 3Dмодели в среде TechnologiCS предполагает следование определенным правилам создания, связывания и выгрузки документов из архива TechnologiCS.
Попробуем разобраться, в чем эти правила заключаются.
Первое: работа со сборкой, чертежом и даже, возможно, с деталью в CADсистеме подразумевает, что это работа одновременно с несколькими файлами, связанными между собой. На рис. 1 приведены пример 3Dмодели и структура связей файлов, входящих в ее состав.
Из примера наглядно видно, что для открытия в CADсистеме сборки «СБ0» требуется наличие всех файлов, входящих в ее состав (полная входимость). То же самое можно сказать и о чертеже, который нужно открыть в CADсистеме для редактирования.
Рис. 1. 3D-модель сборки и структура файлов
Закономерен вопрос: как хранить файлы 3Dмодели в архиве TechnologiCS? Если собрать все их в одном документе, возникнет ряд сложностей:
- невозможно заблокировать только некоторые файлы;
- нельзя заимствовать конкретный файл в другую 3Dмодель.
Из этого следует, что один документ TechnologiCS должен содержать в своем файловом составе один файл CADсистемы. Пример документов и их файловый состав в архиве TechnologiCS приведены в табл. 1.
Таблица 1. Документы 3D-модели сборки и их файловый состав в архиве TechnologiCS
Документ/ |
Документ/ |
Файловый состав |
СБ0 |
3Dмодель |
СБ0.iam; *Structure.bmp |
СБ1 |
3Dмодель |
СБ1.iam |
СБ3 |
3Dмодель |
СБ3.iam |
ДЕ31 |
3Dмодель |
ДЕ31.ipt |
ДЕ42 |
3Dмодель |
ДЕ42.ipt; *ДЕ42.xls |
ДЕ32 |
3Dмодель |
ДЕ32.ipt |
ДЕ2000 |
3Dмодель |
ДЕ2000.ipt |
ДЕ11 |
3Dмодель |
ДЕ11.ipt |
ДЕ12 |
3Dмодель |
ДЕ12.ipt |
СБ2 |
3Dмодель |
СБ2.iam |
СБ4 |
3Dмодель |
СБ4.iam |
ДЕ41 |
3Dмодель |
ДЕ41.ipt |
Второе: чтобы повторить структуру связей файлов, входящих в состав 3Dмодели, необходимо установить связи между соответствующими документами в архиве TechnologiCS. После этого мы сможем легко и быстро определять, какой список документов необходимо выгрузить для открытия 3Dмодели. Пример того, как должны быть установлены такие связи, показан в табл. 2.
Таблица 2. Связи между документами в архиве TechnologiCS
Номер позиции |
Файл |
Документ/ наименование |
Документ/ |
Вид связи |
Применяемость/ |
1. |
СБ0.iam |
СБ0 |
3Dмодель |
3Dмодель |
СБ0 |
1.1. |
СБ1.iam |
СБ1 |
3Dмодель |
3Dмодель |
СБ0 |
1.1.1. |
ДЕ11.ipt |
ДЕ11 |
3Dмодель |
3Dмодель |
СБ1 |
1.1.2. |
ДЕ12.ipt |
ДЕ12 |
3Dмодель |
3Dмодель |
СБ1 |
1.1.2.1. |
ДЕ42.ipt |
ДЕ42 |
3Dмодель |
3Dмодель |
ДЕ12 |
1.1.3. |
СБ3.iam |
СБ3 |
3Dмодель |
3Dмодель |
СБ1 |
1.1.3.1. |
ДЕ31.ipt |
ДЕ31 |
3Dмодель |
3Dмодель |
СБ3 |
1.1.3.1.1. |
ДЕ42.ipt |
ДЕ42 |
3Dмодель |
3Dмодель |
ДЕ31 |
1.1.3.2. |
ДЕ32.ipt |
ДЕ32 |
3Dмодель |
3Dмодель |
СБ3 |
1.1.3.2.1. |
ДЕ2000.ipt |
ДЕ2000 |
3Dмодель |
3Dмодель |
ДЕ32 |
1.2. |
СБ2.iam |
СБ2 |
3Dмодель |
3Dмодель |
СБ0 |
1.2.1. |
ДЕ12.ipt |
ДЕ12 |
3Dмодель |
3Dмодель |
СБ2 |
1.2.1.1. |
ДЕ42.ipt |
ДЕ42 |
3Dмодель |
3Dмодель |
ДЕ12 |
1.2.2. |
СБ3.iam |
СБ3 |
3Dмодель |
3Dмодель |
СБ2 |
1.2.2.1. |
ДЕ31.ipt |
ДЕ31 |
3Dмодель |
3Dмодель |
СБ3 |
1.2.2.1.1. |
ДЕ42.ipt |
ДЕ42 |
3Dмодель |
3Dмодель |
ДЕ31 |
1.2.2.2. |
ДЕ32.ipt |
ДЕ32 |
3Dмодель |
3Dмодель |
СБ3 |
1.2.2.2.1. |
ДЕ2000.ipt |
ДЕ2000 |
3Dмодель |
3Dмодель |
ДЕ32 |
1.2.3. |
СБ4.iam |
СБ4 |
3Dмодель |
3Dмодель |
СБ2 |
1.2.3.1. |
ДЕ41.ipt |
ДЕ41 |
3Dмодель |
3Dмодель |
СБ4 |
1.2.3.1.1. |
ДЕ2000.ipt |
ДЕ2000 |
3Dмодель |
3Dмодель |
ДЕ41 |
1.2.3.2. |
ДЕ42.ipt |
ДЕ42 |
3Dмодель |
3Dмодель |
СБ4 |
Третье: следует отметить, что если при выгрузке на просмотр или редактирование каждого отдельного документа использовать стандартные команды Просмотр или Редактирование, файловый состав будет помещаться в свою уникальную папку. Это приведет к тому, что при открытии 3Dмодели CADсистема не найдет нужных файлов и попросит указать к ним путь. Такой способ открытия становится слишком медленным и сложным.
Для одновременной выгрузки всех документов, входящих в 3Dмодель, целесообразно использовать режим Связанные документы (полная входимость) в архиве TechnologiCS (рис. 2).
Рис. 2. Режим Связанные документы (полная входимость)
Режим позволяет выгружать набор связанных документов в контексте одного (головного) документа. Файловый состав всех выгруженных документов попадет в папку выгрузки головного документа, а это, в свою очередь, позволит открыть 3Dмодель в CADсистеме без дополнительного указания пути к каждому отдельному файлу.
Из сказанного следует, что совпадение имен файлов в связанных документах недопустимо.
Интеграция с CADсистемами: способ реализации
Исходя из поставленных задач и особенностей работы с файлами 3Dмодели, расширение решено разработать в виде набора скриптовых модулей TechnologiCS, которые дополняли бы возможности нового режима Связанные документы (полная входимость) и позволяли удобно работать с файлами трехмерных моделей.
Такой способ реализации позволяет оптимизировать или доработать скриптовые модули под требования пользователя, тем самым давая возможность в простом и понятном виде открывать на редактирование из среды TechnologiCS сложные 3Dмодели, а также создавать новые документы на основе файлов в соответствии с составом 3Dмодели.
Более того, в TechnologiCS 6 появилась возможность выполнять пользовательские функции в команде над типом файла (рис. 3). Это позволяет реализовать управление процессом загрузки/выгрузки документа и проводить пред и постобработку измененных документов в требуемом виде.
Рис. 3. Настройки команды над типом файла
Выгрузка документов 3Dмодели из архива TechnologiCS
Для выгрузки документов (головного и всех входящих в него с видом связи «3Dмодель») необходимо выполнить команду Редактировать с вложениями применительно к головному документу (рис. 4). Скриптовый модуль запустится, минуя стандартную процедуру выгрузки.
Рис. 4. Запуск команды Редактировать с вложениями
В появившемся окне пользователь может выбрать документы, файловый состав которых требуется выгрузить, и те документы, которые необходимо заблокировать (рис. 5). Файловый состав заблокированных документов в дальнейшем можно будет обновить.
Все файлы выгруженных документов попадают в папку выгрузки головного документа. Далее автоматически запускается соответствующая CADсистема и открываются выгруженные файлы 3Dмодели.
Рис. 5. Выбор документов для выгрузки и блокирования
Заимствование документов в 3Dмодель
Часто бывает, что в процессе разработки 3Dмодели возникает необходимость заимствовать другую, уже разработанную и опубликованную в архиве TechnologiCS 3Dмодель или ее компонент (один или несколько документов).
Для этого, используя базовый функционал команды Операции со связанными документами (рис. 6), следует добавить необходимые документы 3Dмоделей в список связанных документов (рис. 7).
Рис. 6. Запуск стандартной команды Операции со связанными документами
Рис. 7. Добавление документа из архива TechnologiCS в состав документов 3D-модели
Файловый состав добавленных документов попадет в папку выгрузки головного документа. Теперь эти файлы можно использовать в разрабатываемой 3Dмодели.
Создание/обновление документов на основе файлов 3Dмодели
Для обновления файлового состава заблокированных документов, а также формирования новых документов TechnologiCS на основе созданных компонентов (файлов CADсистемы), входящих в состав разрабатываемой 3Dмодели, необходимо выполнить над головным документом команду Обновить документ (рис. 8). В результате, минуя стандартную процедуру обновления документа, запустится скриптовый модуль.
Рис. 8. Запуск стандартной команды Обновить документ
Рис. 9. Интерфейс модуля обновления документа 3D-модели
Рис. 10. Интерфейс модуля обновления документа 3D-модели (после выполнения команды Создать вложенные документы/связи)
В появившемся окне (рис. 9) отображаются:
- в левой части — структура 3Dмодели в виде привычного дерева; папка, отображающая список измененных документов TechnologiCS, и папка с неопознанными файлами;
- в правой части — список, состоящий из головного документа и входящих в него выгруженных документов.
Остановимся подробнее на дереве файлов 3Dмодели. Это дерево строится на основе связей (входимостей), прочитанных через API CADсистемы, что дает возможность автоматически устанавливать связи между создаваемыми документами на основе файлов 3Dмодели.
Для создания документов необходимо выбрать из контекстного меню команду Создать вложенные документы/связи. После этого форма будет разделена на три части (рис. 10):
- левая часть остается без изменений;
- в правой верхней части отображается список файлов, на основе которых будут созданы новые документы. Если документ уже существует, устанавливается связь;
- в правой нижней части выводится список применяемости текущего файла: в какие именно файлы 3Dмодели данный файл входит.
На основе этого списка будут установлены связи между документами.
Для создания документов/связей используется соответствующая кнопка Создать документы/связи. При ее нажатии появляется стандартная форма создания документа (рис. 11).
Рис. 11. Стандартная форма создания документа в архиве TechnologiCS
Используя настройки видов документов, можно свести к минимуму рутинные операции по заполнению полей. При этом скриптовый модуль настроен так, чтобы поле Наименование автоматически заполнялось в соответствии с именем файла.
Таким образом последовательно, один за другим создаются новые документы или устанавливаются связи для существующих. Как результат, в архиве TechnologiCS будут созданы выбранные документы, в файловом составе будут содержаться соответствующие файлы 3Dмодели, а связи между документами будут установлены в соответствии со структурой 3Dмодели (рис. 12).
Рис. 12. Документы, созданные на основе файлов 3D-модели
Заключение
Хотелось бы отметить, что представленное расширение является базой для дальнейшей разработки и развития интеграции с CADсистемами. Очень важно, что всё это пользователи могут осуществлять самостоятельно, не прибегая к услугам разработчика.
Расширение поставляется на дистрибутивном диске TechnologiCS, содержит инструкцию по настройке и эксплуатации.
В перспективе планируется реализация следующих функций:
- интеграция с другими CADсистемами;
- разработка автоматизированного процесса создания состава изделия (спецификация) на основе состава 3Dмодели;
- передача конструкторских свойств 3Dмодели в TechnologiCS и обратно.