Назад в библиотеку

Проектирование трубопроводов в Solid Edge

Автор: Павел Демидов
Источник: Проектирование трубопроводов в Solid Edge //САПР и графика 2016. Вып. 5. с. 8-10.

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

Тогда на помощь специалистам приходит интерфейс прикладного программирования (API), то есть некоторый набор готовых классов, процедур, функций, структур и констант, призванный упростить создание пользовательских программных модулей, интегрированных с базовым программным продуктом. Наличие в CAD­системах API позволяет осуществлять тонкую настройку системы проектирования и может существенно сократить время разработки дополнительных программных компонентов к уже имеющейся на предприятии САПР. Так, базовая функциональность КОМПАС­3D легко расширяется за счет приложений для проектирования радиоэлектронной аппаратуры и электрооборудования, деталей машин, трубопроводов, металлоконструкций, зданий и сооружений различного назначения.

Однако, что делать, если ни одна из имеющихся систем автоматизированного проектирования не обладает должным спектром функциональных возможностей для ее полноценного использования специалистами? Выход есть — разработать собственную узкоспециализированную САПР!

Интерфейсы программирования приложений КОМПАС и C3D: что общего и в чем различие

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

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

Пример черного ящика.

Рисунок 1 – Пример черного ящика.

Физически API­функции представляются в виде отдельного программного модуля, который динамически подключается извне к основному проекту в формате DLL­библиотеки. Итак, что же такое «API геометрического ядра»?

Прежде всего — это набор всех экспортных методов ядра, которые использует в своей работе система автоматизированного проектирования, плюс внутренние объекты ядра в исходном виде: точки, матрицы, системы координат, кривые, поверхности, тела, вспомогательные объекты и др.

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

Таким образом:

Ниже приведен пример реализации на языке Python изменения цвета граней для простого макроса for _ in _ range (рис. 2):

Пример реализации на языке Python макроса.

Рисунок 1 – Пример реализации на языке Python макроса.

Таким образом, получаем малую автоматизацию. Так, с помощью макроса мы можем выбрать сразу группу граней и окрасить их в цвет образцовой грани, тогда как, пользуясь стандартными средствами КОМПАС­3D, нам пришлось бы кликать в каждую грань, вызывать ее свойства, выбирать нужный цвет и применять заданные параметры.

Построения тела выдавливания на языке C++ средствами API C3D.

Рисунок 3.1 – Построения тела выдавливания на языке C++ средствами API C3D

Построения тела выдавливания на языке C++ средствами API C3D.

Рисунок 3.2 – Построения тела выдавливания на языке C++ средствами API C3D

То есть использование API C3D позволяет работать с базовыми объектами, лежащими в предметной области геометрического моделирования, и выполнять различные операции, а также преобразования над ними.

Инструкция по применению: API КОМПАС или API C3D?

Исходя из функциональных особенностей интерфейсов прикладного программирования системы КОМПАС­3D и лежащего в основе данной САПР геометрического ядра C3D, складывается набор признаков, по которым разработчики могут однозначно определить необходимость использования каждого из этих вспомогательных программных инструментов для успешного достижения поставленных перед ними целей и задач.

Так, для разработки программ, расширяющих возможности стандартного комплекса КОМПАС­3D и являющихся неким плагином или дополнением к нему, достаточно использовать API КОМПАС. Причем никаких новых способностей в конечный продукт за счет API, будь то разработка необычных способов задания примитивов или построение нестандартных типов 2D­ и 3D­геометрии, не может быть привлечено. Для функционирования такого программного обеспечения необходимо иметь предустановленную лицензионную версию системы КОМПАС­3D.

Взаимодействие САПР КОМПАС­3D  с различными API.

Рисунок 4 – Взаимодействие САПР КОМПАС­3D с различными API.

В случае если разработчику требуется в краткие сроки создать уникальный программный продукт без привязки к существующим САПР, необходимо использовать API C3D. Речь идет о создании специализированных CAD/CAM/CAE­систем или других типов инженерного ПО, функционирование которых связано с построением и обработкой геометрически точных 2D­ и 3D­моделей.

На рис. 4 приведено наглядное изображение, иллюстрирующее, каким образом САПР КОМПАС­3D взаимодействует с различными API.

Пользователи C3D об использовании ядра в разработке их собственного программного обеспечения. Что влияет на выбор?

Александр Васильевич Щекин из Мордовского государственного университета им. Н.П. Огарева занимается разработкой модулей ЧПУ для системы трехмерного моделирования КОМПАС­3D:

Оба приложения работают с трехмерной моделью детали, созданной непосредственно в КОМПАС­3D, умеют автоматически рассчитывать траектории обработки, генерировать управляющую программу в G­коде и визуализировать обработку в окне системы.

Выбор, понятный каждому!

Итак, использование геометрического ядра C3D в процессе разработки программного обеспечения позволяет создавать принципиально новые кроссплатформенные CAD­, CAM­ и CAE­системы без привязки к действующим САПР, проектировать мобильные и облачные приложения, а также дополнять функционал уже имеющихся программ возможностями 3D­ и 2D­моделирования, задания параметрических ограничений и конвертации данных.

В то же время, когда необходимо дополнить и доработать систему трехмерного моделирования КОМПАС­3D, а также разработать новый программный модуль для действующих пользователей этой системы, достаточно использовать API КОМПАС­3D.