ISSN 1991-3087

Свидетельство о регистрации СМИ: ПИ № ФС77-24978 от 05.07.2006 г.

ISSN 1991-3087

Подписной индекс №42457

Периодичность - 1 раз в месяц.

Вид обложки

Адрес редакции: 305008, г.Курск, Бурцевский проезд, д.7.

Тел.: 8-910-740-44-28

E-mail: jurnal@jurnal.org

Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

Алгоритм программы для размерного анализа технологических процессов

 

Седов Александр Сергеевич,

магистрант машиностроительного факультета Волгоградского государственного технического университета.

 

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

Была поставлена задача создания САПР размерного анализа осевых размеров деталей типа «ступенчатый вал». При этом ввод исходных данных и вывод расчетных должен выполняться в интерактивном режиме, что наиболее рационально осуществить с использованием встроенных программных средств операционной системы, оснащенной графическим интерфейсом пользователя (например, Windows XP).

Современные средства программирования позволяют создавать развитые САПР с высокой степенью интерактивности. Применение визуального и объектно-ориентированного программирования, являющихся стандартными для данных средств программирования, сокращают время на разработку проекта программы и способствуют упорядочиванию ее логико-иерархической структуры [2, с.12].

Представленная в данной статье программа «Размер32» создана в свободной среде программирования Lazarus (язык Object Pascal) – аналоге коммерчески распространяемой среды Delphi, и изначально откомпилирована для работы на архитектуре i386 под управлением 32-битных ОС Windows XP/Vista/7. Кроссплатформенный компилятор Free Pascal позволяет получить исполняемый код в том числе для свободных операционных систем на основе ядра Linux, что является немаловажным, если ставится задача сокращения затрат, связанных с внедрением САПР. Текст программы насчитывает 1542 строки, в откомпилированном под Win32 виде программа занимает 13 мегабайт.

Структура программы представляет собой набор из 3-х связанных линейно алгоритмических систем:

-                   система ввода исходных данных;

-                   система обработки данных;

-                   система вывода расчетной информации.

Входные данные включают в себя:

-                   геометрию заготовки (количество ступеней вала, их относительные диаметры);

-                   осевые размеры заготовки (отклонения);

-                   осевые размеры детали (номиналы с отклонениями);

-                   наименование операций;

-                   последовательность операционных размеров на каждой операции.

Основным структурным элементом области данных программы является запись типа TRazm.

TRazm = record

 BS: byte;        //от данной поверхности откладывается размер

 FS: byte;        //к этой поверхности

 Nom: real;      //номинал, мм

 ei: real;           //нижнее отклонение, мм

 es: real;           //верхнее отклонение, мм

end;

В программе предусмотрен массив Razm[j,i] из N_OP_MAX*N_RAZ_MAX записей типа TRazm (где N_OP_MAX — максимальное кол-во операций (10), N_RAZ_MAX — максимальное количество размеров в операции (5). На этапе ввода исходных данных происходит заполнение массива Razm[j,i], где j – номер операции, i – порядковый номер размера.

Фрагмент, описывающий считывание данных из полей:

//промежуточная запись с полей задания размера

Razm2.BS := StrToInt(Razm_Inp[I_BS].Caption);

Razm2.FS := StrToInt(Razm_Inp[I_FS].Caption);

Razm2.Nom := StrToFloat(Razm_Inp[I_NOM].Caption);

Razm2.ei := StrToFloat(Razm_Inp[I_EI].Caption);

Razm2.es := StrToFloat(Razm_Inp[I_ES].Caption);

index := GetRazmIndex(Razm2.BS, Razm2.FS);

Здесь данные считываются в промежуточную запись Razm2, которая затем копируется в элемент массива Razm[j,i]. Функция GetRazmIndex возвращает порядковый номер размера, если содержимое полей ввода указывает на существующий размер или 0, если размер не существует.

Следующий фрагмент показывает запись в Razm[j,i].

//заносим данные

 with Razm[CurrentOp, index] do

 begin

  BS := Razm2.BS;

  FS := Razm2.FS;

  Nom := Razm2.Nom;

  ei := Razm2.ei;

  es := Razm2.es;

 end;

(Здесь CurrentOp – номер рассматриваемой операции.)

Данные можно вводить вручную, создав новый технологический процесс, а также можно считать с диска. Собственное расширение файла программы - *.tpd.

Фрагмент алгоритма считывания данных из файла.

AssignFile(F, OpenDialog.FileName);//назначение имени файла

Reset(F);                                            //открыть файл для чтения

Read(F, FB);                                      //прочесть содержимое файла

CloseFile(F);                                      //закрыть файл

N_St := FB.N_St;                              //количество ступеней

D_St := FB.D_St;                              //диаметры ступеней

CountOp := FB.CountOp;                 //количество операций

OpNames := FB.OpNames;               //наименования операций

Razm := FB.Razm;                            //записи размеров

RazmOpCount := FB.RazmOpCount;//количество размеров в каждой операции

Здесь FB – промежуточная запись одного типа с F.

Запись на диск производится аналогичным способом, но вместо Reset(F) вызывается Rewrite(F).

Размерный анализ техпроцесса производится следующим образом.

1.                  Составляется список всех размеров от заготовки до готовой детали (с учётом поверхностей, возникающих в процессе обработки) (1).

2.                  Составляется список замыкающих размеров.

3.                  Выбирается первый замыкающий размер и для данного размера выполняется рекурсивный обход списка размеров (1) с подсчетом количества звеньев и их типом (увеличивающее, уменьшающее). Если обход заходит в «тупик», он начинается по новому пути. В итоге для данного замыкающего размера выбирается размерная цепь с минимальным количеством звеньев.

4.                  Переход к следующему замыкающему размеру и т.д.

5.                  Анализ размерных цепей по известным методикам.

 

Литература

 

1.                  Корсаков, В. С. Автоматизация проектирования технологических процессов в машиностроении / В. С. Корсаков, Н. М. Капустин, К. -X. Темпельгоф, X, Лихтенберг; Под общ. ред. Н.М. Капустина. - М.: Машиностроение, 1985. - 304 с.

2.                  Климов, В. Е. Разработка САПР : В 10 кн. Кн. 7. Графические системы САПР: Практ. пособие / В. Е. Климов; Под ред. В. А. Петрова. - М.: Высш. шк., 1990. - 142 с. ISBN 5-06-000744-8.

 

Поступила в редакцию 02.06.2010 г.

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