Материал: Создание автоматизированного графического комплекса по расчету опор и элементов корпуса редуктора

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Российская компания Аскон предлагает пользователям разрабатывать собственные приложения, используя Компас API - набор динамически подключаемых библиотек (DLL), которые можно использовать из любой стандартной системы программирования для Windows на языках С/С++, Delphi, Visual Basic. (Рис. 8)

Рисунок 8 - Создание прикладных библиотек с помощью API

При выборе среды вывода чертежей для модуля «Редуктор» предпочтение было отдано отечественному программному продукту Компас, так как API позволяет использовать язык программирования Delphi для разработки приложений.

2.6 Создание прикладной библиотеки для КОМПАС-3D

Прикладная библиотека для КОМПАС-3D представляет собой обычную DLL (Dynamic Link Library - динамически подключаемая библиотека Windows), только с расширением RTW (Рисунок 8). В разработанной программе файл готовой библиотеки хранится в папке «Редуктор_RTW».

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

.   Запускаем Delphi и создаем шаблон DLL-библиотеки, который предлагается по умолчанию. Для этого выполняем команду File → New → Other. Появляется окно New Items (рис. 9) со всевозможными шаблонами Windows-приложений и файлами Delphi (исполняемый EXE-файл, консольное приложение, форма или компонент Delphi и пр.). На вкладке New этого окна выбираем пункт DLL Wizard и нажимаем кнопку OK.

Рисунок 9 - Диалоговое окно New Items.

После нажатия на кнопку «ок» создастся файл-заготовка проекта, начинающийся со служебного слова library (обычные модули, с которыми обычно работает программист, начинаются со служебного слова unit).

.   Теперь нужно связать этот файл с библиотеками типов КОМПАС, чтобы можно было пользоваться интерфейсами API. Выполняем команду Project → Import Type Library, затем из списка Import Type Library появившегося окна выбираем пункт Kompas6API5 (Version 1.0). При этом в текстовом поле под списком должен отобразиться путь к файлу библиотек типов КОМПАС (например, C:\Program Files\ASCON\KOMPAS-3D V12\Bin\kAPI5.TLB). Выбрав указанный пункт, нажимаем кнопку Create Unit (рис. 10).

Рисунок 10 - Подключение библиотеки типов КОМПАС к Delphi

За несколько секунд Delphi сгенерирует PAS-файл с именем Kompas6API5-TLB, который будет иметь описание всех интерфейсов API 5. Для удобства дальнейшего использования изменяем имя (заголовок) скомпилированного модуля (автоматически добавленного в проект библиотеки), с Kompas6API5-TLB на ksTLB и сохраняем проект в папку Редуктор_RTW\dcu.

3. Закрываем окно, в котором был открыт файл Kompas6API5-TLB.pas, в редакторе кода Delphi и изменяем имя файла на ksTLB.pas. Сгенерированный файл Kompas6API5-TLB.pas с интерфейсами размещается в каталоге Imports папки, в которой установлен Delphi, например C:\Program Files\Borland\Delphi7\Imports. Копируем переименованный файл в каталог Редуктор_RTW\dcu.

4.      Переходим в главное окно проекта. В разделе uses заменяем следующую строку: Kompas6API5_TLB in '..\Imports\Kompas6API5_TLB.pas' на ksTLB.

.        Переходим в окно настроек проекта (Project → options) на вкладку Application (рисунок 11). В поле Target file extension вводим расширение, которое будет применяться для файла будущей библиотеки - RTW. Нажимаем OK, чтобы сохранить настройки.

Рисунок 11 - Диалоговое окно настроек свойств проекта.

Далее сохраняем проект и выполняем компиляцию (для этого воспользуемся командой Project → Compile Reductor или сочетанием клавиш Ctrl+F9). В результате в папке Редуктор_RTW появилась пока еще пустая и бесполезная библиотека, файл которой назван системой Reductor.rtw.

Чтобы RTW-библиотека, написанная на Delphi, могла взаимодействовать с КОМПАС, в ней обязательно должны присутствовать как минимум три функции:

• LibraryEntry - точка входа в библиотеку;

• LibraryName - возвращает имя библиотеки, отображаемое в менеджере библиотек;

• LibraryId - возвращает идентификатор библиотеки (позже его можно использовать при работе с самой библиотекой, для подключения списка меню ее команд и пр.).

Все эти функции обязательно должны быть экспортными, то есть экспортируемыми из данной DLL, чтобы система КОМПАС могла их видеть и вызывать. По этой причине их обязательно нужно вынести в раздел exports прикладной библиотеки.

