Планировка гибкой производственной системы. Подсистема САПР «КОМПАС»

0

Кафедра систем автоматизации производства

 

Дипломный проект

 

на тему:

Планировка гибкой производственной системы.

Подсистема САПР «КОМПАС»

 

__________________Кафедра систем автоматизации производства________________________

( название кафедры)

Отзыв руководителя о выпускной квалификационной работе

На тему: Планировка гибкой производственной системы. Подсистема САПР____ «КОМПАС»__________________________________________________________

1 Объем работы: количество страниц 97. Графическая часть 9 листов.

2 Цель и задачи дипломного исследования: Целью дипломной работы является сокращение времени на построение планировки. Для достижении цели необходимо разработать прикладную библиотеку для «КОМПАС» в среде Delphi, которая строит планировку гибкой производственной системы__________________________________________________________

3 Актуальность, теоретическая, практическая значимость темы исследования: Разработанная прикладная библиотека является инструментом для проектирования гибкой производственной системы, позволяющая сократить время на построение планировки ГПС и уменьшить себестоимость проекта.__________________________________________________

4 Соответствие содержания работы заданию (полное или неполное): полное_______________

5 Основные достоинства и недостатки дипломной работы: Достоинства: Данная прикладная библиотека позволяет строить планировку ГПС, по результатам проектных расчетов, при этом вся рутинная работа по прорисовке участка и оформлению чертежа выполняется автоматически. Недостатки: расстановка станков производится только в один ряд._____________________________________________________

6 Степень самостоятельности и способности дипломника к исследовательской работе (умение и навыки искать, обобщать, анализировать материал и делать выводы): Самостоятельна в поиске информации и её анализе, способна грамотно делать выводы по проделанной работе._____________________________________________________________

7 Оценка деятельности студента в период выполнения дипломной работы (степень добросовестности, работоспособности, ответственности, аккуратности и т.п.): Добросовестно относилась к выполнению дипломного проекта, в намеченные сроки отчитывалась о проделанной работе, с большой степенью ответственности и аккуратности выполняла дипломный проект._______________________________________________________________

8 Достоинства и недостатки оформления текстовой части, графического, демонстрационного, иллюстративного, компьютерного и информационного материала. Соответствие оформления требованиям стандартов:

графический материал оформлен с большой степенью профессионализма, пояснительная записка соответствует требованиям ГОСТ.______________________________

9 Целесообразность и возможность внедрения результатов дипломного исследования:

Разработанную библиотеку можно внедрить в учебный процесс, а также в инженерно-проектный отдел предприятия, занимающегося построением планировки гибкой производственной системы________________________________________________________

10 Общее заключение и предлагаемая оценка квалификационной работы  

Дипломный проект заслуживает оценки отлично, а её автор рекомендуется для поступления в аспирантуру______________________________________

Дата: «____» __________ 2010 г.                                              Подпись: ____________________

 

 

 

РЕЦЕНЗИЯ

 

Представленная ВКР на тему:  Планировка гибкой производственной системы. Подсистема САПР «КОМПАС»

 

содержит пояснительную записку на  97  листах и графический материал _9_ листов.

Работа по содержанию разделов, глубине их проработки и объему ___соответствует________

                                                                                                                                                                                   (соответствует, не соответствует)

требованиям к выпускной квалификационной работе.

ОСНОВНЫЕ ДОСТОИНСТВА И НЕДОСТАТКИ ПРОЕКТА

1 Актуальность, значимость темы в теоретическом и практическом плане: __При построении планировки ГПС часто допускаются ошибки, которые в дальнейшем могут привести к дополнительным экономическим затратам, поэтому разработка подсистемы САПР «КОМПАС» является актуальной _________________________________________________________________

___________________________________________________________________________________

2 Краткая характеристика структуры работы:_В работе проведен анализ путей расширения возможностей САПР, изучены интерфейсные средства «КОМПАС», разработана планировка гибкой производственной системы, и оформлена техническая документация_________________

3 Достоинства работы, в которых проявились оригинальные выводы, самостоятельность студента, эрудиция, уровень теоретической подготовки, знание литературы и т.д. _Основным достоинством применения разработанной библиотеки является то, что на построение планировки для участка из 2-х станков затрачивается практически такое же время, как и для построения планировки для участка из 10 станков. При этом соблюдаются все нормативы на размещение оборудования_______________________________________________________________________

___________________________________________________________________________________

4 Недостатки работы (по содержанию и оформлению) _Отсутствует интеграция с комплексом программ по выполнению предпроектных и проектных расчетов ГПС_______________________

 

5 Особые замечания, пожелания и предложения: _Рекомендуется реализовать возможность построения планировки с другими вариантами компоновочных структур_____________________

 

Проект заслуживает ________отличной_______ оценки.

                                                          (отличной, хорошей, удовлетворительной, не удовлетворительной)

Рецензент _________________________________________________________________________

 

Аннотация

 

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

Страниц – 97, рисунков – 24, таблиц – 25, графических документов на 9 листах формата А1.

 

 

 

Содержание

Введение. 5

1 Анализ возможностей расширения функционала САПР. 6

1.1 Динамически присоединяемые библиотеки. 8

1.2 Создание DLL Win32. 8

1.3 Cтатическое связывание DLL. 10

1.4 Отладка DLL. 11

1.5 Динамическое связывание. 12

1.6 Разработка библиотек для «КОМПАС». 14

1.7 Экранные формы в библиотеках. 17

1.8 Подключение и отладка библиотеки «КОМПАС». 19

2 Построение сложных объектов. 20

2.1 Эллипс. 20

2.2 NURBS-сплайн. 20

2.3 Текст. 22

2.4 Осевые линии. 25

2.5 Штриховка. 26

2.6 Размеры.. 27

3 Методы математического интерфейса. 30

3.1 Симметрия. 30

3.2 Поворот. 30

3.3 Сдвиг. 31

3.4 Основная надпись. 31

3.5 Вставка фрагмента. 33

4 Разработка компонентов программы автоматизированного построения планировки ГПС.. 35

4.1Разработка информационного обеспечения. 35

4.2 Лингвистическое обеспечение. 38

4.3 Программное обеспечение САПР. 41

4.4 Техническое обеспечение САПР. 45

4.5 Математическое обеспечение САПР. 46

4.6 Методическое обеспечение САПР. 50

5 Порядок прорисовки планировки ГПС.. 51

5.1 Создание базы данных. 51

5.2 Создание файла прикладной библиотеки в Delphi 54

5.3 Программирование кнопки «Построить планировку». 58

6 Технико-экономическое обоснование проекта. 73

6.1 Расчет трудоемкости разработки программного продукта. 73

6.2 Расчет себестоимости программного продукта. 80

6.3 Расчет экономического эффекта программного продукта. 83

7 Безопасность труда. 85

7.1 Анализ и обеспечение безопасных условий труда. 85

7.2 Расчет категорий тяжести и напряженности труда. 87

7.3 Возможные чрезвычайные ситуации. 92

 

 

Введение

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

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

 Способы создания библиотек:

- создание библиотек фрагментов и моделей;

- создание библиотек шаблонов;

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

- внешние языки прогрммирования (Delphi, С++);

- запрос разработчику.


1 Анализ возможностей расширения функционала САПР

 

Широкое распространение персональных компьютеров привело к появлению программных пакетов, предназначенных на решение задач определенной предметной области и рассчитанных на массового пользователя. Примерами таких пакетов являются МS Оffiсе, Open Office для автоматизации офисного делопроизводства; 1С: Бухгалтерия, Турбо бухгалтерия для компьютеризации бухгалтерского учета; «КОМПАС», AutoCAD для автоматизации подготовки чертежной документации. Количество пользователей подобных пакетов очень велико, и это вызывает проблему перегрузки программ функциями, которые могут быть и не нужны многим пользователям. С другой стороны, у отдельных групп пользователей возникают специфические требования, которые разработчикам основного программного пакета не удается своевременно учесть или они не представляют большого интереса для большинства других пользователей.

По этим причинам в программах массового распространения часто содержатся средства для расширения их функциональности силами самих пользователей.

В качестве простейшего примера средств расширения программного пакета можно назвать макросы (например, в МS Оffiсе) - средства, позволяющие запомнить часто повторяющуюся последовательность команд пакета и затем воспроизводить ее всего одной новой командой. Макросы в МS Оffiсе в интерактивном режиме записываются на языке Visual Basic for Аpplications (VВА). Этот язык, кроме макросов, позволяет разрабатывать отдельные функции и целые приложения, выполняемые в среде Word, Excel, Access или PowerPoint. Для программиста язык VВА выглядит как интерпретируемый язык Basic со средой разработки, вызываемой изнутри прикладной программы (например, Word) и со специфической библиотекой функций и объектов, предоставляющих доступ к данным и командам конкретной программы пакета МS Оffiсе. Благодаря массовому распространению пакета МS Оffiсе применение языка VВА стало одним из наиболее известных способов расширения программных пакетов.

Другим вариантом расширения программных пакетов является использование специализированных языков программирования. Это может быть целесообразно, когда требуется работать со сложными структурами данных и объемными исходными текстами, для разработки которых язык VВА не слишком удобен. Данный подход применяется в известном бухгалтерском пакете 1С: Бухгалтерия, и, вообще, в семействе программ 1С:Предприятие. В этих пакетах есть поддержка собственного языка программирования, на котором программист может написать функции, настраивающие эти программы для нужд конкретного предприятия.

Распространен еще один способ наращивания функциональности пакета - разработка дополнительных модулей (plug-in) на компилируемых языках программирования общего назначения, таких, как Паскаль, Си или Cи++. Известные примеры реализации этого подхода - разработка модулей обработки изображений для графических программ Аdоbе Photoshop, Аdоbе Iillustrator, Аdоbе Premiere, расчетных модулей для 3D Studio МАХ. Каждый дополнительный модуль можно считать библиотекой с одной или несколькими функциями, которые пользователь может вызывать из среды конкретного пакета (базового пакета). Изнутри модуля можно обращаться к базовому пакету, обмениваться с ним данными, согласованно показывать какие-либо диалоговые окна, «встраиваться» в интерфейс пользователя базового пакета.

Т.о. можно выделить три основных способа расширения функциональности программных пакетов:

1) язык Visual Basic for Аpplications;

2) специфический язык программирования;

З) дополнительные модули.

Данная работа направлена на освоение инструментальных средств «КОМПАС», предназначенных для разработки дополнительных модулей для пакета «КОМПАС» - прикладных библиотек. Некоторые дополнительные модули могут обладать собственной сложной и в какой-то мере самодостаточной функциональностью, что позволяет называть их приложениями в среде «КОМПАС».

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

В среде Windows удобно оформлять прикладные библиотеки в виде динамических библиотек (DLL - Dynamic Load library) Windows. Инструментальные средства для разработки прикладных библиотек были сделаны в виде библиотек функций, доступных для вызова из распространенных сред разработки - Borland С++, Borland Delphi, Borland С++ Builder, Visual С++.

 

1.1 Динамически присоединяемые библиотеки

 

Динамически присоединяемая библиотека DLL - это специального вида ис­полняемый файл с расширением .dll, используемый для хранения функций и ре­сурсов отдельно от исполняемого файла. Библиотеки DLL могут связываться с основным приложением двумя путями: статическим связыванием или динамическим связыванием.

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

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

 

1.2 Создание DLL Win32

 

Создание DLL Win32 начинается с выполнения команды File | New | Other и вы­бора в окне New Items (рисунок 1.1) на странице New пиктограммы DLL Wisard - Мастера DLL.

В результате в окне Редактора Кода появится текст:

library Project1;

{Комментарий:   Важное  замечание  об  организации памяти  DLL:   модуль ShareMem должен  быть  включен  первым в  предложения  uses в  библиотеке  и в

 

Рисунок 1.1 – Окно NewItems

 

проекте   (выполните  Project | View Source),   если   DLL экспортирует  какие-то процедуры или  функции,   которым передаются или  от которых  получаются  строки в  виде  параметров  или  значений  функции.   Это относится  ко  всем  строкам,   пересылаемым или  получаемым из  DLL,  даже к тем, которые  вложены  в   записи  и  классы.   ShareMem  является интерфейсным модулем для  диспетчера  разделяемой  памяти BORLNDMM.DLL.Чтобы избежать  использования  BORLNDMM.DLL,  необходимо передать  строковую информацию  посредством параметров  типа   PChar  или  ShortString.}:

uses

  SysUtils,

  Classes;

{$R *.res}

begin

end.

Основное отличие заготовки DLL - ключевое слово library вместо unit в первой строке.

 

Комментарий, переведенный на русский язык, относится к особенно­стям передачи в функции DLL и получения от них строковых значений.

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

Если в exports указано просто имя процедуры или функции, то именно по это­му имени внешнее приложение сможет ее вызывать. Но с помощью ключевого сло­ва name можно для внешнего употребления указать другое имя.

 

1.3 Cтатическое связывание DLL

 

Рассмотрим статическое связывание DLL на примере. Необходимо создать ведущее приложение для разработанной DLL. Его удобно размещать в той же группе проектов, в которой находится проект DLL.

 

Рисунок 1.2 – Вызов DLL

 

В начале ведущего приложения следуют объявления процедур и функций, им­портируемых из DLL. Каждое объявление полностью повторяет соответствующее объявление, данное в библиотеке, и завершается спецификатором external, после которого пишется имя DLL. Это все, что требуется для статического связывания. Дальнейшее использование импортируемых функций не отличается от использо­вания любых других функций. В процедуре ВВеерСНск просто вызывается импор­тируемая процедура DoBeep. В процедуре BCodeClick в импортируемую функцию Code передается строка текста из окна Editl и значение ключа 5. Зашифрованная строка текста возвращается в окно Editl. Так что если в этом окне написать ка­кой-то текст, то при первом щелчке на кнопке BCode в окне отобразится зашифро­ванная строка, а при повторном щелчке на той же кнопке эта строка будет рас­шифрована. Если вы в да дальнейшем усовершенствуете алгоритм шифрования, вам достаточно будет скомпилировать новый вариант DLL. А все приложения, ис­пользующие DLL, никакой модификации не потребуют. Спецификация external позволяет изменить в приложении имя импортируе­мой процедуры или функции. Например, если имя импортируемой процедуры DoBeep, то можно объявить ее в приложении следующим образом:

procedure  MyBeep;   stdcall;   external   'Project2.DLL'   name   'DoBeep';

Это объявление означает, что из библиотеки Project2.DLLимпортируется про­цедура DoBeep и ей присваивается имя МуВеер. В ведущем приложении вызывать процедуру нужно по этому присвоенному ей имени МуВеер.

 

1.4 Отладка DLL

 

Непосредственно выполнить файл DLL невозможно. Поэтому для отладки всегда требуется ведущее приложе­ние. Но при выполнении тестового приложения в вер­сиях Delphi, предшествующих 2005, невозможно задать в коде DLL какие-то остановы и пройти код по шагам, наблюдая значения интересующих переменных. Чтобы иметь возможность запускать на вы­полнение саму DLL и осуществлять ее отладку, надо указать для DLL ведущее приложение. Нужно активи­зировать в окне Менеджера Проектов вершину библиоте­ки. Далее выполните команду Run | Parameters. Откроется окно, показанное на рисунке 1.3. В этом окне надо задать Host application - полное имя выполняемого файла ведущего приложения.

 

Рисунок 1.3 – Окно параметров запуска проекта

