12 - 2008

О применении API T-FLEX CAD при разработке подсистемы автоматизированного проектирования раскроя материала

А.А. Петунин, И.С.Галкин

Современный рынок программного обеспечения автоматизации подготовки производства насыщен самыми разнообразными универсальными САПР, способными существенно облегчить работу конструктора и технолога. Вместе с тем, как известно, несмотря на огромное число такого рода инструментальных средств автоматизации инженерной деятельности, универсальные системы часто недостаточно эффективны для решения конкретной задачи пользователя. В то же время разработчики узкоспециализированных САПР сталкиваются с необходимостью реализации в рамках своих систем большого числа функций универсальных систем, например CAD-систем, поскольку в функциях геометрического моделирования и визуализации геометрических объектов нуждаются практически все современные специализированные САПР. Наличие в CAD-системах соответствующего инструмента API (Application Program Interface), ориентированного на создание пользовательских программных модулей, интегрированных с базовым программным продуктом, может существенно сократить время разработки специализированной САПР. Известная дилемма для разработчиков специализированных САПР: создавать полностью оригинальный программный продукт с собственным графическим редактором или взять за основу какую-либо популярную CAD-систему — все чаще решается сегодня в пользу второго подхода. Этому способствует, в частности, отказ от применения в современных API традиционных устаревающих методов функционального расширения базовой системы за счет встроенного макроязыка (или ограниченной библиотеки функций). Ориентация API прежде всего на обеспечение для пользователей богатых возможностей удобного подключения внешних модулей, написанных на языках высокого уровня, а также на работу в сети, существенно повышает потенциальные возможности применения универсальных систем в специфических предметных областях, несмотря на известные достоинства специализированных графических редакторов: простоту и отсутствие функциональной избыточности.

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

Пожалуй, наиболее популярной в настоящее время технологией создания API становится .NET-технология, разработанная компанией Microsoft. Стоит отметить, что данная технология не является единственной, позволяющей интегрировать внешние модули в систему. Большинство универсальных CAD-систем также поддерживают технологию COM (Component Object Model), позволяющую внедрять внешние объекты в приложение, но из-за сложности разработки СОМ-компонентов данная технология не получила широкого распространения.

Отличительными особенностями программного интерфейса, использующего .NET, в частности, являются:

  • высокая скорость выполнения программ;
  • высокая степень расширяемости и независимость от версии системы;
  • возможность использования различных языков и систем программирования.

В качестве примера расширения базовой функциональности универсальной CAD-системы приведем опыт разработки подсистемы САПР, предназначенной для автоматизированного проектирования раскроя материала на заготовки произвольной геометрической формы и ориентированной на условия единичного типа производства.

Для этих целей был использован API известной российской CAD-системы T-FLEX CAD. В 11-й версии этого программного продукта компании «Топ Системы» наряду с новыми возможностями САПР для автоматизации геометрического моделирования и конструкторского проектирования вновь расширен и функционал API. Это уже третья версия системы, в которой поддерживается технология .NET. Основным направлением развития функциональных возможностей API T-FLEX CAD 11-й версии стало расширение возможностей программирования интерактивных процедур, что весьма важно именно для решения сформулированной выше задачи по оптимизации раскроя материала.

Проблема оптимального раскроя материалов включает целый спектр различных оптимизационных и технологических задач, смысловое содержание которых заключается в минимизации расхода материала при получении из него на конкретном технологическом оборудовании заготовок известных форм и размеров. Наиболее сложной принято считать задачу раскроя материала на заготовки произвольной геометрической формы в условиях единичного производства. Для нее в настоящее время не существует математических алгоритмов, которые бы гарантировали получение оптимального решения. Разработка САПР раскроя для такой задачи предполагает сочетание автоматических и интер­активных методов проектирования. Интерактивный режим проектирования, как уже отмечалось, базируется на применении специализированных или универсальных графических редакторов. Функции специализированных редакторов в САПР раскроя, как правило, ограничены теми задачами, которые необходимы для описания простой геометрии объектов и моделирования интер­активных процедур, а также для формирования графических отчетов о результатах раскроя и для конвертирования геометрических данных в формат других САПР (например, САПР управляющих программ для станков с ЧПУ). Эти же функции нам необходимо реализовать средствами API.