Добавим описание этих функций в файл библиотеки:

library Reductor;,,,,

{$E rtw}

{$R *.res}LibraryName: PChar; pascal;:= 'Редуктор';;LibraryId: integer; pascal;:= 100;;LibraryEntry(command: WORD); pascal;name 'LIBRARYNAME',name 'LIBRARYID',name 'LIBRARYENTRY';.

После необходимо подключить остальные необходимые для работы проекта модули, описать переменные и вставить код, отвечающий за создание документа в компасе.

Рисунок 12 - Библиотеки КОМПАС

В итоге мы получили готовую для работы библиотеку компас (рисунок 12), с помощью которой ведется построение чертежей.

3. Обзор и анализ существующих программных продуктов

В настоящее время создано множество приложений, автоматизирующих расчет и построение одноступенчатых редукторов (DM sos, DM sos Graf, DM 2000, DM Monster 3D и т.п.). _Graf - это библиотека для КОМПАС, созданная для выполнения чертежей стандартных элементов (шкивов, звёздочек, зубчатых колёс и т.п.). Библиотека позволяет моментально выполнять чертежи в 2D (на плоскости) или в 3D (в пространстве). Причём в 3D вырисовывается профиль (зубья, пока кроме конических колёс), а в 2D элемент чертится в разрезе. Библиотека поддерживает несколько конструкций колёс: монолитную конструкцию, конструкцию с диском и с отверстиями (рисунок 13). Также возможно задавать величину смещения ступицы относительно диска и обода. Библиотека является инструментом для выполнения чертежей и моделей элементов и не выполняет их расчёт на прочность в отличие от КОМПАС-SHAFT.

Рисунок 13 - Рабочее окно библиотеки DMsos_Graf.

Но практически все они имеют один серьёзный недостаток, перекрывающий все достоинства: построения ведутся без рамы и без корпуса редуктора. А без этого 90% потенциальных пользователей она бесполезна. Самая популярная из них - DM Monster 3D, позволяющая выводить двухмерные чертежи компоновки привода и деталировки в Компасе или AutoCAD-e, табличные отчёты по результатам расчётов, а также готовую к сдаче и качественно оформленную пояснительную записку к курсовому проекту по дисциплине «Детали машин» со всеми расчётами, эскизами и рисунками, эпюрами нагружений.

Одним из главных недостатков программы является то, что распространяется она на коммерческой основе и совсем не подходит для обучения студентов, на что направлен наш продукт. Так, лицензионная версия DM Monster 3D (без модуля вывода формул в традиционном виде (с символами, дробями, корнями)) стоит 400 долларов США (≈12000 рублей), а DM Monster 3D Pro (c модулем вывода формул в традиционном виде (с символами, дробями, корнями)) - 550 долларов США(≈15500 рублей), что делаем программу труднодоступной для многих пользователей.

Демо-версия программы DM Monster 3D лишена опций вывода пояснительной записки и чертежей. Лицензионная версия программы включает в себя данную опцию, однако она имеет ряд недостатков. На рисунке 14 (а, б, в) показан чертеж привода, который выводится в качестве результатов работы программы.

Рисунок 14 - Чертеж, выполняемый программой DM Monster 3D.

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

Рисунок 15 - Чертеж редуктора, получаемый в разрабатываемой программе:  а - вид сверху; б - вид спереди; в - вид сбоку.

Проанализировав аналогичные программы, был сделан вывод, что разработанная нами программа является более эффективной и правильной, для преподавания и наглядного использования студентам.

4. Работа с программой

4.1 Расчет валов и подшипников


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

Сначала проводится условный расчет валов за заниженными напряжениями кручения (20...30 МПа). Назначение диаметров характерных участков вала согласовывается со стандартным рядом Ra40.

Рисунок 16 - условный расчет валов

В раскрывающемся списке "Тип подшипников" можно задать тип подшипников качения, которые будут установлены в редукторе. Для конических и червячных редукторов автоматически принимаются радиально-упорные роликовые (конические) подшипники. Программа самостоятельно выберет стандартный подшипник по значению диаметра участка вала под подшипник: средней серии на быстроходном вале и легкой на тихоходном.

Рисунок 17 - выбор и расчет подшипников качения

Все рекомендации по работе с программой так же отражены в справке. Вызвать её можно, кликнув левой кнопкой мыши по значку  на форме программы.