После этого  можно задавать в коде библиотеки любые точки останова и запустить библиотеку на выполнение.

 

 

1.5 Динамическое связывание

 

Динамическое связывание можно разбить на три этапа. Прежде всего, надо загрузить библиотеку функцией LoadLibrary API Windows. Затем с помощью функции GetProcAddress надо получить указатели на интересующие нас функции библиотеки. Только после этого можно вызывать биб­лиотечные функции. А после вызова функции или ряда функций надо выгрузить библиотеку из памяти с помощью функции FreeLibrary (рисунок 1.4):

 

Рисунок 1.4 – Динамическое связывание

var

Form2: TForm2;

H : THandle = 0;

DoBeep : procedure; stdcall;

Code: function(S: PChar; Key:integer): PChar; stdcall;

MyDialog: function(User: PChar): PChar; stdcall;

implementation

{$R *.dfm}

procedure TForm2.LoadClick(Sender: TObject);

begin

H := LoadLibrary('Project2.dll') ;

if H <> 0 then

begin

DoBeep := GetProcAddress (H,'DoBeep');

Code := GetProcAddress (H,'Code');

MyDialog := GetProcAddress (H,'MyDialog');

end

else

ShowMessage('He удалось загрузить Project.dll');

end;

procedure TForm2.UnLoadClick(Sender: TObject);

begin

FreeLibrary(H);

end;

procedure TForm2.FormDestroy(Sender: TObject);

begin

while FreeLibrary(H) do;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

DoBeep;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Edit1.Text := Code(PChar(Edit1.Text), 5) ;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

Edit1.Text := MyDialog('Пользователь');

end;

В примере вводятся четыре глобальные переменные. Переменная Н используется для хранения дескриптора загруженной библиотеки. Переменные DoBeep, Code и MyDialog используются для хранения адресов процедуры и функ­ций библиотеки. В качестве типов этих переменных используются заголовки про­цедуры и функций библиотеки.

Процедура LoadClick осуществляет загрузку библиотеки функцией LoadLibrary. Процедура UnLoadClick выгружает библиотеку из памяти функцией FreeLibrary.

 

 

 

1.6 Разработка библиотек для «КОМПАС»

 

Прикладная библиотека для чертежно-графического редактора «КОМПАС» является динамической библиотекой для ОС Windows. Но эта DLL должна быть написана в соответствии с требованиями, предъявляемым к прикладным биб­лиотекам «КОМПАС», а именно, содержать в себе несколько функций с предопреде­ленными именами, которые «КОМПАС» будет вызывать у библиотеки. Прикладные библиотеки «КОМПАС» имеют расширение RTW. Чтобы создаваемая библиотека автоматически получила расширение rtw, а не dll, надо использовать директиву компилятора {$E rtw}.

Рассмотрим создание библиотеки на примере: пусть нужно создать 2D библиотеку, которая выполняла бы следующие действия: выводила на экран форму для ввода четырех координат (х1,у1,х2,у2) и в текущем чертеже или фрагменте проводила бы отрезок из точки xl, yl   в   точку   х2, у2.  

Для того, чтобы «КОМПАС» подключил библиотеку, она должна экспортировать следующие процедуры и функции: LibraryName   - функция, возвращающая текстовое название библиотеки;  LibraryId - функция, возвращающая целый идентификатор библиотеки; LibraryEntry - точка входа в  библиотеку,  или, проще говоря, процедура, выполняемая при запуске библиотеки.

Тогда dpr-файл проекта будет иметь вид:

library chanel;

{$E rtw}

uses

  SysUtils,Classes,KsTLB,

  main in 'main.pas',

  former in 'former.pas' {MainForm};

exports

  LibraryName name 'LIBRARYNAME',

  LibraryId name 'LIBRARYID',

  LibraryEntry name 'LIBRARYENTRY';

 begin

end

Как видно, в операторе USES подключается модуль KsTLB, обеспечивающий взаимодействие с API «КОМПАС». Этот файл (а также другие необходимые для компиляции модули) находится в каталоге C:\Program Files\ASCON\KOMPAS-3D V9\SDK\Include. Необходимо сказать Delphi, чтобы поиск файлов при компиляции выполнялся и в указанном каталоге. Для этого нужно выбрать пункт меню Tools\Environment Options, в диалоговом окне Environment Options на закладке  Library добавить в список путей поиска файлов Library Path каталог Include (рисунок 1.5).

Рисунок 1.5 - Опции

 

Создадим новый модуль и назовем его main. В нем нужно описать реализацию процедур и функций LibraryName, LibraryId, LibraryEntry.

unit main;

interface

Uses  Windows,SysUtils,LDefin2D,ksConstTLB,ksAuto,

ksTLB,

Forms;

// заголовки

procedure  LIBRARYENTRY(command: WORD); Pascal;

function  LIBRARYNAME : PChar;        Pascal;

function  LIBRARYID   : Cardinal;      Pascal;

//  ссылки на КОМПАС и 2D документ

var

Kompas: KompasObject;

iDocument2D: ksDocument2D;

implementation

function LIBRARYNAME: PChar; pascal;

begin

 // произвольное название библиотеки

 Result := 'Библиотека построения отрезков'

end;

function LIBRARYID: UINT; pascal; begin

// произвольный идентификатор от 100 и выше

Result := 100;

end;

procedure LIBRARYENTRY (command:WORD); pascal;

begin

// связываем переменную Kompas с API КОМПАСа

Kompas := KompasObject(CreateKompasObject);

// есливсевпорядке...

if Kompas <> nil then

 begin

// связываемпеременную iDocument2D

// стекущим 2D документом

  iDocument2D :=sDocument2D(Kompas.ActiveDocument2D());

   if iDocument2D=nil then // сообщениеобошибке

     Kompas.ksMessage('Текущий документ не является чертежом иди фрагментом')

   else

begin //своя процедура запуска библиотеки - опишем ниже

    Run;

 Kompas.ksMessage('Работа библиотеки завершена')

 end; // освобождение памяти

 iDocument2D := nil;

 end;

Kompas := nil

end; end.

Процедура LibraryEntry может получать на вход целочисленный параметр, задействованный при вызове библиотеки из пунктов меню или с панели инструментов. Нам он пока не понадобится. Внутри процедуры выполняется проверка - является ли текущий документ 2D-документом. Так как мы пока не можем пользоваться никакими средствами Delphi для ввода-вывода, поэтому сообщения выводятся вызовом метода ksMessage объекта «КОМПАС».

 

1.7 Экранные формы в библиотеках

 

Создадим форму и сохраним новый модуль под именем, например, former .pas. Самой форме дадим имя MainForm. Поместим на нее четыре компонента типа TEdit. кнопку «Отрезок» и кнопку «Готово». Напишем процедуру Run в модуле main, которая будет создавать форму. Кроме того, на время работы с формой надо отключить доступ к элементам интерфейса «КОМПАС», иначе неизбежны попытки одновременного рисования в документе и пользователя, и библиотеки. В оператор USES надо добавить ссылку на модуль с формой (former) и библиотеку работы с формами (forms):

procedure Run; // своя процедура запуска

var

form : TMainForm; // ссылка на форму

begin

// делаем нашу форму дочерней формой КОМПАСа

Application.Handle := kompas.ksGetHWindow;

// закрыть доступ к компасу

kompas.ksEnableTaskAccess(0);

form:=TMainForm.Create(Application); // создаемформу

// вывод формы

form.ShowModal; // открыть доступ к компасу

kompas.ksEnableTaskAccess(1);//отключаем нашу форму от КОМПАСа

Application.Handle := 0

 end;

Форма будет выводиться в модальном режиме. Это означает, что она заблокирует все остальные формы и, пока она не будет закрыта, доступ к «КОМПАС» будет запрещен. Чтобы модальную форму корректно закрыть, не обязательно выполнять метод Close. Достаточно в свойствах кнопки "Закрыть" установить ModalResult в значение mrOK. Это равносильно закрытию формы при нажатии на данную кнопку.

Имеющиеся в API команды построения изображений являются методами объекта iDocument2D. Для построения отрезка необходимо написать следующий код:

procedure TMainForm.Button1Click(Sender: TObject);

begin

iDocument2D.ksLineSeg(StrTofloat(edit1.Text),

StrTofloat(edit2.Text),

StrTofloat(edit3.Text),

StrTofloat(edit4.Text),1)

end

Основные методы создания 2D геометрии приведены в таблице 1.1.

 

Таблица 1.1 – Методы создания 2D геометрии

Примитив

Метод

Параметры

1

2

3

Точка

ksPoint(х,у,style)

Ставит точку с координатами х, у и стилем style

Отрезок

ksLineSeg (x1, y1, x2, y2, type)

Проводит отрезок стилем линии type из точки (x1, y1) в точку (x2, y2)

Прямая

ksLine (x, y, angle)

Проводит бесконечную прямую через точку х, у под углов в градусах angle к положительному направлению оси ОХ

Дуга

ksArcBy3Points (x1, y1, x2, y2, x3, y3, type)

Строит дугу по трем точкам стилем линии tvpe

Дуга

ksArcByAngle (xc, yc, rad, fl, f2 direction, type)

Строит дугу:

- xc, ус - координаты центра дуги,

- rad - радиус дуги,

- fl, £2 - начальный и конечный угол дуги в градусах,

- direction - направление отрисовки дуги: 1 - против часовой стрелки, -1 - по часовой стрелке,

- tvpe - стиль линии

 

Продолжение таблицы 1.1

1

2

3

Дуга

ksArcByPoint, t;
(rad, x1, y1, direction xc, yc, x2, y2, /pe)

Строит дугу:

- хс, ус - координаты центра дуги,

- rad - радиус дуги,

- xl. yl -координаты начальной точки дуги,

- х2, у2 - координаты конечной точки дуги,

- direction направление отрисовки дуги: 1 - против часовой стрелки, -1 - по часовой стрелке,

- type - стиль линии

Окружность

ksCircle (xc, yc, rad, type)

Строит окружность с центром в точке хс, ус. радиусом rad и стилем линии tvpe

 

Все рассматриваемые методы относятся к объекту Document2D и возвращают ссылку на созданный объект, которую можно запомнить в переменную типа Reference.

 

1.8 Подключение и отладка библиотеки «КОМПАС»

 

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

- изменение кода библиотеки в Delphi;

- в «КОМПАС» закрыть и удалилить библиотеку;

- в Delphi откомпилировать библиотеку;

- в «КОМПАС» подключить и запустить библиотеку;


2 Построение сложных объектов

 

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

 

2.1 Эллипс

 

Эллипс строится следующим кодом:

procedure TMainForm.Button3Click(Sender: TObject);

var par:ksEllipseParam;

begin

// создание структуры данных

par := ksEllipseParam(

kompas .GetParamStruct (ko_EllipseParam) ) ;

with par do

 begin

  Init; // созданиеструктуры

  xc    := 50; // координаты центра

  yc    := 40;

  a     := 20; // оси

  b     := 10;

  style := 1; // стиль линии end;

  iDocument2D.ksEllipse(par) // построениеэллипса

 end; end;

 

2.2 NURBS-сплайн

 

Сплайны используются в чертежах, например, при построении профиля зубчатых колес. Сплайн - это составной объект, определяемый набором опорных точек. Рассмотрим пример построения сплайна.

procedure TMainForm.Button4Click(Sender: TObject);

var

par : ksNurbsPointParam;

begin

par := ksNurbsPointParam( kompas .GetParamStruct (ko_NurbsPointParam)) ;

with par do

 begin

  Init;

// 3 - порядок сплайна

// FALSE - незамкнутый (TRUE - замкнутый)

// 1 - стильлинии

iDocument2D.KsNurbs(3, False, 1);

x := 0;

y:= 0;

weight := 1;

// добавили точку с координатами х,у х "Весом" weight

iDocument2D.KsNurbsPoint (par);

x:= 20;

y:= 20;

weight := 1;

iDocument2D.KsNurbsPoint (par);

x:= 50;

y := 10;

weight := 1;

iDocument2D.KsNurbsPoint (par);

x:= 70;

y := 20;

weight := 1;

iDocument2D.KsNurbsPoint (par);

x :=  100;

Y :=  0;

weight:=  1;

iDocument2D.ksNurbsPoint (par);

x:= 50;

y:= -50;

weight := 1;

iDocument2D.KsNurbsPoint (par) ;

//  завершили  создание  объекта

iDocument2D.KsEndObj;

end;

end;

Здесь сплайн 3-го порядка задан шестью точками.

 

2.3 Текст

 

Текст создается методом ksParagraph. Это также составной объект. Для каждого элемента текста можно указывать большое количество параметров, приведенных в Приложении 4. Рассмотрим код, выводящий текст, показанный на рисунке 2.1.

 

Рисунок 2.1 – Результат отрисовки текста

 

procedure TMainForm.Button5Click(Sender: TObject);

var

par : ksParagraphParam; // абзац

itemParam : ksTextItemParam; // текст

itemFont : ksTextItemFont; // шрифт

begin

par := ksParagraphParam(

kompas.GetParamStruct(ko_ParagraphParam) );

par.Init;

// параметрыабзаца

with par do

begin

x := 30; // левая верхняя точка

y := 30;

height := 25; // высота

width := 20; // ширина

end;

iDocument2d.ksParagraph( par ); // создаемабзац

// параметрытекста

itemParam := ksTextItemParam(

kompas.GetParamStruct(ko_TextItemParam));

itemParam.Init;

// параметры шрифта

itemFont := ksTextItemFont(itemParam.GetItemFont);

itemFont.Init;

with itemFont do

begin

// c новойстрочки

SetBitVectorValue( NEW_LINE, true );

FontName:='Arial'; // наименование шрифта

Height:=5; // высота текста в мм

end;

// собственно текст

ItemParam.s:= 'Первая строка';

iDocument2d.ksTextLine(itemParam); // выводим текст

itemFont.Init; // следующаястрока

with itemFont DO

begin

SetBitVectorValue( NEW_LINE, true );

SetBitVectorValue( BOLD_ON, true );

Height:=10;

end;

ItemParam.s := 'Вторая строка (жирный)';

iDocument2d.ksTextLine(itemParam);

iDocument2d.ksEndObj

end;

Метод SetBitVectorValue() управляет оформлением текста (см. Приложение 4) и его разбивкой на строки (обратите внимание на константу NEW LINE).

Коды свойств текста представлены в таблице 2.1.

 

Таблица 2.1 – Коды свойств текста

Константа

Шестнадцатиричное значение

Смысл

INVARIABLE

0

Не менять флаги текста

NUMERATOR

$1

Числитель

DENOMINATOR

$2

Знаменатель

END_FRACTION

$3

Конец дроби

UPPER_DEVIAT

$4

Верхнее отклонение

LOWER_DEVIAT

$5

Нижнее отклонение

END_DEVIAT

$6

Конец отклонений

S_BASE

$7

Основание выражения с под или надстройкой

S_UPPER_INDEX

$8

Верхний индекс выражения с под или надстройкой

S_LOWER_INDEX

$9

Нижний индекс выражения с под или надстройкой

S_END

$10

Конец выражения с под или надстройкой

SPECIAL_SYMBOL

$11

Спецзнак

SPECIAL_SYMBOL

_END

$12

Конец спецзнака для спецзнаков с текстом

RETURN_BEGIN

$13

Начало для ввода следующих строк в спецзнаке с текстом, дробях, отклонениях

RETURN_DOWN

$14

Для вода следующих строк в спецзнаке с текстом, дробях, отклонениях