Выбор T-FLEX CAD обусловлен тем, что она является полнофункциональной системой автоматизированного проектирования при самой привлекательной цене в своем сегменте. Система обладает всеми современными средствами автоматизации проектирования при разработке проектов любой сложности. Интерфейс прикладных программ T-FLEX CAD включает достаточно большое количество классов для работы с данной системой.

Подсистема раскроя должна работать в главном окне T-FLEX CAD и внешне ничем не отличаться от привычных окон системы. Решение задачи подразумевает как использование стандартного инструментария T-FLEX CAD, так и работу внешних модулей, написанных в какой-либо системе программирования с применением библиотек функций T-FLEX CAD (рис. 1).

Рис. 1. Общая схема решения задачи раскроя материала

Рис. 1. Общая схема решения задачи раскроя материала

В общем случае в решении задачи оптимального раскроя материала можно выделить три основных этапа:

1. Описание геометрии заготовок и материала и формирование задания на раскрой.

2. Автоматический раскрой.

3. Интерактивный раскрой.

Отлаженное геометрическое ядро T-FLEX CAD позволяет быс­тро описывать любую геометрию. Кроме того, в случае необходимости можно импортировать данные из других форматов файлов. Для проверки замкнутости и отсутствия самопересечений удобно использовать функцию штриховки. В связи с этим условимся штриховку (класс Area) считать деталью. Всё вышеперечисленное не требует программирования и может быть выполнено стандартными средствами T-FLEX CAD.

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

Рис. 2. Интеграция системы T-FLEX и подсистемы раскроя. Редактирование задания

Рис. 2. Интеграция системы T-FLEX и подсистемы раскроя. Редактирование задания

В классе Document есть контейнер внешних объектов (экземпляров класса ExternalObject), где мы сохраним ссылки на конкретные штриховки — элементы задания на раскрой. В стандартном документе T-FLEX CAD мы будем хранить задание на раскрой, представляющее собой список штриховок с необходимыми атрибутами.

API T-FLEX CAD 2D содержит шесть базовых классов для работы с геометрией:

  • 1-й — Circle;
  • 2-й — CircleArc;
  • 3-й — Ellipse;
  • 4-й — EllipseArc;
  • 5-й — LineGeometry;
  • 6-й — PolylineGeometry.

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

Таким образом, для оптимального раскроя материала необходимая графическая информация о геометрии заготовок и раскраиваемом материале может извлекаться непосредственно из T-FLEX-документа.

Результаты работы автоматических алгоритмов можно формировать непосредственно в документе T-FLEX CAD, для чего необходимо создать копии штриховок из задания и перемещать их согласно данным расчета.

Имея доступ к геометрии объектов в документе T-FLEX CAD, легко можно перемещать объекты по своему усмотрению, просто меняя координаты характерных точек объекта. Например, для перемещения окружности достаточно поменять координаты ее центра. Полученная схема раскроя представляет собой обычный T-FLEX-документ. За экспорт полученной схемы раскроя в другие форматы хранения данных (DWG, DXF, IGES и т.п.) или дальнейшую обработку результатов расчета отвечает T-FLEX CAD, которая обладает для этого всеми необходимыми функциональными возможностями.

Рис. 3. Результат работы автоматического раскроя

Рис. 3. Результат работы автоматического раскроя

На рис. 3 показан результат работы программы автоматического раскроя в среде системы T-FLEX CAD.

Как видно, программный комплекс T-FLEX CAD может либо использоваться в качестве графической среды для программного обеспечения автоматического раскроя материала, либо быть основой для разработки процедур интерактивного раскроя.

Для решения других задач пользователей подсистемы САПР раскроя T-FLEX CAD предусматривает дополнительные возможности расширения базовой функциональности продукта за счет применения API. С помощью интерфейса прикладных программ пользователи и разработчики могут также модифицировать пользовательский интерфейс, фокусируя его на выполнении тех или иных специализированных задач.

Узнать о возможностях программного комплекса T-FLEX подробнее или обратиться за помощью к сотрудникам отдела внедрения компании-производителя можно в офисе компании «Топ Системы» или на сайте topsystems.ru.

САПР и графика 12`2008