Данные, полученные в результате работы программы, сохраняются во временный файл C:\Results.tmp. Так же программой предусмотрена возможность сохранения результатов расчета в файл. Кнопка "Сохранить результаты отдельным файлом" дает возможность сохранить текущий вариант (основные параметры) спроектированного редуктора в файл, который потом можно будет загрузить из КОМПАС-библиотеки "Редуктор" вручную. Это нужно, когда невозможно передать напрямую данные для построения спроектированного редуктора в КОМПАС (например, администратором запрещен доступ к диску C:\). Для этого необходимо кликнуть левой кнопкой мыши по значку  на форме программы. Программой предлагается три расширения для файлов с результатами:

1. *.cyl - для цилиндрических редукторов;

2.      *.con - для конических редукторов;

3.      *.ch - для червячных редукторов.

4.2 Подключение файла библиотеки к системе Компас - 3D


Подключение файлов библиотек в систему Компас не представляет особых трудностей. Для работы с библиотеками разработчиками компании АСКОН был создан менеджер библиотек. Для того чтобы запустить его необходимо либо кликнуть левой кнопкой мыши по соответствующему значку на панели инструментов (рисунок 18), либо выполнить команду Сервис → Менеджер библиотек.

Рисунок 18 - Менеджер библиотек на панели инструментов Компас

Окно менеджера библиотек компаса разделено на две вкладки (рисунок 19). На первой вкладке - Библиотеки КОМПАС - отображается структура менеджера, т.е. списки разделов. На второй - библиотеки, входящие в выбранный раздел.

Рисунок 19 - Окно менеджера библиотек.

Для управления Менеджером библиотек предназначены команды контекстного меню области просмотра разделов. Эти команды представлены в таблице 1.

Таблица 1 - Команды менеджера библиотек

Команда

Описание

Добавить описание

Добавление библиотеки в Менеджер библиотек.

Вид

Настройка внешнего вида панели Менеджера библиотек.

Создать раздел

Создание нового раздела (подраздела) в Менеджере библиотек.

Удалить

Удаление выделенного раздела из Менеджера библиотек. Раздел удаляется вместе со своими подразделами.

Вставить

Вставить в выделенный раздел Менеджера библиотеку, находящуюся в буфере обмена. Если буфер обмена пуст, команда недоступна.

Обновить Менеджер библиотек

Удаление библиотек, файлы которых отсутствуют по заданным для них путям, и добавление библиотек, указанных в файлах *.lms, находящихся в подпапке Sys главной папки системы.

Очистить Менеджер библиотек

Удаление из Менеджера всех библиотек, кроме подключенных на момент вызова команды.


Для того чтобы подключить файл библиотеки «Редуктор» создадим новый раздел и назовем его «Детали машин и основы конструирования: Редуктор» (рис. 20).

Рисунок 20 - Окно создания раздела менеджера библиотек

После того, как необходимый раздел был создан, нужно скопировать файл библиотеки Reductor.rtw в буфер обмена и вставить его в выбранный раздел менеджера библиотек, используя команду «Вставить».

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

Рисунок 21 - Подключение библиотеки Редуктор.

4.3 Работа с библиотекой Редуктор

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

Рисунок 22 - Окно библиотеки Редуктор.

По умолчанию выбран автоматический способ загрузки данных. В этом случае данные для построения берутся из временного файла C:\Results.tmp, который создается при работе программы редуктор, когда все расчеты закончены. Ниже приведен фрагмент кода, отвечающий за создание временного файла данных:

f := TFileStream.Create('c:\Results.tmp', fmCreate);.Write(Results, SizeOf(Results));

f.Free;;

В этом файле содержатся данные, полученные в результате работы модуля программы CalculateUnit. В этом модуле переменные, необходимые для построения редуктора (например, диаметры валов, межосевое расстояние передачи и пр.), имеют пользовательский тип TResults = record, что позволяет без проблем записывать и перезаписывать их значения в ходе работы программы.

Данные из файла Results используются BuilderUnit-ами - модулями, в которых описывается процесс построения редукторов, а сам процесс чтения файла является частью модуля CalcUnit2, в котором определяется тип редуктора исходя из данных, полученных в результате чтения файла данных Results.tmp. Ниже приведен фрагмент кода, отвечающий за чтение файла Results.tmp:

if FileExists('c:\Results.tmp') then

f := TFileStream.Create('c:\Results.tmp', fmOpenRead);.Read(Results, SizeOf(Results));

f.Free;

Если же по какой-то причине (например, администратором запрещено добавление файлов на диск С:\) файл Results.tmp не может быть прочитан, следует выбрать ручной способ загрузки данных.

При этом кнопка  станет активной. После того, как данные загружены, для начала построения нужно нажать на кнопку «Начать построение» (рис. 23).

Рисунок 23 - Готовая к работе программа.