RETURN_RIGHT

$15

Для вода строк справа в спецзнаке с текстом, дробях, отклонениях

TAB

$16

Табуляция по текущему стилю

FONT_SYMBOL

$17

Символ фонта

ITALIC_ON

$40

Включить наклон

ITALIC_OFF

$80

Выключить наклон

BOLD_ON

$100

Включить жирное начертание

BOLD_OFF

$200

Выключить жирное начертание

UNDERLINE_ON

$400

Включить подчеркивание

UNDERLINE_OFF

$800

Выключить подчеркивание

NEW_LINE

$1000

Новая строка в параграфе

 

 

 

 

2.4 Осевые линии

 

Как известно, осевые линии окружностей и дуг в «КОМПАС» строятся автоматически. Рассмотрим пример построения окружности с осевыми. Для их построения нужно запомнить ссылку на окружность в переменную типа Reference.

procedure TMainForm.Button6Click(Sender: TObject);

var par:ksCentreParam;

c:reference;

begin

// окружность, в с запомнили ссылку на нее

c:=iDocument2D.ksCircle(150,150,20,1);

// создаем структуру для параметров осевых

par:=ksCentreParam(kompas.GetParamStruct ko_CentreParam));

with par do

begin

init;

// ссылка на окружность

BaseCurve:=c;

// число осевых - две

type_:=2;

// длина осевой от центра вправо

LenXPTail:=25;

// длина осевой от центра влево

LenXmTail:=25;

// длина осевой от центра вверх

LenYPTail:=25;

// длина осевой от центра вниз

LenYmTail:=25;

end;

iDocument2D.ksCentreMarker(par); // созданиеосевых

end;

 

 

 

 

2.5 Штриховка

 

В чертежах часто встречается штриховка. Она делается хитрым образом: сначала лается команда начала штриховки, затем строятся объекты, образующие ее контур, а затем еще одна команда завершает построение.
Начинается штриховка методом:

ksHatch(style, Angle, step, width, xO, yO),

который задает штрихование контура стилем style под углом angle с шагом step и толщиной линий width. Начальная точка штриховки х0, у0. Коды стилей штриховок  приведены в таблице 2.2.

 

Таблица 2.2 – Коды стилей штриховок

Код

Стиль штриховки

0

Металл

1

Неметалл

2

Дерево

3

Камень естественный

4

Керамика

5

Бетон

6

Стекло

7

Жидкость

8

Естественный грунт

9

Насыпной грунт

10

Камень искусственный

11

Железобетон

12

Напряженный железобетон

13

Дерево в продольном сечении

14

Песок

 

Затем в программе идут команды отрисовки самого контура, а завершается его построение командой ksEndObj. Пример построения заштрихованной окружности:

procedure TMainForm.Button7Click(Sender: TObject);

begin

iDocument2D.ksHatch(1,0,1,10,100,100);

iDocument2D.ksCircle(100,100,20,1); // контур

iDocument2D.ksEndObj;

end;

 

2.6 Размеры

 

Проставим размер со сложным текстом, как показано на рисунке 2.2.


Рисунок 2.2 – Линейный размер

 

Размерный текст в общем случае состоит из следующих элементов:

- текст перед номиналом (±);

- символ перед номиналом (Æ):

- номинал (100);

- отклонение (+0,2 и –0,4):

- единица измерения (мм);

- текст после номинала (2x45s).

При создании размера нужно указать, какие элементы в тексте будут присутствовать и затем сформировать массив текстовых строк из необходимых элементов. В тексте можно использовать коды &04 для знака и &01 для знака градуса.

Стиль стрелки (свойства ptl.pt2) представлены в таблице 2.3.

 

Таблица 2.3 - Стиль стрелки

Код

Стиль стрелки

0

Cтрелки нет

1

Cтрелка внутри

2

Cтрелка снаружи

3

Засечка

4

Точка

Положение текста (свойство textBase) описано в таблице 2.4.

 

Таблица 2.4 - Положение текста

Код

Положение текста

 

0

в центре

 

1

на расстояние (или угол) textPos относительно первой точки

 

2

на расстояние (или угол) textPos относительно первой точки

 

 

Управление размерным текстом (свойство bit Flag).

Управление размерным текстом (свойство bitFlag).

Коды обозначения размеров предсталены в таблице 2.5.

 

Таблица 2.5 – Коды обозначения размеров

Константа

Шестнадцатиричное значение

Смысл

_AVTONOMINAL

$1

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

_RECTTEXT

$2

Текст в рамке

_PREFIX

$4

Есть текст до номинала

_NOMINALOFF

$8

Нет номинала

_TOLERANCE

$10

Проставлять квалитет

_DEVIATION

$20

Проставлять отклонения

_UNIT

$40

Единица измерения

_SUFFIX

$80

Есть текст после номинала

_DEVIATION_INFORM

$100

При включенном флаге _DEVIATION отклонения есть в массиве текстов (даже если простановка отклонений – не ручная)

_UNDER_LINE

$200

Размер с подчеркиванием

_BRACKETS

$400

Размер в скобках

_SQUARE_ BRACKETS

$800

Размер в квадратных скобках, используются вместе с _BRACKETS

Значок перед размерным текстом - свойство Sign (таблица 2.6).

 

Таблица 2.6 - Коды значков перед размерными линиями

Код

Название значка

0

Нет значка

1

Диаметр 0

2

Квадрат

3

Радиус R

>3

Код символа из шрифта "Symbol type A"


3 Методы математического интерфейса

 

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

 

3.1 Симметрия

 

Пример использования симметрии приведен в следующей процедуре.

procedure TMainForm.Button11Click(Sender: TObject);

 var gr:reference;

 begin

// Построение симметричного отрезка относительно горизонтальной оси

   gr:=iDocument2D.ksNewGroup(0);

   begin

        iDocument2D.ksCircle(150,150,20,1);

  end;

  iDocument2D.ksCircle(150,150,20,1);

  iDocument2D.ksSymmetryObj (gr,0, 0, 90, 0, '1');

  end;

 

3.2 Поворот

 

Для поворота на угол (в градусах) вокруг заданного центра можно использовать процедуру, представленную ниже:

procedure TMainForm.Button10Click(Sender: TObject);

var gr:reference;

begin

 gr:=iDocument2D.ksNewGroup(0);

   begin

   iDocument2D.ksLineSeg (10,60,60,90,1);

  end;

    iDocument2D.ksRotateObj(gr,150,150,90);

    iDocument2D.ksLineSeg (10,60,60,90,1);

  end;

3.3 Сдвиг

 

Ниже приведен пример сдвига линии на определенное расстояние:

procedure TMainForm.Button12Click(Sender: TObject);

var gr:reference;

 begin

    gr:=iDocument2D.ksNewGroup(0);

   begin

   iDocument2D.ksLineSeg (10,60,60,90,1);

      end;

     iDocument2D.ksMoveObj(gr,10,10);

      iDocument2D.ksLineSeg (10,60,60,90,1);

end;

 

3.4 Основная надпись

 

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

Пользователь в «КОМПАС» может ввести текст в любую ячейку основной надписи. В «КОМПАС» для работы с основной надписи предназначен специальный интерфейс ksStamp.

Ниже приведен пример и результат, в котором выполняется открытие основной надписи, перебор и заполнение ячеек от 0 до 200, а затем закрытие основной надписи (рисунок 3.1).

procedure TMainForm.Button13Click(Sender: TObject);

// заполнение штампа

var iDoc : ksDocument2D;

     iStamp : ksStamp;

     iItemParam : ksTextItemParam;

     iItemFont : ksTextItemFont;

     nCell : integer;

begin

  iDoc:=ksDocument2D (Kompas.ActiveDocument2D);

  if iDoc=nil then

  exit;

  iStamp:=ksStamp (iDoc.GetStamp); //Интерфейс 'Штамп'

  //Интерфейс 'Параметры компоненты текстовой строки'

   iItemParam:= ksTextItemParam (Kompas.GetParamStruct(ko_TextItemParam));

  iItemParam.Init;

//Интерфейс 'Параметры шрифта компоненты текстовой строки'

   iItemFont:= ksTextItemFont (iItemParam.GetItemFont);

  // Признак начертания текстаЖ новая строка в параграфе

  iItemFont.SetBitVectorValue (NEW_LINE, true);

  if iStamp.ksOpenStamp = 1 then

  begin

  for nCell:=0 to 200 do

  begin

  // Сделать ячейку с номером nCell текущей

  iStamp.ksColumnNumber (nCell);

  // Поместить в текущую ячейку одну текстовую строку

  iItemParam.s := format ('Ячейка %d', [nCell]);

  iStamp.ksTextLine (iItemParam);

  end;

  iStamp.ksCloseStamp;

  end;

  end;

 

Рисунок 3.1 – Пример заполнения основной надписи

 

3.5 Вставка фрагмента

 

Фрагмент - разновидность графического документа «КОМПАС». В нем есть только один вид и отсутствует компоненты чертежа из готовых частей. Чаще всего эти части рисуются отдельно и сохраняются в файлах фрагментов *.FRW. При вставке фрагмента в чертеж указываются параметры привязки фрагмента – координаты привязки, масштаб и угол наклона. Допускается вложенная вставка фрагментов.

Фрагменты по отношению к чертежу могут быть внешними и локальными. Внешние фрагменты вставляются из внешних файлов. При вставке можно сохранить связь фрагмента с RTW-файлом, так что изменения в этом файле будут автоматически отображаться на листе чертежа, в который вставлен фрагмент. При таком способе вставки файл чертежа оказывается связан с файлами фрагментов, так что при копировании файла чертежа необходимо будет копировать и файлы фрагментов.

В следующей процедуре демонстрируется вставка в лист чертежа внешней ссылкой фрагмента из файла g:\frg2.frw.

procedure TMainForm.Button14Click(Sender: TObject);

 var iDoc : ksDocument2D;

     iFrg : ksFragment;

     iPlaceParms : ksPlacementParam;

     hndDefFrg : reference;

     p : reference;

 begin

 iDoc :=ksDocument2D (kompas.ActiveDocument2D);

 iFrg :=ksFragment (iDoc.GetFragment);

 //Создание объекта "определение фрагмента" - дескриптор этого

 // объекта hndDefFrg будет обозначать локальный фрагмент

 hndDefFrg :=iFrg.ksFragmentDefinition('g:\frg2.frw', 'какой-то фрагмент',1);

 // способ вставки

   if hndDefFrg = 0 then

 exit;

 //Параметры привязки (местоположения и ориентация) фрагмента

 iPlaceParms:=ksPlacementParam (kompas.getParamStruct(ko_PlacementParam));

 iPlaceParms.angle:=45;

 iPlaceParms.scale_:=1.5;

 iPlaceParms.xBase:=100;

 iPlaceParms.yBase:=150;

 // Создание объкта "вставка фрагмента"

  p:=iFrg.ksReadFragment('g:\frg2.frw', false, // способ размещения по слоям

                           iPlaceParms);

 {p:=iFrg.ksInsertFragment (hndDefFrg, False, // способ размещения по слоям

                           iPlaceParms);   }

 if p<>0 then

 begin

 //Подстветка вставленного фрагмента

 iDoc.ksLightObj (p,1);

 Kompas.ksMessage ('Вставка внешнего фрагмента');

 iDoc.ksLightObj (p, 0);

 end

 else

     Kompas.ksMessageBoxResult;

  end;

 

 


4 Разработка компонентов программы автоматизированного построения планировки ГПС

 

4.1Разработка информационного обеспечения

 

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

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

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

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

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

Состав БД определяют с учетом характеристик объектов проектирования (технических, метрологических, эксплуатационных), характеристик процесса проектирования (типовые проектные решения, описания технологических операций с вариантами их реализации), действующих нормативных и справочных данных, ранее созданных в организации информационных массивов.

Основные требования к базам данных: установление многосторонних связей по производительности - пропускной способности; минимальная избыточность по затратам на создание и эксплуатацию БД; целостность и возможность поиска данных; безопасность и секретность от несанкционированного доступа; связь с разработанными и проектируемыми БД; простота; возможность настройки и перемещения данных. Последние требования составляют концепцию автоматизированных информационных систем, обладающих адаптацией СУБД к данной предметной области с учетом динамики ее развития.

База данных характеризуется двумя аспектами: информационным и манипуляционным. Первый отражает структуру данных, наиболее подходящую для данной предметной области; второй - действия над структурами данных: выборку, добавление, удаление, обновление и преобразование данных.

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

Содержание, структура и организация использования БД должны обеспечивать:

- объединение любого числа БД любого объема, допускающее совместное использование общих данных различными подсистемами САПР для разных задач;

-возможность наращивания БД, достоверность и непротиворечивость данных, минимальный объем памяти ЭВМ для их хранения;

-защиту и регулирование возможности доступа к БД;

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

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

Информационная согласованность программ обеспечивается построением общей для согласуемых программ БД, то есть совокупности всех тех данных, которые обрабатываются в более чем одной программе (модуле).

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

Первая часть - СПРАВОЧНИК - содержит справочные данные о стандартах, нормалях, унифицированных элементах, ранее выполненных типовых проектах. Эта часть изменяется наименее часто, характеризуется однократной записью и многократным считыванием и называется постоянной частью БД.

Вторая часть - ПРОЕКТ - содержит сведения об аппаратуре, находящейся в процессе проектирования. В нее входят результаты решения проектных задач, полученные к текущему моменту (различного типа схемы, спецификации, таблицы соединений, тесты). ПРОЕКТ пополняется или изменяется по мере завершения очередных итераций на этапах проектирования и составляет полупеременную часть БД.

Часто СПРАВОЧНИК и ПРОЕКТ объединяют под общим названием АРХИВ.

Третья часть БД содержит массивы переменных, значения которых важны только в процессе совместного решения двумя (или более) программами конкретной задачи проектирования. Это переменная часть БД.

Первый способ информационного согласования программ - построение централизованной БД, общей для всех модулей программного обеспечения.

В соответствии с этим способом при создании САПР сначала разрабатывается БД, а затем - программное обеспечение.

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

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

Интерфейс представляет собой программы перекомпоновки информационных массивов из форматов и структур одной БД в форматы и структуры, принятые в другой БД.

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

Для выполнения большинства из этих операций требуется специальное программное обеспечение.

Для работы с таблицами баз данных при проектировании использовали программу Database Desktop. Тип таблицы, используемой в качестве базы данных Paradox 7. База данных необходима для выбора необходимого станка. Без нее невозможен сам выбор. Она является необходимой часть программы.

База данных, используемая в программе, приведена в таблице 1.

 

Таблица 4.1 – Таблица «Станки»

Название поля

Значение поля

Тип поля

Размер поля

Model

Модель станка

Character

10

Gab_A

Длина станка

Number

6

Gab_B

Ширина станка

Number

6

Gab_C

Высота станка

Number

6

Razmer_S_A

Длина рабочей поверхности стола

Number

6

Razmer_S_B

Ширина рабочей поверхности стола

Number

6

Kol_instr

Количество инструментов в магазине

Number

3

Emkost_nak

Ёмкость накопителя столов-спутников

Number

3

Put

Путь к фрагменту

Character

254

S1

Расстояние от стены до центра столов спутников

Number

6

S12

Расстояние до центра перегрузки инструментов по оси ОХ

Number

6

S22

Расстояние до центра перегрузки инструментов по оси ОУ

Number

6

 

4.2 Лингвистическое обеспечение

 

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

Лингвистическое обеспечение САПР состоит из языков программирования, проектирования и управления.

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

Языки проектирования - это проблемно-ориентированные языки, служащие для обмена информацией об объектах и процессе проектирования между пользователем и ЭВМ.

Языки управления служат для формирования команд управления технологическим оборудованием, устройствами документирования, периферийными устройствами ЭВМ.

Существуют различные уровни языков программирования: высокие, более удобные для пользователя, и низкие, близкие к машинным языкам.

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

Совокупность языка программирования и соответствующего ему языкового процессора называют системой программирования.

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

В частности, компилятор Turbo Pascal, снабженный интерактивным редактором, позволяет создавать достаточно сложное программное обеспечение — системы управления базами данных, графические пакеты и т. д.

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

Классификация языков проектирования приведена на рисунке 4.1.

Языки проектирования делят на: входные, выходные, сопровождения, промежуточные и внутренние.

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

 

 

Рисунок 4.1 - Классификация языков проектирования

 

Языки сопровождения служат для непосредственного общения пользователя с ЭВМ и применяются для корректировки и редактирования данных при выполнении проектных процедур. В диалоговых режимах работы с ЭВМ средства языков входного, выходного и сопровождения тесно связаны и объединяются под названием диалогового языка. Современные диалоговые языки широко используют средства машинной графики (графический диалог). Диалог с ЭВМ может быть пассивным, когда инициатор диалога - система и от пользователя требуются только простые ответы, и активным при двусторонней инициативе диалога. Наиболее распространенная форма пассивного диалога - это система встроенных, в том числе иерархических, директивных меню.

Недиалоговые системы языков сопровождения ориентированы на пакетный режим работы ЭВМ.

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

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

В качестве примера современного языка проектирования можно указать язык VHDL (VHSIC - hardware description language) - язык описания аппаратуры на базе сверхвысокоскоростных интегральных схем. Этот язык принят в качестве стандарта как инструментальное средство автоматизации проектирования, ориентированное на методологию нисходящего проектирования. Он является достаточно универсальным, чтобы охватить все аспекты проектирования изделий в области цифровой электроники.

Во всех программах для Windows построение интерфейса пользователя, цикл выборки и обработки сообщений реализуется примерно одинаково. Пакеты быстрой разработки программ позволяют автоматизировать написание типичных фрагментов программ. Одним из таких пакетов является Borland Delphi. В этом пакете в качестве базового языка программирования выбран Объектный Паскаль. Также с помощью Borland Delphi существует возможность создание прикладных библиотек для «КОМПАС», что позволяет автоматизировать работу инженера САПР.

 

4.3 Программное обеспечение САПР

 

4.3.1 Программное обеспечение САПР: сущность, классификация

 

Программное обеспечение (ПО) - совокупность программ, выполняемых вычислительной системой.

Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО. Сам по себе компьютер не обладает знаниями ни в одной области применения. Все эти знания сосредоточены в выполняемых на компьютерах программах.

Все программы, работающие на компьютере можно условно разделить на три вида:

1) прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;

2) системные программы, предназначены для управления работой вычислительной системы, выполняют различные вспомогательные функции, например:

- управление ресурсами компьютера;

- создание копий используемой информации;

- проверка работоспособности устройств компьютера;

- выдача справочной информации о компьютере;

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

 

4.3.2 Пакет разработки программ Borland Delphi

 

Операционные системы семейства Windows предоставляют пользователям удобный и интуитивно понятный графический интерфейс. Разработка программ для Windows является трудоемким делом - необходимо знать основные механизмы операционной системы, уметь пользоваться системными средствами для организации интерфейса, учитывать особенности работы программы в многозадачной среде, ориентироваться на разработку программы, управляемой событиями.

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

Компонентами называются готовые элементы, которые можно использовать в программе. Классы Объектного Паскаля можно считать компонентами исходного текста программы. Компоненты могут быть и другого вида - готовые каркасы программ, заголовки диалоговых окон и обслуживающих их программных модулей. Большая часть компонент в Borland Delphi либо является классами Объектного Паскаля, либо содержит их как одну из составных частей.

У компонента есть набор свойств и методов. Свойства - это переменные, влияющие на визуальное представление объекта и, возможно, его поведение. Методы - это действия, которые объект может выполнить по требованию других объектов или пользователя. Среди методов объектов важнейшими являются методы-обработчики событий. Сообщения о событиях программе посылает операционная система. Примерами сообщений являются сообщения о перемещении мыши и нажатии клавиш на клавиатуре. В среде Borland Delphi можно описать реакцию конкретного объекта на конкретное действие, создав обработчик события.

 

4.3.3 Пакет разработки «КОМПАС»

 

Системы автоматизированного проектирования (САПР) или CAD (англ. Computer-Aided Design) - программный пакет, предназначенный для создания чертежей, конструкторской и/или технологической документации и/или 3D моделей. Среди систем малого и среднего класса в мире наиболее популярна система AutoCad фирмы AutoDesk. Отечественный пакет с аналогичными функциями – «КОМПАС»

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

В настоящее время «КОМПАС» состоит из четырех подсистем - чертежно-конструкторского редактора «КОМПАС-ГРАФИК», редактора трехмерных твердотельных моделей «КОМПАС-3D», редактора текстовых документов и редактора спецификаций. Все подсистемы функционируют в составе единой программной среды. «КОМПАС» запускается как обычное приложение Windows. Обращение к различным подсистемам выглядит как работа с документами различных типов внутри приложения «КОМПАС».

Основными подсистемами являются «КОМПАС-ГРАФИК» и «КОМПАС-3D». Подсистема «КОМПАС-ГРАФИК» предназначена для автоматизации подготовки чертежей в соответствии с действующими стандартами на чертежную документацию ЕСКД.

С помощью команд «КОМПАС-ГРАФИК» можно создавать на чертеже геометрические элементы различных типов, полуавтоматически проставлять размеры нарисованных элементов, проводить измерения параметров нарисованных элементов и применять к ним различные геометрические преобразования. «КОМПАС-ГРАФИК» обеспечивает создание практически любых типов чертежных документов – чаще всего это чертежи отдельных деталей и сборочные чертежи, но возможна подготовка  и более специфических видов чертежей, например, электрических или коммуникационных схем. В «КОМПАС-ГРАФИК» есть ряд команд для выполнения типичных конструкторских расчетов по определению массы деталей, вычисления их центров масс и моментов инерции.

Кроме непосредственного выполнения чертежей деталей, в «КОМПАС-ГРАФИК» предусмотрены средства для работы с компонентами для оформления чертежей - основной надписи (штампом), техническими требованиями, спецификацией на сборочных чертежах.

Подсистема «КОМПАС-3D» предназначена для создания трехмерных параметрических моделей и сборок (изделий, состоящих из нескольких деталей). Информацию о трехмерных моделях «КОМПАС-3D» можно в стандартных форматах передавать в другие расчетные пакеты (например, для вычисления прочностных характеристик деталей) и в пакеты разработки управляющих программ для оборудования с ЧПУ, «КОМПАС-3D» позволяет вычислить геометрические и массо-центровочные характеристики моделей.

 

4.3.4 Дополнительные модули «КОМПАС»

 

Дополнительные модели «КОМПАС», написанные с использованием Borland Delphi, можно разделить на две группы - прикладные библиотеки и приложения.

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

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

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

 

4.4 Техническое обеспечение САПР

 

4.4.1 Техническое обеспечение САПР: основные понятия

 

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

Используемые в САПР технические средства должны обеспечивать:

- выполнение всех необходимых проектных процедур, для которых имеется соответствующее ПО;

- взаимодействие между проектировщиками и ЭВМ, поддержку интерактивного режима работы;

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

Первое из этих требований выполняется при наличии в САПР вычислительных машин и систем с достаточными производительностью и емкостью памяти.

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

Третье требование обусловливает объединение аппаратных средств САПР в вычислительную сеть.

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

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

 

4.4.2 Используемое техническое обеспечение

 

Для разработки программы изпользовался ноутбук DELL Inspiron 1501 со следующими техническими храктеристиками:

  • Операционная система Windows XP;
  • Процессор 1,9 GHz;
  • Оперативная память 896 Мб;

Также для разработки программы были использованы следующие программные средства:

  1. Borland Delphi;
  2. «КОМПАС».

 

4.5 Математическое обеспечение САПР

 

4.5.1 Сущность математического обеспечения САПР

 

Основу этого компонента САПР составляют алгоритмы, по которым разрабатывается программное обеспечение САПР и, следовательно, осуществляется процесс автоматизирования проектирования САПР. Математическое обеспечение (МО) при автоматизированном проектировании в явном виде не используется, а применяется производный от него компонент - программное обеспечение.

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

МО любых САПР по назначению и способам реализации делится на две части. Первую составляют математические методы и построенные на их основе математические модели, описывающие объекты проектирования или их части или вычисляющие необходимые свойства и параметры объектов.

Вторую часть составляет формализованное описание технологии автоматизированного проектирования.

В составе любой САПР эти части МО должны органично взаимодействовать.

Способы и средства реализации первой части МО наиболее специфичны в различных САПР и зависят от особенностей процесса проектирования.

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

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

Следовательно, МО САПР должно описывать во взаимосвязи объект, процесс и средства автоматизации проектирования. Для совершенствования МО выделяют два направления работ:

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

Совершенствование и типизацию самих процессов автоматизированного проектирования.

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

- к числу важнейших вопросов методологии современного проектирования относится выбор критериев эффективности вариантов проектных решений, что, как правило, требует решения многокритериальных задач оптимизации;

- теоретически наиболее эффективными при поиске оптимальных проектных решений являются методы нелинейного математического программирования;

- в связи с практической сложностью и высокой трудоемкостью поиска оптимальных проектных решений с помощью точных математических методов существует поиск эффективных проектных решений на основе создания специальных "банков знаний" (фондов описаний объектов, технических решений, а также типовых эвристических методов).

 

4.5.2 Используемое математическое обеспечение

 

В подсистеме Планировка гибкой производственной системы. САПР «КОМПАС» использовалось математическое обеспечение, которое представленно в таблице 4.1.

 

Таблица 4.1 – Математическое обеспечение САПР

Показатель

Формула

1

2

Длина станков (L), м:

- n – количество станков, м;

- lстанка - длина станка, м;

- L1 - расстояние между станками, м;

 

 

Число ярусов склада деталеустановок (А_dy), шт:

- N - число позиций на складе деталеустановок (ДУ), шт;

- Nr - число позиций склада ДУ по го- ризонтали (на одном ярусе), шт

 

 

 

 

Продолжение таблицы 4.1

1

2

Длина склада паллет (L_dy), м:

- L - длина участка станков, м;

- А - число ярусов склада ДУ, м;

- L_dy - количество ячеек склада ДУ, шт;

- a - длина ячейки склада ДУ, м

 

Координата х склада паллет (x_dy), м:

- L - длина участка склада, м;

- L_dy - длина склада паллет, м

 

Число ярусов склада режущих инструментом (A_inst), шт:

- N - число позиций на складе режущих инструментов (РИ), шт;

- Nr - число позиций склада РИ по горизонтали (на одном ярусе), шт

 

Длина склада РИ (L_inst), м:

- L - длина участка станков, м;

- А_inst - число ярусов склада РИ, шт;

- S_inst - количество ячеек склада РИ, шт;

- a_inst - диаметр ячейки склада РИ, м

 

Координата х склада инструментов (x_inst), м:

- L - длина участка склада, м;

- L_inst - длина склада инструментов, м

 

Количество колонн (k), шт:

Lобщ - общая длина участка, м

 

Координата x каждого станка (x), м:

- n - количество станков, шт;

- xi - номер станка;

- L1 - расстояние между станками, м

 

4.6 Методическое обеспечение САПР

 

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

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

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

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

5 Порядок прорисовки планировки ГПС

 

Для того, что бы построить планировку ГПС, необходимы следующие входные параметры:

- габариты детали, которую необходимо обработать (длина и ширина);

- количество станков;

- количество ячеек склада ДУ;

- емкость инструментального склада;

- данные для основной надписи, включающие в себя:

1) фамилию разработчика;

2) фамилию, проверяющего проект;

3) код организации разработчика документа;

4) шифр специальности;

5) код вида документа;

6) характеристика темы;

7) год издания работы;

8) порядковый номер исполнителя.

 

5.1 Создание базы данных

 

Информация о станках представлена в виде реляционной базы данных. При работе с таблицами локальных баз данных сама база данных размещается в каталоге на диске и хранится в виде набора файлов. Для хранения одной таблицы создается отдельный файл.

Обращение к базе данных из утилит и программы осуществляется по псевдониму базы данных Diplom. Псевдоним должен быть зарегистрирован в файле конфигурации конкретного компьютера при помощи утилиты BDE Administrator. Эта утилита предназначена для установки псевдонимов (имен) баз данных, их параметров (формат даты и времени; форматы представления числовых значений), используемых языковых драйверов и так далее. Для присвоения псевдонима создаваемой базе данных необходимо выполнить следующие действия:

- запустить утилиту BDE Administrator из главного меню Windows  командой  Пуск| Программы| Delphi | BDE Administrator;

- выбрать в главном меню окна утилиты элемент Object (Объект)| New (Новый);

- в появившемся окне оставить тип создаваемой базы данных без данных, без изменений (STANDARD) и нажать кнопку OK;

 

 

Рисунок 5.1 – Окно выбора драйвера базы данных

 

- в левом поле окна администратора базы данных изменить строку с именем STANDARD1 на новое имя;

в правом поле, в котором указаны параметры базы данных, изменить параметр PATH , указывающий маршрут доступа к каталогу, в котором располагается база данных; для этого щелкнуть по полю PATH , нажать на появившуюся в правом углу поля кнопку , выбрать каталог с папкой и нажать клавишу OK;

- запомнить определение псевдонима, для этого в левом окне меню выбрать администратора базы данных щелкнуть по имени  псевдонима правой кнопкой мыши, в дополнительном меню выбрать опцию  Apply (Применить) , в появившемся     диалоговом  окне  Confizm   на   вопрос  « Save  all  edits   to Diplom?» («Запоминать все изменения для псевдонима Diplom?») нажать кнопку OK;

- закрыть окно утилиты BDE Administrator.

 

Рисунок 5.2 - Окно утилиты BDE Administrator

 

Для создания таблиц базы данных необходимо запустить утилиту Database Desktop (DBD), которая является средством для создания, изменения и просмотра базы данных. Запуск утилиты осуществляется с помощью главного меню Windows: Пуск| Программы| Delphi | Database Desktop.

После запуска утилиты Database Desktop необходимо установить псевдоним базы данных. Для этого нужно:

- выбрать элемент главного меню File (Файл) | Working Directory (Рабочий каталог);

- в открывшемся окне «Set Working Directory» в выпадающем списке Aliases (Функции) выбрать имя псевдонима, которое было ранее сохранено, в окне Working Directory задать имя каталога, в котором будет располагаться база данных;

- нажать кнопку OK.

Для создания таблицы базы данных нужно выбрать элемент главного меню File (Файл) | New (Новый) | Table (Таблица). В появившемся окне Create Table (Создать таблицу) можно выбрать тип создаваемой таблицы списка - тип Paradox7,  необходимо  установить курсор на этот тип и нажать кнопку OK. После этого появится окно определения структуры таблицы базы данных «Create Paradox7 Table».

Каждая строка таблицы соответствует полю. Назначение столбцов:

- имя поля Fields Name;

- тип поля Type;

- размер поля Size (только для строковых полей);

 

Рисунок 5.3 - Окно утилиты Database Desktop

После определения всех полей необходимо сохранить таблицу на диске, для этого нажать кнопку Save As и в появившемся окне указать имя ctanki.dbf.

 

5.2 Создание файла прикладной библиотеки в Delphi

 

При запуске, Delphi по умолчанию создает пустую форму для нового приложения.

С помощью компонентов Edit и Label необходимо создать поля для ввода габаритов детали, которые представлены на рисунке 5.4:

 

Рисунок 5.4 - Поля для ввода габаритов детали

 

В палитре компонентов на странице Data Access выбрать мышью компонент Table (), щелкнуть на нем мышью и затем щелкнуть мышью на форме. После этого изображение компонента останется в форме.

Для созданного компонента необходимо задать свойства (Properties) в Инспекторе Объектов (Object Inspector):

-  установить в свойство Database Name при помощи выпадающего меню или вручную значение псевдонима базы данных Diplom;

- установить в свойство Table Name имя таблицы базы данных ctanki.dbf;

- для свойства Active установить значение True.

В этот момент произойдет связывание компонента Table (по умолчанию имеет имя Table1) с таблицей.

В качестве связующего звена между невизуальными компонентами (в данном случае Table1) и визуальными компонентами используется компонент Data Source (), который часто называют источниками данных. Необходимо расположить на форме этот компонент, выбрав его в палитре компонентов на странице Data Access, и установить в свойство DataSet (имя набора данных) компонента значение Table1, выбрав его из выпадающего списка.

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

После создания формы необходимо сохранить форму и проект на диске. Для этого выбрать в главном меню раздел File , пункты Save As… и Save Project As… и ввести имена сохраняемых модуля и проекта.

Созданную форму можно использовать для ввода данных, предварительно запустив программу командой Run.

Работающая программа откроет непосредственный доступ к данным в таблице. Для добавления записи нужно нажать на клавиатуре клавишу Insert или, находясь на последней записи набора данных, клавишу смещения курсора вниз. Таблица автоматически перейдет в режим добавления новой записи. После ввода значений в поля записи запомнить запись в наборе данных можно, перейдя на другую запись при помощи клавиш управления курсором. Отказаться от запоминания записи можно, нажав кнопку Esc.

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

Для удаления записи следует установить на нее указатель текущей записи и нажать Ctrl + Del.

На рисунке 5.4 показан вид окна программы в момент добавления в таблицу новой записи.

Рисунок 5.5 – Вид формы на этапе разработки

 

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

Необходимо поместить на форму компонент Button для добавления данных. Для этого компонента необходимо установить свойство Caption – “Добавить”. Перейдя на обработчик событий On Click двойным нажатием на компонент, надо написать следующий обработчик события:

procedure TMainForm.Button2Click(Sender: TObject);   //добавить

begin

  if Table1.State = DsBrowse then

      Table1.Insert;

end;

Для редактирования данных в форме добавляется компонент Button с надписью на кнопке «Изменить» (свойство Caption), обработчиком события:

procedure TMainForm.Button3Click(Sender: TObject);

begin

if Table1.State = DsBrowse then table1.Edit;

 end;

Для удаления записей помещается на форму компонент Button с надписью на кнопке «Удалить» (свойство Caption) и обработчиком события:

procedure TMainForm.Button4Click(Sender: TObject);

begin

if Table1.State = DsBrowse then

if MessageDlg ('Подтвердите удаление записи', MtConfirmation, [MbYes,MBNo],0)=MRYes then

table1.delete;

end;

Если набор данных Table2 находится в режиме просмотра записей DsBrowse, вызывается диалоговое окно MessageDlg с предложением подтвердить удаление записи. Если пользователь нажимает кнопку Yes, текущая запись в наборе данных Table2 удаляется методом Delete.

Для создания визуального компонента, позволяющего запоминать записи, необходимо:

- поместить на форме компонент Button;

- установить в свойство Caption значение «Запомнить»;

- написать обработчик событий

procedure TMainForm.Button5Click(Sender: TObject);

begin

if Table1.State in [DsInsert, DsEdit] then Table1.Post;

end;

Если набор данных находится в режиме добавления новой записи или редактирования, вызывается метод Post набора данных Table2, который запоминает текущее состояние записи в таблице базы данных. После запоминания набор данных автоматически переводится в режим просмотра DsBrowse.

Отмену последних произведенных действий можно осуществить с помощью кнопки, создать которую можно следующим образом:

- поместить на форму визуальный компонент Button;

- установить в свойство Caption значение «Отменить»;

- написать обработчик событий

procedure TMainForm.Button6Click(Sender: TObject);

begin

 if Table1.State in [DsInsert, DsEdit] then

    Table1.Cancel;

end;

Если набор данных находится в режиме добавления новой записи или редактирования, вызывается метод Cancel, который отменяет сделанные изменения и переводит набор данных в режим просмотра DsBrowse.

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

 

Рисунок 5.6 - Визуальные компоненты для работы с базой данных

 

Также с помощью компонентов Label и Edit необходимо создать фрагмент экранной формы, представленный на рисунке 5.7:

 

Рисунок 5.7 - Ввод количества станков, склада ДУ и ёмкости инструментального склада

 

Далее нужно добавить на форму кнопку Button, в свойстве Caption установим значение «Построить планировку». В инспекторе объектов в методе OnClik опишем процедуру непосредственной прорисовки планировки ГПС.

 

5.3 Программирование кнопки «Построить планировку»

 

Прежде всего в разделе описания переменных опишем интерфейс графического документа системы «КОМПАС»: iDoc : ksDocument2D.

С помощью интерфейса iDoc и метода для работы с системой координат перенесем систему координат из левого нижнего угла в точку с координатой (10,130): iDoc.ksMtr(10,130,0,1,1).

 

5.3.1 Прорисовка станков с помощью фрагментов

 

Для прорисовки станков и их размещения воспользуемся разновидностью графического документа «КОМПАС-ГРАФИК». Чертеж каждого станка поместим с отдельный документ и сохраним в файле *.FRW.  В Делфи для работы с фрагментами предназначен интерфейс ksFragment. При вставке фрагмента указываются параметры привязки фрагмента - координаты точки привязки, масштаб и угол наклона. Эти значения хранятся в специальной записи, доступной через интерфейс параметров привязки ksPlacementParam. В приведенном ниже коде программы демонстрируется вставка в лист внешней ссылкой чертежи станка, путь к файлу фрагмента находится в базе данных, станки прорисовываются через расстояние, равное длине станка и промежутку между ними, взятого из справочника:

iFrg :=ksFragment (iDoc.GetFragment);

//Создание объекта "определение фрагмента" - дескриптор этого

// объекта hndDefFrg будет обозначать локальный фрагмент

n:=strtoint(edit2.Text);

y:=(Table1.FieldByName('GAB_B').AsInteger) div 100;

for i:=1 to n do

 begin

    put:=Table1.FieldByName('PUT_F').AsString;

    hndDefFrg :=iFrg.ksFragmentDefinition(put, 'станок',1);

  // способ вставки

   if hndDefFrg = 0 then

 exit;

//Параметры привязки (местоположения и ориентация) фрагмента

iPlaceParms:=ksPlacementParam (kompas.getParamStruct(ko_PlacementParam));

iPlaceParms.angle:=0;

iPlaceParms.scale_:=1;

iPlaceParms.xBase:=s1+10;

iPlaceParms.yBase:=3*y+130;

// Создание объекта "вставка фрагмента"

p:=iFrg.ksReadFragment(put, false, //способ размещения по слоям iPlaceParms);

i1:=Table1.FieldByName('GAB_A').AsInteger;

s1:=s1+13+i1;

end;

 

Выполнение приведенного кода приведет к прорисовке станков в одну линию в соответствии с рисунком 5.8.

 

Рисунок 5.8 - Пример прорисовки станка ИР500МФ4

 

5.3.2 Построение линии выноски для станка

 

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

1 интерфейс ksPosLeaderParam;

2 интерфейс параметров строки текста ksTextLineParam;

3 интерфейс параметров математической точки ksMathPointParam;

4 интерфейс параметров компоненты строки текста ksTextItemParam.

Ниже приведена процедура заполнения параметров интерфейсов для линии выноски:

s :=1;

lead:=ksPosLeaderParam(kompas.GetParamStruct(ko_PosLeaderParam));

tLinePar   := ksTextLineParam (kompas.GetParamStruct(ko_TextLineParam));

tMathPoint:=ksMathPointParam(kompas.GetParamStruct(ko_MathPointParam));

ItemPar:=ksTextItemParam (kompas.GetParamStruct(ko_TextItemParam));

if ItemPar = nil then

Exit;

ItemPar.Init;

tFont := ksTextItemFont( ItemPar.GetItemFont );

if ((lead<>nil) And (tLinePar<>nil) And (tFont<> nil) And (tMathPoint<>nil)) then begin

lead.Init;

tLinePar.Init;

tFont.Init;

tMathPoint.Init;

lead.style := INDICATIN_TEXT_LINE_ARR;

tFont.SetBitVectorValue( NEW_LINE, true );

tLinePar.style := 0;

pText:= ksDynamicArray( lead.GetpTextline);

TextItemArr := ksDynamicArray(tLinePar.GetTextItemArr);

if ( (TextItemArr = nil) Or (pText = nil) ) then

Exit;

ItemPar.s := inttostr(s);

TextItemArr.ksAddArrayItem( -1, ItemPar );

pText.ksAddArrayItem( -1, tLinePar );

pPolyLin   := ksDynamicArray( lead.GetpPolyline );

pMathPoint := ksDynamicArray( kompas.GetDynamicArray(POINT_ARR));

if ( (pPolyLin = nil) Or (pMathPoint = nil) ) then

Exit;

tMathPoint.x := 70;

tMathPoint.y := 3.6*y;

pMathPoint.ksClearArray;

pMathPoint.ksAddArrayItem(-1, tMathPoint);

pPolyLin.ksAddArrayItem(-1, pMathPoint);

lead.SetpPolyline( pPolyLin );

//заполним параметры

lead.x := 45;// координаты базовой точки (начало полки)

lead.y := 3.8*y;

lead.arrowType := 1;

lead.dirX := -1;

obj := idoc.ksPositionLeader(lead);

if obj <> 0 then begin

idoc.ksGetObjParam(obj, lead, ALLPARAM);

idoc.ksSetObjParam(obj, lead, ALLPARAM);

end;

Выполнение приведенного выше кода приведет к построению линии выноски для станка (рисунок 5.9).

Рисунок 5.9 - Пример построения линия выноски для станка ИР500МФ4

 

 

 

5.3.3 Создание спецификации

 

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

spc:=1;

if Kompas.ksIsModuleSpecificationActive=0 then

Kompas.ksModuleSpecification(true);

iSpcObj:=ksSpecification (iDoc.GetSpecification);

iSpcObj.ksAddSpcDescription(docPar);

iSpcObj.ksSpcObjectCreate('graphic.lyt',1,10,0,0,0);

iSpcObj.ksSetSpcObjectColumnText(5,1,1,'Станок '+Table1.FieldByName('model').AsString);

iSpcObj.ksSetSpcObjectColumnText(3,1,1,inttostr(spc));

iSpcObj.ksSpcCount(1,intToStr(n));

ispcObj.ksSpcObjectEnd;

iSpcObj.ksSpcPosition(1);

ispcObj.ksSpcObjectEnd;

В результате получится обяект спецификации, показанный на рисунке 5.10.

 

Римунок 5.10 - Спецификация

 

 

 

 

5.3.4 Рисование размера от стены до центра стола перегрузки палет

 

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

В приведенном ниже коде программы строятся размер от стены до центра стола перегрузки паллет. Сначала происходит получение интерфейса для соответствующего размера от объекта-приложения KompasObject (это интерфейс ksLDimParam), а затем выполняется извлечение из этого интерфейса подчиненных интерфейсов. Потом производиться настройка параметров нтерфейсов и задание текста размерной надписи:

r:=Table1.FieldByName('S1').AsInteger+1500;

x2:=50+Table1.FieldByName('S1').AsInteger/100;

x1:=130;

for i:=1 to n  do

    begin

iDimParms := ksLDimParam (kompas.GetParamStruct(ko_LDimParam));

iDimDrawParms :=ksDimDrawingParam(iDimParms.GetDPar);

iDimSourceParms :=ksLDimSourceParam(iDimParms.GetSPar);

iDimTextParms := ksDimTextParam (iDimParms.GetTPar);

iDimDrawParms.Init;

iDimDrawParms.textBase := 0; // способ размещения текста

// тип первой стрелки (1- внутри, 2 – снаружи)

iDimDrawParms.pt1 := 1;

iDimDrawParms.pt2 := 1; // тип второй стрелки

iDimDrawParms.ang := -30; // угол наклона выноски

iDimDrawParms.lenght := 20; // длина выноски

iDimSourceParms.Init;

// начало первой выносной линии

iDimSourceParms.x1 := 35;

iDimSourceParms.y1 := 3*y+Table1.FieldByName('S1').AsInteger/100;

// начало второй выносной линии

iDimSourceParms.x2 :=x2;

iDimSourceParms.y2 := 3*y+Table1.FieldByName('S1').AsInteger/100;

// смещение размерной линии

iDimSourceParms.dx := 0;

iDimSourceParms.dy := -(x1);

// относительно какой точки задается смещение:

// 1 - от 1,y1,

// 2 - от x2,y2

iDimSourceParms.basePoint := 1;

iDimTextParms.Init( False );

// автопростановка номинала

iStr:=ksChar255(Kompas.GetParamStruct(ko_Char255));

iArrText:=ksDynamicArray(iDimTextParms.GetTextArr);

iStr.str:=Floattostr(r);

iArrText.ksAddArrayItem(-1, iStr);

// создаем размер

iDocument2d.ksLinDimension(iDimParms);

r:=r+i1*100+1300;

x2:=x2+i1+13;

x1:=x1+10;

end;

Рузультат выполнения выше написанного кода приведет к выполнению фрагмента чертежа, показанного на рисунке 5.11.

Рисунок 5.11 - Прорисовка размера от стены до центра стола перегрузки палет на примере станка ИР500МФ4

 

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

 

5.3.5 Прорисовка склада деталеустановок (ДУ) и кран-штабелера

 

В зависомости от того, сколько ячеек склада ДУ задано пользователем, необходимо сравнить это число с характеристикой станка, если введенное количество превышает емкость накопителя выбранного станка то склад ДУ и кран-штабелер необходим.

Прежде чем приступить к прорисовки склада ДУ, необходимо рассчитать длину станков и длину склада ДУ, после сравнения длин определить, сколько ярусов необходимо для склада. Склад ДУ и кран-штабелер строится с помощью процедуры ksRectangleParam, которая строит прямоугольник с заданными размерами (габаритами заготовки), а пути для кран-штабелера с помошью процедур ksLineSeg и ksArcByPoin. Процудура прорисовки склада ДУ и кран-штабелера предствлена в следующем коде:

L:=n*(i1)+(n-1)*13;

s_dy:=strtoint(edit3.text);

if s_dy>Table1.FieldByName('Emkost_nak').AsInteger   then begin

b11:=b1+(b1 div 10);

l_dy:=s_dy*(b11 div 100);

if l_dy>L   then

begin

      m:=l_dy div L;

      if (l_dy mod L)>0.1*L then m:=m+1;

      s_dy:=s_dy div m;

      l_dy:=l_dy div m

end;

x:=(L-L_dy)/2+50;

// создание структуры данных

iRectParam:= ksRectangleParam(kompas.GetParamStruct (ko_RectangleParam));

for i:=1 to s_dy do

begin

    iRectParam.x:= x; // базовая точка 1

    iRectParam.y:= 2.7*y;

    iRectParam.ang:= 0; // угол вектора наравления от 10-ой точки ко 2-ой

    iRectParam.height:= a1/100+0.1*a1/100;  //высота

    iRectParam.width:= b1/100+0.1*b1/100; // ширина

    iRectParam.style:= 1;

    iDocument2D.ksRectangle(iRectParam,0); // создать прямоугольник

    if m>1 then iDocument2D.ksLineSeg (iRectParam.x, 2.7*y, iRectParam.x+b1/100+0.1*b1/100, 2.7*y+a1/100+0.1*a1/100 ,1);

     x:=x+b1/100+0.1*b1/100;

end;

// построение кран - штабеллера и путей для него

 iRectParam:= ksRectangleParam(kompas.GetParamStruct (ko_RectangleParam));

  iRectParam.x  := 50; // базовая точка 1

  iRectParam.y  := 2.85*y;

  iRectParam.ang     := 0; // угол вектора наравления от 10-ой точки ко 2-ой

  iRectParam.height := 1;  //высота

  iRectParam.width := L/2; // ширина

  iRectParam.style:= 1;

  iDocument2D.ksRectangle(iRectParam,0);

 iRectParam:= ksRectangleParam(kompas.GetParamStruct (ko_RectangleParam));

  iRectParam.x  := 50; // базовая точка 1

  iRectParam.y  := 2.95*y;

  iRectParam.ang     := 0; // угол вектора наравления от 10-ой точки ко 2-ой

  iRectParam.height := 1;  //высота

  iRectParam.width := L/2; // ширина

  iRectParam.style:= 1;

  iDocument2D.ksRectangle(iRectParam,0);

 // кран-штабеллер

 iRectParam:= ksRectangleParam(kompas.GetParamStruct (ko_RectangleParam));

  iRectParam.x  := 50+L/2; // базовая точка 1

  iRectParam.y  := 2.84*y;

  iRectParam.ang     := 0; // угол вектора наравления от 10-ой точки ко 2-ой

  iRectParam.height := 0.12*y+1;  //высота

  iRectParam.width := 30; // ширина

  iRectParam.style:= 1;

  iDocument2D.ksRectangle(iRectParam,0);

  // пересекающие линии в кране-штабеллере

  iDocument2D.ksLineSeg(50+L/2,2.84*y,50+L/2+30,2.96*y,1);

  iDocument2D.ksLineSeg(50+L/2,2.96*y,50+L/2+30,2.84*y,1);

  // продолжение путей для крана штабеллера

  iDocument2D.ksLineSeg(50+L/2+30,2.85*y,s1+L1/3,2.85*y,1);

  iDocument2D.ksLineSeg(50+L/2+30,2.85*y+1,s1+L1/3,2.85*y+1,1);

  iDocument2D.ksLineSeg(50+L/2+30,2.95*y,s1+L1/3,2.95*y,1);

  iDocument2D.ksLineSeg(50+L/2+30,2.95*y+1,s1+L1/3,2.95*y+1,1);

  // дуги путей для кран-штабеллера

iDocument2D.ksArcByPoint(s1+L1/3,2.85*y+27,27,s1+L1/3,2.85*y, s1+L1/3+27,2.85*y+27,1,1);

iDocument2D.ksArcByPoint (s1+L1/3-1,2.85*y+27+1,27, s1+L1/3,2.85*y, s1+L1/3+27, 2.85*y+27,1,1);

iDocument2D.ksArcByPoint (s1+L1/3,2.95*y+20,20, s1+L1/3,2.95*y, s1+L1/3+20,2.95*y+20,1,1);

iDocument2D.ksArcByPoint (s1+L1/3-1,2.95*y+20+1,20,s1+L1/3,2.95*y,s1+L1/3+20,2.95*y+20,1,1);

  // вертикальные пути для крана штабеллера

   iDocument2D.ksLineSeg(s1+L1/3+27,2.85*y+27,s1+L1/3+27,3.8*y,1);

   iDocument2D.ksLineSeg(s1+L1/3+27-1,2.85*y+27,s1+L1/3+27-1,3.8*y,1);

   iDocument2D.ksLineSeg(s1+L1/3+20,2.95*y+20,s1+L1/3+20,3.8*y,1);

   iDocument2D.ksLineSeg(s1+L1/3+20-1,2.95*y+20,s1+L1/3+20-1,3.8*y,1);

   iDocument2D.ksLineSeg(s1+L1/3+20-1,3.8*y,s1+L1/3+27,3.8*y,1);

Для обслуживания склада ДУ выберем кран-штабелер модели СКА-1.0. Что бы построить кран-штабелер и путей для него также воспользуемся процедурой ksRectangleParam.

Для склада ДУ и кран-штабелера также необходимо построить линии выноски, размеры и добавить их описание в объект спецификации, как было описано в пунктах 5.3.2-5.3.4.

В результате построения склада ДУ  получим следующий чертеж, который прдставлен на рисунке 5.12.

 

Рисунок 5.12 - Склад ДУ и кран-штабелер

 

5.3.5 Прорисовка склада для инструментов и инструментального робота

 

Прорисовка склада для инструментов и инструментального робота аналогично построению склада ДУ и кран-штабелера. Отличие только в том что при прорисовки одной ячейки склада для инструментов используется процедура ksCircle. В результате выполнения получим следующий программный код:

inst:=strtoint(edit6.text);

l_inst:=inst*2;

if inst>Table1.FieldByName('kol_instr').AsInteger   then begin

m:=1;

if l_inst>L then

begin

   m:=l_inst div L;

   if (l_inst mod L)>(0.01*L) then m:=m+1;

   l_inst:=l_inst div m;

   inst:=inst div m;

   label1.caption:=inttostr(m);

   end;

   x:=L/2-l_inst/2+50;

   y1:=3.98*y;

   for i1:=1 to m do

   begin

      for i:=1 to inst do

         begin

           // окружность, в с запомнили ссылку на нее

          iDocument2D.ksCircle(x,y1,1,1);

          x:=x+2;

                 end;

       x:=L/2-l_inst/2+50;

       y1:=3.98*y+2;

   end;

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

Рисунок 5.13 - Склад для инструментов и инструментальный робот

 

5.3.6 Построение колонн

 

Построение колонн осуществляется с помощью параметра ksLineSeg и метода математического интерфейс ksSymmetryObj. Количество колонн зависит от типа и количества станков. В результате получим следующий программный код:

// строим колонны

k:=(s1 div 120)+2;

L1:=(k*120-s1)+50;

x:=40;

for i:=1 to k do

begin

     gr:=iDocument2D.ksNewGroup(0);

     begin

     iDocument2D.ksLineSeg(x,1.7*y,x+15,1.7*y,1);

     iDocument2D.ksLineSeg(x+15,1.7*y,x+15,1.7*y+10,1);

     iDocument2D.ksLineSeg(x+15,1.7*y+10,x,1.7*y+10,1);

     iDocument2D.ksLineSeg(x+5,1.7*y+10,x+5,1.7*y+20,1);

     iDocument2D.ksLineSeg(x+5,1.7*y+20,x,1.7*y+20,1);

     iDocument2D.ksLineSeg(x+15,1.7*y,x+60,1.7*y,1);

     iDocument2D.ksLineSeg(x+15,1.7*y+3,x+60,1.7*y+3,1);

     iDocument2D.ksLineSeg(x+15,1.7*y+7,x+60,1.7*y+7,1);

     iDocument2D.ksLineSeg(x+15,1.7*y+10,x+60,1.7*y+10,1);

     end;

     iDocument2D.ksSymmetryObj (gr,x+60, 0, x+60, 10, '1');

     iDocument2D.ksSymmetryObj (gr,0, 3.3*y, 10, 3.3*y, '1');

     x:=x+120;

end;

iDocument2D.ksLineSeg(x+5,2.7*y-(a1*3/100),x+5,4.5*y,1);

iDocument2D.ksLineSeg(x+15,2.7*y-(a1*3/100),x+15,4.5*y,1);

iDocument2D.ksLineSeg(x+15,2.1*y,x+20,2.2*y,1);

iDocument2D.ksLineSeg(x+15,2.7*y-(a1*3/100),x+20,2.6*y-(a1*3/100),1);

gr2:=iDocument2D.ksNewGroup(0);

begin

    iDocument2D.ksLineSeg(x,1.7*y,x+15,1.7*y,1);

    iDocument2D.ksLineSeg(x,1.7*y+10,x+15,1.7*y+10,1);

    iDocument2D.ksLineSeg(x+15,1.7*y,x+15,2.1*y,1);

    iDocument2D.ksLineSeg(x,1.7*y+20,x+5,1.7*y+20,1);

    iDocument2D.ksLineSeg(x+5,1.7*y+10,x+5,2.1*y,1);

end;

iDocument2D.ksSymmetryObj (gr2,0, 3.3*y, 10, 3.3*y, '1');

iDocument2D.ksLineSeg(x+5,2.1*y,x+15,2.1*y,1);

x:=40;

gr1:=iDocument2D.ksNewGroup(0);

    begin

    iDocument2D.ksLineSeg(x,1.7*y,x-15,1.7*y,1);

    iDocument2D.ksLineSeg(x,1.7*y+10,x-15,1.7*y+10,1);

    iDocument2D.ksLineSeg(x,1.7*y+10,x-5,1.7*y+10,1);

    iDocument2D.ksLineSeg(x-5,1.7*y+10,x-5,2.1*y,1);

    iDocument2D.ksLineSeg(x-15,1.7*y,x-15,2.1*y,1);

    iDocument2D.ksLineSeg(x,1.7*y+20,x-5,1.7*y+20,1);

end;

   iDocument2D.ksSymmetryObj (gr1,0, 3.3*y, 10, 3.3*y, '1');

   iDocument2D.ksLineSeg(x-5,2.1*y,x-15,2.1*y,1);

При выполнении данного кода получим следующий фрагмент чертежа (рисунок 5.14).

Рисунок 5.14 - Построение колонн

 

5.3.7 Построение вспомогательных участков

 

Для прорисовки участка подготовки палет воспользуемся методом ksLineSeg.

//участок подготовки РИ

  iDocument2D.ksLineSeg(s1,3.55*y,s1+L1/7,3.55*y,4);

  iDocument2D.ksLineSeg(s1+L1/7,3.55*y,s1+L1/7,3.7*y,4);

  iDocument2D.ksLineSeg(s1+L1/7,3.7*y,s1,3.7*y,4);

  iDocument2D.ksLineSeg(s1,3.7*y,s1,3.55*y,4);

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

Аналогичные действия произведем для:

- участка подготовки режущиго инструмента;

- моечной машины;

- координатно-измерительной машины;

- перегрузочных устройств;

- склада накопления стружки;

- склада готовой продукции.

 

5.3.8 Заполнение основной надписи

 

Для создания формы воспользуемся компонентами Edit, Label и ComboBox, заполнение основной надписи (рисунок5.15) программно в «КОМПАС» необходимо использовать интерфейс ksStamp.

 

Рисунок 5.15 - Форма для заполнения основной

 

Заполнив методы итерфейса ksStamp получим следующий код:

har_t:=inttostr(combobox4.ItemIndex);

stamp := ksStamp( idoc.GetStamp );

itemParam := ksTextItemParam( kompas.GetParamStruct(ko_TextItemParam) );

itemParam.Init;

itemFont := ksTextItemFont( itemParam.GetItemFont );

itemFont.SetBitVectorValue( NEW_LINE, true );

if  stamp.ksOpenStamp=1  then

begin

stamp.ksColumnNumber( 110 ); itemParam.s := edit1.text;

idoc.ksTextLine( itemParam ); stamp.ksColumnNumber( 111 );

itemParam.s:= edit7.text; idoc.ksTextLine (itemParam );

stamp.ksColumnNumber( 1 ); itemParam.s := 'Планировка ГПС';

idoc.ksTextLine( itemParam ); stamp.ksColumnNumber( 2 );

itemParam.s:=comboBox1.Text+' '+comboBox2.Text+'.'+ kod+har_t+ edit9.Text +'.'+ Edit8.Text+'ВО';

       idoc.ksTextLine( itemParam );         end;

stamp.ksCloseStamp.
6 Технико-экономическое обоснование проекта

 

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

- работа с текстовыми документами, в том числе отработка нормативных технических и правовых нормативных актов на комплексность и содержательную структуру;

- разработка планов работ и развитие на этой основе проектного управления;

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

Технический эффект состоит в том, что разрабатываемая программа позволит решить целый ряд задач:

- позволит строить планировку цеха за считанные секунды, тем самым позволяет сократить.

- возможность использовать в создаваемых модулях все преимущества современного объектно-ориентированного программирования;

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

Экономический эффект состоит:

1) в экономии времени и средств в процессе моделирования сложного объекта или процесса;

2) в том, что полученная модель позволит выявить недостатки моделируемого объекта или процесса, исправить их и тем самым извлечь дополнительную выгоду;

3) в том, что разработанная САПР позволит сократить расходы на привлечение дополнительных специалистов к процессу моделирования.

 

6.1 Расчет трудоемкости разработки программного продукта

 

Расчет затрат времени на разработку программного продукта  охватывает работы, выполняемые специалистами, на стадиях представленных в таб­лице 6.1.

Таблица 6.1 - Стадии разработки программного продукта

Обозначение

Стадии разработки

ТЗ

Техническое задание

ЭП

Эскизный проект

ТП

Технический проект

РП

Рабочий проект

В

Стадия внедрения

 

 

При расчете фактических затрат времени необходимо учесть влияние следующих факторов:

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

Предусматривается 4 степени новизны разрабатываемых задач (таблица 6.2).

 

Таблица 6.2 - Степени новизны разрабатываемых задач

Обозначение

Степень новизны

А

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

Б

Разработка решений задач и систем, не имеющих аналогов

В

Разработка решений задач и систем, имеющих аналогичное решение

Г

Привязка типовых проектных решений

 

Сложность алгоритма представлено 3 группами в таблице 6.3.

 

Таблица 6.3 - Сложность алгоритма

 

Сложность алгоритма (обозначение)

Виды алгоритма

1

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

2

Алгоритмы учета, отчета, статистики и поиска

3

Алгоритмы, реализующие стандартные методы решения, а также не предусматривающие применения сложных численных и логических выводов

Трудоемкость разработки зависит и от вида используемой информации.

Виды информации представлены в таблице 6.4.

 

Таблица 6.4 - Виды используемой информации

 

Обозначение

Виды информации

ПИ

Переменная информация

НСИ

Нормативно-справочная информация

БД

Базы данных

РВ

Режим работы в реальном времени

ТОУ

Телекоммуникационная обработка данных и управление удаленными объектами

 

Сложность  организации  контроля  входной  и  выходной  информации представлена в таблице 6.5 четырьмя группами.

 

Таблица 6.5 - Группы сложностей организации контроля входной и выходной информации

 

Обозначение

Группа сложности

11

Входные данные и документы разнообразного формата и структур (контроль осуществляется перекрестно)

12

Входные данные и документы однообразной формы и содержания (осуществляется формальный контроль)

21

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

22

Печать документов однообразной формы и содержания,

вывод массивов данных на машинные носители

Далее в справочных таблицах представлены затраты времени при выполнении различных видов работ на разных стадиях процесса разработки про­граммного продукта.

Затраты времени при выполнении работ на стадиях технического задания и эскизного проекта представлены в таблице 6.6.

 

 

 

 

 

Таблица 6.6 - Затраты времени, в днях

 

Комплекс задач подсистемы

 

 

 

 

 

Техническое задание

Эскизный проект

Степень новизны

 

 

Степень новизны

А

Б

В

Г

А

Б

В

Г

1

2

3

4

5

6

7

8

9

1  Перспективное планирование, размещение и развитие отрасли,    управление проектируе­мым капи-тальным строитель­ством; технико-экономическое планирование, управление ценообразованием

79

57

37

34

175

117

77

53

2 Управление материально-техническим снабжением, сбытом продукции; управление комплектацией, экспортными и импортными поставками

105

76

42

30

115

79

53

35

3 Бухгалтерский учет, управ­ление   финансовой деятель­ностью

103

72

30

35

166

112

67

57

4 Управление организацией труда, заработной платой, кадрами, нормами и норма­тивами, охраной труда

63

46

30

13

151

101

67

46

5 Управление качеством про­дукции, технологическими процессами в производстве

64

47

31

22

157

99

67

44

6 Управление транспортными перевозками, техобслужива­нием,         вспомогательными службами и энергоснабжени­ем

91

66

43

26

170

100

70

45

7 Управление научно-технической информацией. Совершенствование документооборота и контроль за ис­полнением документа. Управление охраной природы и окружающей среды.

50

36

24

15

151

101

67

46

8 Учет пенсий, пособий и стра­ховых операций

79

55

36

26

103

70

45

36

9 Статистические задачи

 

129

111

61

38

103

70

45

49

 

Поправочные коэффициенты для определения трудоемкости работ на стадии технического проекта представлены в таблице 6.7 1, К2, К3).

Таблица 6.7 - Поправочные коэффициенты для определения трудоемкости работ на стадии технического проекта

 

 

Вид используемой информации

 

Степень новизны

 

 

 

А

Б

В

Г

ПИ, К1

1,7

1,2

1

0,5

НСИ, К2

1,45

1,08

0,72

0,43

БД, К3

4,37

3,12

2,08

1,25

 

Поправочные коэффициенты для определения трудоемкости работ на стадии рабочего проекта представлены в таблице 6.8  1, К2, К3).

 

Таблица 6.8 - Поправочные коэффициенты для определения трудоемкости работ на стадии рабочего проекта

Вид используемой информации

Группа сложности алгоритма

Степень новизны

А

Б

В

Г

 

С1

2,27

1,62

1,2

0,65

ПИ, К1

 

 

С2

2,02

1,44

1,1

0,58

 

 

СЗ

1,68

1,2

1

0,48

НСИ, К2

С1

1,36

0,97

0,65

0,4

С2

1,21

0,86

0,58

0,34

СЗ

1,01

0,72

0,48

0,29

БД, К3

С1

1,14

0,81

0,54

0,32

С2

1,05

0,72

0,48

0,29

СЗ

0,85

0,6

0,4

0,24

 

При использовании информации разных видов для технического и рабо­чего проекта поправочный коэффициент рассчитывается по формуле (6.1).

 

,                                   (6.1)

 

где m- количество наборов данных ПИ, шт;

                 n - количество наборов данных НСИ, шт;

       p - количество наборов данных БД, шт.

 

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

Сложность контроля входной информации

Сложность контроля выходной информации

 

 

21

22

11

1,16

1,07

12

1,08

1

 

Таблица 6.10 - Поправочные коэффициенты для определения трудоемкости работ на стадии технического и рабочего проектов и внедрения

Стадия

раз­работки

Вид обрабатываемой инфор­мации

Степень новизны

 

 

 

 

А

Б

В

Г

ТП

РВ

1,67

1,45

1,26

1,1

 

 

ТОУ

1,75

1,52

1,36

1,15

РП

РВ

1,75

1,52

1,36

1,15

 

 

ТОУ

1,92

1,67

1,44

1,25

В

РВ

1,6

1,39

1,21

1,05

 

 

ТОУ

1,67

1,45

1,26

1,1

 

Общая трудоемкость разработки рассчитывается по формуле (6.2):

 

,                                   (6.2)

 

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

                   - затраты труда на стадии эскизного проекта, дней  (принимаем 77);

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

- затраты труда на стадии рабочего проекта, дней (принимаем 9);

 - затраты труда на стадии внедрения, дней ( принимаем 4).

 

 дней

 

Общая трудоемкость разработки программного продукта с учетом попра­вочных коэффициентов рассчитывается по формуле (6.3):

 

,                                      (6.3)

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

       - затраты труда на стадии рабочего проекта с учетом поправки, дней;

       - затраты труда на стадии внедрения с учетом поправки, дней.

 

Для расчета затрат труда на стадии технического проекта с учетом поправки по формуле (6.1) и на основе справочной таблицы (6.7) рассчитаем поправочный коэффициент на использование разных видов информации:

 

 

Теперь с учетом поправки на использование разных видов информации и на основе справочной таблицы (6.10) вычислим затраты труда на стадии технического проекта с учетом поправки:

 

t´ТП=8·1,26·1,13=12 дней.

 

Для расчета затрат труда на стадии рабочего проекта с учетом поправки по формуле (6.1) и на основе справочной таблицы (6.8) рассчитаем поправочный коэффициент на использование разных видов информации:

 

 

С учетом поправки на использование разных видов информации и на основе справочных таблиц (6.9) и (6.10) вычислим затраты труда на стадии рабочего проекта с учетом поправки:

 

дней.

 

Для расчета затрат труда на стадии внедрения используются поправочные коэффициенты из справочных таблиц (6.9) и (6.10).

 

дней.

 

Таким образом, общие затраты труда на разработку программного продукта с учетом поправочных коэффициентов составят:

 

дней.

 

Чтобы определить количество человек U необходимое для выполнения работы следует воспользоваться формулой (6.4):

 

,                                                  (6.4)

 

подставив в формулу (6.4) числовые значения трудозатрат получим:

 

человек.

 

Для решения поставленной задачи в установленные сроки нужен 1 программист.

 

6.2 Расчет себестоимости программного продукта

 

Себестоимость программного продукта рассчитывается по формуле (6.5):

 

С = Мвс + Э + Зозп + Здзп + Зсн,                             (6.5)

 

где - затраты на вспомогательные материалы, р;

       - затраты на электроэнергию на технологические цели, р;

       - основная зарплата разработчика, р;

        - дополнительная зарплата разработчика, р;

       - отчисления на социальные нужды, р;

        Н - накладные расходы, р.

 

Затраты на вспомогательные материалы приведены в таблице 6.10.

 

Таблица 6.10 - Затраты на вспомогательные материалы

Наименование затрат

Количество, шт

Сумма, р

1 Картридж для НP black 131

1

80

2 Упаковка бумаги для принтера (500 лист.)

1

140

3 Память USB FLASH DRIVE 1г

1

250

Итого:

470

 

Затраты на электроэнергию рассчитываются по формуле (6.5):

 

,                                            (6.5)

 

где   - мощность потребляемой электроэнергии, кВт;

         - стоимость одного киловатт-часа электроэнергии, р/кВт-ч;

         - общие затраты труда на разработку программного продукта, час;

         - коэффициент загрузки компьютера.

 

Подставив в формулу (6.5) числовые значения вычислим затраты на электроэнергию:

 

Э=2·2,87·(143·8)·0,3=1970 р.

 

Основная заработная плата разработчика рассчитывается по формуле (6.6):

 

                                                      Зозпчтс·Т´ОБЩ,                                               (6.6)

 

где  - часовая тарифная ставка разработчика, р./час;

       - общие затраты труда на разработку программного продукта, час.

Подставив в формулу (6.6) числовые значения вычислим основную заработную плату разработчика:

 

Зозп=35·(143·8)=40040 р.

Дополнительная заработная плата разработчика составляет 10 % от основной зарплаты и рассчитывается по формуле (6.7):

 

                                           Здзп =0,1· Зозп,                                                                                         (6.7)

   

Здзп =0,1·40040=4004 р.

 

Отчисления на социальные нужды определяются по формуле (6.8):

 

                                           Зсн=( Зозп+ Здзп )·Rсн,                                                   (6.8)

 

где  - коэффициент отчислений на социальные нужды,  = 0,26.

 

Подставив в формулу (6.8) числовые значения, вычислим отчисления на социальные нужды:

 

Зсн=(40040+4004)·0,26=11451,4 р.

 

Накладные расходы рассчитываются по формуле (6.9):

 

                                      Н=0,1·( Зозп+ Здзп ),                                                          (6.9)

 

Подставив числовые значения в формулу (6.9), получим:

 

Н= 0,1·(40040+4004)=4404,4 р.

 

Теперь, зная все числовые значения, можно рассчитать полную себестоимость разработанного программного продукта:

 

С=470+1970 +40040+4004+11451,4+4404,4=62339,8 р.

 

В таблице 6.11 сведены результаты расчетов себестоимости программного продукта.

Таблица 6.11 - Калькуляция себестоимости программного продукта

Наименование статей расходов

Затраты, р

1. Основная заработная плата разработчика

40040,0

2. Дополнительная заработная плата разработчика

4004,0

3. Отчисления на социальные нужды

11451,4

4. Накладные расходы

4404,4

5. Затраты на электроэнергию

1970,0

6. Вспомогательные материалы

470,0

7. Полная себестоимость программного продукта

62339,8

 

6.3 Расчет экономического эффекта программного продукта

 

Экономический эффект от внедрения программного продукта рассчитывается по формуле (6.10):

 

,                     (6.10)

 

где  - количество обрабатываемых документов, шт;

       - трудоемкость обработки документов до и после внедрения программы, час;

      Счтс - часовая тарифная ставка пользователя, р/час;

       - коэффициент отчислений на дополнительную заработную плату,  = 0,1;

      - коэффициент отчислений на социальные нужды,  =0,26;

       - нормативный коэффициент окупаемости капитальных вложений, =0,39;

      К - дополнительные капитальные вложения, связанные с разработкой программного продукта (62339,8 р).

 

Используя ранее рассчитанные значения и подставив их в формулу (6.10), получим значение экономического эффекта:

 

Эуг=10000·(21-7)·30·0,1·0,26-0,39·62339,8=84887,5 р.

 

Срок окупаемости программного продукта рассчитывается по формуле (6.11):

,                                                 (6.11)

 

где  - себестоимость программного продукта, р;

                 С1 - стоимостные затраты при использовании ручного труда, р;

                 С2 - стоимостные затраты при использовании программы, р.

 

Для расчета стоимостных затрат воспользуемся формулой (6.10):

 

Э1=10000·21·30·0,1·0,26-0,39·62339,8=139487,5 р.

Э2=10000·7·30·0,1·0,26-0,39·62339,8=30287,5 р.

 

Подставив в формулу (6.11) рассчитанные числовые значения, получим:

 

Ток года или 6,85 мес.

 

Полученные экономические показатели проекта представлены в таблице 12.

 

Таблица 12 - Экономические показатели программного продукта

Наименование показателя

Единица измерения

Затраты

1) Основная заработная плата разработчика

р

40040,0

2) Дополнительная заработная плата разработчика

р

4004,0

3) Отчисления на социальные нужды

р

11451,4

4) Накладные расходы

р

4404,4

5) Затраты на электроэнергию

р

1970,0

6) Вспомогательные материалы

р

470,0

7) Полная себестоимость программного продукта

р

62339,8

8) Экономический эффект

р

84887,5

9) Срок окупаемости программного продукта

лет

0,57


7 Безопасность труда

 

7.1 Анализ и обеспечение безопасных условий труда

 

Исследуемым объектом данной работы являются условия труда инженера-конструктора в компьютерном зале.

В соответствии с СанПиН 2.2.2./ 2.4.1340 - 03 «Гигиенические требования к ПЭВМ и организации работы» [13] необходимо проанализировать: ПЭВМ, помещение для эксплуатации ПЭВМ, микроклимат помещения, шум и вибрацию, освещение помещения рабочего места, организацию и оборудование рабочего места, организацию режима труда.

В компьютерном зале используется монитор фирмы «S0NY», который имеет гигиенический сертификат, соответствующий норме. Эргономические параметры и конструкция данного монитора обеспечивают надёжное и комфортное считывание информации в условиях эксплуатации. Площадь на одно рабочее место составляет 8 м2 при норме не менее 6 м2 , а объём равен 24 м3 при норме не менее 24 м3. В компьютерном зале имеется шкаф для хранения портфелей, сумок и других вещей персонала. Потолок зала покрыт побелкой с коэффициентом отражения - 0,7, стены оклеены обоями бело-жёлтого цвета с коэффициентом отражения - 0,5, пол деревянный красно-коричневого цвета, поверхность ровная, не накапливаются статические заряды с коэффициентом отражения 0,5. Перед началом и после работы помещение проветривается. Помещение оборудовано системой центрального отопления. Установлены кондиционеры типа «CHOFU SERENO», которые, независимо от наружных метеорологических условий, обеспечивают оптимальные и допустимые метеорологические условия для рабочей зоны помещения. Искусственное освещение осуществляется с помощью 4 светильников ОДОР с лампами типа ЛБ, мощностью 80 Вт (по 2 лампы). Светильники подвешены к потолку и расположены в шахматном порядке. Освещенность на рабочем месте равна 340 лк при норме не менее 300 лк в соответствии со СНиП 23–05–95 [14].  Рабочее место по отношению к световым проёмам расположено так, что естественный свет падает сбоку (справа). Освещенность в 0,8 выше нормы по СНиП 23–05–95 [14]. Стол имеет ширину - 800 мм, глубину - 1000 мм, высоту - 737 мм. В столе есть углубление для ног: высота - 700 мм, ширина - 560 мм, глубина - 800 мм. Поверхность стола матовая жёлтого цвета. Продолжительность обеденного перерыва составляет 60 минут. Продолжительность непрерывной работы без регламентированного перерыва не превышает 2 часов., т.к. При 8-ми часовой рабочей смене и работе на ВДТ и ПЭВМ регламентированные перерывы: для через 2 часа от начала рабочей смены и через  2 часа после обеденного перерыва продолжительностью 15 минут каждый, т.к  трудовая деятельность относится к I категории, что соответствует норме.

Для видов трудовой деятельности устанавливаются 3 категории тяжести и напряженности работы с ВДТ и ПЭВМ. В данном случае работа инженера конструктора относится к группе А -  по суммарному числу считываемых знаков за рабочую смену  но не более 60 000 знаков за смену.

В результате мероприятий по эргономике и охране труда (благодаря установленному кондиционеру)  температура воздуха на рабочем месте в холодный период года в помещении повысилась с 18 до 24 ºС, в тёплый - понизилась от 25 до 22 ºС, скорость движения воздуха в холодный период года уменьшилась с 0,3 до 0,1 м/с, в тёплый с 0,2 до 0,1. Уровень шума в помещении 82 дБ, что превышает норму. Таким образом, для снижения шума осуществим следующие меры: • экранирование рабочего места (постановкой перегородок, диафрагм); • облицовку потолка и стен звукопоглощающим материалом (снижает шум на 6-8 дБ); • рациональную перепланировку помещения; • снижение уровня шума, путем подбора для работы техники, производящей минимальный шум. В результате уровень шума снизился до 75 дБ. Относительная влажность воздуха составляет 40 – 50 %.

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

 

 

 

 

 

 

 

Таблица 7.1 - Предельно допустимые концентрации некоторых вредных веществ

Название вещества

ПДК, мг\м3

Концентрация вещества в рассматриваемом помещении, мг\м3

Бензпирен

0,00015

0,00005

Бериллий и его соединений

0,001

0,0003

Свинец

0,01

0,001

Хлор

1,0

0,2

Серная кислота

1,0

0,4

Хлорид водорода

5,0

1,1

 

Величина физической нагрузки: общая, выполняемая мышцами корпуса и ног за смену (работа оператора не предусматривает большой физической нагрузки) до 42000 кгс/м; региональная, выполняемая мышцами плечевого пояса за смену до 21000 кгс/м; рабочая поза, рабочее место (поза несвободная (сидя) до 25 % рабочего времени рабочий находится в наклонном положении под углом до 30º).

Величина нервно – психической нагрузки: длительность сосредоточенного наблюдения снизилась с 30 до 20 % от рабочего времени за смену; число важных объектов наблюдения уменьшилось с 8 до 4; количество движений в час до 250; количество сигналов в час до 75. Напряжение зрения: размер объекта, различения более 5,0 мм; точность зрительных работ малой точности; разряд зрительных работ VI. Монотонность: число приёмов (элементов и операций) более 10; длительность повторяющихся операций более 100.

 

7.2 Расчет категорий тяжести и напряженности труда

 

Определим динамику изменения производственного травматизма и работоспособности в этих условиях при работе оператора ПЭВМ в компьютерном зале. В таблице 7.2 приведена оценка условий труда в баллах  до и после внедрения мероприятий.

 

 

 

 

Таблица 7.2 – Значение условий труда инженера-конструтора в баллах

Факторы

Оценка факторов в баллах

До внедрения мероприятий

После внедрения мероприятий

Значение

Балл

Значение

Балл

Санитарно – гигиенические:

- температура воздуха на рабочем месте:

1) в холодный период года, ºС;

2) в теплый период года, ºС;

3) относительная влажность воздуха, %;

- скорость движения воздуха:

1) в холодный период года, м/с;

2) в теплый период года, м/с;

3) уровень вибрации, дБ;

4) уровень шума, дбА;

- освещение:

1) естественное, %;

2) искусственное, лк.;

 

 

 

18

25

От 40 до 50

 

 

0,3

0,2

0,9

82

 

0,8

340

 

 

 

2

3

1

 

 

2

2

1

2

 

2

1

 

 

 

24

22

От 40 до 50

 

 

0,1

0,1

0,9

75

 

0,8

340

 

 

 

1

2

1

 

 

1

1

1

2

 

2

1

Психофизиологические:

- величина физической нагрузки:

1) общая, выполняемая мышцами корпуса и ног, кгс-м;

2) региональная, выполняемая мышцами плечевого пояса, кгс-м;

3) рабочая поза;

 

- величина нервно – психической  нагрузки, %:

 

 

 

 

42000

 

 

21000

Несвободная

 

30

 

 

 

 

1

 

 

1

3

 

 

2

 

 

 

 

42000

 

 

21000

Несвободная

 

 

20

 

 

 

 

1

 

 

1

3

 

 

1

Продолжение таблицы 7.2

1) длительность сосредоточенного наблюдения, %;

2) число важных объектов наблюдения;

3) количество движений в час;

- количество сигналов в час напряжение зрения:

1) размер объекта, различения, мм;

2) точность зрительных работ;

3) разряд зрительных работ;

- монотонность:

1)число приёмов (элементов и операций);

2)длительность повторяющихся операций;

 

50

 

8

250

 

75

 

более 5

малая

 

VI

 

более 10

 

более 100

 

1

 

2

1

 

1

 

1

2

 

1

 

1

 

1

 

50

 

4

250

 

75

 

более 5

малая

 

VI

 

более 10

 

более 100

 

1

 

1

1

 

1

 

1

2

 

1

 

1

 

1

 

При одновременном воздействии ряда факторов интегральная оценка тяжести труда в баллах определяется по выражению (7.1):

UТ = ,                                (7.1)

 

где UТ – интегральный показатель категории тяжести в баллах;

      Хmax – элемент условий труда на рабочем месте, имеющий наибольший балл;

      – сумма количественной оценки в баллах значимых элементов условий труда без Хmax;

       n – количество элементов условий труда, шт;

      10 – число, введённое для удобства расчётов.

Определяем интегральную оценку тяжести труда до и после внедрения мероприятий по формуле (7.1).

До внедрения мероприятий:

 

U1 = 38.1,

 

что соответствует третьей категории тяжести труда.

После внедрения мероприятий:

 

U2 = 36,67,

 

что также соответствует третьей категории тяжести работ.

Прогнозирование изменения травматизма осуществляется следующим образом. Рост травматизма оцениваем по формуле (7.2):

 

К =  ,                                            (7.2)

 

где К – рост производственного травматизма, количество раз;

      UТ – интегральный показатель категории тяжести труда в баллах.

 

До внедрения мероприятий:  

 

.

              

Возможен рост производственного травматизма почти в 2 раза.

После внедрения мероприятий:

 

.

 

Для того чтобы выяснить, как изменилась работоспособность после внедрения мероприятий по её повышению, необходимо определить показатель её уровня и показатель утомления. Показатель утомления определяем по формуле (7.3)

У =  ,                                                (7.3)

 

где У – показатель утомления в условных (относительных) единицах;

      15,6 и 0,64 – коэффициенты регрессии;

      UТ – интегральный показатель категории тяжести труда в баллах.

До внедрения мероприятий:

 

.

 

После внедрения мероприятий:

 

.

 

Уровень работоспособности определим по формуле (7.4)

 

R = 100 – У .                                                  (7.4)

 

До внедрения мероприятий:     

              

.

     

После проведения мероприятий:

 

.

 

Изменение производительности труда (прирост производительности труда) за счет изменения работоспособности по формуле (7.5) составит:

 

ППТ =  ,                                    (7.5)

где ППТ – прирост производительности труда;

 R2 и R1 – работоспособность в условных единицах до и после внедрения мероприятий, понизивших тяжесть труда;

 0,2 – поправочный коэффициент, отражающий усреднённую зависимость между повышением работоспособности и ростом производительности труда.

Ппт=

Выводы (после проведения мероприятий по улучшению условий труда):

– производительность труда увеличилась на 4,6 %;

– рост производственного травматизма снизился с 1,7 до 1,6;

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

 

7.3 Возможные чрезвычайные ситуации

 

Чрезвычайная ситуация - это обстановка на определенной территории, сложившаяся в результате аварии, опасного природного явления, катастрофы, стихийного или иного бедствия, которые могут повлечь или повлекли:

- человеческие жертвы;

- ущерб здоровью людей или окружающей среде;

- значительные материальные потери;

- нарушение условий жизнедеятельности людей.

Возможные чрезвычайные техногенные ситуации в городе Оренбурге:

– падение самолётов и вертолётов в черте города;

– выбросы вредных веществ, перевозимых по железной дороге или с заводов (по станции Оренбург проходят 7 – 8 грузовых поездов в сутки с АХОВ);

– пожары и взрывы в результате случайности или террористических актов.

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

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

 

7.3.1 Расчет молниезащиты

 

Исходные данные для расчета молниезащиты: наименование объекта (административный корпус ЮУПК), размеры объекта l = 24 м, b = 15 м, h = 9 м; среднее число поражений молнией 1 км2 данной поверхности в год; категория производства по степени пожарной опасности, классы опасных зон по пожаро- и взрывоопасности в соответствии с ПУЭ.

Определить число поражений молнией в год строений, не оборудованных молниезащитой можно по формуле (7.6)

 

N = (b + 6h)(l + 6h) n ∙ 10−6 ,                                   (7.6)

 

где l, b − соответственно длина и ширина строения, имеющего в плане прямоугольную форму, м;

      h − высота строения по его боковым сторонам, м;

      n − среднегодовое число ударов молний на 1 км2 земной поверхности в районе расположения объекта, выбираемое в зависимости от интенсивности грозовой деятельности (n = 3).

 

N = (15 + 6 ∙ 9)(24 + 6 ∙ 9) ∙ 3 ∙ 10−6 = 0,44 ∙ 10−3.

 

Исходя из конструкции здания, размера и формы выбираем одиночный стержневой молниеотвод. Зона защиты молниеотвода представляет собой часть пространства, примыкающего к молниеотводу, внутри которого здание защищено от прямых ударов молнии с определённой степенью надёжности. Выбираем зону защиты типа Б. Зона защиты одиночного стержневого молниеотвода высотой h ≤ 150 м представляет собой конус, вершина которого находится на высоте h0 <  h, а основание образует круг радиусом rх.

Для зоны типа Б эти размеры определяются по формулам (7.7)

 

h0 = 0,92 h;         r0 = 1,5 h;         rх = 1,5(hhх/0,92).              (7.7)

 

При известных значениях hх и rх высота молниеотвода для зоны типа Б определяется по формуле (7.8)

 

h = (rх + 1,63hх)/1,5.                                        (7.8)

 

Радиус зоны защиты молниеотвода при установке его на крыше здания

 

rх0 = 0,5= 0,5= 14,15 м.

 

Принимая для этого случая hх = 0, рассчитаем высоту одиночного стержневого молниеотвода:

 

h0 = rх0/1,5 = 14,15/1,5 = 9,43 м.

 

Радиус  зоны  защиты  молниеотвода при  установке его на расстоянии с = 1 м от угла здания

rх1 = с + = 1 + = 29,30 м.

 

При hх = h высота молниеотвода

 

h = (rх + 1,63hх)/1,5 = (29,3 + 1,63 ∙ 9)/1,5 = 29,31 м.

 

Вывод: после проведения расчетов по молниезащите установлено, что если устанавливать одиночный стержневой молниеотвод на пересечении диагоналей плоскости крыши здания, то высота его будет равна 9,43 м, а если устанавливать его на расстоянии 1 м от угла здания, то высота его будет равна 29,31 м.

 

7.3.2 Расчет эвакуационных путей и выходов

 

Предельно допустимая длина эвакуационного участка, м, определяется по формуле (7.9)

 

Lпр = vT,                                              (7.9)

 

где v – скорость движения людей при вынужденной эвакуации: при движении по горизонтальным участкам v = 16 м/мин, по лестнице вверх v = 8 м/мин, вниз v = 10 м/мин;

     T – допускаемое время эвакуации, мин (T = 2 мин).

Рассчитаем предельно допустимую длину эвакуационного участка, м,

 

Lпр = 10 ∙ 2 = 20 м.

 

Плотность размещения людей на площади эвакуационного участка, м22:

 

Д = ,                                        (4.10)

 

где Ni − численность людей на участке;

  fi − площадь горизонтальной проекции человека, м2;

  S − площадь участка эвакуации, м2.

 

Д = 60 ∙ 0,113 / 360 = 0,0188 м22.

 

Значение Д должно быть не более 0,92 м22.

Ширина эвакуационного участка, м,

 

В = N / (Lпрδ),                                            (4.11)

 

где δ − предельная плотность потока людей для взрослых не более 10…12 чел/м2.

 

В = 60 / 20 ∙ 12 = 0,25 м.

Число путей эвакуации:

 

Пэ = 0,6N/(100В) = 0,6 ∙ 60 / 100 ∙ 0,25 = 1,44 ≈ 1.

 

Вывод: в результате проведённых расчетов было установлено, что эвакуационный путь необходим один, который уже существует в исследуемом объекте.

Заключение

 

Актуальность данной работы не вызывает сомнения, поскольку на любом производстве инженеры сталкиваются с проблемой построения планировки ГПС. Используя данную прикладную библиотеку достаточно только ввести несколько параметров, планировка будет построена автоматически, и инженеру нет надобности проводить расчеты и заниматься рутинной работой по построению каждой линии.

Проведена серьезная работа по выводу формул, рассчитывающих координаты позиций складов, станков и других необходимых составных частей ГПС. Именно поэтому в данной работе значительное внимание уделяется результату, который представлен на листе документа программы «Компас».

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

 

 

Список использованных источников

 

  • Безопасность жизнедеятельности. Безопасность технологических процессов и производств (Охрана труда): учеб. пособие для вузов / П.П. Кукин [и др.]. – 2-е изд., испр. и доп. - М.: Высш. шк., 2001. – 319 с.
  • Безопасность жизнедеятельности: учеб. для вузов / С.В. Белов [и др.]; под общ. ред. С.В. Белова. – 4-е изд., испр. и доп.– М.: Высш. шк., 2004. – 606 с.
  • Экономика предприятий: учебник для вузов / под общ. ред. О.И. Волкова и др. – 3-е изд. -  М., ИНФРА – М, 2006 – 602 с.
  • Экономика: учебник для вузов / под. общей ред. доц. А.С. Булатова [и др.]. – изд. 4 – е, перераб. и доп. - М., Экономика, 2006. – 832 с.
  • СанПиН 2.2.2/2.4.1340 – 03. Гигиенические требования к персональным электронно-вычислительным машинам и организации работы. – Введ. 30.06.2003. – М., 2003. - 20 с.
  • Аверьянов, О.И. Технологиче­ское обо­рудова­ние ГПС / О.И. Аверьянов, А.И. Дащенко, А.А. Лескин.- Л., Политехника, 1991.-320 с.
  • Бондаренко, В.А. Основы создания ГПС механообра­ботки: Учебное пособие / В.А. Бондаренко, А.И. Сердюк.
  • Васильев, П.П. Экология и охрана труда. Количественная оценка и примеры: учеб. пособие для вузов / П.П. Васильев. – М.: ЮНИТИ-ДАНА, 2003. – 188 с.
  • Гибкие производственные комплексы/ Под ред. П.Н. Белянина, В.А. Ле­щенко .- М.: Машиностроение, 1984.- 384 с.
  • Грибов, В.Д. Экономика предприятия: учебный практикум для вузов / В.Д. Грибов, В.П. Грузинов. – 3 изд., перераб. и доп. – М., Финансы и статистика, 2006. – 336 с.
  • Жилин, А.Н. Оценка химической обстановки на объектах при выбросах сильнодействующих ядовитых веществ: метод. указания / А.Н. Жилин, В.И. Винник. – Оренбург: ОГУ, 1999. – 24 с.
  • Мельников, Г.Н. Проектиро­вание механосборочных цехов / Г.Н. Мельников, В.П. Вороненко. - М.: Машиностроение, 1990. - 351 с.
  • Романенко, И.В. Экономика предприятий / И.В. Романенко. – 3–е изд., перераб. и доп. – М., Финансы и статистика, 2005. – 264 с.

ЧЕРТЕЖИ К ДИПЛОМНОМУ ПРОЕКТУ

 

 

Планировка гибкой производственной системы.  Подсистема САПР «КОМПАС»

 

Планировка гибкой производственной системы.  Подсистема САПР «КОМПАС»

 

 

 

 

 

Планировка гибкой производственной системы.  Подсистема САПР «КОМПАС»

 

Планировка гибкой производственной системы.  Подсистема САПР «КОМПАС»

 

 

 

Планировка гибкой производственной системы.  Подсистема САПР «КОМПАС»

 

Скачать: diplom.rar

 

Категория: Дипломные работы / Дипломные работы по машиностроению

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