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

/>/>Содержание
Введение
Техническоезадание
1.      Анализ мехатронной системы станка с ЧПУ
1.1    Общаяструктура и классификация систем ЧПУ
1.2    Обоснование применения программного управления оборудованием
1.3    Назначениепостпроцессоров
2.      Разработка системы подготовки обработки детали станка с ЧПУ
2.1    Функциональнаямодель системы подготовки обработки детали станка с ЧПУ
2.2    Алгоритмработы программного модуля
2.3    Выборпрограммных средств реализации системы
3.      Технологическая реализация системы подготовки обработкидетали станка с ЧПУ
3.1    Описаниекодов программного модуля
3.2    Правилаустановки и настройки программного модуля
3.3    Тестированиеи отладка программного модуля
3.4    Инструкцияпользователя
4.      Расчет экономической эффективности
4.1    Расчетзатрат на разработку системы
4.2    Методологиярасчета общей стоимости владения программным продуктом
4.3    Экономическийэффект
5.      Обеспечение безопасности жизнедеятельности
5.1    Общие сведения о безопасности жизнедеятельности
5.2    Требования крабочему месту инженера–программиста
5.3    Расчетестественного освещения рабочего места
5.4    Расчетискусственного освещения
Заключение
Список литературы
Приложение А Исходный текст программного модуля
Приложение Б Параметры проекта Delphi8
Приложение B Текстнастроечного файла программного модуля4
Приложение Г Текст файлов связи с пакетом 3D моделирования0
Приложение Д Текст управляющей программы ЧПУ3

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

Техническое задание
1. Основаниядля разработки
Систему подготовки обработкидетали станка с числовым программным управлением (ЧПУ) Walter CIP6 разработать на основании заявкибюро разработки управляющих программ технологического отдела Инструментальногопроизводства ОАО «АВТОВАЗ».
Тема: Система подготовкиобработки детали станка с ЧПУ
2. Назначениеразработки
Система выполняется в виде программного модуля и создаетсядля автоматического расчета всех необходимых параметров обработки по введеннымданным и вывода текста программы, готового для ввода в память станка.
Система подготовки обработкидетали станка с ЧПУ должна быть предназначена для:
–  ввода исходных данных с чертежа и технологии;
–  создания наладки режущего инструмента;
–  расчета всех необходимых геометрических свойств;
–  проверки по ограничениям станка;
–  визуализации обработки;
–  корректировки введенных данных;
–  расчета траектории обработки;
–  диагностики ошибок;
–  формирования кода управляющей программы;
–  выдачи в файл текста управляющей программы обработки.
Внедрение системы подготовкиобработки детали шлифовального станка с ЧПУ Walter CIP6, позволитсоздавать программы для обработки сложного по конструкции осевого инструмента,проводить глубокий анализ конструкционных и режущих свойств реального изделия наэтапе разработки управляющей программы, повысить качество выпускаемой продукциии избежать выпуск брака.
3. Требованияк программному изделию
3.1 Требования к функциональным характеристикам
Программный модуль должен обеспечивать выполнение следующихфункций:
–  Ввод исходных данных с чертежа и технологии;
–  Создание наладки режущего инструмента;
–  Расчет всех необходимых геометрических свойств;
–  Проверку по ограничениям станка;
–  Визуализацию обработки;
–  Корректировку введенных данных;
–  Расчет траектории обработки;
–  Назначение подачи с учётом ограничений, связанных схарактером движения, допустимым диапазоном подач, особенностями реализациирежимов разгона – торможения в ЧПУ;
–  Формирование циклов обработки;
–  Назначение припусков обработки;
–  Расчет траектории обработки;
–  Диагностика ошибок;
–  Формирование кода управляющей программы;
–  Выдачу в файл текста управляющей программы обработки.
Результатом работы будет файл управляющей программы, готовыйк запуску на станке в ЧПУ Walter CIP6.
3.2 Требования к надежности
–  ограничение ввода некорректной информации;
–  контроль достоверности информации;
–  обеспечение наглядности создаваемых процессов;
–  защита от случайных нажатий клавиш;
–  дружественность интерфейса пользователя.
3.3 Условия эксплуатации
–  корректная работа пользователей;
–  соблюдение инструкций работы с программныммодулем;
–  соответствие программного обеспечения, установленногона компьютере пользователя.
3.4 Требования к составу ипараметрам технических средств
Система предназначена дляработы на IBM – совместимых компьютерах с минимальнойконфигурацией: процессор – 2200 Mh и выше, объем оперативной памяти512 Mb и более, размер свободного места на жестком диски неменее 50Mb, монитор с разрешением 1024х768 и выше,профессиональная видеокарта, мышь с колесом прокрутки, клавиатура.
3.5 Требования кинформационной и программной зависимости
Система должна работать подуправлением операционной системы Windows 2000 или Windows XP, пакет твердотельного моделирования Designer Modeling 2005.
4. Требованияк программной документации
Разрабатываемые программные модулидолжны быть документированы, т.е. тексты программ должны содержать всенеобходимые комментарии.
Информационная система должнавключать справочную систему о работе и подсказки пользователю.
В состав сопровождающейдокументации должны входить:
–  описание программных модулей;
–  описание функций программных модулей.
Инструкция пользователю поработе с программными модулями.
5. Технико-экономическиепоказатели
Разработать системуподготовки обработки детали станка с ЧПУ предназначенную для созданияуправляющей программы операций шлифования осевого инструмента, автоматизации расчетовтехнологических переходов, а также визуализации обработки при помощи пакетатвердотельного моделирования Designer Modeling 2005.
Использование данного программного модуля должно обеспечитькорректное преобразование траектории движения инструмента и технологическиекоманды в коды управления соответствующей комбинацией «станок — системаЧПУ», без использования другого специализированного программногообеспечения. А также позволит создавать программы для обработки сложного поконструкции осевого инструмента, проводить глубокий анализ конструкционных ирежущих свойств реального изделия на этапе разработки управляющей программы,повысить качество выпускаемой продукции.
Разработать системуподготовки обработки детали станка с ЧПУ, которая будет иметь простойинтерфейс, понятный конечному пользователю, высокую скорость работы,возможность анализа ряда технологических и конструкционных параметров.
6. Стадии иэтапы разработки
Разработка основного алгоритма работы модуля дней
Отладка и тестирование на реальных изделиях дней
Разработка пользовательского интерфейса дней
Тестирование специалистами бюро разработки управляющих программдля анализа работы и выдачи замечаний     дней
Доработка замечаний дней
Окончательное тестирование работы программного модуля
постпроцессора дней
7. Запуск иотладка программного модуля
Запуск и отладка программного модуля включает следующиеэтапы:
–  Разработка, согласование и утверждение программы иметодики испытаний;
–  Проведение предварительных государственных,межведомственных, приёмо-сдаточных и других видов испытаний;
–  Корректировка программы и программной документации порезультатам испытаний;
–  Подготовка и передача программы и программнойдокументации для сопровождения и изготовления;
–  Оформление и утверждение акта о передаче программы насопровождение и изготовление.
8. Порядокконтроля и приемки программного модуля
Первоначальные испытания работоспособности разработанногопрограммного модуля мехатронной системы станка с ЧПУ Walter CIP6 проводит разработчик на стадииего разработки. Контроль работоспособности готового программного модуляпостпроцессора проводит заказчик. Для этого он может привлекать экспертов своей организации или экспертов состороны.
1. Анализ мехатронной системы станка с ЧПУ1.1 Общая структура и классификация систем ЧПУ
На основе достижений кибернетики, электроники, вычислительнойтехники и приборостроения были разработаны принципиально новые системы программногоуправления – системы ЧПУ, широко используемые в промышленности. Эти системыназывают числовыми потому, что величина каждого хода исполнительного органастанка задается с помощью числа. Каждой единице информации соответствуетдискретное перемещение исполнительного органа на определенную величину,называемой разрешающей способностью системы ЧПУ или ценой импульса.
В определенных пределах исполнительный орган можно переместитьна любую величину, кратную разрешающей способности. Число импульсов, котороеможно подать на вход привода, чтобы осуществить требуемое перемещение,определяется отношением длины перемещения к цене импульса системы ЧПУ. Число импульсов,записанное в определенной системе кодирования на носителе информации(перфоленте, магнитной ленте и других), является программой, определяющейвеличину размерной информации.
Станки с программным управлением по виду управленияподразделяют на станки и системами циклового программного управления и станки ссистемами числового программного управления. Системы циклового программногоуправления более просты, так как в них программируется только цикл работыстанка, а величины рабочих перемещений, т.е. геометрическая информация,задаются упрощенно, например, с помощью упоров. В станках с ЧПУ управлениеосуществляется от программы, в которой в числовом виде занесена игеометрическая, и технологическая информация.
Система ЧПУ – это совокупность специализированных устройств,методов и средств, необходимых для реализации ЧПУ станком, предназначенная длявыдачи управляющих воздействий исполнительным органам станка в соответствии с управляющейпрограммой [1].
Устройство программного управления станками – это частьсистемы ЧПУ, выполненная как единое целое с ней и осуществляющая выдачууправляющих воздействий по заданной программе.
Числовое программное управление – это управление, прикотором программу задают в виде записанного на каком-либо носителе массиваинформации. Управляющая информация для систем ЧПУ является дискретной и ееобработка в процессе управления осуществляется цифровыми методами. Управлениетехнологическими циклами практически повсеместно осуществляется с помощьюпрограммируемых логических контроллеров, реализуемых на основе принциповцифровых электронных вычислительных устройств.
Структурная схема системы ЧПУ представлена на рисунке 1, а.Чертеж детали (ЧД), подлежащий обработке на станке с ЧПУ, одновременнопоступает в систему подготовки программы (СПП) и систему технологическойподготовки (СТП). Последняя обеспечивает систему подготовки программы данными оразрабатываемом технологическом процессе, режимах резания и так далее. Наосновании этих данных разрабатывается управляющая программа (УП). Наладчикиустанавливают на станок приспособления, режущие инструменты согласнодокументации, разработанной в системе технологической подготовки. Установкузаготовки и снятие готовой детали осуществляет оператор или автоматическийзагрузчик. Считывающее устройство (СУ) считывает информацию с носителяпрограммы. Информация поступает в устройство ЧПУ, которое выдает управляющиекоманды на целевые механизмы (ЦМ) станка, осуществляющие основные ивспомогательные движения цикла обработки. Операционная система на основеинформации (фактическое положение, скорость перемещения исполнительных узлов,фактический размер обрабатываемой поверхности, тепловые и силовые параметрытехнологической системы и др.) контролируют величину перемещения целевогомеханизма. Станок содержит несколько целевых механизмов, каждый из которыхвключает в себя (рисунок 1, б): двигатель (ДВ), являющийся источником энергии;передачу (П), служащую для преобразования энергии и ее передачи от двигателя кисполнительному органу (ИО); собственно исполнительный орган (стол, салазки,суппорт, шпиндель и т.д.), выполняющие координатные перемещения цикла.
/>
Рисунок 1 — Структурная схема системыЧПУ и целевого механизма
Система ЧПУ может видоизменяться в зависимости от видапрограммоносителя, способа кодирования информации в управляющей программе иметода ее передачи в систему ЧПУ. Устройство ЧПУ размещают рядом со станком (водном или двух шкафах) или непосредственно на станке (в подвесных илистационарных пультах управления). Двигатели приводов подач станков с ЧПУ,имеющие специальную конструкцию и работающие с конкретным устройством ЧПУ,являются составной частью системы ЧПУ.
Все данные, необходимые для обработки заготовки на станке с ЧПУ,получает от управляющей программы, которая содержит два вида информации:геометрическую и технологическую. Геометрическая информация – координатыопорных точек траектории движения инструмента, а технологическая – данные оскорости, подаче, номере инструмента и т. д. Управляющую программу записывают на программоносителе. Воперативных системах ЧПУ программа может вводиться (с помощью клавиш)непосредственно на станке.
Важнейшей технической характеристикой систем ЧПУ является ееразрешающая способность или дискретность, т. е. минимально возможная величиналинейного и углового хода исполнительного органа станка, соответствующая одномууправляющему импульсу. Большинство современных систем ЧПУ имеют дискретность0,001 мм/импульс, реже 0,0001 мм/импульс.
Системы ЧПУ классифицируют по следующим признакам:
–  поуровню технических возможностей;
–  потехнологическому назначению;
– по числу потоков информации (незамкнутые, замкнутые, самоприспосабливающиесяили адаптивные);
– по принципу задания программы (в декорированном виде, т.е. в абсолютныхкоординатах или в приращениях от ЭВМ);
– по принципу привода (ступенчатый, регулируемый, следящий, шаговый);
– по числу одновременно управляемых координат;
– по способу подготовки и ввода управляющей программы.
По уровню технологических возможностей международнойклассификации системы ЧПУ делятся на следующие классы:
– NC – системы с покадровым чтением перфоленты на протяжении циклаобработки каждой заготовки;
– SNC – системы с однократным чтением всей перфоленты перед обработкойпартии одинаковых заготовок;
– CNC – системы со встроенной малой ЭВМ (компьютером, микрокомпьютером);
– DNC – системы прямого числового управления группами станков от однойЭВМ;
– HNC – оперативные системы с ручным набором программ на пультеуправления.
По технологическому назначению системы ЧПУ подразделяются начетыре вида: позиционные; обеспечивающие прямоугольное формообразование;обеспечивающие прямолинейное формообразование; обеспечивающие криволинейноеформообразование [22].
Позиционные системы ЧПУ обеспечивают высокоточноеперемещение (координатную установку) исполнительного органа станка в заданнуюпрограммой позицию за минимальное время. По каждой координатной оси программируетсятолько величина перемещения, а траектория перемещения может быть произвольной.Перемещение исполнительного органа из позиции в позицию осуществляется смаксимальной скоростью, а переход к заданной позиции – минимальной скоростью.Точность позиционирования повышается в результате подхода исполнительногооргана к заданной позиции всегда с одной стороны (например, слева направо).Позиционными системами ЧПУ оснащают сверлильные и координатно-расточные станки.
Системы ЧПУ, обеспечивающие прямоугольное формообразование,в отличие от позиционных систем позволяют управлять перемещением исполнительногооргана станка в процессе обработки. В процессе формообразования исполнительныйорган станка перемещается по координатным осям поочередно, поэтому траекторияинструмента имеет ступенчатый вид, а каждый элемент этой траектории параллеленкоординатным осям. Чтобы сократить время перемещения исполнительного органа изодной позиции в другую, в ряде случаев используют одновременное движение подвум координатам. При грубом позиционировании подход исполнительного органа кзаданной позиции осуществляется с разных сторон, а при точном позиционировании– всегда с одной стороны. Число управляемых координат в таких системахдостигает 5, а число одновременно управляемых координат – 4. Указаннымисистемами оснащают токарные, фрезерные, расточные станки.
Системы ЧПУ, обеспечивающие прямолинейное (под любым углом ккоординатным осям станка) формообразование и позиционирование, управляютдвижением инструмента при резании одновременно по двум координатным осям (X иY). В данных системах используют двухкоординатный интерполятор, выдающийуправляющие импульсы сразу на два привода подач. Общее число управляемыхкоординат в таких системах 2 – 5. Указанные системы обладают большими технологическимивозможностями (по сравнению с прямоугольными) и применяются для оснащениятокарных, фрезерных, расточных и других видов станков.
Системы ЧПУ, обеспечивающие криволинейное формообразование,позволяют управлять обработкой плоских и объемных деталей, содержащих участкисо сложными криволинейными контурами.
Системы ЧПУ, обеспечивающие прямоугольное и криволинейноеформообразование, относятся к контурным (непрерывным системам), так как онипозволяют обрабатывать заготовку по контуру. Контурные системы ЧПУ имеют, какправило, шаговый двигатель.
Многоцелевые (сверлильно-фрезерно-расточные) станки длярасширения их технологических возможностей оснащают контурно-позиционнымисистемами ЧПУ.
По числу потоков информации системы ЧПУ делятся назамкнутые, разомкнутые и адаптивные.
Разомкнутые системы ЧПУ характеризуются наличием одногопотока информации, поступающего со считывающего устройства к исполнительномуоргану станка. В механизмах подач таких систем используют шаговые двигатели.Крутящий момент, развиваемый шаговым двигателем, недостаточен для приводамеханизма подачи. Поэтому указанный двигатель применяют в качестве задающегоустройства, сигналы которого усиливаются различными способами, например, спомощью гидроусилителя моментов (аксиально-поршневого гидродвигателя), валкоторого связан с ходовым винтом привода подач. В разомкнутой системе нетдатчика обратной связи, и поэтому отсутствует информация о действительномположении исполнительных органов станка.
Замкнутые системы ЧПУ характеризуются двумя потокамиинформации: от считывающего устройства и от датчика обратной связи. В этихсистемах рассогласование между заданными и действительными величинами перемещенияисполнительных органов устраняется благодаря наличию обратной связи.
Адаптивные системы ЧПУ характеризуются тремя потокамиинформации:
– от считывающего устройства;
– от датчика обратной связи по пути;
– от датчиков, установленных на станке и контролирующих процесс обработкипо таким параметрам, как износ режущего инструмента, изменение сил резания итрения, колебание припуска и твердости материала обрабатываемой заготовки и т.д.Такие системы позволяют корректировать программу обработки с учетом реальныхусловий резания.
По способу подготовки и ввода управляющей программыразличают так называемые оперативные системы ЧПУ (в этом случае управляющуюпрограмму готовят и редактируют непосредственно на станке, в процессе обработкипервой детали из партии или имитации ее обработки) и системы, для которыхуправляющая программа готовится независимо от места обработки детали. Причемнезависимая подготовка управляющей программы может выполняться либо с помощьюсредств вычислительной техники, входящих в состав систем ЧПУ данного станка,либо вне ее (вручную или с помощью системы автоматизации программирования).1.2 Обоснование применения программного управленияоборудованием
Помере развития общества потребности человека неуклонно растут. Добиваясьопределенного уровня благосостояния, человек стремится к новым вершинам –такова его природа. В то же время, находя пути удовлетворения своихпотребностей, человек вынужден становиться производителем материальных благ. Астав производителем, вынужден постоянно работать над совершенствованиемтехнологии производства, повышая его эффективность и улучшая качество продукции[2]. На сегодняшний день никто из нас не мыслит себе жизнь без домашней иофисной техники, посуды, упаковки и т.д., имеющих современный дизайн. А это –пластмассовые и металлические корпуса, состоящие из массы сложных поверхностей,которые подчас невозможно даже отобразить на чертеже. Уровень современнойтехнологии позволяет создавать в памяти компьютера трехмерные модели деталейсложной формообразующей оснастки штампов и пресс-форм и изготавливать их настанках с числовым программным управлением в условиях единичного производства.При этом процесс подготовки управляющих программ для станка с числовымпрограммным управлением выполняется автоматически на основе трехмерной моделиизделия. Сложная деталь изготавливается «с листа», без созданияопытных образцов. Естественно, что при наличии на предприятии потокаиндивидуальных заказов остро встает проблема организации и планированияпроизводства, решаемая также при помощи современных автоматизированных систем.Идея гибкого автоматизированного производства не является новой, но присовременном уровне развития компьютерных технологий и сетевых решенийприобретает особое значение. В то же время задача создания такого производствадостаточно сложна. Она выдвигает повышенные требования, как к программномуобеспечению инженерного корпуса, так и к системам управления оборудованием.
Нашвзгляд на систему числового программного управления металлообрабатывающегооборудования за последние 10 — 15 лет претерпел кардинальные изменения. Ранееединственной тенденцией развития станков с числовым программным управлениембыла тенденция превращения их в обрабатывающие центры. При этом станкиоснащались магазинами, рассчитанными на большое количество инструментов. Длявстраивания станка в автоматическую линию он комплектовался быстросменнымистолами-спутниками и их накопителями. Программирование осуществлялось вручную.С появлением мощных (и особенно персональных) компьютеров стало возможнымсоздавать управляющие программы для станков с числовым программным управлениемавтоматически, сократив до минимума количество ручного труда. Это позволилоразрабатывать управляющие программы для обработки сложных трехмерныхповерхностей, используемых чаще всего в формообразующих деталях оснасткиштампов и пресс-форм. При этом требования, предъявляемые к станкам с числовымпрограммным управлением, изменились. Произошло это в основном благодаряувеличению размера и структурным изменениям управляющей программы, а такжесущественному увеличению доли основного времени обработки при соответствующемуменьшении доли вспомогательного времени. Управляющая программа (УП) обработкиодной поверхности теперь достигает нескольких мегабайтов (а иногда и десятковмегабайтов) и состоит из множества «коротких кадров» – программныхблоков, описывающих короткие перемещения инструмента (чем выше точностьобработки, тем короче эти перемещения, так как их длина определяет точностьаппроксимации). Обработка при этом ведётся преимущественно одним инструментоммного часов подряд, а станок теряет уже ставшее привычным оснащение: магазины,столы-спутники и т.д. Разумеется, речь здесь идет о станке, предназначенном дляизготовления сложной формообразующей оснастки. Количество управляемых координатпри этом возросло до пяти. Но вместе с этим значительно выросли требования ксистеме ЧПУ.
Учитываяимеющийся на данный момент практический опыт, можно сказать, что современнаясистема ЧПУ, предназначенная для сложной трехмерной обработки, должнаобеспечивать следующее:
1.  Возможностьввода (приема с внешнего носителя или через сеть) управляющих программнеограниченного размера, их редактирования и исполнения как единого целого.
2.  Сцелью уменьшения основного времени обработки – опережающая (по отношению кисполнению) расшифровка кадров управляющей программы:
– возможность отработки движения безснижения до нуля скорости в конце перемещения, описанного в каждом отдельномкадре (при соблюдении условия отсутствия превышения максимальных ускорений поосям);
– это позволяет отрабатывать сложнуютраекторию, описываемую в управляющей программе исостоящую из множества «коротких кадров», на скорости, близкой кзаданной скорости подачи;
– определение предельных ускоренийпо управляемым осям с учетом динамических характеристик станка;
– возможность перехода с однойтраектории обработки на другую на рабочей подаче без торможений и разгонов потрехмерной петле, рассчитанной системой CAM (computer-aided manufacturing);
– для этого требуется интеграция сCAM-системой или с CAM-сервером через сеть;
– возможность работы на повышенныхскоростях рабочих подач (до 60 м/мин);
– с этой целью помимо достаточнойдля перекрытия требуемого диапазона регулирования разрядности цифро-аналоговогопреобразователя необходимо, чтобы время гарантированной реакции системыуправления движением было относительно малым (около 200 мкс).
3.  Сцелью снижения времени переналадки – доступ к файлам и ресурсамконструкторского и технологического бюро через стандартную сеть, включаяподдержку стандартных (в том числе распределенных) баз данных:
– встроенная функция трехмернойкоррекции траектории движения инструмента на величину его радиуса;
– возможность интеграции сCAM-сервером для выполнения полноценной коррекции УП по результатам предыдущихопераций (в том числе трёхмерной коррекции траектории движения инструмента навеличину его радиуса);
– привязка набора управляющихпрограмм, подпрограмм, корректоров, параметров системы и служебной информации кконкретному изделию (проекту);
– возможность параллельно спроцессом обработки выполнять редактирование или эмуляцию работы другой управляющейпрограммы, ввод управляющейпрограммы с дискеты (в том числе сиспользованием многотомных архивов), доступ к сети, включая обращение кCAM-серверу;
– возможность автоматизированногоизмерения (или поиска) баз заготовки (детали), контроля размеров детали иинструмента.
4.  Сцелью увеличения коэффициента загрузки оборудования в условиях единичного имелкосерийного производства – возможность работы совместно с системойуправления верхнего уровня на основе стандартных сетевых технологий, возможностьинформационной поддержки систем планирования и диспетчеризации на уровне цехаили участка.
5.  Сцелью повышения надежности системы – повышение ресурса узлов ЧПУ за счетприменения отлаженных серийных модулей (плат), применение вместо традиционныхреле высоконадежных твердотельных силовых модулей (с гальванической изоляциейпрочностью не менее 1500 В) и оптоэлектронных датчиков положения.
6.  Сцелью увеличения ремонтопригодности и уменьшения времени поиска неисправностей– наглядное представление сигналов электроавтоматики в соответствии сэлектрической схемой станка и приведенными в техническом описании алгоритмамиработы:
– наличие подсистемы диагностики ивыдачи сообщений оператору;
– возможность непосредственногоуправления исполнительными устройствами;
– конфигурирование ЧПУ изстандартных узлов, из которых также могут быть построены системы управлениядругим оборудованием завода, и с использованием по возможности стандартногобазового программного обеспечения.
7.  Сцелью обеспечения гибкости системы – возможность постоянной доработки системыЧПУ в соответствии с непрерывно растущими требованиями современногопроизводства:
– возможность быстрой адаптации клюбому технологическому оборудованию (в том числе не металлорежущему);
– возможность интеграции со сложнымиавтономными системами (например, с системами технического зрения);
– возможность выполнения необходимыхизмерений и обмера детали-прототипа с целью создания трехмерной математическоймодели или построения управляющей программы длякопирования;
– наличие гибкой архитектурысистемы, реализуемой в зависимости от поставленной задачи;
– надежная поддержкафирмой-разработчиком и обновление версий базового программного обеспечения.
Технология работы на оборудовании с четырьмя и более управляемымиосями на данный момент не достаточно хорошо отработана. Это связано сособенностями систем ЧПУ у каждого производителя, собственным набором инаправлением дополнительных осей координат, типом станка и его назначением.
Системы ЧПУ у такого оборудования чаще всего обладаютразвитой системой программирования, которая может быть реализована на базеязыка программирования высокого уровня. Примером может служить система ЧПУфирмы Siemens со встроенным языком программирования Sinumerik.
Применение станков с ЧПУ в сравнении с обычным оборудованиемсоздает ряд технико-экономических преимуществ.
Производительность этих станков выше производительностистанков того же типа, но без программного управления, в три раза, потребностьже в производственных площадях в три раза меньше. Значительно вырастаетпроизводительность труда у рабочих.
Большой эффект дают станки с ЧПУ при выполнении особосложных операций, поэтому с их использованием высвобождаютсявысококвалифицированные рабочие, а также резко сокращаются затраты натехнологическую подготовку производства, эксплуатацию инструмента, содержаниеконтролеров отдела технического контроля.
Главный эффект программного оборудования заключается вувеличении до 80-90% работы оборудования (15-20% у обычных станков). Обусловленоэто тем, что резко сокращается вспомогательное время, время на сменуинструмента и переналадку оборудования.
Переналадка станков в этом случае заключается в заменепрограммы, записанной на магнитной ленте или другом программном носителе, а вряде случаев в замене инструментов. Широкий диапазон работ, выполняемыхстанками с ЧПУ, делает их особенно ценными в единичном и мелкосерийномпроизводстве, а также на предприятиях, выпускающих сложную продукцию. Имеетсяопыт включения станков с программным управлением в поточные линии напредприятиях серийного и массового производства.
В современных условиях широко распространяется такой видпрограммного оборудования, как обрабатывающие центры. Они представляют собоймногооперационные станки с автоматической сменой инструмента. По мнениюспециалистов, обрабатывающие центры по своей производительности эквивалентны3-4 станкам с ЧПУ и 8-12 обычным станкам. При условии правильного выбора ирациональной эксплуатации затраты на приобретение обрабатывающих центров окупаютсяза 3-4 года.
Для эффективного использования станков с ЧПУ необходимосоздать систему организованного обеспечения. Она должна представлять собойкомплекс взаимодействующих мероприятий, подчиненных основной задаче — изготовлению деталей высокого качества в намеченные сроки при минимальныхзатратах труда и себестоимости. Система организации работ должна включатьтехнико-экономическое обоснование применения станков с ЧПУ, номенклатурудеталей для обработки на станках, специальную структуру системы, надлежащееобслуживание станков, автоматизированную разработку управляющих программ. Однимиз условий достижения высоких экономических показателей эксплуатации станков сЧПУ является формирование целесообразной номенклатуры обрабатываемых деталей. Практикаэксплуатации станков с ЧПУ показала, что эффективная их работа возможна припостроении специальной организационной структуры, сориентированной наизменения, которые вносит появление в парке оборудования станков с ЧПУ. Такаяструктура должна включать производственные цехи и участки, подразделенияэкономического обслуживания, специализированную технологическую службу. Опытотечественных и зарубежных предприятий свидетельствует о целесообразностиустановки станков с ЧПУ в одном производственном помещении, создание специализированныхцехов и участков. Расположение станков в одном помещении создает условия дляболее качественного их обслуживания, многостаночного обслуживания, улучшенияпланирования и контроля за работой оборудования и т. п.

1.3 Назначение постпроцессоров
Постпроцессор – это модуль, преобразующий файл траекториидвижения инструмента и технологических команд, рассчитанный процессором CAM илиCAD/CAM-системы, в файл управляющей программы в строгом соответствии стребованиями методики ручного программирования конкретного комплекса «станок– система с ЧПУ». Постпроцессор выполняет немалое количество функций,например:
– кодирует линейные перемещения сообразно цене импульса;
– выполняет линейную или круговую интерполяцию перемещений по дугеокружности, а также кодирует их в импульсах;
– рассчитывает динамику перемещений, отслеживая и, если нужно, уменьшаяслишком большую подачу на малом перемещении (станок не успеет разогнаться);
– автоматически выдает в кадр вектора или функции коррекции на радиусинструмента;
– строит текущий кадр по шаблону, автоматически нумеруя кадры под адресом «N»;
– превращает подачи, назначенные технологом, в конкретный набор символов садресом «F» и выдает в нужное место кадра;
– оформляет как начало, так и конец управляющей программы, а такжеструктуру кадра.
На самом деле число функций, выполняемыхсреднестатистическим постпроцессором значительно больше. Например постпроцессордолжен выдавать в кадр перемещения только по тем координатам, движения покоторым имело место, а также правильно определять выпуклость или вогнутостьконтура детали для правильного расчета вектора коррекции и многое другое [3].
Разработка полноценного постпроцессора с нуля (т.е. безсредств автоматизации постпроцессирования) может занять у программиста среднейквалификации более 6 месяцев.
Первые постпроцессоры специально обученный программистразрабатывал для каждого комплекса «станок – система с ЧПУ»индивидуально. Далее происходил длительный процесс доводки постпроцессора,путем активных консультаций с технологом-расчетчиком управляющих программ, атакже опытными прогонами управляющих программ (рассчитанных при помощипостпроцессора) на станке с ЧПУ. Постпроцессор сдавался в опытную эксплуатациюзаказчику только после успешного прохождения испытаний, затем наступал процессисправления ошибок и неучтенных при разработке особенностей программированиястойки и даже технологии изготовления деталей, принятых на данном предприятии. Такойпостпроцессор был индивидуальный для данного станка, стойки ЧПУ и, нередко,технологии обработки. Стоимость разработки индивидуального постпроцессора была оченьвысока, и могла достигать нескольких тысяч долларов. Исправить ошибки и сделатьнововведения в постпроцессоре мог только программист, разработавший данныйпостпроцессор.
Созданием индивидуальных постпроцессоров занимались всефирмы, как отечественные, так и зарубежные, примерно в 1960-1970 годах прошлогостолетия.
Постпроцессирование прошло несколько ступеней развития. Содной стороны в 80-х годах прошлого века наблюдался всемирный бум автоматизациимашиностроения, с другой – очень быстро увеличивалось количество новых станковс непременно новой системой ЧПУ, с третьей стороны возник небывалый спрос на средстваавтоматизированного проектирования для таких станков со стороны заводов икомпаний. В этих условиях метод индивидуального постпроцессирования оказался неэффективным, в виду очень больших временных затрат на создание и отладкукаждого постпроцессора. Эти объективные причины подтолкнули разработчиковпостпроцессоров к идее автоматизации собственного труда – то есть средствавтоматизации разработки постпроцессоров.
Одним из первых методов автоматизации разработкипостпроцессоров стало обобщение информации об использовании одной и той жесистемы с ЧПУ вместе со станками различных производителей, по принципуобработки (например, токарная, фрезерная и т.д.). Это оказалось возможным, всвязи с тем, что управляющие программы для таких станков, «вооруженных»однотипной системой с ЧПУ, различались в лучшем случае незначительнымивариациями в оформлении структуры кадра, значностью перемещений, оформлениемначала и конца программы. Поэтому вскоре начали обобщать алгоритмы разработкипостпроцессоров на однотипное оборудование разных фирм, но имеющее одну и ту жесистему с ЧПУ.
Идея использования обобщенных постпроцессоров даласущественные преимущества, ведь разработка постпроцессора для новой модификациистанка с системой ЧПУ, для которой уже имелся обобщенный постпроцессор,требовала от программиста всего лишь небольшой модификации узкого наборапрограмм для учета особенностей нового оборудования.
В результате, в разы сократились сроки, стоимость итрудоемкость разработки нового постпроцессора, существенно снизились издержкифирм-разработчиков постпроцессоров и их заказчиков. Этот метод оказал сильноевоздействие на конкурентную борьбу между производителями CAM-систем в мире.Кроме того, некоторые фирмы продавали именно «обобщенные постпроцессоры»на 5-10 станков с одной системой с ЧПУ по цене одного индивидуального, что быловыгодно их клиентам и чрезвычайно невыгодно фирмам-конкурентам, еще неосвоившим эту технологию.
Небольшое число современных CAM-систем до сих пор используютв своем составе обобщенные постпроцессоры.
Следующим шагом развития систем разработки постпроцессоровстало применение автоматических корректоров кадров управляющих программ. Суть этогонововведения – дать возможность разработчику или пользователю описать наспециальном макроязыке изменения, которые затем автоматически и последовательновыполняются постпроцессором над каждым кадром во время формирования управляющейпрограммы. Этот метод был впервые примененный в системе PEPS. Макроязыккоррекции кадров управляющей программы применяется теперь весьма широко и нетолько в обобщенных постпроцессорах.
Почти одновременно с появлением методологии обобщенногопостпроцессирования, начал разрабатываться метод создания универсальныхпостпроцессоров. Такие постпроцессоры последовательно читают записи из файлатраектории движения инструмента и техкоманд (CLDATA-файл) и выполняютпреобразование этих записей в один или несколько кадров управляющей программыпо некоторым правилам, отличным для разных станков и систем ЧПУ.
Постпроцессор соотносит каждой записи CLDATA-файла алгоритмее превращения в кадр управляющей программы, и сохранить эти правила отдельнодля каждого станка-системы ЧПУ в виде файла. Именно это дало возможность создатьодин универсальный постпроцессор как машину, транслирующую каждую записьCLDATA-файла в кадры управляющей программы по правилам, которые можноподгружать из внешних файлов.
Такой метод получил название «универсальныйпостпроцессор». Программист описывал алгоритмы обработки каждой записиCLDATA-файла применительно к методике ручного программирования конкретногокомплекса «станок – система с ЧПУ» и сохранял эти правила (алгоритмы)в виде текстовых файлов-постпроцессоров. Технолог, в свою очередь, лишь выбирал– при помощи какого файла-описателя алгоритмов, преобразовать свой CLDATA-файлв файл управляющей программы.
Эта идея, заимствованная из методов построения трансляторовс настраиваемой лексикой и семантикой, получила шилокое развитие на рубеже 90-хгодов прошлого века. Подавляющее большинство CAD/CAM-систем используют сегодняименно такой метод для решения проблем постпроцессирования.
Особняком от всех этих способов обработки стоит разработкапрограммного обеспечения для оборудования, с узкой сферой применения. К такимотносятся всевозможные шлифовальные станки для изготовления осевого режущегоинструмента. Основной проблемой разработки подобного программного обеспеченияявляется практически полное отсутствие универсальных средств их разработки ипривязанность к технологии изготовления. Также большую проблему создаетсущественная зависимость полученной геометрии на изделии от геометрическихпараметром инструмента.
Также, подобное оборудование накладывает огромное количествоограничений на обработку, которые необходимо постоянно учитывать.
В связи с этим, наиболее целесообразно создавать специальныепрограммные модули, которые могут взять на себя всю математическую нагрузку порасчету траекторий движений, учета ограничений и создания управляющейпрограммы.
Современные постпроцессоры для подобного оборудованиятребуют только введения данных из чертежа или иной документации на изделие, азатем путем внутренних расчетов выдают готовую программу обработки, с учетомвсех технологических особенностей. Подобные программные модули являютсяузкоспециализированными и разрабатываются по специальному заказу предприятия.Последней тенденцией стало встраивание таких модулей в систему ЧПУ, чтопозволило квалифицированному рабочему самостоятельно программировать сложныевиды обработки.
2. Разработка системы подготовки обработки детали станка с ЧПУ2.1 Функциональная модель системы подготовкиобработки детали станка с ЧПУ
Для создания функциональной модели удобно пользоваться CALS системами. CALS – классинформационных технологий, направлен на обеспечение безбумажной поддержкижизненного цикла продукта. Предметом CALS является безбумажная технологиявзаимодействия между организациями заказывающими, производящими иэксплуатирующими тот или иной продукт, а также формат представлениясоответствующих данных. Доказав свою эффективность, CALS технологии началиактивно применяться в промышленности, строительстве, транспорте и другихотраслях экономики, расширяясь и охватывая все этапы жизненного цикла продукта– от маркетинга до утилизации. В данном случае необходима только та частьфункций системы BpWin, работающей по CALS технологии,которая отвечает за построение функциональной модели [23].
Функциональная модельпредставляет собой структурированное изображение функций производственнойсистемы или среды, информации и объектов, связывающих эти функции. Модельстроится методом декомпозиции: от крупных составных структур к более мелким ипростым.
На нулевом уровне (рисунок 2) вся система представляется ввиде черного ящика, целью которого является создание управляющей программы длясистемы ЧПУ. Для этого на вход системы должен поступить ряд данных. Данные изчертежа изделия включают весь комплекс информации о геометрических свойствахизделия, его размерах, наборе поверхностей, подлежащих обработке, их точности ишероховатости.
Технологический процесс содержит рекомендации по режимамрезания, технологической оснастке, применяемой при данной обработке. Также втехнологическом процессе могут содержаться технологические нюансы обработки,которые обязательно надо учесть при создании управляющей программы системы ЧПУ.
Также на вход должна поступить информация об инструменте изаготовке, которые будут использоваться в процессе обработки данного изделия.
/>
Рисунок 2 — Нулевой уровеньфункциональной модели
Работать с данной системой будут технологи, отвечающие затехнологический процесс, программисты, отвечающие за корректную работу всехпрограммных модулей системы и процесс постпроцессирования в код управляющейпрограммы системы ЧПУ. Совместно с наладчиком станков с ЧПУ будетосуществляться ввод данных об инструменте и заготовке, в частности об ихвзаимном расположении друг относительно друга. Оператор будет вводить данныекоррекции после правки кругов. Иногда функции оператора и наладчика станков сЧПУ могут объединяться в одном специалисте.
Работа системы должна осуществляться на основании следующихдокументов:
– технического паспорта станка, в котором содержится информация обособенностях его эксплуатации, ограничениях перемещений по осям, режимах работыи габаритных ограничениях заготовки и инструмента;
– инструкции по программированию ЧПУ, в которой содержится справочнаяинформация о языке программирования, вспомогательных и служебных функциях,ограничениях системы ЧПУ;
– Санитарные нормы и правила (СНИП) по работе на шлифовальных станкахсодержит методологию по способам безопасного ведения обработки;
– Стандарт предприятия (СТП) предприятия на изготовление осевого режущегоинструмента содержит всю технологическую базу по обработке данного инструмента,накопленную за все время его работы, а также возможные варианты решения спорныхвопросов по конструкции изделия и технологии его обработки.
Результатом работы будет выдача управляющей программы длясистемы ЧПУ, карты наладки для данного оборудования или кода ошибки, есливведенных данных не достаточно, либо они ошибочны и выполнить расчеты ипреобразования по ним не возможно.
На первом уровне система разбивается два модуля (рисунок 3).
Первый модуль занимается расчетом перемещений инструмента,учитывая технологические и технические ограничения. Все входные данныепоступают именно на этот модуль и соответственно все их преобразования такжепроисходят в этом модуле. В связи с этим, этот модуль должен работать со всемивыше перечисленными документами. Работать с этим модулем должны также все вышеперечисленные люди.
Модуль будет выдавать два вида файлов. Одна группа файловбудет являться управляющей программой системы ЧПУ, две другие группы файловсистемные, обеспечивающие связь первого модуля со вторым. Первая группасистемных файлов должна передавать исходные данные, содержащие информацию обоснащении станка (тип оснастки, инструмент, заготовка, их взаимноерасположение). Вторая группа файлов должна содержать рассчитанные данные(траектории всех перемещений инструмента).

/>
Рисунок 3 — Первый уровень функциональноймодели
Второй модуль обеспечивает визуализацию обработки ванимированном, фотореалистичном виде. Данный модуль обеспечивает возможностьнаглядно проследить весь процесс обработки и введя необходимые поправкиизбежать получения бракованной продукции. Также этот модуль позволит провестипроцесс отладки и оптимизации программы на этапе ее создания.
Работать с этим модулем должны технолог и наладчик станков сЧПУ. Работа модуля основывается на техническом паспорте станка и СТПпредприятия на изготовление осевого режущего инструмента. Результатом работыданного модуля является создание карты наладки и проверка результата обработкина аномалии (отклонение размеров от заданных, геометрия поверхностей, наличиезарезов, как на изделии, так и на оснастке).
На втором уровне, модуль расчета перемещений инструментаможно разделить на четыре этапа (рисунок 4).
Первый этап – это моделирование заготовки [4, 5]. На немзадаются параметры заготовки (размеры, геометрические особенности, вылет изпатрона). Все это производится на основании технического паспорта станка и СТПпредприятия на изготовление осевого режущего инструмента.

/>
Рисунок 4 — Второй уровеньфункциональной модели
Заданием параметров занимается технолог, но в процессеработы параметры могут менять в определенных пределах наладчик станков с ЧПУ иоператор. После окончания ввода данных параметры заготовки в оцифрованном видепередаются на следующий этап. Следующий этап – моделирование наладкиинструмента. В этом этапе задаются типы используемых кругов, их размеры икоординатные привязки к системе координат станка. Профиль каждого круга долженбыть поставлен в соответствие поверхности (или группе поверхностей) которую он обрабатывает,поэтому при подборе кругов и создании их наладки необходимо использовать данныечертежа изделия. При этом необходимо руководствоваться техническим паспортомстанка, СТП предприятия на изготовление осевого режущего инструмента и СНИП поработе на шлифовальных станках. Вводом данных должны заниматься те же люди, чтои на первом этапе. По результату этого этапа создается первая группа системныхфайлов, содержащих информацию об оснащении. Те же данные, что и в файлепередаются на следующий этап. Третий этап – моделирование обработки. Самыйважный этап, на котором создается траектория обработки. Траектория должнаучитывать особенности технологического процесса, и применяемого инструмента.Ввод данных на этом этапе осуществляет только технолог. На этот этап оказываютвлияние те же документы, что и на втором этапе. На этом этапе формируетсягруппа системных файлов, содержащих информацию обо всех перемещенияхинструмента и заготовки, та же информация передается на следующий этап. На трехвыше перечисленных этапах при определенных условиях необходимо вводить поправкипо результатам визуализации. Это сделано для того, чтобы система могла работатьв условиях реального производства, где невозможно учесть всех случайностей, както: отсутствие заказанного инструмента, отклонений заготовок, наличия оснасткии т.д. Последний этап – постпроцессирование. На этом этапе вся набраннаясистемой информация преобразуется в управляющую программу системы ЧПУ.Преобразование осуществляется программистом на основании инструкции попрограммированию ЧПУ станка. Этап моделирования обработки в свою очередь можноразделить еще на два этапа (рисунок 5). Первый этап – анализ геометрии изделия.На этом этапе технолог производит настройку приложения для максимальнообъективного преобразования данных в графическую информацию. Сюда необходимоподать информацию об оснащении и об инструменте. Здесь технолог вводит всеуточнения по конструкции изделия, которых не было в чертеже. Все уточнениявводятся на основании СТП предприятия на изготовление осевого режущегоинструмента.
/>
Рисунок 5 — Третий уровеньфункциональной модели
В результате проведенного анализа на следующий этаппередаются все геометрические параметры в оцифрованном виде [24]. Второй этап –назначение технологических переходов. На этом этапе технолог выделяет отдельныеэлементарные операции в соответствии с технологическим процессом и применяемыминструментом. Определяет все траектории движений на каждой операции всоответствии с СТП предприятия на изготовление осевого режущего инструмента,СНИП по работе на шлифовальных станках и техническим паспортом станка. Поитогам этого этапа выдается информация о перемещениях в группу системных файлови на этап постпроцессирования.2.2 Алгоритм работы программного модуля
Обобщенный алгоритм работы программного модуля мехатроннойсистемы станка с ЧПУ показан на рисунке 6.
/>
Рисунок 6 — Алгоритм работы программы
Первым этапом работы с программным модулем является вводисходных данных. Исходные данные должны включать геометрические свойстваизделия, заготовки, инструмента, особенности технологии обработки,конструктивные особенности оснастки и так далее [4, 5, 6, 7, 8, 9, 10]. Все этипараметры должны вводиться в удобной для пользователя форме. Каждый из этихпараметров должен вводиться отдельно друг от друга, но иметь определенные связимежду собой. Связи обеспечивают создание ограничений на вводимые данные.
Сразу после ввода данных программа запускается на расчеттраекторий движения инструмента. Этот процесс должен быть максимальноавтоматизирован, и иметь определенные настраиваемые параметры, чтобы бытьдостаточно универсальным.
Траектории движений инструмента сохраняются в виде понятномтолько программному модулю. Чтобы заставить пакет 3Dмоделирования читать эти данные, их необходимо преобразовать в вид, понятныйэтому пакету. Затем эти данные запускаются на выполнение пакетом 3D моделирования.
В этом пакете вначале отрисовываются все основные элементыстанка, находящиеся в зоне обработки, вся оснастка, рекомендованная кприменению, а также инструмент и заготовка. Далее пакет, имитируя всеперемещения инструмента относительно заготовки, осуществляет вычитание одноготела из другого. Таким образом, формируется наиболее приближенная кдействительности 3D модель детали. С этой моделью можнопроизводить целый ряд действий: промерить все основные размеры, оценить топологиюпостроения поверхностей, произвести контроль зарезов оснастки, элементов станкаи заготовки во время всех технологических переходов.
По результатам этой проверки принимается решение по правкеисходных данных (величины подходов, отходов, врезаний, вылета заготовки, заменаоснастки и инструмента). Этот процесс повторяется до тех пор, пока недостигается оптимальный результат, который удовлетворяет всем требованиям кданному изделию.
Когда пользователь данного программного продукта принимаетрешение о завершении правки исходных данных, он приступает в процессупостпроцессирования. Он заключается в преобразовании всей накопленнойинформации в программный код системы ЧПУ.
Этот программный код записывается в файл, который бездополнительных доработок может быть передан на станок.
Такой подход позволяет достаточно хорошо прорабатыватькаждую программу для системы с ЧПУ и наглядно отслеживать весь процессобработки, не прибегая к пробным деталям.
За счет использования стороннего пакета 3Dмоделирования можно значительно упростить создание программного модуля, за счетисключения из программного кода акселераторов 3Dграфики, заменив их неявным использованием уже готовых функций пакета 3D моделирования [25].
Так же пакет 3D моделированияобладает рядом полезных функций анализа моделей, которые позволяют проводитьдополнительную проверку геометрических свойств изделия, а также функций,упрощающих создание сопутствующей документации.2.3 Выбор программных средств реализации системы
В соответствии с функциональной моделью программный модульсостоит из двух частей: модуля расчета и модуля визуализации.
Для создания модуля расчета лучше всего подойдет языкпрограммирования Delphi.
Delphi – это среда быстройразработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi – строго типизированныйобъектно-ориентированный язык, в основе которого лежит хорошо знакомыйпрограммистам Object Pascal [23].
Бурное развитие вычислительной техники, потребность вэффективных средствах разработки программного обеспечения привели к появлениюсистем программирования, ориентированных на так называемую «быструюразработку», среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development – среда быстройразработки приложений) лежит технология визуального проектирования исобытийного программирования, суть которой заключается в том, что средаразработки берет на себя большую часть рутинной работы, оставляя программистуработу по конструированию диалоговых окон и функций обработки событий.Производительность программиста при использовании RAD-систем возрастает внесколько раз.
Изначально среда разработки была предназначена исключительнодля разработки приложений Microsoft Windows, затем былреализован также для платформ Linux (как Kylix), однако после выпуска в 2002году Kylix 3 его разработка была прекращена, и, вскоре после этого, былообъявлено о поддержке MicrosoftNET.
Delphi –результат развития языка Турбо Паскаль, который, в свою очередь, развился изязыка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начинаяс версии «5.5», добавил в Паскаль объектно-ориентированные свойства,а в Object Pascal – динамическую идентификацию типа данных с возможностьюдоступа к метаданным классов (то есть к описанию классов и их членов) вкомпилируемом коде, также называемом интроспекцией. Данная технология получилаобозначение RTTI.
Также отличительным свойством Object Pascal от «С++»является то, что объекты по умолчанию располагаются в динамической памяти.Однако можно переопределить виртуальные методы NewInstance и FreeInstanceкласса TObject. Таким образом, абсолютно любой класс может осуществитьвозможность расположения системных и исполняемых файлов в любом удобном месте.Соответственно организуется и «многокучность» [11].
Система ЧПУ станка Walter CIP6 создана фирмой Siemens. Фирма Siemens является одним из ведущихпроизводителей систем ЧПУ, занимая по объему продаж первое место в Европе ивторое в мире. Эти показатели были достигнуты благодаря не только знаменитомунемецкому качеству, но и аппаратным и технологическим возможностям системуправления [26].
Сегодня фирма Siemens предлагает две группы УЧПУ:
– семейство SINUMERIK 802C, 802S, 802D, которое ориентировано наприменение в простых токарных и фрезерных станках (эти системы ЧПУ ограниченыпо количеству осей и имеют оптимальные функциональные возможности,соответствующие их назначению);
– семейство SINUMERIK 810D, 840D (SINUMERIK 810D – для станков с небольшимирабочими усилиями, SINUMERIK 840D – наиболее распространенное базовое модульноеЧПУ для широкого круга станков и технологических задач);
ЧПУ SINUMERIK 810D, 840D представляют собой интегрированныемультипроцессорные системы, в которых нельзя выделить ЧПУ и приводы всамостоятельные устройства. Пульт оператора состоит из следующих частей:
– MМС-процессора (Human Machine Communication), который представляет собой персональныйкомпьютер ММС100.2 (Intel 486, MS-DOS) или ММС103 (Intel Pentium, Windows 95);
– дисплея, который может быть цветным или монохромным (10,4″ TFTплоский экран).
Кроме того, пульт может быть оснащен полноразмернойклавиатурой, дисководом, адаптером подключения к сети Ethernet. Весь интерфейсполностью русифицирован. На ММС-процессоры можно установить дополнительноепрограммное обеспечение. Это позволяет произвести объединение рабочих местпроектировщика (конструктора-технолога) и станочника-оператора.
Имеющиеся сегодня возможности позволяют говорить одействительном программировании, а не о кодировании перемещений, как это былораньше. Базовый набор технологических функций ЧПУ позволяет использовать его сширокой гаммой станков (токарные, фрезерные, шлифовальные и т.п. станки иобрабатывающие центры). Целый ряд высокоуровневых функций обеспечивает такиевозможности как:
– функции позволяющие создавать плавные непрерывные кривые (в системевозможно использование трех видов сплайнов и кривых, заданных с помощьюполиномов третьего порядка);
– изменение величины подачи по заданному закону в пределах одного кадра;
– автоматическое предотвращение зарезов;
– преобразование рабочей системы координат в пространстве;
– ориентация инструмента относительно плоскости обработки (при наличии настанке поворотной инструментальной головы при условии 2,5D-обработкизначительно упрощается обработка наклонных поверхностей);
– ориентация инструмента относительно криволинейных поверхностей;
– задание запрещенных для перемещения зон на станке;
– создание программных конструкций, аналогичных языкам высокого уровня;
– вызов внешних подпрограмм при возникновении аварийных ситуаций (в случаевозникновения нештатных ситуаций, например, при поломке инструмента,автоматически может быть вызвана специальная подпрограмма, внутри которойорганизуются все необходимые действия по устранению ситуации).
Язык программирования для ЧПУ содержит много элементов изязыков программирования высокого уровня (больше всего он напоминает Паскаль).Программист может создавать переменные различных типов, использовать командыусловных и безусловных переходов, арифметические и логические операции, циклы,выполняемые по условиям (WHILE – ENDWHILE; REPEAT – UNTIL; FOR – ENDFOR).Система предоставляет доступ к внутренним переменным (например, к текущейпамяти положения, к значениям остатков пути внутри кадра и т.д.).
Имея эти возможности, можно создавать программы, построенныепо принципу групповой технологии, для ввода новой детали необходимо простозаполнить таблицу внутри программы [12]. Это существенно облегчает работуоператора (простой запуск с промежуточного инструмента или технологическогоперехода).
Модуль визуализации слишком сложен для самостоятельногосоздания поэтому целесообразно воспользоваться стандартными средствамикакой-нибудь CAD-системы. Самой удобной для этих целейявляется система Designer Modeling компании CoCreate.Отличительной особенностью данной системы является развитый набор функций дляавтоматизации процесса разработки моделей с использованием внешних макрокоманд, записанных во внешний файл.
В качестве языка макро команд система Designer Modelingиспользует язык LISP.
Лисп (LISP, от английского Processing language – «обработкасписков») – семейство языков программирования, программы и данные вкоторых представляются системами линейных списков символов. Лисп являетсявторым в истории (после Фортрана) высокоуровневым языком программирования,который используется по сей день. Создатель Лиспа Джон Маккарти занималсяисследованиями в области искусственного интеллекта и созданный им язык по сиюпору является одним из основных средств моделирования различных аспектовискусственного интеллекта [23].
Традиционный Лисп имеет динамическую систему типов. Языкявляется функциональным, но многие поздние версии обладают также чертамиимперативности, к тому же, имея полноценные средства символьной обработки,становится возможным реализовать объектную ориентированность, примером такойреализации является платформа CLOS.
Язык Лисп, наряду с языком Ada, прошел процессфундаментальной стандартизации для использования в военном деле ипромышленности, в результате чего появился стандарт Common Lisp. Его реализациисуществуют для большинства платформ.
Одной из базовых идей языка Lisp является представлениекаждого символа как узла многокоординатной символьной сети; при этомкоординаты, свойства, уровни сети записаны в так называемых слотах символа.
Основной механизм Лиспа – инкапсулированная в списокопределяющая голова списка и подключённый к ней хвост списка, которыйрекурсивно также может быть списком. Лисп-машина способна воспринимать каждыйпоступающий на неё список на самом абстрактном уровне, например какмета-Лисп-машину, модифицирующую воспринимающую машину. В такой динамичной,высокоабстрактной среде можно реализовать как строго-научные системы, так инеисчислимое множество программистских трюков и генераторов всевозможных машин.
Любая программа на Лиспе состоит из последовательностивыражений (форм). Результат работы программы состоит в вычислении этих выражений.Все выражения записываются в виде списков – одной из основных структур Лиспа,поэтому они могут легко быть созданы посредством самого языка. Это позволяетсоздавать программы, изменяющие другие программы или макросы, позволяющиесущественно расширить возможности языка.
Внешне исходный код программы на Лиспе отличается обилиемкруглых скобок; редактирование программ значительно упрощается использованиемтекстового редактора, поддерживающего автоматическое выравнивание кода,подсветку соответствующих пар скобок и такие специальные команды, как «закрытьвсе открытые скобки», «перейти через список вправо» и т. д.
Символьная природа языка (то есть отсутствие в символьномпространстве традиционной метрической геометрии расстояний, последовательностейи т.д.) позволяет легко и продуктивно распараллеливать Лисп-процессы. Что нашлоиспользование в сверхмощных телекоммуникационных, сетевых Лисп-системах.
Первые области применения Лиспа были связаны с символьнойобработкой данных и процессами принятия решений.
Наиболее популярный сегодня диалект Коммон Лисп являетсяуниверсальным языком программирования. Он широко используется в самых разныхпроектах: интернет-серверы и службы, серверы приложений и клиенты,взаимодействующие с реляционными и объектными базами данных, научные расчёты иигровые программы.
Одно из направлений использования языка Lisp – егоиспользование в качестве скриптового языка, автоматизирующего работу в рядеприкладных программ.
Сферы применения Лиспа многообразны: наука и промышленность,образование и медицина, от декодирования генома человека до системыпроектирования авиалайнеров.
3. Технологическая реализация системы подготовки обработки деталистанка с ЧПУ3.1 Описание кодов программного модуля
Любой проект в Delphi состоит изнескольких частей (набора файлов, каждый из которых отвечает за конкретнуючасть проекта). Это файлы, содержащие тексты кода, динамические библиотеки,файлы ресурсов и файл проекта, который содержит команды для объединения всехчастей в единое целое. Все файлы создаются неявным образом, т.е. программист недолжен задумываться, какие файлы ему надо создать.
При запуске Delphi автоматическисоздается новый проект, содержащий одну пустую форму (окно Windows,готовое для запуска, со стандартным набором функций) со всеми сопутствующимифайлами. Это окно уже имеет функции закрытия, расширения до полного окна исворачивания (рисунок 7).
/>
Рисунок 7- Новый проект Delphi
В простейшем случае проект состоит из файла описанияпроекта, файла главного модуля, файла ресурсов, файла описания формы, файламодуля формы, в котором находятся основной код приложения, в том числе функцииобработки событий на компонентах формы, файл конфигурации.
Начинается главный модуль словом «program», закоторым следует имя программы, совпадающее с именем проекта. Имя проектазадается в момент сохранения проекта, и оно определяет имя создаваемогокомпилятором исполняемого файла программы. Далее за словом «uses»следуют имена используемых модулей: библиотечного модуля «Forms» имодуля формы «vrunl.pas» [13].
Строка “{$R *.RES}” — это директива компиляторуподключить файл ресурсов. Файл ресурсов содержит ресурсы приложения:пиктограммы, курсоры, битовые образы и др. Звездочка показывает, что имя файларесурсов такое же, как и у файла проекта, но с расширением «res».
Файл ресурсов не является текстовым файлом, поэтомупросмотреть его с помощью редактора текста нельзя. Для работы с файламиресурсов используют специальные программы (например «Resource Workshop»).
Помимо главного модуля, каждая программа включает в себя ещекак минимум один модуль формы, который содержит описание стартовой формыприложения и поддерживающих ее работу процедур [14].
Для разрабатываемого программного модуля необходимо создать17 форм. При запуске программного модуля на экране будут отображаться толькодва из них, остальные будут вызываться при необходимости.
Основным окном проекта будет первое, появившееся присоздании проекта, остальные окна будут присоединенными к проекту. Присоединениеновых форм к проекту происходит по средствам команды «ShowMessage».По средствам этой же команды происходит и вывод любых нестандартных диалоговыйокон (стандартные диалоговые окна выводятся с помощью команды «MessageDlg», с рядом настраиваемых параметров, таких какнабор кнопок, выводящееся сообщение и маркер).
Технология программирования в Delphiоснована на интуитивно понятном принципе. В начале строится интерфейс пользователя,заполнением формы различными стандартными компонентами с помощью мыши.Большинство визуальных параметров компонентов настраивается в «инспектореобъектов» (рисунок 8).
/>
Рисунок 8 — Инспектор объектов
Он состоит из двух вкладок: «properties»и «events». На вкладке «properties» настраиваются такие параметры как заголовок,габариты, положение на форме, наполнение при запуске, видимость и множестводругих параметров. На вкладке «events»описываются события (результат действий, которые можно произвести надобъектом). С помощью событий реализуются почти все обработчики данных.
Модуль состоит из следующих разделов: интерфейса,реализации, инициализации.
Раздел интерфейса (начинается словом «interface»)сообщает компилятору, какая часть модуля является доступной для других модулейпрограммы. В этом разделе перечислены (после слова «uses») библиотечныемодули, используемые данным модулем. Также здесь находится сформированноеDelphi описание формы, которое следует за словом «type».
Раздел реализации открывается словом «implementation»и содержит объявления локальных переменных, процедур и функций, поддерживающихработу формы. Начинается раздел реализации директивой “{$R *.DFM}”,указывающей компилятору, что в процессе генерации выполняемого файла надоиспользовать описание формы. Описание формы находится в файле с расширением «dfm»,имя которого совпадает с именем модуля. Файл описания формы генерируется средойDelphi на основе внешнего вида формы. За директивой “{$R *.DFM}”следуют процедуры обработки событий для формы и ее компонентов. Сюда жепрограммист может поместить другие процедуры и функции.
Раздел инициализации позволяет выполнить инициализациюпеременных модуля. Инструкции раздела инициализации располагаются после разделареализации (описания всех процедур и функций) между «begin» и «end».Если раздел инициализации не содержит инструкций, то слово «begin» неуказывается.
Для того чтобы в процессе набора текста программывоспользоваться шаблоном кода и вставить его в текст программы, нужно нажатькомбинацию клавиш “+” и из появившегося спискавыбрать нужный шаблон. Выбрать шаблон можно обычным образом, прокручиваясписок, или вводом первых букв имени шаблона (имена шаблонов в списке выделеныполужирным).
В основном окне будет выводиться вся самая необходимаяинформация, которая может быть использована при редактировании исходных данных,для получения оптимального результата. В нем будут отображаться все координатыперемещения инструмента, а также в нем будут собраны все обработчики событий,отвечающие за обмен информацией между всеми элементами проекта. Также в этомокне будут располагаться все основные кнопки, отвечающие за создание файловсвязи с программным продуктом 3D моделирования. Такжеесть возможность пошаговой отработки программы системы ЧПУ, которая должна бытьпредставлена в верхней части окна (рисунок 9).
/>
Рисунок 9 — Формы, появляющиеся призапуске программного модуля
Еще одна форма, появляющаяся при запуске программного модуляосуществляет накопление данных. Накопление данных происходит с помощью массива,который записывается в текстовый файл и читается из него по средствам элемента «Grid» (сетка таблицы). Этот элемент не обязателен дляотображения, но важен для работоспособности программы в целом, поэтому ее можносделать невидимой. Эта форма содержит также главное меню, по средствам которогопроисходит вызов форм для заполнения исходных данных.
Еще одной важной задачей сетки «Grid»,является оперативное хранение введенных данных и позволяет осуществитьреализацию постпроцессирования. Редактор кода выделяет ключевые слова языкапрограммирования («procedure», «var», «begin», «end»,«if» и другие) полужирным шрифтом, что делает текст программы болеевыразительным и облегчает восприятие структуры программы (рисунок 10).

/>
Рисунок 10 — Редактор кода программы
В процессе набора текста программы редактор кода выводитсправочную информацию о параметрах процедур и функций, о свойствах и методахобъектов. Один из параметров выделен полужирным. Так редактор подсказываетпрограммисту, какой параметр он должен вводить. После набора параметра изапятой в окне подсказки будет выделен следующий параметр. И так до тех пор,пока не будут указаны все параметры.
Остальные формы отвечают за удобный ввод данных (параметрызаготовки, инструмента, операций обработки, настройка технологическихпараметров и т.д.). Некоторые параметры требуют математических расчетов. Delphi со стандартными настройками может производить толькосамые простые математические действия. Чтобы вводить тригонометрическиефункции, а также сложные алгебраические действия необходимо подключитьдополнительный модуль Delphi «Math». Сделано это для того, чтобы не загружатькомпилятор лишними данными и упростить программу, если она таких вычислений нетребует. Модуль «Math» необходимо ввести встроку «Uses» редактора кода.
Из всех настроек можно выделить настройку самогопостпроцессора для перевода в Lisp. Так как этотпостпроцессор создает файл для пакета 3D моделирования,то параметры, выведенные в этот файл влияют на качество полученной модели.Модель в данном случае строится по направляющей и большому количеству сечений.При таком способе построения качество модели зависит от количества созданныхсечений, и от качества каждого сечения в отдельности. Тут необходимо найтикомпромисс между качеством производительностью. Чем больше кривизнаповерхностей модели, тем больше сечений надо, для получения качественноймодели, но слишком большое количество сечений в свою очередь может перегрузитьпроцессор даже достаточно мощного компьютера, что также не допустимо. Накачество каждого сечения влияет количество элементарных отрезков и дуг, изкоторых оно состоит. Тут также слишком малое количество элементарных частейможет привести к значительным отклонениям от действительных размеров, а слишкомбольшое их количество может привести к математическим аномалиям (длина отрезкаравна нулю или дуга образует внутреннюю петлю) [27].
Некоторые формы несут в себе только справочную информацию, ине влияют на программный модуль, другие формы не могут выводиться на экран, анесут лишь вспомогательную функцию. Они предназначены для созданияпользовательского набора инструментов, наборов и типов данных, а также событий,уникальных для этого программного модуля.
Весь проект Delphi сохраняется вспециально созданном для этого каталоге. В подкаталогах главного каталогасохраняются пользовательские файлы, на которые ссылается программный модуль(набор картинок, текстовые файлы, содержащие массивы данных, дополнительныебиблиотеки данных). Для проверки работоспособности программного модуля, в Delphi есть достаточно большой объем инструментальныхсредств. Это пошаговые компиляторы и отладчики с широким набором функцийпроверки правильности кода и т.п. При запуске программы на проверку, Delphi автоматически компилирует программный модуль висполняемый файл (рисунок 11).

/>
Рисунок 11 — Программный модуль
Компилятор генерирует исполняемую программу лишь в томслучае, если исходный текст не содержит синтаксических ошибок. В большинствеслучаев в только что набранной программе есть ошибки. Программист должен ихустранить.
Процесс устранения ошибок носит итерационный характер.Обычно сначала устраняются наиболее очевидные ошибки, например, декларируютсянеобъявленные переменные. После очередного внесения изменений в текст программывыполняется повторная компиляция.
После того как программа отлажена, необходимо выполнить ееокончательную настройку, т.е. задать название программы и выбрать значок,который будет изображать исполняемый файл приложения в папке или на рабочемстоле, а также на панели задач во время работы программы [15].3.2 Правила установки и настройки программногомодуля
Процесс установки программы предполагает не только созданиекаталога и перенос в него выполняемых файлов и файлов данных с промежуточногоносителя, но и настройку системы.
Для работы программного модуля, для начала необходимоустановить на компьютер программный пакет One Space Designer Modeling2005 и новее, созданный компанией CoCreate. Процессустановки этого пакета полностью описан в инструкции к дистрибутиву.
Далее в корне любого постоянного диска, необходимо создатькаталог с названием «CIP6». Такое названиебыло принято при создании программного модуля, поэтому менять его нельзя.Внутри этого каталога должен быть создан подкаталог «Emul». Сделаноэто для того, чтобы в каталоге «CIP6» можнобыло создать ряд других каталогов, в которых могла бы храниться информация,связанная со станком, но не связанная с программным модулем (требованиезаказчика).
В каталоге «Emul» создаются подкаталоги,содержащие служебные файлы.
Каталог «BMP» содержитфайлы изображений, используемые для пояснений и графического оформленияпрограммного модуля.
Каталог «DAT» содержитфайлы, с настроечными параметрами станка (значения абсолютных координатположения инструмента относительно заготовки в начальном положении). Этипараметры остаются неизменными в течение всего периода между ремонтами. Вслучае изменения этих значений достаточно открыть каждый из файлов кактекстовый, вручную изменить значения этих параметров и сохранить изменения втом же файле. Сделано это для того, чтобы после ремонта станка, программа ненуждалась в повторной компиляции.
Каталог «LSP» содержитгруппу файлов, отвечающую за визуализацию процесса обработки в пакете 3D моделирования. Часть файлов являются неизменными, онисодержат базовую геометрию, которая будет преобразована в частный случай. Этосистема координат, взаимное положение осей, параметрическая модель патрона изаготовки. Остальные файлы предназначены для изменения базовой геометрии. Этифайлы имеют переменное содержимое, и создаются каждый раз заново. Они строяткруги, реальную заготовку, патрон, содержат информацию о перемещениях рабочихорганов станка.
Также особой настройки требует и пакет 3Dмоделирования. Необходимо создать функцию загрузки базовой и дополнительнойгеометрии из файла (рисунок 12).
/>
Рисунок 12 — Создание дополнительныхфункций
Ссылка идет на файл, в котором прописаны ссылки на группудругих файлов, что упрощает настройку. После этого необходимо прописать впакете 3D моделирования каталог «Emul», какрабочую директорию.
На этом процесс установки завершается.3.3 Тестирование и отладка программного модуля
Первые программные системы разрабатывались в рамках программнаучных исследований или программ для нужд министерств обороны. Тестированиетаких продуктов проводилось строго формализовано с записью всех тестовыхпроцедур, тестовых данных, полученных результатов. Тестирование выделялось вотдельный процесс, который начинался после завершения кодирования, но при этом,как правило, выполнялось тем же персоналом [23].
В тестировании программного модуля можно выделить четыреэтапа:
– тестирование отдельных модулей;
– совместное тестирование модулей;
– тестирование спецификации программы;
– тестирование всего комплекса в целом (т.е. поиск несоответствиясозданного программного продукта сформулированным ранее целям проектирования,отраженным в техническом задании).
Модульное тестирование (юнит-тестирование) – тестируетсяминимально возможный для тестирования компонент, например, отдельный класс илифункция. Часто модульное тестирование осуществляется разработчикамипрограммного обеспечения.
Интеграционное тестирование – тестируются интерфейсы междукомпонентами, подсистемами. При наличии резерва времени на данной стадиитестирование ведётся итерационно, с постепенным подключением последующихподсистем.
Системное тестирование – тестируется интегрированная системана её соответствие требованиям.
Альфа-тестирование – имитация реальной работы с системойштатными разработчиками, либо реальная работа с системой потенциальнымипользователями и заказчиком. Чаще всего альфа-тестирование проводится на раннейстадии разработки продукта, но в некоторых случаях может применяться длязаконченного продукта в качестве внутреннего приёмочного тестирования. Иногдаальфа-тестирование выполняется под отладчиком или с использованием окружения,которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могутбыть переданы специалистам по тестированию для дополнительного исследования вокружении, подобном тому, в котором будет использоваться программноеобеспечение.
Бета-тестирование – в некоторых случаях выполняетсяраспространение версии с ограничениями (по функциональности или времени работы)для некоторой группы лиц, с тем чтобы убедиться, что продукт содержитдостаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобыполучить обратную связь о продукте от его будущих пользователей.
Часто для свободного (открытого)программного обеспечения стадия альфа-тестирования характеризует функциональное наполнение кода, а бета-тестирования– стадию исправления ошибок. При этом, какправило, на каждом этапе разработки промежуточные результаты работы доступныконечным пользователям.
На первых двух этапахиспользуются, прежде всего, методы структурного тестирования, так как напоследующих этапах тестирования эти методы использовать сложнее из-за большихразмеров проверяемого программного обеспечения. Последующие этапы тестированияориентированы на обнаружение ошибок различного типа, которые не обязательносвязаны с логикой программы. Известны два подхода к тестированию модулей:монолитное и пошаговое тестирование.
Существующие на сегодняшнийдень методы тестирования программного обеспечения не позволяют однозначно иполностью выявить все дефекты и установить корректность функционированияанализируемой программы, поэтому все существующие методы тестирования действуютв рамках формального процесса проверки исследуемого или разрабатываемого программногообеспечения. Такой процесс формальной проверки или верификации может доказать, что дефекты отсутствуют с точкизрения используемого метода.
Это означает, что нет никакойвозможности точно установить или гарантировать отсутствие дефектов в программномпродукте с учётом человеческого фактора, присутствующего на всех этапах жизненногоцикла программного обеспечения.
Существует множество подходовк решению задачи тестирования и верификации ПО, но эффективное тестированиесложных программных продуктов – это процесс, в высшей степени, творческий, несводящийся к следованию строгим и чётким процедурам или созданию таковых.
С точки зрения ISO9126, качество (программных средств) можноопределить как совокупную характеристику исследуемого программного обеспеченияс учётом следующих составляющих:
– надёжность;
– сопровождаемость;
– практичность;
– эффективность;
– мобильность;
– функциональность.
В терминологии профессионаловтестирования, фразы тестирование «белого ящика» и тестирование «чёрногоящика» относятся к тому, имеет ли разработчик тестов доступ к исходномукоду тестируемого программного обеспечения, или же тестирование выполняетсячерез пользовательский интерфейс либо прикладной программный интерфейс,предоставленный тестируемым модулем.
При тестированиибелого ящика, разработчик теста имеет доступ кисходному коду программ и может писать код, который связан с библиотекамитестируемого ПО. Это типично для юнит-тестирования, при котором тестируются только отдельные частисистемы. Оно обеспечивает то, что компоненты конструкции работоспособны иустойчивы, до определённой степени. При тестировании белого ящика используютсяметрики покрытия кода.
При тестированиичёрного ящика, специалист по тестированию имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешниеинтерфейсы, позволяющие другому компьютеру либо другому процессу подключиться ксистеме для тестирования. Например, тестирующий модуль может виртуальнонажимать клавиши или кнопки мыши в тестируемой программе с помощью механизмавзаимодействия процессов, с уверенностью в том, все ли идёт правильно, что этисобытия вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши.Как правило, тестирование чёрного ящикаведётся с использованием спецификаций или иных документов, описывающихтребования к системе. Как правило, в данном виде тестирования критерийпокрытия складывается из покрытия структурывходных данных, покрытия требований ипокрытия модели (в тестировании на основе моделей).
При тестировании серого ящикаразработчик теста имеет доступ к исходному коду, но при непосредственномвыполнении тестов доступ к коду, как правило, не требуется.
Покрытие кода, по своей сути, является тестированием методомбелого ящика. Тестируемое ПО собирается со специальными настройками илибиблиотеками и запускается в особом окружении, в результате чего для каждойиспользуемой (выполняемой) функции программы определяется местонахождение этойфункции в исходном коде. Этот процесс позволяет разработчикам и специалистам пообеспечению качества определить части системы, которые, при нормальной работе,используются очень редко или никогда не используются (такие как код обработкиошибок и т.п.). Это позволяет сориентировать специалистам по тестированию натестирование наиболее важных режимов.
Специалисты по тестированию могут использовать результатытеста покрытия кода для разработки тестов или тестовых данных, которые расширятпокрытие кода на важные функции.
Как правило, инструменты и библиотеки, используемые дляполучения покрытия кода, требуют значительных затрат производительности ипамяти, недопустимых при нормальном функционировании ПО, поэтому они могутиспользоваться только в лабораторных условиях. 
3.4 Инструкцияпользователя
При использовании программного модуля пользователь долженобладать полным комплектом конструкторской и технологической документации. Работаначинается с моделирования заготовки, модуль для которого показан на рисунке13.
/>
Рисунок 13 — Модуль моделированиязаготовки
Форма и положение заготовки относительно патрона имеютпервостепенное значение для проведения корректной обработки шлифованием,исключения брака и аварийных ситуаций. Предложенная схема введения размеров заготовкиобеспечивает создание тела вращения различной конфигурации, образующими формыкоторого могут быть наборы прямых линий и сопряженных с ними окружностей. Ступеньюв данной схеме является отдельно взятый отрезок прямой с началом в точке,обозначенной числом равным номеру ступени. Эти числа расположены вместе свертикальными указателями на нижней части профиля заготовки. Все изменения параметровпатрона и заготовки отображаются на верхнем графическом поле. Изменениезначения параметра производится непосредственно в соответствующей ячейкетаблицы или с помощью вспомогательных параметров «Шаг» и «Значение».В верхней части заготовки проставлены указатели с расстояниями между соседнимиступенями и значениями углов указанной ступени к оси заготовки. В нижнем правомуглу, в блоке «Измерения» находятся значения осевых, радиальныхперепадов и расстояний между двумя произвольными точками контура заготовки. Кнопка«Прикрепить» имеет три режима: «Нет», «Справа» и «Слева».Это означает, что при изменении параметров контур справа или слева отрассматриваемой ступени может меняться по-разному. Добавление и удалениеступеней желательно не делать на первой и последней ступенях, иначе можетпроизойти разрушение топологии контура заготовки. В случае любой непонятнойситуации можно применить откат вперед или назад (до 20 шагов) кнопками «Undo» и «Redo». Длязаготовок с отверстиями под СОЖ предусмотрена упрощенная схема отображения отверстийв графическом поле. После ввода всех необходимых параметров и нажатия кнопки «ОК»,генерируется программа для создания 3-d моделей патронаи заготовки. Следующим этапом является создание наладки инструмента (рисунок14).
/>
Рисунок 14 — Модуль моделированияналадки инструмента

Эта часть программного модуля использует данные, полученныепосле замеров кругов на станке. Количество кругов, их форма и расположение на оправкеопределяются шлифовщиком и технологом, исходя из их знаний и опыта. Шлифовщикунеобходимо замерить на каждом круге все соответствующие размеры и записать их вбланк замеров [4, 5, 6, 7, 8, 9, 10, 11, 12]. Все замеры шлифовщик долженпроизводить вручную, связано это с индивидуальными особенностями каждого круга,которые невозможно учесть на предварительном этапе. После ввода всехнеобходимых параметров и нажатия кнопки «ОК», генерируется программа длясоздания 3D моделей кругов и оправки. Дальше наступаетсамая главная часть процесса разработки – создание траекторий перемещенийрабочих органов станка (рисунок 15).
/>
Рисунок 15 — Модуль моделированиятраектории обработки
Операция – это совокупность движений одной или несколькихосей станка при обработке одним кругом поверхностей одного типа. Например, дляобычного сверла необходимо 4 операции: обработка винтовой канавки, формированиеленточки, заточка задней поверхности и подточка передней поверхности. При этомделение по числу зубьев, подвод и отвод круга, распределение припуска ивыхаживание могут происходить внутри одной операции. Кроме того, операция можетсодержать и дополнительные циклические движения осей для реализации, например,ступенчатой обработки затылка у сверла.
Любая линия образуется движением точки. На шлифовальномкруге выбирается активная точка и по ней фиксируется траектория движения всегокруга. Ориентация круга такова, что окружность, образованная активной точкой, касаетсятраектории, а ось круга и касательная к траектории в активной точке расположеныпод углом. Такое положение круга позволяет ему двигаться вдоль траектории, аугол отвода должен обеспечить отсутствие задевания обработанной поверхностизадней, по отношению к направлению движения, частью круга.
Как правило, к обработанной поверхности обращена частьпрофиля круга с активной точкой. Но иногда требуется обработать поверхностьполным профилем или с присутствием задевания задней частью круга. В этом случаенужно значительно уменьшать скорость подачи круга в зоне резания.
Для обработки винтовых поверхностей (цилиндрических иликонических) с постоянным шагом необходимо дополнительное вращение вокруг осизаготовки при рабочем ходе.
В ручном режиме заполнения предлагается сформироватьдостаточно большие группы операций (до 20 операций) для обработки, например,нестандартных видов осевого инструмента. Затем это может быть прототипом длядальнейшего использования. Каждая выбранная операция может быть представлена ванимированном виде в пакете 3D моделирования.
Последний этап работы с программным модулем – настройкатехнологических циклов (рисунок 16).

/>
Рисунок 16 — Модуль настройки операций
Внутри каждой операции существуют два типа движенияшлифовального круга: со снятием материала и без снятия материала с заготовки(главное и вспомогательное). Как правило, все движения имеют циклическийхарактер. Данный модуль предлагает пооперационное управление технологическимициклами.
Переключение, добавление или удаление операций производитсяв блоке «наименование». Здесь же можно изменить и наименованиеоперации.
«Положение зубьев» – для угловой разбивкиположения зубьев и назначение обработки на каждый зуб.
«Дополнит. смещения» – зависят от расположенияобрабатываемой поверхности и предназначены для смещения по одной из осейтраектории движения шлифовального круга.
«Припуски» назначаются на сторону и максимум на 3прохода вместе с подачей. Величина последнего припуска равна нулю. Если подачаравна нулю, то припуск не учитывается. Величина припуска определяет расстояние,на которое отодвинут круг вдоль назначенной оси от окончательного расчетногоположения.
«Отвод круга» используется для возврата круга висходное положение относительно детали после обработки. Величина отвода иподача назначаются применительно к одной или нескольким (до 3-х) осям одновременно.
«Циклическая обработка» – комплексное перемещениешлифовального круга для обработки поверхностей методом обкатывания. Кругпроходит через три положения: старт, экстремум и финиш. Экстремумом может бытьлюбое промежуточное значение выбранной оси. Количество циклов (до 20)равномерно распределяется на все значения от старта до финиша. В результатеполучается ступенчатая поверхность с регулируемой шероховатостью. Подача накаждую ось задается отдельно.
«Выхаживание» – стандартное циклическое движениешлифовального круга для получения более качественной по шероховатостиобработанной поверхности. Ось для выхаживания может быть выбрана только одна.
После заполнения всех таблиц и формирования готового осевогоинструмента в пакете 3D моделирования можно создатьуправляющую программу для станка.
4. Расчет экономической эффективности4.1 Расчет затрат на разработку системы
В таблице 4.1 представлены сведения о численностиработающих, принимавших участие в разработке программного изделия.
Таблица 4.1 — Ведомость фонда оплаты трудаКатегория работающих Количество, чел. Должностной оклад, руб. Фонд заработной платы, руб. Программист 1 10500 39690 Конструктор 1 13200 49896
Затраты на разработку программного обеспечения (Кп)определяется по формуле:
/>,(4.1)
где
Кпр – затраты на проектирование программногообеспечения (ПО), руб.;
Кпо – затраты на создание программных изделий,образующих ПО, руб.;
Кио – затраты на подготовку информационногообеспечения длительного пользования, создания базы данных ПО, руб.;
Ко – Затраты на отладку ПО, руб.
Укрупненный расчет на разработку ПО можно выполнить поформуле:
/>,(4.2)

где
Фз/п – фонд основной заработной платыразработчиков и других исполнителей работы, руб.;
bд– коэффициент дополнительной зарплаты (принимается 0,1 — 0,15);
bс– коэффициент отчислений на социальные нужды от основной и дополнительнойзаработной платы (принимается 0,26);
bн– коэффициент накладных расходов организации, разрабатывающей проект(принимается 0,6 — 0,8);
bпр– коэффициент прочих расходов (принимается 0,1 — 0,2);
tэвм – машинное время,затраченное для отладки программного обеспечения, ч;
Cм-ч – стоимостьмашино-часа работы ЭВМ, руб.
/>
Кп=245728,91 руб.
4.1.1 Расчет фонда заработной платы
Фонд заработной платыконсультанта и разработчика программного модуля с учетом отчислений насоциальные нужды рассчитывается:
/>,         (4.3)
где
Вр – время напроектирование и создание программного модуля, мес.;
О – среднемесячный окладразработчиков, руб.;
Ксн – коэффициентрасходов на социальные нужды.
Среднемесячный окладразработчика принимается в соответствии с окладами организации, где выполняетсяпроект.

В результате чего получим фонд заработной платы программиста:
/>;
/>руб.
Фонд заработной платы конструктора:
/>;
/>руб.
Общий фонд заработной платы:
/>руб.
Время, затраченное на отладку программного обеспечения наЭВМ tэвм устанавливается экспертным путемили по фактическим затратам машинного времени. Оно составило 40% отдлительности разработки программного модуля.
tэвм=3∙0,4∙168;
tэвм=201,6 ч.
4.1.2 Расчет себестоимости машино-часа работы персональногокомпьютера
Стоимость машино-часа работы персонального компьютера иликомплекса средств автоматизации См-ч берется в бухгалтерии той организации,где ведется разработка программного модуля [16]. При отсутствии этих данныхнеобходимо выполнить расчет себестоимости машино-часа работы с учетомконкретных условий.

Себестоимость машино-часа работы ЭВМ определяется поформуле:
/>, (4.4)
где
Зп – затраты на заработную плату обслуживающегоперсонала с учетом всех отчислений, руб.;
А – годовая сумма амортизации, руб.;
Зэ – затраты на силовую электроэнергию, руб.;
Зр – затраты на ремонт и обслуживаниеоборудования в год, руб.;
Зм – затраты на материалы в год, руб.;
Зн – накладные расходы, руб.;
Фд – действительный годовой фонд времени работыЭВМ, ч.
Расчет затрат на заработную плату обслуживающего персоналапроизводится по формуле:
/>, (4.5)
где
n – количество работников(принимается 1 работник);
li – месячный окладработника (принимается 9800 руб);
kд – коэффициент,учитывающий дополнительную заработную плату (принимается от 1,1 до 1,2); kсн – коэффициент, учитывающий отчисления насоциальные нужды (в соответствии с законодательством РФ kсн=1,26).
Зп=9800∙12∙1,1∙1,26;
Зп=162993,6 руб.

Расчет стоимости персонального компьютера для разработкипрограммного модуля представлен в таблице 4.2.
Таблица 4.2 — Расчет стоимости ЭВМ для разработки ПОНаименование оборудования Модель, серия Кол-во, шт. Стоимость, т.руб. ед. всего Системный блок Профессиональная графическая станция Compaq 1 36200 36200 Монитор Compaq P1210 1 13100 13100 Принтер HP LaserJet P2015 1 11500 11500 Итого 60800
Годовые амортизационные отчисления по ЭВМ считаются поформуле:
/>, (4.6)
где
Соб – стоимость персонального компьютера ипрочего оборудования, используемого при разработке и отладке программногомодуля;
На – норма амортизации, %.
Общая норма амортизации (На) основного фондавычислительной техники составляет 35%.
При подстановке данных из таблицы 4.2 в формулу 4.6 получаемследующие значения:
/>;
А=21280 руб.
Годовые затраты на электроэнергию рассчитываются следующимобразом:

Зэ = N ∙ Т ∙ Кисп ∙ Цэл, (4.7)
Где N – мощность оборудования, кВт;
Т – время работы оборудования, ч.;
Кисп – коэффициент использования оборудования помощности, принимаем 0,75; Цэл – стоимость 1 кВт*ч электроэнергии,руб.
В среднем вычислительная техника потребляет 0,4 кВтэлектроэнергии в час. Время потребления энергии ЭВМ составляет 1488 часов.Стоимость силовой электроэнергии равна 1,62 руб/кВт.
Зэ=0,4∙1488∙0,75∙1,62;
Зэ=723,17 руб.
Затраты на текущие ремонты Зр и на материалы Змв год берутся по данным бухгалтерии. При укрупненном расчете их сумма можетбыть принята от 4,5 до 10% от стоимости ЭВМ.
Зр=60800∙0,06;
Зр=3648 руб.
В накладные расходы включаются затраты на амортизацию исодержание площадей, затраты на отопление, освещение и прочие [2].
Коэффициент накладных расходов организации, разрабатывающейпроект принимаются равным 0,6 — 0,9 от затрат на основную заработную платуразработчиков.
Зн=89586∙0,8;
Зн=71668,8 руб.

Годовой фонд времени Фд устанавливается, исходяиз номинального фонда времени и времени профилактики оборудования и ремонтов:
Фд = (365-Пр-В)∙q∙S∙Kисп,(4.8)
где
Пр – количество праздничных дней;
В – количество выходных дней;
S – количество смен;
q – продолжительность смены, ч.
Фд=248∙8∙1∙0,75,
Фд=1488 ч.
Подставив подсчитанные значения в формулах 4.5 — 4.8 вформулу 4.4 можно вычислить стоимость машино-часа работы ЭВМ:
См-ч=(162993,6 + 21280 +723,17 + 3648 + 71668,8)/1488;
См-ч=174,94 руб/час.
4.1.3 Расчет цены программного обеспечения
Минимальная цена разработки программного обеспечения (Zmin) складывается из полных затрат на разработкуКп и минимально необходимой суммы прибыли Пminи рассчитывается по формуле:
Zmin=Кп+Пmin. (4.9)
Сумма прибыли Пminрассчитывается исходя из планируемого минимального уровня, рентабельностизатрат организации-разработчика:

Пmin=Кп∙Rmin/100 (4.10)
где
Rmin – минимальныйуровень рентабельности, % (20-30%);
Пmin=245728,91∙0,25;
Пmin=61432,23 руб.
Подставив полученные значения из формулы 4.10 в формулу 4.9можно рассчитать минимальную цену разработки программного модуля:
Zmin=245728,91+ 61432,23;
Zmin=307161,14 руб.
После выполнения расчетов, можно подвести итоги по подсчетусебестоимости программы:
– Время, затраченное на разработку и отладку программного модуля наперсональном компьютере составляет 3 месяца;
– Затраты на разработку программного модуля составляет 245728,91 рублей;
– Фонд заработной платы составляет 89586 рублей;
– Затраты на зарплату обслуживающего персонала составляют 162993,6 рубля;
– Затраты на электроэнергию составляют 723,17 рубля;
– Затраты на текущие ремонты составляют 3648 рублей;
– Накладные расходы составляют 71668,8 рублей;
– Стоимость машино-часа работы персонального компьютера составляют 174,94рубля/час.
Исходя из вышеперечисленных затрат, можно сказать чтостоимость программного модуля, которая составляет 307161,14 рубль, являетсядостаточно реальной суммой, за которую можно продать данный программныйпродукт./>/>/>/> 4.2 Методологиярасчета общей стоимости владения программным продуктом
Расчет стоимости владения программным модулем включаетопределение затрат на каждой стадии жизненного цикла информационного продуктаих классификацию и обоснование [12]. Формулы для расчета стоимости владенияпрограммным модулем приведены ниже.
Стоимость теоретического проекта рассчитывается:
С т.пр = Zmin+ С под ,
где Спод – стоимость поддержки, которая складываетсяиз расходов на услуги консультантов. Принимается время работы консультантовподдержки равным 50% от времени работы при создании [19]. Тогда время работыконсультанта равно 1,5 мес. При размере оплаты услуг консультанта 10000руб/мес, стоимость поддержки составит 15000 руб.
С т.пр = 307161,14+15000;
С т.пр = 322161,14 руб.
Стоимость технологического проекта рассчитывается:
С тех.пр = Р ап +С под ,
где Рап – расходы на аппаратное обеспечение. Спод– стоимость поддержки, которая складывается из расходов на услугипрограммистов. Принимается время работы программистов равным 50% от времениработы при создании. Тогда время работы программиста равно 1,5 мес. При размереоплаты услуг программиста 10500 руб/мес, стоимость поддержки составит 15750руб.
С тех.проекта = 60800 + 15750;
С тех.проекта = 76550 руб.
Общая стоимость владения информационным продуктомрассчитывается:
ОСВ = С т.пр + С тех.пр,
ОСВ = 322161,14 + 76550;
ОСВ = 398711,14 руб. 4.3 Экономическийэффект
Разработанный программный продукт, программный модуль станкас ЧПУ, необходим для автоматизации процесса создания управляющей программы длястанка Walter CIP6,оснащенного системой ЧПУ Sinumeric 840D.При расчёте экономического эффекта от применения программного продукта, общаястоимость разработанного программного модуля станка с ЧПУ оказалась нижестоимости аналогичного модуля, предлагаемого фирмой-изготовителем станка [18].
/>,(4.11)
где ОВСр – общая стоимость владенияразработываемого программмного продукта, руб.; ОВСп – общаястоимость владения покупного программного продукта, руб.

ОВСп = 638540 руб.;
Э – экономический эффект, руб.
Э = 638540 — 398711,14;
Э = 239828,86 руб.
Разработанный программный продукт, программный модуль станкас ЧПУ, на 239828,86 рублей дешевле аналогичного программного модуляразработанного фирмой фирмой-изготовителем станка.
5. Обеспечениебезопасности жизнедеятельности5.1 Общие сведения о безопасностижизнедеятельности
Безопасность жизнедеятельности (БЖД) – это комплекс мероприятий, направленных на обеспечение безопасностичеловека в среде обитания, сохранение его здоровья, разработку методов исредств защиты путем снижения влияния вредных и опасных факторов до допустимыхзначений, выработку мер по ограничению ущерба в ликвидации последствийчрезвычайных ситуаций мирного и военного времени [20].
Охрана здоровья трудящихся, обеспечение безопасности условийтруда, ликвидация профессиональных заболеваний и производственного травматизмасоставляет одну из главных забот человеческого общества. Обращается внимание нанеобходимость широкого применения прогрессивных форм научной организации труда,сведения к минимуму ручного, малоквалифицированного труда, создания обстановки,исключающей профессиональные заболевания и производственный травматизм.
Помещения для эксплуатации персональных компьютеров должныиметь естественное и искусственное освещение. Эксплуатация персональныхкомпьютеров в помещениях без естественного освещения допускается только присоответствующем обосновании и наличии положительногосанитарно-эпидемиологического заключения, выданного в установленном порядке.
Естественное и искусственное освещение должносоответствовать требованиям действующей нормативной документации. Окна впомещениях, где эксплуатируется вычислительная техника, преимущественно должныбыть ориентированы на север и северо-восток.
Оконные проемы должны быть оборудованы регулируемымиустройствами типа: жалюзи, занавесей, внешних козырьков и так далее.
Площадь на одно рабочее место комплектовщика компьютера набазе электронно-лучевой трубки (ЭЛТ) должна составлять не менее 6 м2, на базе плоских дискретных экранов (жидкокристаллические, плазменные) – 4,5 м2.
Для внутренней отделки интерьера помещений, где расположеныкомпьютеры, должны использоваться диффузно отражающие материалы с коэффициентомотражения для потолка 0,7-0,8; для стен0,5-0,6; для пола 0,3-0,5. Полимерные материалы используются для внутреннейотделки интерьера помещений с персональными компьютерами при наличиисанитарно-эпидемиологического заключения.
Помещения, где размещаются рабочие места с персональнымикомпьютерами, должны быть оборудованы защитным заземлением (занулением) всоответствии с техническими требованиями по эксплуатации.
Не следует размещать рабочие места с персональнымикомпьютерами вблизи силовых кабелей и вводов, высоковольтных трансформаторов,технологического оборудования, создающего помехи в работе персональныхкомпьютеров.
В производственных помещениях, в которых работа сиспользованием персональных компьютеров является вспомогательной, температура,относительная влажность и скорость движения воздуха на рабочих местах должнысоответствовать действующим санитарным нормам микроклимата производственныхпомещений.
В производственных помещениях, в которых работа сиспользованием персональных компьютеров является основной (диспетчерские,операторские, расчетные, кабины и посты управления, залы вычислительной техникии др.) и связана с нервно-эмоциональным напряжением, должны обеспечиватьсяоптимальные параметры микроклимата для категории работ 1а и 1б в соответствии сдействующими санитарно-эпидемиологическими нормативами микроклиматапроизводственных помещений. На других рабочих местах следует поддерживатьпараметры микроклимата на допустимом уровне, соответствующем требованиям указанныхвыше нормативов.
В помещениях должна проводиться ежедневная влажная уборка исистематическое проветривание после каждого часа работы на компьютере.
Уровни положительных и отрицательных аэроионов в воздухепомещений, где расположены персональные компьютеры, должны соответствоватьдействующим санитарно-эпидемиологическим нормативам.
Содержание вредных химических веществ в воздухепроизводственных помещений, в которых работа с использованием персональныхкомпьютеров является вспомогательной, не должно превышать предельно допустимыхконцентраций вредных веществ в воздухе рабочей зоны в соответствии сдействующими гигиеническими нормативами.
Содержание вредных химических веществ в производственныхпомещениях, в которых работа с использованием персональных компьютеров являетсяосновной (диспетчерские, операторские, расчетные, кабины и посты управления,залы вычислительной техники и др.), не должно превышать предельно допустимыхконцентраций загрязняющих веществ в атмосферном воздухе населенных мест всоответствии с действующими гигиеническими нормативами.
В производственных помещениях при выполнении основных иливспомогательных работ с использованием персональных компьютеров уровни шума нарабочих местах не должны превышать предельно допустимых значений, установленныхдля данных видов работ в соответствии с действующимисанитарно-эпидемиологическими нормативами.
При выполнении работ с использованием персональныхкомпьютеров в производственных помещениях уровень вибрации не должен превышатьдопустимых значений вибрации для рабочих мест (категория 3, тип «в»)в соответствии с действующими санитарно-эпидемиологическими нормативами.
Шумящее оборудование (печатающие устройства, серверы ит.п.), уровни шума которого превышают нормативные, должно размещаться внепомещений с персональными компьютерами.
Рабочие столы следует размещать таким образом, чтобывидеодисплейные терминалы были ориентированы боковой стороной к световымпроемам, чтобы естественный свет падал преимущественно слева.
Искусственное освещение в помещениях для эксплуатацииперсональных компьютеров должно осуществляться системой общего равномерногоосвещения. В производственных и административно-общественных помещениях, вслучаях преимущественной работы с документами, следует применять системыкомбинированного освещения (к общему освещению дополнительно устанавливаютсясветильники местного освещения, предназначенные для освещения зоны расположениядокументов).
Освещенность на поверхности стола в зоне размещения рабочегодокумента должна быть 300 — 500 лк. Освещение не должно создавать бликов наповерхности экрана. Освещенность поверхности экрана не должна быть более 300лк. Следует ограничивать прямую блесткость от источников освещения, при этомяркость светящихся поверхностей (окна, светильники и другие), находящихся вполе зрения, должна быть не более 200 кд/м2.
Следует ограничивать отраженную блесткость на рабочихповерхностях (экран, стол, клавиатура и другие) за счет правильного выборатипов светильников и расположения рабочих мест по отношению к источникам естественногои искусственного освещения, при этом яркость бликов на экране персональногокомпьютера не должна превышать 40 кд/м2 и яркость потолка не должна превышать200 кд/м2.
Показатель ослепленности для источников общегоискусственного освещения в производственных помещениях должен быть не более 20.Показатель дискомфорта в административно-общественных помещениях не более 40.
Яркость светильников общего освещения в зоне углов излученияот 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должнасоставлять не более 200 кд/м2, защитный угол светильников должен быть не менее40 градусов. Светильники местного освещения должны иметь не просвечивающийотражатель с защитным углом не менее 40 градусов.
Следует ограничивать неравномерность распределения яркости вполе зрения пользователя персонального компьютера, при этом соотношение яркостимежду рабочими поверхностями не должно превышать 3:1 — 5:1, а между рабочимиповерхностями и поверхностями стен и оборудования 10:1.
Для обеспечения нормируемых значений освещенности впомещениях для использования персональных компьютеров следует проводить чисткустекол оконных рам и светильников не реже двух раз в год и проводитьсвоевременную замену перегоревших ламп.
Режим пожарной безопасности помещений регламентируется двумяосновополагающими документами: ФЗ № 69 «О пожарной безопасности» и «Правиламипожарной безопасности на ОАО „АВТОВАЗ“.
Правила пожарной безопасности устанавливают основные нормы итребования к помещениям, размещению в них оборудования. Оснащение помещенийсредствами первичного пожаротушения, планы и схемы эвакуации при пожаре,порядок вызова пожарной службы при возникновении ЧС. В каждом помещении должнобыть лицо ответственное за пожарную безопасность, назначенное приказомруководителя предприятия или лицом ответственным за пожарную безопасностьпредприятия в целом. Все работники должны периодически, не реже 1 раза вполугодие, проходить инструктаж по пожарной безопасности, участвовать втренировках по эвакуации из здания при пожаре, тушению предполагаемыхвозгораний.
Требования Правил пожарной безопасности к эксплуатациивычислительной техники содержат лишь общие положения, в которых обозначенынеобходимые для соблюдения документы. Одним из таких документов являютсяПравила устройства электроустановок (ПУЭ). В них оговорены требования к монтажуэлектропроводки, освещения, порядку включения, выключения и аварийногообесточивания электросетей.
В случае загорания ПК или отдельных устройств, следуетнемедленно отключить электропитание, сообщить в службу пожарной охраны потелефону „11-01“. Оценить ситуацию и, в случае небольшого очагавозгорания, попытаться начать тушение загорания, используя средства первичногопожаротушения. Для тушения можно применять огнетушители с углекислотным илипорошковым зарядом. Они предназначены для тушения электроустановок снапряжением до 1000 В. При обнаружении неисправностей, перегрева оборудования,появления запаха гари следует выключить ПК и другие включенные устройства,вынуть вилки электропитания из розеток и сообщить об этом обслуживающемуперсоналу, то есть лицу ответственному за пожарную безопасность помещений илиответственному за электрохозяйство.
Для предотвращения возгорания необходимо соблюдать основныемеры предосторожности:
–  не эксплуатировать поврежденные розетки или розетки,выполненные с нарушением норм пожарной безопасности;
–  не допускать работу средств вычислительной техники снеисправными шнурами питания;
–  соблюдать порядок уборки и хранения горючихматериалов;
–  не класть на устройства вычислительной техникипосторонние предметы, бумагу, документацию;
–  в помещениях не пользоваться открытым огнем иэлектронагревательными приборами с открытыми элементами нагрева или безтерморегуляторов;
–  запрещается работа на неисправном оборудовании (возникновениекороткого замыкания и, как следствие, характерные искры и шум, запах плавящейсяизоляции проводов);
–  по окончании работы, перед закрытием помещений,следует обесточить все электропотребители.
–  5.2 Требования к рабочему месту инженера–программиста
Приработе с компьютером человек подвергается воздействию ряда опасных и вредныхпроизводственных факторов:
– электромагнитныхполей (диапазон высоких частот, сверх высоких частот и ультра высоких частот);
– инфракрасногои ионизирующего излучений;
– повышенный уровень шума и вибрации;
– повышенная температура внешнейсреды;
–  отсутствие или недостаточная освещенность рабочейзоны;
– электрического тока и статического электричества;
–  умственное перенапряжение;
–  перенапряжение зрительных и слуховых анализаторов;
–  монотонность труда;
– эмоциональные перегрузки;
– большиенагрузки на мышцы рук при работе с клавиатурой ЭВМ;
– большиенагрузки на мышцы шеи, спины и ног.
В соответствии с СанПиН2.2.2/2.4.1340-03 рабочее место инженера-программиста должнообеспечивать возможность поворота корпуса в горизонтальной и вертикальнойплоскости с фиксацией в заданном положении для обеспечения фронтальногонаблюдения экрана. Корпус ПК, клавиатура и другие блоки и устройства должныиметь матовую поверхность с коэффициентом отражения 0,4-0,6 и не иметьблестящих деталей, способных создавать блики. Также должно предусматриватьсярегулирование яркости и контрастности.
Концентрации вредных веществ, выделяемых персональнымикомпьютерами в воздух помещений, не должны превышать предельно допустимыхконцентраций (ПДК), установленных для атмосферного воздуха.
Рабочие места с персональными компьютерами в помещениях систочниками вредных производственных факторов должны размещаться визолированных кабинах с организованным воздухообменом.
Конструкция персонального компьютера должна обеспечиватьвозможность поворота корпуса в горизонтальной и вертикальной плоскости сфиксацией в заданном положении для обеспечения фронтального наблюдения экранамонитора. Дизайн персонального компьютера должен предусматривать окраскукорпуса в спокойные мягкие тона с диффузным рассеиванием света. Корпусперсонального компьютера, клавиатура и другие его блоки и устройства должныиметь матовую поверхность с коэффициентом отражения 0,4 — 0,6 и не иметьблестящих деталей, способных создавать блики.
Рабочие места с персональными компьютерами при выполнениитворческой работы, требующей значительного умственного напряжения или высокойконцентрации внимания, рекомендуется изолировать друг от друга перегородкамивысотой 1,5 — 2,0 м.
Большое значение имеетрациональная конструкция и расположение элементов рабочего места, что важно дляподдержания оптимальной рабочей позы человека-оператора. При размещениирабочих мест с персональным компьютером расстояние между рабочими столами свидеомониторами (в направлении тыла поверхности одного видеомонитора и экранадругого видеомонитора), должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов – не менее 1,2 м.
Экран видеомонитора должен находиться от глаз пользователяна расстоянии 600-700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.
Впроцессе работы с компьютером необходимо соблюдать правильный режим труда иотдыха. В противном случае отмечаются значительное напряжение зрительногоаппарата с появлением жалоб на неудовлетворенность работой, головные боли,раздражительность, нарушение сна, усталость и болезненные ощущения в глазах, впояснице, в области шеи и руках.
Конструкция рабочего стола должна обеспечивать оптимальноеразмещение на рабочей поверхности используемого оборудования с учетом егоколичества и конструктивных особенностей, характера выполняемой работы. Приэтом допускается использование рабочих столов различных конструкций, отвечающихсовременным требованиям эргономики. Поверхность рабочего стола должна иметькоэффициент отражения 0,5-0,7.
Высота рабочей поверхности стола для взрослых пользователейдолжна регулироваться в пределах 680 — 800 мм, при отсутствии такой возможности высота рабочей поверхности стола должна составлять 725 мм.
Модульными размерами рабочей поверхности стола для ПЭВМ, наосновании которых должны рассчитываться конструктивные размеры, следуетсчитать: ширину 800, 1000, 1200 и 1400 мм, глубину 800 и 1000 мм при нерегулируемой его высоте, равной 725 мм.
Рабочий стол должен иметь пространство для ног высотой неменее 600 мм, шириной — не менее 500 мм, глубиной на уровне колен – не менее 450 мм и на уровне вытянутых ног — не менее 650 мм.
Конструкция рабочего стула (кресла) должна обеспечиватьподдержание рациональной рабочей позы при работе на персональном компьютере,позволять изменять позу с целью снижения статического напряжения мышцшейно-плечевой области и спины для предупреждения развития утомления.
Рабочий стул (кресло) должен быть подъемно-поворотным,регулируемым по высоте и углам наклона сиденья и спинки, а также расстояниюспинки от переднего края сиденья, при этом регулировка каждого параметра должнабыть независимой, легко осуществляемой и иметь надежную фиксацию.
Поверхность сиденья, спинки и других элементов стула(кресла) должна быть полумягкой, с нескользящим, слабо электризующимся ивоздухопроницаемым покрытием, обеспечивающим легкую очистку от загрязнений.
Рабочее место пользователя персонального компьютера следуетоборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20°. Поверхность подставки должна бытьрифленой и иметь по переднему краю бортик высотой 10 мм.
Клавиатуру следует располагать на поверхности стола нарасстоянии 100 — 300 мм от края, обращенного к пользователю или на специальной,регулируемой по высоте рабочей поверхности, отделенной от основной столешницы.
Мощность экспозиционной дозы мягкого рентгеновскогоизлучения в любой точке на расстоянии 0,05 м от экрана при любых положениях регулировочных устройств не должна превышать 1 мкЗв/час (100 мкР/час).5.3 Расчет естественного освещения рабочего места
Расчет и нормированиеестественного освещения производят по коэффициенту естественной освещенности „e“ (КЕО) в % по формуле 5.1:
/>,(5.1)
где
Ев – освещенность внутри помещения, лк;
Ен – одновременнаяосвещенность наружной и горизонтальной плоскости рассеянным светом небосвода,лк.
На предприятиях наибольшеераспространение получило естественное боковое освещение. При таком освещенииосновой расчета является требуемая площадь светового проема, определяемая поформуле 5.2:
/> (5.2)
где
So — площадь окон, м2;
Sп — площадь пола помещения, м2;
eн — нормированное значение КЕО, %;
ho — световая характеристика окна (6.5-29);
Кз — коэффициент запаса;
Кзо — коэффициент, учитывающий затемнение оконпротивостоящими зданиями (1,0-1,7);
to — общий коэффициент светопропускания, определяемый изСанПиН 2.2.2/2.4.1340-03;
r1 — коэффициент, учитывающий повышение КЕО за счетотражения света от поверхности помещения (1,05-1,7).
Коэффициент „Кз“определяется равным 1,5. Учитываем, что длина пола помещения „l“,равняется 12 м, а ширина „b“ 8,4 м. Находим площадь пола по формуле 5.3:
/>,(5.3)
/>.
Нормированное значение КЕОопределяется равным 1,2 %.

Значения остальныхкоэффициентов принимаются равными:
ho =29;
r1 = 1,2;
Кзо = 1;
to = 0,3.
При расчете полученоследующее значение требуемой площади светового проема по формуле 5.2:
/>.
Следовательно оконный проемдолжен быть не менее 15 м2.5.4 Расчет искусственного освещения
Искусственное освещение применяют в темное и переходноевремя суток, а также при недостаточном или отсутствии естественного освещения.В помещении применяется общее равномерное искусственное освещение, расчеткоторого производится по методу светового потока. При расчете этим методомучитывается как прямой свет от светильника, так и свет, отраженный от потолка истен.
Освещенность на поверхности стола в зоне размещения рабочегодокумента должна быть 300 – 500 лк. Освещение не должно создавать бликов наповерхности экрана. Освещенность поверхности экрана не должна быть более 300лк. Яркость бликов на экране персонального компьютера не должна превышать 40кд/м2 и яркость потолка не должна превышать 200 кд/м2.
В качестве источников света при искусственном освещенииследует применять преимущественно люминесцентные лампы типа ЛБ и компактныелюминесцентные лампы (КЛЛ).
Для освещения помещений с персональными компьютерами следуетприменять светильники с зеркальными параболическими решетками,укомплектованными электронными пуско-регулирующими аппаратами (ЭПРА) [21].Допускается использование многоламповых светильников с электромагнитнымипуско-регулирующими аппаратами (ЭПРА), состоящими из равного числа опережающихи отстающих ветвей. Применение светильников без рассеивателей и экранирующихрешеток не допускается.
Общее освещение при использовании люминесцентныхсветильников следует выполнять в виде сплошных или прерывистых линийсветильников, расположенных сбоку от рабочих мест, параллельно линии зренияпользователя при рядном расположении видеодисплейных терминалов. Припериметральном расположении компьютеров линии светильников должны располагатьсялокализовано над рабочим столом ближе к его переднему краю, обращенному коператору.
Коэффициент пульсации не должен превышать 5%.
При отсутствии светильников с ЭПРА лампы многоламповыхсветильников или рядом расположенные светильники общего освещения следуетвключать на разные фазы трехфазной сети.
Помещения, где размещаются рабочие места с персональнымикомпьютерами, освещается лампами типа ЛБ80, световой поток которых F = 5220 лм.
Освещенность определяется по следующей формуле 5.4:
/>, (5.4)

где
F — световой поток каждой из ламп, лм;
E — минимальная освещенность, лк;
k — коэффициент запаса, учитывающий запыление светильников иизнос источников света;
Sп — площадь помещения, м2;
N — число источников света;
h — коэффициент использования светового потока;
z — коэффициент неравномерности освещения;
y — коэффициент затенения.
Определим данные для расчета. Коэффициент „k“ дляпомещений освещаемых люминесцентными лампами, и при условии чистки светильниковне реже двух раз в год берется равным:
k = 1,4-1,5.
При оптимальном расположении светильников коэффициентнеравномерности равен:
z = 1,1-1,2.
Коэффициент затенения „y“ вводится в расчет дляпомещений с фиксированным положением работающих, а также при наличиикрупногабаритных предметов и принимается равным:
у = 0,8-0,9.
Коэффициент использования светового потока „h“ зависит от типа светильника,коэффициента отражения светового потока от стен, потолка, пола, а такжегеометрических размеров помещения и высоты подвеса светильников, чтоучитывается одной комплексной характеристикой — индексом помещения. Показательпомещения определяется по формуле 5.5:
/>,(5.5)
где
h — высота подвеса светильников над рабочей поверхностью, м;
l — ширина помещения, м;
b — длина помещения, м.
Тогда индекс помещения поформуле (5.5) получается равным:
/>
По найденному показателю помещения „i“ икоэффициентам отражения потолка и стен, определяем коэффициент использованиясветового потока (под которым понимается отношение светового потока, падающегона рабочую поверхность, к световому потоку источника света). Для нашего случая „h“ равняется 0,22.
Тогда освещенность по формуле(5.4) равна:
/> лк.
Расчет показывает, чтоосвещенность в помещении, где размещаются рабочие места с персональнымикомпьютеров удовлетворяет требованиям, так как нормальная минимальнаяосвещенность должна составлять 400лк.

Заключение
Данный проект был направлен на автоматизацию проектных работпо программированию станка с ЧПУ Walter CIP6. Были проведеныисследовательские работы по изучению состояния дел в этой сфере, изученыпредложения других компаний, был создан программный продукт, посчитаныэкономические затраты на его создание и сформулированы требования побезопасности жизнедеятельности.
В процессе проектирования был получен программный модуль,отвечающий всем заявленным требованиям. Этот модуль может проводить сложныематематические расчеты неявным образом, отображать в графическом представлениивведенные исходные данные. В результате использования модуля можно получитьготовую управляющую программу для системы ЧПУ.
Для упрощения задачи создания модуля, в нем применен принципвнешнего управления работой пакета 3D моделирования. Засчет этого была реализована возможность анимированной имитации обработки настанке, с получением твердотельной математической модели изделия, очень близкойк реальному изделию, которое могло бы получиться на станке, в результатеиспользования этой управляющей программы.
Особое значение имеет тот факт, что происходит уход оттрадиционных бумажных носителей на всех этапах проектирования и внедренияуправляющей программы. Достигается это за счет того, что такое же программноеобеспечение может быть установлено на рабочем месте станочника, и используяего, рабочий может получить всю необходимую информацию о наладке станка в болееудобном виде, чем это может быть представлено на бумажной карте наладки.
Данный программный модуль предназначен для применения вгруппе шлифовальных станков с ЧПУ Walter, оснащенными 4– 6 осями. С помощью этого модуля могут быть смоделированы большинствотрадиционных осевых инструментов, которые применяются в производстве, а такжеможет быть осуществлена переточка затупившегося инструмента.
Возможность имитации обработки позволяет отказаться отприменения пробной детали, которая предназначена для отладки программыобработки и чаще всего оказывается испорченной.
Также был произведен анализ условий труда программиста,который должен работать в этом приложении. Были описаны параметры рабочегоместа и рассчитаны нормы освещенности рабочего помещения. В частности былирассчитаны такие параметры как площадь оконного проема и количество лампискусственного освещения, необходимых для освещения данной комнаты при работе сперсональным компьютером.
Был произведен экономический расчет стоимости разработкиданного программного модуля. В нем были учтены стоимость компьютера ипериферийного оборудования, применяемых в ходе разработки, а так же стоимостьотладки и внедрения программного модуля. Анализ аналогов других фирм показал,что данный программный модуль может выполнять все те же действия, что ианалоги, но его стоимость на 239828,86 рублей ниже чем у аналогов.

Список литературы
1. Автоматизация проектно-конструкторских работ и технологическойподготовки производства в машиностроении. Т. 1/Под ред. О. И. Семенкова.- Минск:Высшая школа, 2005.
2. Волков Д.И., Скляренко В.К… Экономика предприятия. Курс лекций.-М.: Инфра-м, 2004.
3. Гольдштейн А.И., Молочник В.И. О внутренней структурепостпроцессоров. — В кн.: Повышение эффективности использования станков с ЧПУ.- Киев: Знание, 2006.
4. ГОСТ 886-77 „Свёрла спиральные с цилиндрическим хвостовиком.Длинная серия“.
5. ГОСТ 2092-77 „Свёрла спиральные удлиненные с коническимхвостовиком“.
6. ГОСТ 10079-71 „Развертки конические с коническим хвостовиком“.
7. ГОСТ 14952-75 „Свёрла центровочные комбинированные“.
8. ГОСТ 18121-72 „Развёртки котельные машинные“.
9. ГОСТ 19267-73 „Развертки машинные цилиндрические сцилиндрическим хвостовиком для легких сплавов“.
10. ГОСТ 21579-76 „Зенкеры с цилиндрическим хвостовиком длялегких сплавов“.
11. Делфи 4. Библия разработчика. Том Сван.Киев/Москва/Санкт-Петербург: Диалектика, 1998.
12. Ендовицкий Д.А., Коменденко С.Н. Организация анализа и контроляинновационной деятельности хозяйствующего субъекта. Под ред. Л.Т. Гимеровской.М.: Финансы и статистика, 2004.
13. Знакомство с Delphi 7. Архангельский А.Я.Москва: издательство Бином, 2004.
14. Инструменты программирования в Delphi 7.Фаронов В.В. СПб.: Питер, 2006.
15. Инструкция по программированию. Издание 03.96. SINUMERIK840D/810D/FM-NC.
16. Ильенкова С.Д., Гохберг Л.М., Ягудин С.Ю. и др.Инновационныйменеджмент. Учебник для вузов./ под ред. С.Д. Ильенковой. М.: Банки и биржи,Юнити, 1997.
17. Механика промышленных роботов: Учеб. Пособие для вузов: В 3 кн. /Под ред. К. В. Фролова, Е. И. Воробьева. Кн.2: расчет и проектированиемеханизмов / Е. И. Воробьев, О. Д. Егоров, С. А. Попов. – М: Высш. шк., 1988.
18. Инвестиции. Учебное пособие/Г.П. Подшиваленко, Н.И. Лахметкина,М.В. Макарова и др. М.: Кнорус,2004.
19. Оборудование машиностроительных предприятий / Схиртладзе А. ГВыходец., В. И., Никифоров Н. И., Отений Я. Н. − ВолгГТУ, Волгоград,2005.
20. СанПиН 2.2.2/2.4.1340-03 „Гигиенические требования кперсональным электронно-вычислительным машинам и организации работы“.
21. Системная интеграция/Машиностроение СТА 3/2002 Николай Панышев, Дмитрий Ялымов „Системачислового программного управления технологическим оборудованием“.
22. Интернет источник. CALS-технологии. www.calscenter.com.
23. Интернет источник. Всемирная интернет энциклопедия. www.wikipedia.ru.
24. Интернет источник. Информационные системы. revolution./programming.
25. Интернет источник. Уфимский государственный авиационныйтехнический университет. www.twirpx.com.
26. Интернет источник. Siemens Sinumerik 840D.www.chipmaker.ru.
27. Интернет источник. Филиппович К.В. „Идеологияпостпроцессирования в современных CAD/CAM-системах“ Россия, ООО ЕвразияЛимитед, 2000. www.sapr2000.ru

Приложение А
Исходный текст программного модуля:
program Project2; //Имя программы
uses //Объявление прикрепленных к проектуфайлов
Forms,
Unit1in ‘Unit1.pas’ {Form1},
Unit2in ‘Unit2.pas’ {Form2},
Unit3in ‘Unit3.pas’ {Form3},
Unit4in ‘Unit4.pas’ {Form4},
Unit5in ‘Unit5.pas’ {Form5},
Unit6in ‘Unit6.pas’,
Unit7in ‘Unit7.pas’ {Form7},
Unit8in ‘Unit8.pas’ {Form8},
Unit9in ‘Unit9.pas’ {Form9},
Unit10in ‘Unit10.pas’,
Unit11in ‘Unit11.pas’ {Form11},
Unit12in ‘Unit12.pas’ {Form12},
Unit13in ‘Unit13.pas’ {Form13},
Unit14in ‘Unit14.pas’ {Form14},
Unit15in ‘Unit15.pas’ {Form15},
Unit16in ‘Unit16.pas’ {Form16},
Unit17in ‘Unit17.pas’ {Form17};
var //объявление переменных
s:string; //назначение и присвоение типа переменных
ff:textfile;
{$R *.res} // директива компилятору подключить файл ресурсов
procedure Init_All; //объявление процедуры, относящейся ко всему проекту
begin
N_Ses:=1;
Init_Form2;
Form2.Caption:=’Операция N 1′;
Init_St_Det_Kr;
AssignFile(ff,path+’DAT\Stanok.dat’); //все параметры в проекта сохраняются в файл
reset(ff);
readln(ff,Xst[0]);
readln(ff,Yst[0]);
readln(ff,Zst[0]);
readln(ff,Ast[0]);
readln(ff,Bst[0]);
readln(ff,Cst[0]);
CloseFile(ff);
Init_Zag; //инициализация пользовательских функций
Init_Poly;
Init_Chk_Box;
Init_Traect(1);
Traect(1);
//Profile;
Init_Moving;
//Moving_9484;
Load_Op;
N_St:=0;N_Fin:=N_Pos[N_Act]; N_Last:=0;
Init_Data3(‘DAT\9484.txt’); //чтение данных из файла
Form3.Caption:=’Начапьные установки’;
Fill_Str_Grid1_3; //вставка стандартный элементов Windows
Init_Data4;
Fill_Str_Grid1_4;
Init_BitMap;
Draw_All;
Init_Data5;
Init_Data12;
Init_BitMap12;
Fill_Str_Grid3_12(1);
Fill_Str_Grid1_5;
Init_Data7;
Fill_Str_Grid1_7;
Step:=1;
str(Step:1:3,s);
Form8.Memo1.Text:=s;
Form8.Button17.Caption:=”;
Nst_Act:=0;
Init_Zag;
Init_Data8;
Fill_Str_Grid1_8;
Fill_Str_Grid2_8;
Init_BitMap8;
Nkr_Edit:=1;
Init_BitMap9;
Cooling;
Fill_Str_Grid1_13;
N_Buff:=1;
Put_Buff(N_Buff);
Form3.Visible:=true;
Write_Zag;
Init_Data14;
Init_Data_15;
Init_Data_16;
end;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1); //создание вспомогательных окон
Application.CreateForm(TForm2,Form2);
Application.CreateForm(TForm3,Form3);
Application.CreateForm(TForm4,Form4);
Application.CreateForm(TForm5,Form5);
Application.CreateForm(TForm7,Form7);
Application.CreateForm(TForm8,Form8);
Application.CreateForm(TForm9,Form9);
Application.CreateForm(TForm11,Form11);
Application.CreateForm(TForm12,Form12);
Application.CreateForm(TForm13,Form13);
Application.CreateForm(TForm14,Form14);
Application.CreateForm(TForm15,Form15);
Application.CreateForm(TForm16,Form16);
Application.CreateForm(TForm17,Form17);
Init_All;
Application.Run;
end.
unitUnit1;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ComCtrls, Buttons, CheckLst, Grids,Math;
type
TForm1= class(TForm)
Button1:TButton;
Memo1:TMemo;
Button8:TButton;
CheckListBox1:TCheckListBox;
Button2:TButton;
Button3:TButton;
StringGrid1:TStringGrid;
Button4:TButton;
Button5:TButton;
CheckListBox2:TCheckListBox;
Button6:TButton;
Button7:TButton;
Button9:TButton;
CheckListBox3:TCheckListBox;
Button10:TButton;
Button11:TButton;
Button12:TButton;
Button13:TButton;
Button14:TButton;
Button15:TButton;
Button16:TButton;
procedureButton3Click(Sender: TObject); //функции нажатия кнопок
procedureButton2Click(Sender: TObject);
procedureButton8Click(Sender: TObject);
procedureCheckListBox1ClickCheck(Sender: TObject);
procedureStringGrid1KeyPress(Sender: TObject; var Key: Char);
procedureButton4Click(Sender: TObject);
procedureButton5Click(Sender: TObject);
procedureButton6Click(Sender: TObject);
procedureCheckListBox2ClickCheck(Sender: TObject);
procedureButton7Click(Sender: TObject);
procedureButton9Click(Sender: TObject);
procedureCheckListBox3ClickCheck(Sender: TObject);
procedureButton10Click(Sender: TObject);
procedureButton12Click(Sender: TObject);
procedureButton13Click(Sender: TObject);
procedureButton14Click(Sender: TObject);
procedureCheckListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift:TShiftState; X, Y: Integer);
procedureButton15Click(Sender: TObject);
procedureButton16Click(Sender: TObject);
procedureFormClose(Sender: TObject; var Action: TCloseAction);
private
{Private declarations }
public
{Public declarations }
end;
type
XYZ=record
x:real;
y:real;
Z:real;
end;
var
Form1:TForm1;
XYZ_D:XYZ;
X,Y,Z,A,B,C:real;
//start
Type_Tool:integer;
SM_X,SM_Y,SM_Z,POV_A,POV_B,SM_C:array[0..500]of real; //объявление массивов
Dkr,Rkr,Skr,Akr:array [1..11] of real; //для хранения вводимых параметров в сетке
Xkr,Ykr,Zkr,X1,Y1,Z1,dX,dY,dZ,XB1,YB1,ZB1,XB,YB,ZB:real;
{Ddet,}Rdet,Zst_B,Obr_Kon,FPL,Alf1,Alf2,Apodt,Dpodt,Wdet:real;
U_X,U_Y,U_Z1,U_Z2,UB_X,dRdet:array[1..11] of real;
N_Zub:integer;
Rvp,Lz,Lo,Lzt,Arp,Rp:real;
Zp_Kr:array[1..6,1..2] of real;
Np_Kr,Sb_Int:array[1..11] of integer;
FiC,Ftr,Teta,Ltr_P,Ltr_R,LC,X0,Y0,Z0:array[0..11]of real;
XC,YC,ZC,XT,YT,ZT,XD,YD,ZD,dA,dB,dC,V_D:real;
Xst,Yst,Zst,Ast,Bst,Cst:array[0..500] of real;
Xst_Old,Yst_Old,Zst_Old,Ast_Old,Bst_Old,Cst_Old:real;
N_Act,N_St,N_Fin,N_Last,Obr:integer;
FTime:real;
F,Feed:integer;
Nt,N_Pos:array[0..500] of integer; //заполнение массивов
Com:array[0..500] of string[20];
ff1:textfile;
FName,ABS_OTN:string;
Xtr,Ytr,Ztr,X0det,Y0det,Z0det:array[0..10] of real;
dXC1,dYC1,dZC1,dX_PR,dY_PR,dZ_PR,Atr,Btr:real;
Rpr:array[1..10,1..2]of real;
Num_Op,Nex,N_C,N_Op,Nop:integer;
OutMet:array[0..500] of integer;
dFiex,dYex,dZex:array [0..100] of real;
Rex,A0ex,A1ex,Yex,dRex,Hstr,Akan:real;
{D_Auto_Calc,}Ds,Hrk,Xrk:array[1..10] of real;
Gp,Gs:array[1..2,1..10] of real;
//N_Cycl:array[1..10,1..2] of integer;
//Amin,Amax,AStep:array[1..7] of integer;
Num_Check:integer;
Zel,Yel:real;
ddZ,ddY:real;
N_Ses:integer;
Beta,X_P1,Y_P1,X_P2,Y_P2,Ld1,Ld2:real;
XXtr,YYtr,ZZtr:real;
rad:real;
N_Kr:integer;
Nkr,N_Razb,N_Sech,N_Sech_X:array[1..11] of integer;
Z0_Kr,Ust_D,Ust_VD:real;
path:string;
W,Hv,Fit_Init:array[1..11] of real;
Xv,Yv,Zv,Xv1,Yv1,Zv1,XvT,YvT,ZvT,Y_X,Z_X:array[0..50,0..2,0..5,0..100] of real;
N_Tr:integer;
Cut_Kr:array[0..20] of integer;
N_Cut,Vozvr:array[0..500] of integer;
Xkr4,Ykr4:array[1..4,0..4,0..100] of real;
Name_Op:array[1..20] of string;
Viz_Vt,Viz_Dim,Auto_Calc:array[1..20] of integer;
A_Hrk:real;
dy_Ex,dz_Ex:array[0..100] of real;
Comp_Y,Comp_Z:array[0..100] of real;
x_Out,y_Out,z_Out:array[0..100] of real;
Move_Out:integer;
dfex:array[1..11] of real;
Cool:integer;
dotv_Cool,D_Cool,Fi_Cool,Sm_Kan,Fos_Kan,Frad_Kan,A_Cool:real;
Opt_Surf:array[0..3] of string;
N_Opt:array[1..11] of integer;
NC_Act:integer;
X_NC,Y_NC,Z_NC,A_NC,B_NC,C_NC,DX_NC,DY_NC,DZ_NC,DA_NC:array[1..10] of real;
N_Dop_Act:integer;
Adov:array[1..11] of real;
N_Feed:integer;
Napr:array[0..11] of integer;
S_Napr:array[0..11]of string;
Name_Napr:array[1..3] of string;
X_Arc,Y_Arc,Z_Arc:real;
XC1_0,YC1_0,ZC1_0,XC2_0,YC2_0,ZC2_0,XP_0,YP_0,ZP_0,XR_0,YR_0,ZR_0:real;
Nz_Act:array[1..20,1..20] of integer;
Nz_Fi:array[0..20] of real;
X_Dop,Y_Dop,Z_Dop,A_Dop,B_Dop,C_Dop:array[1..10] of real;
FX_Dop,FY_Dop,FZ_Dop,FA_Dop,FB_Dop,FC_Dop:array[1..10] of real;
X_Pr,Y_Pr,Z_Pr,A_Pr,B_Pr,C_Pr:array[1..10,1..3] of real;
FX_Pr,FY_Pr,FZ_Pr,FA_Pr,FB_Pr,FC_Pr:array[1..10,1..3] of real;
X_Otv,Y_Otv,Z_Otv,A_Otv,B_Otv,C_Otv:array[1..10] of real;
FX_Otv,FY_Otv,FZ_Otv,FA_Otv,FB_Otv,FC_Otv:array[1..10] of real;
X_Cst,Y_Cst,Z_Cst,A_Cst,B_Cst,C_Cst:array[1..10] of real;
X_Cfin,Y_Cfin,Z_Cfin,A_Cfin,B_Cfin,C_Cfin:array[1..10] of real;
X_Cex,Y_Cex,Z_Cex,A_Cex,B_Cex,C_Cex:array[1..10] of real;
FX_C,FY_C,FZ_C,FA_C,FB_C,FC_C:array[1..10] of real;
Num_C:array[1..10] of integer;
X_Vix,Y_Vix,Z_Vix,A_Vix,B_Vix,C_Vix:array[1..10] of real;
FX_Vix,FY_Vix,FZ_Vix,FA_Vix,FB_Vix,FC_Vix:array[1..10] of real;
FX_Kor,FY_Kor,FZ_Kor,FA_Kor,FB_Kor,FC_Kor:real;
FX_Ust,FY_Ust,FZ_Ust,FA_Ust,FB_Ust,FC_Ust:real;
PosTime:array[1..10] of real;
Num_Vix:array[1..10] of integer;
AutoCalc:boolean;
AHrk,Av,Ak,Ap,Sp:array[1..2,1..10] of real;
Avt,AHrkt:array[1..10] of real;
Xpx,Ypx:array[1..3,0..50] of real;
N_Proection,N_Profile,XSect:integer;
CrsAlfa:array[1..2] of real;
RminX,RminY:array[1..10] of real;
TwoFi:real;
FiRmin:array[1..2,1..10] of real;
CrsFiBeg,CrsFiEnd:array[1..10,1..2] of real;
CrsXbeg,CrsYbeg,CrsXend,CrsYend,CrsZend:array[1..10,1..2] of real;
x_Pol,y_Pol,z_Pol,R_Pol,Fit_Pol:array[1..10,1..2,0..300] of real;
N_Pol:integer;
NBeg,NEnd:array[1..10,1..2] of integer;
AsectK,RminS:array[1..10] of real;
NsectK,N_PolK:array[1..10] of integer;
N_Auto,Auto_Tang:array[1..10]of integer;
Lzat1,Lzat2,Rzat,Hzat:array[1..10] of real;
ExtdY:array[1..50,1..10] of real;
Xzat_c,Yzat_c:array[1..10,1..50] of real;
CrossSect,Ntr,Ntr1:integer;
Zcont,Ycont:array[0..50,1..2,0..3] of real;
LpS,LpR:real;
N_ZP_PL:integer;
HkZP,HfZP,SfZP,RfZP,FiZp:array[1..10] of real;
SLent,SnLent,ALent,APovL,BPovL,XPovL,YPovL,ZPovL:array[1..10] of real;
N_Sect:boolean;
Edit_Op:integer;
N_OpGr,N_Link:array[1..10] of integer;
X_ZP_PL,Y_ZP_PL,dY_ZP_PL,A_ZP_PL:array[1..10] of real;
Z_ZP_PL:array[1..2,1..10] of real;
Nop_ZP_PL:integer;
GlDv:array[1..6,1..10] of integer;
fiAmax:real;
procedureInit_Chk_Box; //описание процедур построцессора
procedureInit_St_Det_Kr;
procedureInit_Moving;
procedureZatilok;
ProcedureInit_Traect(i:integer);
procedureTraect(N_Act:integer);
procedureMemo_Out;
procedureW_Str(com:string);
functionw_r(val:real;f1,f2:integer):string;
procedureG90;
procedureG91;
procedureG01;
procedureProfile;
procedureLoad_Op_All;
procedureLoad_Op;
procedureFix_Det(V_D,UB_X,Ddet:real);
procedureMake_Krug(N_kr,m:integer);
procedureUpDate_ChkBox2;
procedureMake_Spind;
procedureInit_All;
implementation
usesUnit2,Unit3,Unit4,Unit5,Unit6,Unit10,Unit14, Unit8,Unit13,Unit12,
Unit7,Unit9,Unit15,Unit16,Unit17;
{$R*.dfm} //процедура реализации
var
Str_Rel:array[0..500] of string;
ff:text;
procedureInit_All;
var
s:string;
begin
path:=GetCurrentDir+’\’;
N_Ses:=1;
Init_Form2;
Form2.Caption:=’Операция N 1′;
Init_St_Det_Kr;
Init_Zag;
Init_Poly;
Init_Chk_Box;
Init_Traect(1);
Traect(1);
//Profile;
Init_Moving;
//Moving_9484;
Load_Op;
N_St:=0;N_Fin:=N_Pos[N_Act]; N_Last:=0;
//Init_Data3(‘DAT\9484.txt’);
Form3.Caption:=’Начальные установки’;
Fill_Str_Grid1_3;
Init_Data4;
Fill_Str_Grid1_4;
Init_BitMap;
Draw_All;
Init_Data5;
Init_Data12;
Init_BitMap12;
Fill_Str_Grid3_12(1);
Fill_Str_Grid1_5;
Init_Data7;
Fill_Str_Grid1_7;
Step:=1;
//str(Step:1:3,s);
Form8.Memo1.Text:=s;
Form8.Button17.Caption:=”;
Nst_Act:=0;
Init_Zag;
Init_Data8;
Fill_Str_Grid1_8;
Fill_Str_Grid2_8;
Init_BitMap8;
//Nkr_Edit:=1;
Init_BitMap9;
Cooling;
Fill_Str_Grid1_13;
N_Buff:=1;
Put_Buff(N_Buff);
Form3.Visible:=true;
Write_Zag;
Init_Data14;
Init_Data_15;
Init_Data_16;
end;
procedureW_Str(com:string);
begin
Form1.Memo1.Lines.Add(com);
end;
functionw_r(val:real;f1,f2:integer):string;
var
s:string;
begin
str(val:f1:f2,s);
w_r:=s;
end;
functionw_i(val:integer;f1:integer):string;
var
s:string;
begin
str(val:f1,s);
w_i:=s;
end;
procedureMemo_Out;
var
s:string;
i,j:integer;
TotTime:real;
begin
Form1.Memo1.Clear;
Form1.Memo1.Visible:=false;
str(N_Pos[N_Act]:2,s);
W_Str(‘Кол-вопозиций:0-‘+s);
fori:=0 to N_Pos[N_Act] do
begin
W_Str(”);
ifi=0 then s:=”;
ifi>0 then s:=’G01 ‘+Str_Rel[i];
W_Str(‘Поз.’+w_i(i,2)+’:’+s);
W_Str(‘Абс Отн’);
W_Str(‘X=’+w_r(Xst[i],9,3)+”+w_r(SM_X[i],9,3));
W_Str(‘Y=’+w_r(Yst[i],9,3)+”+w_r(SM_Y[i],9,3));
W_Str(‘Z=’+w_r(Zst[i],9,3)+”+w_r(SM_Z[i],9,3));
W_Str(‘A=’+w_r(Ast[i],9,3)+”+w_r(POV_A[i],9,3));
W_Str(‘B=’+w_r(Bst[i],9,3)+”+w_r(POV_B[i],9,3));
W_Str(‘C=’+w_r(Cst[i],9,3)+”+w_r(SM_C[i],9,3));
end;
W_Str(‘**********************’);
str(N_Act:1,s);
W_Str(‘Время оп.’+s+’:’+w_i(trunc(PosTime[N_Act]),1)+””+
w_r(frac(PosTime[N_Act])*60,2,0)+’»’);
TotTime:=0;
forj:=1 to N_op do
TotTime:=TotTime+PosTime[j];
W_Str(‘Время общее:’+w_r(TotTime,2,3));
Form1.Memo1.Visible:=true;
end;
procedureMove(Os:char;len:real;part_name:string); //создание структуры кадра
begin
writeln(ff1,'(position_pa:part_assembly :start ‘,'”‘,part_name,'” ‘,
‘:select_done:translate :dir_len :’,Os,’ :len ‘,len:8:6,’ :done ‘,
‘:pos_dynamic:dynamo-done)’);
writeln(ff1,'(redraw_vp«vport1»)’);
end;
procedureRotate(Os:char;angle:real;part_name:string);
begin
writeln(ff1,'(position_pa:part_assembly :start ‘,'”‘,part_name,'” ‘,
‘:select_done:rotate :axis :’,Os,’ :rotation_angle ‘,angle:8:6,’ :done ‘,
‘:pos_dynamic:dynamo-done)’);
writeln(ff1,'(redraw_vp«vport1»)’);
end;
procedureXX(len:real);
begin
Move(‘x’,len,’/CIP6/N_S’);
end;
procedureYY(len:real);
begin
Move(‘y’,len,’/CIP6/Krug’);
end;
procedureZZ(len:real);
begin
Move(‘z’,len,’/CIP6/Krug’);
end;
procedureAA(ang:real);
begin
writeln(ff1,'(current_wp”/CIP6/N_S/V_S/C_Sys/Det/w_A”)’);
Rotate(‘w’,ang,’/CIP6/N_S/V_S/C_Sys/Det’);
end;
procedureBB(ang:real);
begin
writeln(ff1,'(current_wp”/CIP6/N_S/V_S/w_B”)’);
Rotate(‘w’,ang,’/CIP6/N_S/V_S’);
end;
procedureCC(len:real);
begin
writeln(ff1,'(current_wp”/CIP6/N_S/V_S/w_C”)’);
Move(‘w’,len,’/CIP6/N_S/V_S/C_Sys’);
end;
procedureAddToFile(Fn:string;N_Pos:integer);
begin
AssignFile(ff1,Fn); //запись файла связи с 3D пакетом
Append(ff1);
Nt[N_Pos]:=F;
writeln(ff1,'(dotimes( n ‘,Nt[N_Pos]:2,’)’);
ifabs(SM_X[N_Pos])>=0.001 then
begin
XX(SM_X[N_Pos]/Nt[N_Pos]);
Xst[N_Pos]:=Xst[N_Pos-1]+SM_X[N_Pos];
end;
ifabs(SM_Y[N_Pos])>=0.001 then
begin
YY(SM_Y[N_Pos]/Nt[N_Pos]);
Yst[N_Pos]:=Yst[N_Pos-1]+SM_Y[N_Pos];
end;
ifabs(SM_Z[N_Pos])>=0.001 then
begin
ZZ(-SM_Z[N_Pos]/Nt[N_Pos]);
Zst[N_Pos]:=Zst[N_Pos-1]+SM_Z[N_Pos];
end;
ifabs(POV_B[N_Pos])>=0.001 then
begin
BB(POV_B[N_Pos]/Nt[N_Pos]);
Bst[N_Pos]:=Bst[N_Pos-1]+POV_B[N_Pos];
end;
ifabs(Pov_A[N_Pos])>=0.001 then
begin
AA(POV_A[N_Pos]/Nt[N_Pos]);
Ast[N_Pos]:=Ast[N_Pos-1]+POV_A[N_Pos];
end;
ifabs(SM_C[N_Pos])>=0.001 then
begin
CC(SM_C[N_Pos]/Nt[N_Pos]);
Cst[N_Pos]:=Cst[N_Pos-1]+SM_C[N_Pos];
end;
writeln(ff1,’)’);
Flush(ff1);
CloseFile(ff1);
end;
procedureG90;
begin
ABS_OTN:=’G90′;
X:=Xst[N_Pos[N_Act]];
Y:=Yst[N_Pos[N_Act]];
Z:=Zst[N_Pos[N_Act]];
A:=Ast[N_Pos[N_Act]];
B:=Bst[N_Pos[N_Act]];
C:=Cst[N_Pos[N_Act]];
end;
procedureG91;
begin
ABS_OTN:=’G91′;
X:=0;Y:=0; Z:=0;
A:=0;B:=0; C:=0;
end;
procedureG01;
var
ss,ss1:string;
begin
inc(N_Pos[N_Act]);
PosTime[N_Act]:=PosTime[N_Act]+abs(FTime);
FTime:=0;
OutMet[N_Pos[N_Act]]:=Obr;
Obr:=0;
Str_Rel[N_Pos[N_Act]]:=ABS_OTN;
ifpos(‘G91’,ABS_OTN)>0 then
begin
SM_X[N_Pos[N_Act]]:=X;
SM_Y[N_Pos[N_Act]]:=Y;
SM_Z[N_Pos[N_Act]]:=Z;
POV_B[N_Pos[N_Act]]:=B;
POV_A[N_Pos[N_Act]]:=A;
SM_C[N_Pos[N_Act]]:=C;
end;
ifpos(‘G90′,ABS_OTN)>0 then
begin
SM_X[N_Pos[N_Act]]:=X-Xst[N_Pos[N_Act]-1];
SM_Y[N_Pos[N_Act]]:=Y-Yst[N_Pos[N_Act]-1];
SM_Z[N_Pos[N_Act]]:=Z-Zst[N_Pos[N_Act]-1];
POV_B[N_Pos[N_Act]]:=B-Bst[N_Pos[N_Act]-1];
POV_A[N_Pos[N_Act]]:=A-Ast[N_Pos[N_Act]-1];
SM_C[N_Pos[N_Act]]:=C-Cst[N_Pos[N_Act]-1];
end;
Xst[N_Pos[N_Act]]:=Xst[N_Pos[N_Act]-1];
Yst[N_Pos[N_Act]]:=Yst[N_Pos[N_Act]-1];
Zst[N_Pos[N_Act]]:=Zst[N_Pos[N_Act]-1];
Ast[N_Pos[N_Act]]:=Ast[N_Pos[N_Act]-1];
Bst[N_Pos[N_Act]]:=Bst[N_Pos[N_Act]-1];
Cst[N_Pos[N_Act]]:=Cst[N_Pos[N_Act]-1];
str(N_Pos[N_Act]:1,ss);
ifNC_ACt=0 then
begin
str(N_Pos[N_Act]:1,ss1);
Form1.CheckListBox1.Items.Add(ss+’:’+Com[N_Pos[N_Act]]);
ifN_Pos[N_Act]>1 then
Form1.CheckListBox1.State[N_Pos[N_Act]-1]:=cbUnChecked;
Form1.CheckListBox1.State[N_Pos[N_Act]]:=cbChecked;
AddToFile(Path+’LSP\Hod.lsp’,N_Pos[N_Act]);
end;
end;
procedureProfile;
var
RF:real;
ff:textfile;
X3,Y3,Z3,X31,Y31,Z31,X32,Y32,Z32,Mu_YZ,Mu_YZ1,Mu_YX,Mu_XZ:real;
Xin,Yin,Zin,Xex,Yex,Zex,Muin,Muex:real;
Xin1,Yin1,Zin1,Xex1,Yex1,Zex1,Muin1,Muex1:real;
Ang,Rs,Rd,Ksi,Ksi1,Xc,Yc,Zc1,Xc1,Yc1,F0,F1,Ficx:real;
N_Uch,N_Point,Np1,i,j,N_Half:integer;
dTeta,R_Limit1,R_Limit2,xL1,yL1,zL1,xL2,yL2,zL2,xL3,yL3,zL3,
fex,Alf1,Alf2,Alf3,L1,L2,L3,Step:real;
xL1f,yL1f,zL1f,xL2f,yL2f,zL2f,xL3f,yL3f,zL3f:real;
N_Break:array[1..2,0..4,0..100] of integer;
N_SpL:integer;
//LtrR,LtrP:extended;
fiA{,fiAmax},Vfi,fit_max,dX,dY,dZ:real;
Xv03,Yv03,Zv03:real;
K_Razb:real;
Fex_Min,Fex_Max:array[1..3] of real;
fit0,{fit_st,fit_fin,}dS_Min:real;
Empt:array[1..12] of integer;
a1_p,an_p,Sn_p,r_p,Ltr_Pfin:real;
NSect:integer;
procedureSil(N_Tr:integer);
var
i:integer;
ff1:textfile;
fixX,fixY,fixZ:real;
fixX1,fixY1,fixZ1:real;
fixX2,fixY2,fixZ2:real;
procedureVint(N_Tr,N_Half,N_Uch,j:integer);
begin
XvT[N_Tr,N_Half,N_Uch,j]:=Xv[N_Tr,N_Half,N_Uch,j];
YvT[N_Tr,N_Half,N_Uch,j]:=Yv[N_Tr,N_Half,N_Uch,j]*cos({FiA}0)+
Zv[N_Tr,N_Half,N_Uch,j]*sin({FiA}0);
ZvT[N_Tr,N_Half,N_Uch,j]:=-Yv[N_Tr,N_Half,N_Uch,j]*sin({FiA}0)+
Zv[N_Tr,N_Half,N_Uch,j]*cos({FiA}0);
fixX:=XvT[N_Tr,N_Half,N_Uch,j];
fixY:=YvT[N_Tr,N_Half,N_Uch,j];
fixZ:=ZvT[N_Tr,N_Half,N_Uch,j];
writeln(ff1,XvT[N_Tr,N_Half,N_Uch,j]:8:5,’,’,
YvT[N_Tr,N_Half,N_Uch,j]:1:5,’,’,
ZvT[N_Tr,N_Half,N_Uch,j]:1:5);
end;
procedureCreate_Bspline(N_Tr,N_Sp,N_Uch,N_Half:integer);
var
j:integer;
x3,y3,z3:real;
begin
inc(N_Spl);
caseN_Sp of
begin
writeln(ff1,'(create_curve_on_surface:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:start:selected_part “/a1/Krug” :face_3d :by_feature ‘,
‘:full_name:start_name “/a1/Krug” :feature «feat1» ‘,
‘:end_name:select_done ‘);
forj:=0 to N_Razb[N_Act] do
if (N_Break[N_Half,N_Uch,j]=0)then
begin
Empt[N_Sp]:=1;
Vint(N_Tr,N_Half,N_Uch,j);
if(N_Spl=4) and (j=N_Razb[N_Act]) then
Vint(N_Tr,1,1,j);
if(N_Spl=6) and (j=N_Razb[N_Act]) then
Vint(N_Tr,1,3,j);
end;
writeln(ff1,’)’);
writeln(ff1,'(remove_from_vp_drawlist«vport1» :with-wp ‘,
‘”/Sil_’,N_Tr:1,’.’,N_Spl:1,'”)’);
end;
begin
{Vint(N_Tr,1,1,N_Razb[N_Act]);
fixX1:=fixX;fixY1:=fixY; fixZ1:=fixZ;
Vint(N_Tr,1,3,N_Razb[N_Act]);
fixX2:=fixX;fixY2:=fixY; fixZ2:=fixZ;
x3:=(fixX1+fixX2)/2;
z3:=(fixZ1+fixZ2)/2;
y3:=(fixY1+fixY2)/2+Ddet;
writeln(ff1,'(create_bspline:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:input_mode:control ‘);
Vint(N_Tr,1,1,N_Razb[N_Act]);
writeln(ff1,x3:8:8,’,’,y3:1:8,’,’,z3:1:8);
Vint(N_Tr,1,3,N_Razb[N_Act]);}
writeln(ff1,'(create_bspline:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:start_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,1:1,'” :edge_3d :by_vertex_3d’);
Empt[N_Sp]:=1;
Vint(N_Tr,1,1,N_Razb[N_Act]);
writeln(ff1,’:select_done’);
Vint(N_Tr,1,1,N_Razb[N_Act]);
writeln(ff1,’:tangent0.2 :accept ‘,
‘:end_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,3:1,'” :edge_3d :by_vertex_3d’);
Vint(N_Tr,1,3,N_Razb[N_Act]);
writeln(ff1,’:select_done’);
Vint(N_Tr,1,3,N_Razb[N_Act]);
writeln(ff1,’:tangent0.2 :accept ‘);
writeln(ff1,’)’);
writeln(ff1,'(remove_from_vp_drawlist«vport1» :with-wp ‘,
‘”/Sil_’,N_Tr:1,’.’,N_Spl:1,'”)’);
end;
begin
writeln(ff1,'(create_bspline:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:start_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,5:1,'” :edge_3d :by_vertex_3d ‘);
Empt[N_Sp]:=1;
Vint(N_Tr,2,1,N_Razb[N_Act]);
fixX1:=fixX;fixY1:=fixY; fixZ1:=fixZ;
writeln(ff1,’:select_done’);
Vint(N_Tr,2,1,N_Razb[N_Act]);
writeln(ff1,’:accept’,
‘:end_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,7:1,'” :edge_3d :by_vertex_3d ‘);
Vint(N_Tr,2,3,N_Razb[N_Act]);
fixX2:=fixX;fixY2:=fixY; fixZ2:=fixZ;
writeln(ff1,’:select_done’);
Vint(N_Tr,2,3,N_Razb[N_Act]);
writeln(ff1,’:accept)’);
writeln(ff1,'(modify_bspline:curve :start :selected_part “/Sil_’,N_Tr:1,’.8″ ‘,
‘:all_3d:select_done ‘,
‘:insert_point’,fixX1:8:5,’,’,
fixY1:1:5,’,’,
fixZ1:1:5,”,
(fixX1+fixX2)/2:8:5,’,’,
(fixY1+fixY2)/2:1:5,’,’,
(fixZ1+fixZ2)/2:1:5,”);
writeln(ff1,’)’);
end;
end;
end;
begin
fori:=1 to 10 do
Empt[i]:=0;
AssignFile(ff1,Path+’LSP\Sil.lsp’);
Append(ff1);
N_Spl:=0;
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:x ‘,dX:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:y ‘,dY:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:z ‘,dZ:8:5,’)’);
{if N_Tr=N_Sech[N_Act] then
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug.1” :select_done ‘,
‘:rotate:axis 😡 :rotation_angle ‘,-fiA/pi*180:8:5,’ :done :translate 😡 ‘,
-dX:8:5,’)’);
}
{if N_Tr=N_Sech[N_Act] then
begin
writeln(ff1,'(create_multiple_pa:copy :source “/a1/surf1” :owner “/” )’);
writeln(ff1,'(create_multiple_pa:copy :source “/a1/surf2” :owner “/” )’);
writeln(ff1,'(create_multiple_pa:copy :source “/a1/surf3” :owner “/” )’);
end;}
Create_Bspline(N_Tr,1,1,1);
Create_Bspline(N_Tr,2,2,1);
Create_Bspline(N_Tr,3,3,1);
Create_Bspline(N_Tr,4,1,3);
fori:=1 to N_Spl do
writeln(ff1,'(position_pa:part_assembly :start “/Sil_’,N_Tr:1,’.’,i:1,'” ‘,
‘:select_done’,
‘:rotate:axis 😡 :rotation_angle ‘,(fiAmax-fiA)/pi*180:8:5,’)’);
ifN_Tr
begin
//writeln(ff1,'(position_pa :part_assembly :start “/a1/Krug” :select_done’,
//’:rotate :axis 😡 :rotation_angle ‘,fiA/pi*180:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:x ‘,-dX:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:y ‘,-dY:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:z ‘,-dZ:8:5,’)’);
end;
//W_Str1(‘N_spl=’+w_i(N_Spl,1));
Flush(ff1);
CloseFile(ff1);
end;

Приложение Б
Параметры проекта Delphi:
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE«c:\programfiles\borland\delphi7\Projects\Bpl»
-LN«c:\programfiles\borland\delphi7\Projects\Bpl»
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST
[FileVersion]
Version=7.0//версия файла
[Compiler]
A=8 //начальные параметры
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=1
R=1
S=0
T=0
U=0
V=1
W=1
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=1
UnsafeCode=1
UnsafeCast=1
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]//параметры проекта
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;teeqr;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;inetdb;inet;nmfast;vclie;dbexpress;dbxcds;indy;dclOffice2k
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[VersionInfo]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1049
CodePage=1251
[VersionInfo Keys] //информация о проекте
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;

Приложение B
Текст настроечного файла программного модуля:
3
2
5.260 5.000 105.0001.000 1.250
0.700 0.900 7.4100.350 120.000
10.000 25.000 0.90030.000 0.200
85.000 1.300 50.00071.000 0.060 3
3
99.86600 9.7060090.00000
0.45000 0.2000050.78000
-58.7130053.29000 -196.78000 -180.36000
125.06600 4.0560090.00000
1.95000 1.9500050.73000
-71.2630065.89000 -147.21000 -136.44000
100.16600 9.9730090.00000
0.10000 1.1000050.69000
-58.7730053.44000 -105.12700 -88.44000
130.0000088.00000 6.71400
6
Канавка
0.000 0.0000040.00000 53.50000 1 1 0.00000 0.71966 0.85300 -0.2000 99999999.000 0 2.000 2 0.0000 1 1 1 1 20 0.0100 1
0.000 0.000 0.0000.000 0.000 0.000
Затылок
0.000 -0.0171940.00000 47.00000 1 1 0.00000 5.14988 -4.85300 -1.0000 999999.000 0 1.000 2 0.0000 1 1 1 1 20 0.0100 1
0.000 0.000 0.000421.303 0.000 0.000
1 задний угол
58.525 0.0000080.00000 80.00000 3 2 0.25000 -30.00000 0.00000 0.5000 999999.000 0 2.000 2 0.0000 1 1 1 1 20 0.0100 1
0.000 0.000 0.000-70.110 0.000 0.000
2 задний угол
51.710 0.0000080.00000 80.00000 3 2 -0.65000 -30.00000 -1.26552 0.5000 999999.000 0 2.000 2 0.0000 0 1 1 1 20 0.0100 1
0.000 0.000 0.000-46.533 0.000 0.000
Подточка
30.00040.00000 25.00000 24.00000 2 1 1.00000 -0.80000 -0.24500 -9.0000 999999.000 0 2.0002 0.000 0 0 1 1 0 20 0.0100 1
0.000 0.000 0.000-45.000 0.000 0.000
Канавка подСОЖ
14.76779.65473 25.00000 20.00000 3 2 -3.21700 2.11332 -1.94988 0.5000 999999.000 0 2.0002 0.000 0 0 0 0 0 20 0.0100 1
0.000 0.000 0.0000.000 0.000 0.000
4
0.000 0.00090.000 0.000
10.520 0.000-0.016 0.000
10.477 77.00045.246 0.000
12.000 77.7550.000 0.000
12.000 130.0000.000 0.000
39.000 19.00059.000 40.000
1 1.900 6.00045.000 1.000 15.000 45.000
1
1
1
1
0.000
180.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.000-15.000 0.000 0.000
0.000 0.000 0.000-7.500 0.000 0.000
0 0 0 20 0 0
2
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000421.303 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.000-50.512 0.000 0.000
0.000 -0.240 0.000-25.256 0.000 0.000
0 20 0 20 0 0
7
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000-70.110 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000-46.533 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000-45.000 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1 1 1 1
15.00000 2
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.100 0.1007.500 0.500
1 2 2 1
50.51161 7
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.700 0.9007.419 0.350
1 3 3 1
0.00000 1
0.000 0.0005.260 0.000 30.000
0.000 10.00000
0.100 0.1007.500 0.500
1 3 3 1
0.00000 1
0.500 2.5002.475 2.550 30.000
4.000 25.00000
0.100 0.1007.500 0.500
0 0 5 1
0.00000 1
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.100 0.1007.500 0.500
0 0 6 1
0.00000 1
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.100 0.1007.500 0.500

Приложение Г
Текст файлов связи с пакетом 3Dмоделирования:
(create_workplane:new)
(bspline_int
0.00000,-49.48300:tangent -90.00000 //точки сплайна
0.00139,-49.51831:tangent -85.50000
0.00554,-49.55340:tangent -81.00000
0.01243,-49.58805:tangent -76.50000
0.02202,-49.62206:tangent -72.00000
0.03425,-49.65521:tangent -67.50000
0.04905,-49.68730:tangent -63.00000
0.06631,-49.71812:tangent -58.50000
0.08594,-49.74750:tangent -54.00000
0.10782,-49.77525:tangent -49.50000
0.13180,-49.80120:tangent -45.00000
0.15775,-49.82518:tangent -40.50000
0.18550,-49.84706:tangent -36.00000
0.21488,-49.86669:tangent -31.50000
0.24570,-49.88395:tangent -27.00000
0.27779,-49.89875:tangent -22.50000
0.31094,-49.91098:tangent -18.00000
0.34495,-49.92057:tangent -13.50000
0.37960,-49.92746:tangent -9.00000
0.41469,-49.93161:tangent -4.50000
0.45000,-49.93300:tangent 0.00000
0.90280,-49.93300:tangent 0.00000
1.35560,-49.93300:tangent 0.00000
1.80840,-49.93300:tangent 0.00000
2.26120,-49.93300:tangent 0.00000
2.71400,-49.93300:tangent 0.00000
3.16680,-49.93300:tangent 0.00000
3.61960,-49.93300:tangent 0.00000
4.07240,-49.93300:tangent 0.00000
4.52520,-49.93300:tangent 0.00000
4.97800,-49.93300:tangent 0.00000
5.43080,-49.93300:tangent 0.00000
5.88360,-49.93300:tangent 0.00000
6.33640,-49.93300:tangent 0.00000
6.78920,-49.93300:tangent 0.00000
7.24200,-49.93300:tangent 0.00000
7.69480,-49.93300:tangent 0.00000
8.14760,-49.93300:tangent 0.00000
8.60040,-49.93300:tangent 0.00000
9.05320,-49.93300:tangent 0.00000
9.50600,-49.93300:tangent 0.00000
9.52169,-49.93238:tangent 4.50000
9.53729,-49.93054:tangent 9.00000
9.55269,-49.92747:tangent 13.50000
9.56780,-49.92321:tangent 18.00000
9.58254,-49.91778:tangent 22.50000
9.59680,-49.91120:tangent 27.00000
9.61050,-49.90353:tangent 31.50000
9.62356,-49.89480:tangent 36.00000
9.63589,-49.88508:tangent 40.50000
9.64742,-49.87442:tangent 45.00000
9.65808,-49.86289:tangent 49.50000
9.66780,-49.85056:tangent 54.00000
9.67653,-49.83750:tangent 58.50000
9.68420,-49.82380:tangent 63.00000
9.69078,-49.80954:tangent 67.50000
9.69621,-49.79480:tangent 72.00000
9.70047,-49.77969:tangent 76.50000
9.70354,-49.76429:tangent 81.00000
9.70538,-49.74869:tangent 85.50000
9.70600,-49.73300:tangent 90.00000
)
(polygon0.00000,-49.48300 0.00000,0.00000 9.70600,0.00000 9.70600,-49.73300)
(rotate_2d:select :start :all_2d :select_done :angle -90.0)
(turn :sel_part “/Krug” :keep_wp :yes :keep_profile :no :axis :v:rotation_angle 360.0)
(define_feature:selection :start :selected_part “/Krug” :spline_sf :all_3d:select_done)
(create_assembly)
(change_pa_owner:new_owner “/a1” :parts_assemblies :start “/Krug”:select_done)
(position_pa:part_assembly :start “/a1” :select_done :rotate :axis :x:rotation_angle -90.0 :done :translate :y 50.65266000 :rotate :axis :y:rotation_angle -0.00000000)
(position_pa:part_assembly :start “/a1” :select_done :translate 😡 40.00000000)
(position_pa:part_assembly :start “/a1” :select_done :translate :z 0.85300000)
(position_pa:part_assembly “/a1/Krug” :rotate :axis :two_pta40.00000000,0.71966000,0.85300000 40.00000000,50.65266000,0.85300000:rotation_angle -0.20000000)
(create_multiple_pa:copy :source “/a1/Krug”)
(remove_from_vp_drawlist«vport1» :with-wp “/a1/Krug” )
(remove_from_vp_drawlist«vport1» :with-wp “/a1/Krug.1″ )
( delete_3d”/w1”)

Приложение Д
Текст управляющей программы ЧПУ:
%_N_CIP6\Emul\Bdd\9013_MPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
DEFINT OP1,OP2,OP3,OP4,OP5,OP6
OP1=1
OP2=1
OP3=1
OP4=1
OP5=1
OP6=1
IFOP1==1
Op_1
ENDIF
IFOP2==1
Op_2
ENDIF
IFOP3==1
Op_3
ENDIF
IFOP4==1
Op_4
ENDIF
IFOP5==1
Op_5
ENDIF
IFOP6==1
Op_6
ENDIF
M10M19
M02
%_N_NACH_UST_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
G01G90 Y176.080 F5000 G09
G01G90 A=0 F5000 G09
G01G90 B=0 F5000 G09
G01G90 Z=0 F5000 G09
G01G90 X-496.007 F5000 G09
G01G90 C=0 F5000 G09
M17
%_N_Op_1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
;=======Канавка =======
EXTERNGLAV_DVIG_Op1(INT,REAL)
EXTERNOTVOD_Op1(INT)
EXTERNPRIPUSK_Op1(INT,INT)
EXTERNCYCLOBR_Op1(INT)
EXTERNVIX_Op1
DEFREAL X_KOR,Z_KOR,B_KOR,A_KOR,Y_KOR,C_KOR
DEFREAL NZ_FI[3],FPR[4]
DEFINT NZ_ACT[3]
DEFINT I_1,I_2
R306=0
MSG(“”)
NACH_UST
Коррекция:
X_KOR=0;
Z_KOR=0;
B_KOR=0;
A_KOR=0;
Y_KOR=0;
C_KOR=0;
Подвод:
DISPOUT_Op1
G01G91 X= 405.225+X_KOR G09 F=5000
DISPOUT_Op1
G01G91 Z=-193.959+Z_KOR G09 F=5000
DISPOUT_Op1
G01G91 B= 0.200+B_KOR G09 F=5000
DISPOUT_Op1
G01G91 Y=-125.427+Y_KOR G09 F=5000
DISPOUT_Op1
G01G91 A= -0.000+A_KOR G09 F=5000
DISPOUT_Op1
G01G91 C= 0.000+C_KOR G09 F=5000
Перемещениягл. движения:
R298= 93.499;X
R299= 0.000;Y
R300= -0.326;Z
R301= 0.000;A
; ПОЛОЖЕНИЕЗУБЬЕВ
; У Г О Л Акт.зуб
NZ_FI[1]= 0.000NZ_ACT[1]=1
NZ_FI[2]=180.000 NZ_ACT[2]=1
; П Р И П У СК И
; 1проход Подача2проход Подача 3проход Подача
R213=0.000R231= 20 R219=0.000 R237= 0 R225=0.000 R243= 0 ;Y
FPR[1]=R231
FPR[2]=R237
FPR[3]=R243
; ЦИКЛИЧЕСКАЯОБРАБОТКА
; СТАРТ Экстрем.ФИНИШ Подача
R264= 0.000 R270=-7.500 R276= -15.000 R282= 20 ;A
R260=2; Кол-воциклов обработки
; О Б Р А Б ОТ К А
R306=0
FORI_1=1 TO 3
R307=0
IFFPR[I_1]>0
PRIPUSK_Op1(I_1,1)
FORI_2=1 TO 2
DISPOUT_Op1
G01G91 A=NZ_FI[I_2] F=5000
IFNZ_ACT[I_2]==1
R308=I_2
CYCLOBR_Op1(R260,FPR[I_1])
ENDIF
ENDFOR
DISPOUT_Op1
G01G91 A=360-NZ_FI[2] F=5000
PRIPUSK_Op1(I_1,-1)
ENDIF
ENDFOR
M17
%_N_GLAV_DVIG_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCGLAV_DVIG_Op1(INT NAPR,REAL FGLDV)
DISPOUT_OP1
G01G91 X=NAPR*R298 Z=NAPR*R300 F=FGLDV
M17
%_N_PRIPUSK_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCPRIPUSK_Op1(INT NUM_PR,INT NAPR_PR, REAL FPR)
IF(NUM_PR==1) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op1
G01G91 Y=NAPR_PR*R213 F=200
ENDIF
IF(NUM_PR==2) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op1
G01G91 Y=NAPR_PR*R219 F=200
ENDIF
IF(NUM_PR==3) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op1
G01G91 Y=NAPR_PR*R225 F=200
ENDIF
M17
%_N_OTVOD_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCOTVOD_Op1(INT NAPR_OTV)
M17
%_N_CYCLOBR_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCCYCLOBR_Op1(INT N_CYCL,REAL FPR)
EXTERNGLAV_DVIG_Op1(INT,REAL)
EXTERNOTVOD_Op1(INT)
DEFINT I_1,I_2
DEFREAL STEP1,STEP2
FORI_1=1 TO N_CYCL
R309=I_1
IFR282>0
IFN_CYCL==2
G01G91 A=(I_1-1)*(R276-R264)
ENDIF
IFN_CYCL>2
STEP1=2*(R270-R264)/(N_CYCL-1)
STEP2=2*(R276-R270)/(N_CYCL-1)
I_2=ROUND((N_CYCL-1)/2)
IFI_1
IFI_1>1
G01G91 A=STEP1
ENDIF
ENDIF
IFI_1>I_2
G01G91 A=STEP2
ENDIF
ENDIF
ENDIF
GLAV_DVIG_Op1(1,FPR)
OTVOD_Op1(1)
GLAV_DVIG_Op1(-1,500)
OTVOD_Op1(-1)
ENDFOR
IFR282>0
DISPOUT_OP1
G01G91 A=-(R276-R264) F=R282
ENDIF
M17
%_N_DISPOUT_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
R306=R306+1
MSG(” Поз. N ”
M17
%_N_Op_2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
;=======Затылок =======
EXTERNGLAV_DVIG_Op2(INT,REAL)
EXTERNOTVOD_Op2(INT)
EXTERNPRIPUSK_Op2(INT,INT)
EXTERNCYCLOBR_Op2(INT)
EXTERNVIX_Op2
DEFREAL X_KOR,Z_KOR,B_KOR,A_KOR,Y_KOR,C_KOR
DEFREAL NZ_FI[3],FPR[4]
DEFINT NZ_ACT[3]
DEFINT I_1,I_2
R306=0
MSG(“”)
NACH_UST
Коррекция:
X_KOR=0;
Z_KOR=0;
B_KOR=0;
A_KOR=0;
Y_KOR=0;
C_KOR=0;
Подвод:
DISPOUT_Op2
G01G91 X= 405.341+X_KOR G09 F=5000
DISPOUT_Op2
G01G91 Z=-186.986+Z_KOR G09 F=5000
DISPOUT_Op2
G01G91 B= 1.000+B_KOR G09 F=5000
DISPOUT_Op2
G01G91 Y=-120.985+Y_KOR G09 F=5000
DISPOUT_Op2
G01G91 A= 0.000+A_KOR G09 F=5000
DISPOUT_Op2
G01G91 C= 0.000+C_KOR G09 F=5000
Перемещениягл. движения:
R298= 86.987;X
R299= -0.026;Y
R300= -1.518;Z
R301= 0.000;A
; ПОЛОЖЕНИЕЗУБЬЕВ
; У Г О Л Акт.зуб
NZ_FI[1]= 0.000NZ_ACT[1]=1
NZ_FI[2]=180.000 NZ_ACT[2]=1
; ДОПОЛНИТЕЛЬНЫЕСМЕЩЕНИЯ
; Смещение Подача
R203= 421.303 R209=20 ;A
; П Р И П У СК И
; 1проход Подача2проход Подача 3проход Подача
R213=0.000R231= 20 R219=0.000 R237= 0 R225=0.000 R243= 0 ;Y
FPR[1]=R231
FPR[2]=R237
FPR[3]=R243
; ЦИКЛИЧЕСКАЯОБРАБОТКА
; СТАРТ Экстрем.ФИНИШ Подача
R262= 0.000 R268=-0.240 R274= 0.000 R280= 20 ;Y
R264= 0.000 R270=-25.256 R276= -50.512 R282= 20 ;A
R260=7; Кол-воциклов обработки
; О Б Р А Б ОТ К А
R306=0
DOPSM_Op2
FORI_1=1 TO 3
R307=0
IFFPR[I_1]>0
PRIPUSK_Op2(I_1,1)
FORI_2=1 TO 2
DISPOUT_Op2
G01G91 A=NZ_FI[I_2] F=5000
IFNZ_ACT[I_2]==1
R308=I_2
CYCLOBR_Op2(R260,FPR[I_1])
ENDIF
ENDFOR
DISPOUT_Op2
G01G91 A=360-NZ_FI[2] F=5000
PRIPUSK_Op2(I_1,-1)
ENDIF
ENDFOR
M17
%_N_GLAV_DVIG_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCGLAV_DVIG_Op2(INT NAPR,REAL FGLDV)
DISPOUT_OP2
G01G91 X=NAPR*R298 Y=NAPR*R299 Z=NAPR*R300 F=FGLDV
M17
%_N_DOPSM_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCDOPSM_Op2
IFR209>0
DISPOUT_Op2
G01G91 A=R203 F=R209
ENDIF
M17
%_N_PRIPUSK_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCPRIPUSK_Op2(INT NUM_PR,INT NAPR_PR, REAL FPR)
IF(NUM_PR==1) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op2
G01G91 Y=NAPR_PR*R213 F=200
ENDIF
IF(NUM_PR==2) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op2
G01G91 Y=NAPR_PR*R219 F=200
ENDIF
IF(NUM_PR==3) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op2
G01G91 Y=NAPR_PR*R225 F=200
ENDIF
M17
%_N_OTVOD_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCOTVOD_Op2(INT NAPR_OTV)
M17
%_N_CYCLOBR_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCCYCLOBR_Op2(INT N_CYCL,REAL FPR)
EXTERNGLAV_DVIG_Op2(INT,REAL)
EXTERNOTVOD_Op2(INT)
DEFINT I_1,I_2
DEFREAL STEP1,STEP2
FORI_1=1 TO N_CYCL
R309=I_1
IFR280>0
IFN_CYCL==2
G01G91 Y=(I_1-1)*(R274-R262)
ENDIF
IFN_CYCL>2
STEP1=2*(R268-R262)/(N_CYCL-1)
STEP2=2*(R274-R268)/(N_CYCL-1)
I_2=ROUND((N_CYCL-1)/2)
IFI_1
IFI_1>1
G01G91 Y=STEP1
ENDIF
ENDIF
IFI_1>I_2
G01G91 Y=STEP2
ENDIF
ENDIF
ENDIF
IFR282>0
IFN_CYCL==2
G01G91 A=(I_1-1)*(R276-R264)
ENDIF
IFN_CYCL>2
STEP1=2*(R270-R264)/(N_CYCL-1)
STEP2=2*(R276-R270)/(N_CYCL-1)
I_2=ROUND((N_CYCL-1)/2)
IFI_1
IFI_1>1
G01G91 A=STEP1
ENDIF
ENDIF
IFI_1>I_2
G01G91 A=STEP2
ENDIF
ENDIF
ENDIF
GLAV_DVIG_Op2(1,FPR)
OTVOD_Op2(1)
GLAV_DVIG_Op2(-1,500)
OTVOD_Op2(-1)
ENDFOR
IFR280>0
DISPOUT_OP2
G01G91 Y=-(R274-R262) F=R280
ENDIF
IFR282>0
DISPOUT_OP2
G01G91 A=-(R276-R264) F=R282
ENDIF
M17
%_N_DISPOUT_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
R306=R306+1
MSG(” Поз. N ”
M17

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

/>/>Содержание
Введение
Техническоезадание
1.      Анализ мехатронной системы станка с ЧПУ
1.1    Общаяструктура и классификация систем ЧПУ
1.2    Обоснование применения программного управления оборудованием
1.3    Назначениепостпроцессоров
2.      Разработка системы подготовки обработки детали станка с ЧПУ
2.1    Функциональнаямодель системы подготовки обработки детали станка с ЧПУ
2.2    Алгоритмработы программного модуля
2.3    Выборпрограммных средств реализации системы
3.      Технологическая реализация системы подготовки обработкидетали станка с ЧПУ
3.1    Описаниекодов программного модуля
3.2    Правилаустановки и настройки программного модуля
3.3    Тестированиеи отладка программного модуля
3.4    Инструкцияпользователя
4.      Расчет экономической эффективности
4.1    Расчетзатрат на разработку системы
4.2    Методологиярасчета общей стоимости владения программным продуктом
4.3    Экономическийэффект
5.      Обеспечение безопасности жизнедеятельности
5.1    Общие сведения о безопасности жизнедеятельности
5.2    Требования крабочему месту инженера–программиста
5.3    Расчетестественного освещения рабочего места
5.4    Расчетискусственного освещения
Заключение
Список литературы
Приложение А Исходный текст программного модуля
Приложение Б Параметры проекта Delphi8
Приложение B Текстнастроечного файла программного модуля4
Приложение Г Текст файлов связи с пакетом 3D моделирования0
Приложение Д Текст управляющей программы ЧПУ3

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

Техническое задание
1. Основаниядля разработки
Систему подготовки обработкидетали станка с числовым программным управлением (ЧПУ) Walter CIP6 разработать на основании заявкибюро разработки управляющих программ технологического отдела Инструментальногопроизводства ОАО «АВТОВАЗ».
Тема: Система подготовкиобработки детали станка с ЧПУ
2. Назначениеразработки
Система выполняется в виде программного модуля и создаетсядля автоматического расчета всех необходимых параметров обработки по введеннымданным и вывода текста программы, готового для ввода в память станка.
Система подготовки обработкидетали станка с ЧПУ должна быть предназначена для:
–  ввода исходных данных с чертежа и технологии;
–  создания наладки режущего инструмента;
–  расчета всех необходимых геометрических свойств;
–  проверки по ограничениям станка;
–  визуализации обработки;
–  корректировки введенных данных;
–  расчета траектории обработки;
–  диагностики ошибок;
–  формирования кода управляющей программы;
–  выдачи в файл текста управляющей программы обработки.
Внедрение системы подготовкиобработки детали шлифовального станка с ЧПУ Walter CIP6, позволитсоздавать программы для обработки сложного по конструкции осевого инструмента,проводить глубокий анализ конструкционных и режущих свойств реального изделия наэтапе разработки управляющей программы, повысить качество выпускаемой продукциии избежать выпуск брака.
3. Требованияк программному изделию
3.1 Требования к функциональным характеристикам
Программный модуль должен обеспечивать выполнение следующихфункций:
–  Ввод исходных данных с чертежа и технологии;
–  Создание наладки режущего инструмента;
–  Расчет всех необходимых геометрических свойств;
–  Проверку по ограничениям станка;
–  Визуализацию обработки;
–  Корректировку введенных данных;
–  Расчет траектории обработки;
–  Назначение подачи с учётом ограничений, связанных схарактером движения, допустимым диапазоном подач, особенностями реализациирежимов разгона – торможения в ЧПУ;
–  Формирование циклов обработки;
–  Назначение припусков обработки;
–  Расчет траектории обработки;
–  Диагностика ошибок;
–  Формирование кода управляющей программы;
–  Выдачу в файл текста управляющей программы обработки.
Результатом работы будет файл управляющей программы, готовыйк запуску на станке в ЧПУ Walter CIP6.
3.2 Требования к надежности
–  ограничение ввода некорректной информации;
–  контроль достоверности информации;
–  обеспечение наглядности создаваемых процессов;
–  защита от случайных нажатий клавиш;
–  дружественность интерфейса пользователя.
3.3 Условия эксплуатации
–  корректная работа пользователей;
–  соблюдение инструкций работы с программныммодулем;
–  соответствие программного обеспечения, установленногона компьютере пользователя.
3.4 Требования к составу ипараметрам технических средств
Система предназначена дляработы на IBM – совместимых компьютерах с минимальнойконфигурацией: процессор – 2200 Mh и выше, объем оперативной памяти512 Mb и более, размер свободного места на жестком диски неменее 50Mb, монитор с разрешением 1024х768 и выше,профессиональная видеокарта, мышь с колесом прокрутки, клавиатура.
3.5 Требования кинформационной и программной зависимости
Система должна работать подуправлением операционной системы Windows 2000 или Windows XP, пакет твердотельного моделирования Designer Modeling 2005.
4. Требованияк программной документации
Разрабатываемые программные модулидолжны быть документированы, т.е. тексты программ должны содержать всенеобходимые комментарии.
Информационная система должнавключать справочную систему о работе и подсказки пользователю.
В состав сопровождающейдокументации должны входить:
–  описание программных модулей;
–  описание функций программных модулей.
Инструкция пользователю поработе с программными модулями.
5. Технико-экономическиепоказатели
Разработать системуподготовки обработки детали станка с ЧПУ предназначенную для созданияуправляющей программы операций шлифования осевого инструмента, автоматизации расчетовтехнологических переходов, а также визуализации обработки при помощи пакетатвердотельного моделирования Designer Modeling 2005.
Использование данного программного модуля должно обеспечитькорректное преобразование траектории движения инструмента и технологическиекоманды в коды управления соответствующей комбинацией «станок — системаЧПУ», без использования другого специализированного программногообеспечения. А также позволит создавать программы для обработки сложного поконструкции осевого инструмента, проводить глубокий анализ конструкционных ирежущих свойств реального изделия на этапе разработки управляющей программы,повысить качество выпускаемой продукции.
Разработать системуподготовки обработки детали станка с ЧПУ, которая будет иметь простойинтерфейс, понятный конечному пользователю, высокую скорость работы,возможность анализа ряда технологических и конструкционных параметров.
6. Стадии иэтапы разработки
Разработка основного алгоритма работы модуля дней
Отладка и тестирование на реальных изделиях дней
Разработка пользовательского интерфейса дней
Тестирование специалистами бюро разработки управляющих программдля анализа работы и выдачи замечаний     дней
Доработка замечаний дней
Окончательное тестирование работы программного модуля
постпроцессора дней
7. Запуск иотладка программного модуля
Запуск и отладка программного модуля включает следующиеэтапы:
–  Разработка, согласование и утверждение программы иметодики испытаний;
–  Проведение предварительных государственных,межведомственных, приёмо-сдаточных и других видов испытаний;
–  Корректировка программы и программной документации порезультатам испытаний;
–  Подготовка и передача программы и программнойдокументации для сопровождения и изготовления;
–  Оформление и утверждение акта о передаче программы насопровождение и изготовление.
8. Порядокконтроля и приемки программного модуля
Первоначальные испытания работоспособности разработанногопрограммного модуля мехатронной системы станка с ЧПУ Walter CIP6 проводит разработчик на стадииего разработки. Контроль работоспособности готового программного модуляпостпроцессора проводит заказчик. Для этого он может привлекать экспертов своей организации или экспертов состороны.
1. Анализ мехатронной системы станка с ЧПУ1.1 Общая структура и классификация систем ЧПУ
На основе достижений кибернетики, электроники, вычислительнойтехники и приборостроения были разработаны принципиально новые системы программногоуправления – системы ЧПУ, широко используемые в промышленности. Эти системыназывают числовыми потому, что величина каждого хода исполнительного органастанка задается с помощью числа. Каждой единице информации соответствуетдискретное перемещение исполнительного органа на определенную величину,называемой разрешающей способностью системы ЧПУ или ценой импульса.
В определенных пределах исполнительный орган можно переместитьна любую величину, кратную разрешающей способности. Число импульсов, котороеможно подать на вход привода, чтобы осуществить требуемое перемещение,определяется отношением длины перемещения к цене импульса системы ЧПУ. Число импульсов,записанное в определенной системе кодирования на носителе информации(перфоленте, магнитной ленте и других), является программой, определяющейвеличину размерной информации.
Станки с программным управлением по виду управленияподразделяют на станки и системами циклового программного управления и станки ссистемами числового программного управления. Системы циклового программногоуправления более просты, так как в них программируется только цикл работыстанка, а величины рабочих перемещений, т.е. геометрическая информация,задаются упрощенно, например, с помощью упоров. В станках с ЧПУ управлениеосуществляется от программы, в которой в числовом виде занесена игеометрическая, и технологическая информация.
Система ЧПУ – это совокупность специализированных устройств,методов и средств, необходимых для реализации ЧПУ станком, предназначенная длявыдачи управляющих воздействий исполнительным органам станка в соответствии с управляющейпрограммой [1].
Устройство программного управления станками – это частьсистемы ЧПУ, выполненная как единое целое с ней и осуществляющая выдачууправляющих воздействий по заданной программе.
Числовое программное управление – это управление, прикотором программу задают в виде записанного на каком-либо носителе массиваинформации. Управляющая информация для систем ЧПУ является дискретной и ееобработка в процессе управления осуществляется цифровыми методами. Управлениетехнологическими циклами практически повсеместно осуществляется с помощьюпрограммируемых логических контроллеров, реализуемых на основе принциповцифровых электронных вычислительных устройств.
Структурная схема системы ЧПУ представлена на рисунке 1, а.Чертеж детали (ЧД), подлежащий обработке на станке с ЧПУ, одновременнопоступает в систему подготовки программы (СПП) и систему технологическойподготовки (СТП). Последняя обеспечивает систему подготовки программы данными оразрабатываемом технологическом процессе, режимах резания и так далее. Наосновании этих данных разрабатывается управляющая программа (УП). Наладчикиустанавливают на станок приспособления, режущие инструменты согласнодокументации, разработанной в системе технологической подготовки. Установкузаготовки и снятие готовой детали осуществляет оператор или автоматическийзагрузчик. Считывающее устройство (СУ) считывает информацию с носителяпрограммы. Информация поступает в устройство ЧПУ, которое выдает управляющиекоманды на целевые механизмы (ЦМ) станка, осуществляющие основные ивспомогательные движения цикла обработки. Операционная система на основеинформации (фактическое положение, скорость перемещения исполнительных узлов,фактический размер обрабатываемой поверхности, тепловые и силовые параметрытехнологической системы и др.) контролируют величину перемещения целевогомеханизма. Станок содержит несколько целевых механизмов, каждый из которыхвключает в себя (рисунок 1, б): двигатель (ДВ), являющийся источником энергии;передачу (П), служащую для преобразования энергии и ее передачи от двигателя кисполнительному органу (ИО); собственно исполнительный орган (стол, салазки,суппорт, шпиндель и т.д.), выполняющие координатные перемещения цикла.
/>
Рисунок 1 — Структурная схема системыЧПУ и целевого механизма
Система ЧПУ может видоизменяться в зависимости от видапрограммоносителя, способа кодирования информации в управляющей программе иметода ее передачи в систему ЧПУ. Устройство ЧПУ размещают рядом со станком (водном или двух шкафах) или непосредственно на станке (в подвесных илистационарных пультах управления). Двигатели приводов подач станков с ЧПУ,имеющие специальную конструкцию и работающие с конкретным устройством ЧПУ,являются составной частью системы ЧПУ.
Все данные, необходимые для обработки заготовки на станке с ЧПУ,получает от управляющей программы, которая содержит два вида информации:геометрическую и технологическую. Геометрическая информация – координатыопорных точек траектории движения инструмента, а технологическая – данные оскорости, подаче, номере инструмента и т. д. Управляющую программу записывают на программоносителе. Воперативных системах ЧПУ программа может вводиться (с помощью клавиш)непосредственно на станке.
Важнейшей технической характеристикой систем ЧПУ является ееразрешающая способность или дискретность, т. е. минимально возможная величиналинейного и углового хода исполнительного органа станка, соответствующая одномууправляющему импульсу. Большинство современных систем ЧПУ имеют дискретность0,001 мм/импульс, реже 0,0001 мм/импульс.
Системы ЧПУ классифицируют по следующим признакам:
–  поуровню технических возможностей;
–  потехнологическому назначению;
– по числу потоков информации (незамкнутые, замкнутые, самоприспосабливающиесяили адаптивные);
– по принципу задания программы (в декорированном виде, т.е. в абсолютныхкоординатах или в приращениях от ЭВМ);
– по принципу привода (ступенчатый, регулируемый, следящий, шаговый);
– по числу одновременно управляемых координат;
– по способу подготовки и ввода управляющей программы.
По уровню технологических возможностей международнойклассификации системы ЧПУ делятся на следующие классы:
– NC – системы с покадровым чтением перфоленты на протяжении циклаобработки каждой заготовки;
– SNC – системы с однократным чтением всей перфоленты перед обработкойпартии одинаковых заготовок;
– CNC – системы со встроенной малой ЭВМ (компьютером, микрокомпьютером);
– DNC – системы прямого числового управления группами станков от однойЭВМ;
– HNC – оперативные системы с ручным набором программ на пультеуправления.
По технологическому назначению системы ЧПУ подразделяются начетыре вида: позиционные; обеспечивающие прямоугольное формообразование;обеспечивающие прямолинейное формообразование; обеспечивающие криволинейноеформообразование [22].
Позиционные системы ЧПУ обеспечивают высокоточноеперемещение (координатную установку) исполнительного органа станка в заданнуюпрограммой позицию за минимальное время. По каждой координатной оси программируетсятолько величина перемещения, а траектория перемещения может быть произвольной.Перемещение исполнительного органа из позиции в позицию осуществляется смаксимальной скоростью, а переход к заданной позиции – минимальной скоростью.Точность позиционирования повышается в результате подхода исполнительногооргана к заданной позиции всегда с одной стороны (например, слева направо).Позиционными системами ЧПУ оснащают сверлильные и координатно-расточные станки.
Системы ЧПУ, обеспечивающие прямоугольное формообразование,в отличие от позиционных систем позволяют управлять перемещением исполнительногооргана станка в процессе обработки. В процессе формообразования исполнительныйорган станка перемещается по координатным осям поочередно, поэтому траекторияинструмента имеет ступенчатый вид, а каждый элемент этой траектории параллеленкоординатным осям. Чтобы сократить время перемещения исполнительного органа изодной позиции в другую, в ряде случаев используют одновременное движение подвум координатам. При грубом позиционировании подход исполнительного органа кзаданной позиции осуществляется с разных сторон, а при точном позиционировании– всегда с одной стороны. Число управляемых координат в таких системахдостигает 5, а число одновременно управляемых координат – 4. Указаннымисистемами оснащают токарные, фрезерные, расточные станки.
Системы ЧПУ, обеспечивающие прямолинейное (под любым углом ккоординатным осям станка) формообразование и позиционирование, управляютдвижением инструмента при резании одновременно по двум координатным осям (X иY). В данных системах используют двухкоординатный интерполятор, выдающийуправляющие импульсы сразу на два привода подач. Общее число управляемыхкоординат в таких системах 2 – 5. Указанные системы обладают большими технологическимивозможностями (по сравнению с прямоугольными) и применяются для оснащениятокарных, фрезерных, расточных и других видов станков.
Системы ЧПУ, обеспечивающие криволинейное формообразование,позволяют управлять обработкой плоских и объемных деталей, содержащих участкисо сложными криволинейными контурами.
Системы ЧПУ, обеспечивающие прямоугольное и криволинейноеформообразование, относятся к контурным (непрерывным системам), так как онипозволяют обрабатывать заготовку по контуру. Контурные системы ЧПУ имеют, какправило, шаговый двигатель.
Многоцелевые (сверлильно-фрезерно-расточные) станки длярасширения их технологических возможностей оснащают контурно-позиционнымисистемами ЧПУ.
По числу потоков информации системы ЧПУ делятся назамкнутые, разомкнутые и адаптивные.
Разомкнутые системы ЧПУ характеризуются наличием одногопотока информации, поступающего со считывающего устройства к исполнительномуоргану станка. В механизмах подач таких систем используют шаговые двигатели.Крутящий момент, развиваемый шаговым двигателем, недостаточен для приводамеханизма подачи. Поэтому указанный двигатель применяют в качестве задающегоустройства, сигналы которого усиливаются различными способами, например, спомощью гидроусилителя моментов (аксиально-поршневого гидродвигателя), валкоторого связан с ходовым винтом привода подач. В разомкнутой системе нетдатчика обратной связи, и поэтому отсутствует информация о действительномположении исполнительных органов станка.
Замкнутые системы ЧПУ характеризуются двумя потокамиинформации: от считывающего устройства и от датчика обратной связи. В этихсистемах рассогласование между заданными и действительными величинами перемещенияисполнительных органов устраняется благодаря наличию обратной связи.
Адаптивные системы ЧПУ характеризуются тремя потокамиинформации:
– от считывающего устройства;
– от датчика обратной связи по пути;
– от датчиков, установленных на станке и контролирующих процесс обработкипо таким параметрам, как износ режущего инструмента, изменение сил резания итрения, колебание припуска и твердости материала обрабатываемой заготовки и т.д.Такие системы позволяют корректировать программу обработки с учетом реальныхусловий резания.
По способу подготовки и ввода управляющей программыразличают так называемые оперативные системы ЧПУ (в этом случае управляющуюпрограмму готовят и редактируют непосредственно на станке, в процессе обработкипервой детали из партии или имитации ее обработки) и системы, для которыхуправляющая программа готовится независимо от места обработки детали. Причемнезависимая подготовка управляющей программы может выполняться либо с помощьюсредств вычислительной техники, входящих в состав систем ЧПУ данного станка,либо вне ее (вручную или с помощью системы автоматизации программирования).1.2 Обоснование применения программного управленияоборудованием
Помере развития общества потребности человека неуклонно растут. Добиваясьопределенного уровня благосостояния, человек стремится к новым вершинам –такова его природа. В то же время, находя пути удовлетворения своихпотребностей, человек вынужден становиться производителем материальных благ. Астав производителем, вынужден постоянно работать над совершенствованиемтехнологии производства, повышая его эффективность и улучшая качество продукции[2]. На сегодняшний день никто из нас не мыслит себе жизнь без домашней иофисной техники, посуды, упаковки и т.д., имеющих современный дизайн. А это –пластмассовые и металлические корпуса, состоящие из массы сложных поверхностей,которые подчас невозможно даже отобразить на чертеже. Уровень современнойтехнологии позволяет создавать в памяти компьютера трехмерные модели деталейсложной формообразующей оснастки штампов и пресс-форм и изготавливать их настанках с числовым программным управлением в условиях единичного производства.При этом процесс подготовки управляющих программ для станка с числовымпрограммным управлением выполняется автоматически на основе трехмерной моделиизделия. Сложная деталь изготавливается «с листа», без созданияопытных образцов. Естественно, что при наличии на предприятии потокаиндивидуальных заказов остро встает проблема организации и планированияпроизводства, решаемая также при помощи современных автоматизированных систем.Идея гибкого автоматизированного производства не является новой, но присовременном уровне развития компьютерных технологий и сетевых решенийприобретает особое значение. В то же время задача создания такого производствадостаточно сложна. Она выдвигает повышенные требования, как к программномуобеспечению инженерного корпуса, так и к системам управления оборудованием.
Нашвзгляд на систему числового программного управления металлообрабатывающегооборудования за последние 10 — 15 лет претерпел кардинальные изменения. Ранееединственной тенденцией развития станков с числовым программным управлениембыла тенденция превращения их в обрабатывающие центры. При этом станкиоснащались магазинами, рассчитанными на большое количество инструментов. Длявстраивания станка в автоматическую линию он комплектовался быстросменнымистолами-спутниками и их накопителями. Программирование осуществлялось вручную.С появлением мощных (и особенно персональных) компьютеров стало возможнымсоздавать управляющие программы для станков с числовым программным управлениемавтоматически, сократив до минимума количество ручного труда. Это позволилоразрабатывать управляющие программы для обработки сложных трехмерныхповерхностей, используемых чаще всего в формообразующих деталях оснасткиштампов и пресс-форм. При этом требования, предъявляемые к станкам с числовымпрограммным управлением, изменились. Произошло это в основном благодаряувеличению размера и структурным изменениям управляющей программы, а такжесущественному увеличению доли основного времени обработки при соответствующемуменьшении доли вспомогательного времени. Управляющая программа (УП) обработкиодной поверхности теперь достигает нескольких мегабайтов (а иногда и десятковмегабайтов) и состоит из множества «коротких кадров» – программныхблоков, описывающих короткие перемещения инструмента (чем выше точностьобработки, тем короче эти перемещения, так как их длина определяет точностьаппроксимации). Обработка при этом ведётся преимущественно одним инструментоммного часов подряд, а станок теряет уже ставшее привычным оснащение: магазины,столы-спутники и т.д. Разумеется, речь здесь идет о станке, предназначенном дляизготовления сложной формообразующей оснастки. Количество управляемых координатпри этом возросло до пяти. Но вместе с этим значительно выросли требования ксистеме ЧПУ.
Учитываяимеющийся на данный момент практический опыт, можно сказать, что современнаясистема ЧПУ, предназначенная для сложной трехмерной обработки, должнаобеспечивать следующее:
1.  Возможностьввода (приема с внешнего носителя или через сеть) управляющих программнеограниченного размера, их редактирования и исполнения как единого целого.
2.  Сцелью уменьшения основного времени обработки – опережающая (по отношению кисполнению) расшифровка кадров управляющей программы:
– возможность отработки движения безснижения до нуля скорости в конце перемещения, описанного в каждом отдельномкадре (при соблюдении условия отсутствия превышения максимальных ускорений поосям);
– это позволяет отрабатывать сложнуютраекторию, описываемую в управляющей программе исостоящую из множества «коротких кадров», на скорости, близкой кзаданной скорости подачи;
– определение предельных ускоренийпо управляемым осям с учетом динамических характеристик станка;
– возможность перехода с однойтраектории обработки на другую на рабочей подаче без торможений и разгонов потрехмерной петле, рассчитанной системой CAM (computer-aided manufacturing);
– для этого требуется интеграция сCAM-системой или с CAM-сервером через сеть;
– возможность работы на повышенныхскоростях рабочих подач (до 60 м/мин);
– с этой целью помимо достаточнойдля перекрытия требуемого диапазона регулирования разрядности цифро-аналоговогопреобразователя необходимо, чтобы время гарантированной реакции системыуправления движением было относительно малым (около 200 мкс).
3.  Сцелью снижения времени переналадки – доступ к файлам и ресурсамконструкторского и технологического бюро через стандартную сеть, включаяподдержку стандартных (в том числе распределенных) баз данных:
– встроенная функция трехмернойкоррекции траектории движения инструмента на величину его радиуса;
– возможность интеграции сCAM-сервером для выполнения полноценной коррекции УП по результатам предыдущихопераций (в том числе трёхмерной коррекции траектории движения инструмента навеличину его радиуса);
– привязка набора управляющихпрограмм, подпрограмм, корректоров, параметров системы и служебной информации кконкретному изделию (проекту);
– возможность параллельно спроцессом обработки выполнять редактирование или эмуляцию работы другой управляющейпрограммы, ввод управляющейпрограммы с дискеты (в том числе сиспользованием многотомных архивов), доступ к сети, включая обращение кCAM-серверу;
– возможность автоматизированногоизмерения (или поиска) баз заготовки (детали), контроля размеров детали иинструмента.
4.  Сцелью увеличения коэффициента загрузки оборудования в условиях единичного имелкосерийного производства – возможность работы совместно с системойуправления верхнего уровня на основе стандартных сетевых технологий, возможностьинформационной поддержки систем планирования и диспетчеризации на уровне цехаили участка.
5.  Сцелью повышения надежности системы – повышение ресурса узлов ЧПУ за счетприменения отлаженных серийных модулей (плат), применение вместо традиционныхреле высоконадежных твердотельных силовых модулей (с гальванической изоляциейпрочностью не менее 1500 В) и оптоэлектронных датчиков положения.
6.  Сцелью увеличения ремонтопригодности и уменьшения времени поиска неисправностей– наглядное представление сигналов электроавтоматики в соответствии сэлектрической схемой станка и приведенными в техническом описании алгоритмамиработы:
– наличие подсистемы диагностики ивыдачи сообщений оператору;
– возможность непосредственногоуправления исполнительными устройствами;
– конфигурирование ЧПУ изстандартных узлов, из которых также могут быть построены системы управлениядругим оборудованием завода, и с использованием по возможности стандартногобазового программного обеспечения.
7.  Сцелью обеспечения гибкости системы – возможность постоянной доработки системыЧПУ в соответствии с непрерывно растущими требованиями современногопроизводства:
– возможность быстрой адаптации клюбому технологическому оборудованию (в том числе не металлорежущему);
– возможность интеграции со сложнымиавтономными системами (например, с системами технического зрения);
– возможность выполнения необходимыхизмерений и обмера детали-прототипа с целью создания трехмерной математическоймодели или построения управляющей программы длякопирования;
– наличие гибкой архитектурысистемы, реализуемой в зависимости от поставленной задачи;
– надежная поддержкафирмой-разработчиком и обновление версий базового программного обеспечения.
Технология работы на оборудовании с четырьмя и более управляемымиосями на данный момент не достаточно хорошо отработана. Это связано сособенностями систем ЧПУ у каждого производителя, собственным набором инаправлением дополнительных осей координат, типом станка и его назначением.
Системы ЧПУ у такого оборудования чаще всего обладаютразвитой системой программирования, которая может быть реализована на базеязыка программирования высокого уровня. Примером может служить система ЧПУфирмы Siemens со встроенным языком программирования Sinumerik.
Применение станков с ЧПУ в сравнении с обычным оборудованиемсоздает ряд технико-экономических преимуществ.
Производительность этих станков выше производительностистанков того же типа, но без программного управления, в три раза, потребностьже в производственных площадях в три раза меньше. Значительно вырастаетпроизводительность труда у рабочих.
Большой эффект дают станки с ЧПУ при выполнении особосложных операций, поэтому с их использованием высвобождаютсявысококвалифицированные рабочие, а также резко сокращаются затраты натехнологическую подготовку производства, эксплуатацию инструмента, содержаниеконтролеров отдела технического контроля.
Главный эффект программного оборудования заключается вувеличении до 80-90% работы оборудования (15-20% у обычных станков). Обусловленоэто тем, что резко сокращается вспомогательное время, время на сменуинструмента и переналадку оборудования.
Переналадка станков в этом случае заключается в заменепрограммы, записанной на магнитной ленте или другом программном носителе, а вряде случаев в замене инструментов. Широкий диапазон работ, выполняемыхстанками с ЧПУ, делает их особенно ценными в единичном и мелкосерийномпроизводстве, а также на предприятиях, выпускающих сложную продукцию. Имеетсяопыт включения станков с программным управлением в поточные линии напредприятиях серийного и массового производства.
В современных условиях широко распространяется такой видпрограммного оборудования, как обрабатывающие центры. Они представляют собоймногооперационные станки с автоматической сменой инструмента. По мнениюспециалистов, обрабатывающие центры по своей производительности эквивалентны3-4 станкам с ЧПУ и 8-12 обычным станкам. При условии правильного выбора ирациональной эксплуатации затраты на приобретение обрабатывающих центров окупаютсяза 3-4 года.
Для эффективного использования станков с ЧПУ необходимосоздать систему организованного обеспечения. Она должна представлять собойкомплекс взаимодействующих мероприятий, подчиненных основной задаче — изготовлению деталей высокого качества в намеченные сроки при минимальныхзатратах труда и себестоимости. Система организации работ должна включатьтехнико-экономическое обоснование применения станков с ЧПУ, номенклатурудеталей для обработки на станках, специальную структуру системы, надлежащееобслуживание станков, автоматизированную разработку управляющих программ. Однимиз условий достижения высоких экономических показателей эксплуатации станков сЧПУ является формирование целесообразной номенклатуры обрабатываемых деталей. Практикаэксплуатации станков с ЧПУ показала, что эффективная их работа возможна припостроении специальной организационной структуры, сориентированной наизменения, которые вносит появление в парке оборудования станков с ЧПУ. Такаяструктура должна включать производственные цехи и участки, подразделенияэкономического обслуживания, специализированную технологическую службу. Опытотечественных и зарубежных предприятий свидетельствует о целесообразностиустановки станков с ЧПУ в одном производственном помещении, создание специализированныхцехов и участков. Расположение станков в одном помещении создает условия дляболее качественного их обслуживания, многостаночного обслуживания, улучшенияпланирования и контроля за работой оборудования и т. п.

1.3 Назначение постпроцессоров
Постпроцессор – это модуль, преобразующий файл траекториидвижения инструмента и технологических команд, рассчитанный процессором CAM илиCAD/CAM-системы, в файл управляющей программы в строгом соответствии стребованиями методики ручного программирования конкретного комплекса «станок– система с ЧПУ». Постпроцессор выполняет немалое количество функций,например:
– кодирует линейные перемещения сообразно цене импульса;
– выполняет линейную или круговую интерполяцию перемещений по дугеокружности, а также кодирует их в импульсах;
– рассчитывает динамику перемещений, отслеживая и, если нужно, уменьшаяслишком большую подачу на малом перемещении (станок не успеет разогнаться);
– автоматически выдает в кадр вектора или функции коррекции на радиусинструмента;
– строит текущий кадр по шаблону, автоматически нумеруя кадры под адресом «N»;
– превращает подачи, назначенные технологом, в конкретный набор символов садресом «F» и выдает в нужное место кадра;
– оформляет как начало, так и конец управляющей программы, а такжеструктуру кадра.
На самом деле число функций, выполняемыхсреднестатистическим постпроцессором значительно больше. Например постпроцессордолжен выдавать в кадр перемещения только по тем координатам, движения покоторым имело место, а также правильно определять выпуклость или вогнутостьконтура детали для правильного расчета вектора коррекции и многое другое [3].
Разработка полноценного постпроцессора с нуля (т.е. безсредств автоматизации постпроцессирования) может занять у программиста среднейквалификации более 6 месяцев.
Первые постпроцессоры специально обученный программистразрабатывал для каждого комплекса «станок – система с ЧПУ»индивидуально. Далее происходил длительный процесс доводки постпроцессора,путем активных консультаций с технологом-расчетчиком управляющих программ, атакже опытными прогонами управляющих программ (рассчитанных при помощипостпроцессора) на станке с ЧПУ. Постпроцессор сдавался в опытную эксплуатациюзаказчику только после успешного прохождения испытаний, затем наступал процессисправления ошибок и неучтенных при разработке особенностей программированиястойки и даже технологии изготовления деталей, принятых на данном предприятии. Такойпостпроцессор был индивидуальный для данного станка, стойки ЧПУ и, нередко,технологии обработки. Стоимость разработки индивидуального постпроцессора была оченьвысока, и могла достигать нескольких тысяч долларов. Исправить ошибки и сделатьнововведения в постпроцессоре мог только программист, разработавший данныйпостпроцессор.
Созданием индивидуальных постпроцессоров занимались всефирмы, как отечественные, так и зарубежные, примерно в 1960-1970 годах прошлогостолетия.
Постпроцессирование прошло несколько ступеней развития. Содной стороны в 80-х годах прошлого века наблюдался всемирный бум автоматизациимашиностроения, с другой – очень быстро увеличивалось количество новых станковс непременно новой системой ЧПУ, с третьей стороны возник небывалый спрос на средстваавтоматизированного проектирования для таких станков со стороны заводов икомпаний. В этих условиях метод индивидуального постпроцессирования оказался неэффективным, в виду очень больших временных затрат на создание и отладкукаждого постпроцессора. Эти объективные причины подтолкнули разработчиковпостпроцессоров к идее автоматизации собственного труда – то есть средствавтоматизации разработки постпроцессоров.
Одним из первых методов автоматизации разработкипостпроцессоров стало обобщение информации об использовании одной и той жесистемы с ЧПУ вместе со станками различных производителей, по принципуобработки (например, токарная, фрезерная и т.д.). Это оказалось возможным, всвязи с тем, что управляющие программы для таких станков, «вооруженных»однотипной системой с ЧПУ, различались в лучшем случае незначительнымивариациями в оформлении структуры кадра, значностью перемещений, оформлениемначала и конца программы. Поэтому вскоре начали обобщать алгоритмы разработкипостпроцессоров на однотипное оборудование разных фирм, но имеющее одну и ту жесистему с ЧПУ.
Идея использования обобщенных постпроцессоров даласущественные преимущества, ведь разработка постпроцессора для новой модификациистанка с системой ЧПУ, для которой уже имелся обобщенный постпроцессор,требовала от программиста всего лишь небольшой модификации узкого наборапрограмм для учета особенностей нового оборудования.
В результате, в разы сократились сроки, стоимость итрудоемкость разработки нового постпроцессора, существенно снизились издержкифирм-разработчиков постпроцессоров и их заказчиков. Этот метод оказал сильноевоздействие на конкурентную борьбу между производителями CAM-систем в мире.Кроме того, некоторые фирмы продавали именно «обобщенные постпроцессоры»на 5-10 станков с одной системой с ЧПУ по цене одного индивидуального, что быловыгодно их клиентам и чрезвычайно невыгодно фирмам-конкурентам, еще неосвоившим эту технологию.
Небольшое число современных CAM-систем до сих пор используютв своем составе обобщенные постпроцессоры.
Следующим шагом развития систем разработки постпроцессоровстало применение автоматических корректоров кадров управляющих программ. Суть этогонововведения – дать возможность разработчику или пользователю описать наспециальном макроязыке изменения, которые затем автоматически и последовательновыполняются постпроцессором над каждым кадром во время формирования управляющейпрограммы. Этот метод был впервые примененный в системе PEPS. Макроязыккоррекции кадров управляющей программы применяется теперь весьма широко и нетолько в обобщенных постпроцессорах.
Почти одновременно с появлением методологии обобщенногопостпроцессирования, начал разрабатываться метод создания универсальныхпостпроцессоров. Такие постпроцессоры последовательно читают записи из файлатраектории движения инструмента и техкоманд (CLDATA-файл) и выполняютпреобразование этих записей в один или несколько кадров управляющей программыпо некоторым правилам, отличным для разных станков и систем ЧПУ.
Постпроцессор соотносит каждой записи CLDATA-файла алгоритмее превращения в кадр управляющей программы, и сохранить эти правила отдельнодля каждого станка-системы ЧПУ в виде файла. Именно это дало возможность создатьодин универсальный постпроцессор как машину, транслирующую каждую записьCLDATA-файла в кадры управляющей программы по правилам, которые можноподгружать из внешних файлов.
Такой метод получил название «универсальныйпостпроцессор». Программист описывал алгоритмы обработки каждой записиCLDATA-файла применительно к методике ручного программирования конкретногокомплекса «станок – система с ЧПУ» и сохранял эти правила (алгоритмы)в виде текстовых файлов-постпроцессоров. Технолог, в свою очередь, лишь выбирал– при помощи какого файла-описателя алгоритмов, преобразовать свой CLDATA-файлв файл управляющей программы.
Эта идея, заимствованная из методов построения трансляторовс настраиваемой лексикой и семантикой, получила шилокое развитие на рубеже 90-хгодов прошлого века. Подавляющее большинство CAD/CAM-систем используют сегодняименно такой метод для решения проблем постпроцессирования.
Особняком от всех этих способов обработки стоит разработкапрограммного обеспечения для оборудования, с узкой сферой применения. К такимотносятся всевозможные шлифовальные станки для изготовления осевого режущегоинструмента. Основной проблемой разработки подобного программного обеспеченияявляется практически полное отсутствие универсальных средств их разработки ипривязанность к технологии изготовления. Также большую проблему создаетсущественная зависимость полученной геометрии на изделии от геометрическихпараметром инструмента.
Также, подобное оборудование накладывает огромное количествоограничений на обработку, которые необходимо постоянно учитывать.
В связи с этим, наиболее целесообразно создавать специальныепрограммные модули, которые могут взять на себя всю математическую нагрузку порасчету траекторий движений, учета ограничений и создания управляющейпрограммы.
Современные постпроцессоры для подобного оборудованиятребуют только введения данных из чертежа или иной документации на изделие, азатем путем внутренних расчетов выдают готовую программу обработки, с учетомвсех технологических особенностей. Подобные программные модули являютсяузкоспециализированными и разрабатываются по специальному заказу предприятия.Последней тенденцией стало встраивание таких модулей в систему ЧПУ, чтопозволило квалифицированному рабочему самостоятельно программировать сложныевиды обработки.
2. Разработка системы подготовки обработки детали станка с ЧПУ2.1 Функциональная модель системы подготовкиобработки детали станка с ЧПУ
Для создания функциональной модели удобно пользоваться CALS системами. CALS – классинформационных технологий, направлен на обеспечение безбумажной поддержкижизненного цикла продукта. Предметом CALS является безбумажная технологиявзаимодействия между организациями заказывающими, производящими иэксплуатирующими тот или иной продукт, а также формат представлениясоответствующих данных. Доказав свою эффективность, CALS технологии началиактивно применяться в промышленности, строительстве, транспорте и другихотраслях экономики, расширяясь и охватывая все этапы жизненного цикла продукта– от маркетинга до утилизации. В данном случае необходима только та частьфункций системы BpWin, работающей по CALS технологии,которая отвечает за построение функциональной модели [23].
Функциональная модельпредставляет собой структурированное изображение функций производственнойсистемы или среды, информации и объектов, связывающих эти функции. Модельстроится методом декомпозиции: от крупных составных структур к более мелким ипростым.
На нулевом уровне (рисунок 2) вся система представляется ввиде черного ящика, целью которого является создание управляющей программы длясистемы ЧПУ. Для этого на вход системы должен поступить ряд данных. Данные изчертежа изделия включают весь комплекс информации о геометрических свойствахизделия, его размерах, наборе поверхностей, подлежащих обработке, их точности ишероховатости.
Технологический процесс содержит рекомендации по режимамрезания, технологической оснастке, применяемой при данной обработке. Также втехнологическом процессе могут содержаться технологические нюансы обработки,которые обязательно надо учесть при создании управляющей программы системы ЧПУ.
Также на вход должна поступить информация об инструменте изаготовке, которые будут использоваться в процессе обработки данного изделия.
/>
Рисунок 2 — Нулевой уровеньфункциональной модели
Работать с данной системой будут технологи, отвечающие затехнологический процесс, программисты, отвечающие за корректную работу всехпрограммных модулей системы и процесс постпроцессирования в код управляющейпрограммы системы ЧПУ. Совместно с наладчиком станков с ЧПУ будетосуществляться ввод данных об инструменте и заготовке, в частности об ихвзаимном расположении друг относительно друга. Оператор будет вводить данныекоррекции после правки кругов. Иногда функции оператора и наладчика станков сЧПУ могут объединяться в одном специалисте.
Работа системы должна осуществляться на основании следующихдокументов:
– технического паспорта станка, в котором содержится информация обособенностях его эксплуатации, ограничениях перемещений по осям, режимах работыи габаритных ограничениях заготовки и инструмента;
– инструкции по программированию ЧПУ, в которой содержится справочнаяинформация о языке программирования, вспомогательных и служебных функциях,ограничениях системы ЧПУ;
– Санитарные нормы и правила (СНИП) по работе на шлифовальных станкахсодержит методологию по способам безопасного ведения обработки;
– Стандарт предприятия (СТП) предприятия на изготовление осевого режущегоинструмента содержит всю технологическую базу по обработке данного инструмента,накопленную за все время его работы, а также возможные варианты решения спорныхвопросов по конструкции изделия и технологии его обработки.
Результатом работы будет выдача управляющей программы длясистемы ЧПУ, карты наладки для данного оборудования или кода ошибки, есливведенных данных не достаточно, либо они ошибочны и выполнить расчеты ипреобразования по ним не возможно.
На первом уровне система разбивается два модуля (рисунок 3).
Первый модуль занимается расчетом перемещений инструмента,учитывая технологические и технические ограничения. Все входные данныепоступают именно на этот модуль и соответственно все их преобразования такжепроисходят в этом модуле. В связи с этим, этот модуль должен работать со всемивыше перечисленными документами. Работать с этим модулем должны также все вышеперечисленные люди.
Модуль будет выдавать два вида файлов. Одна группа файловбудет являться управляющей программой системы ЧПУ, две другие группы файловсистемные, обеспечивающие связь первого модуля со вторым. Первая группасистемных файлов должна передавать исходные данные, содержащие информацию обоснащении станка (тип оснастки, инструмент, заготовка, их взаимноерасположение). Вторая группа файлов должна содержать рассчитанные данные(траектории всех перемещений инструмента).

/>
Рисунок 3 — Первый уровень функциональноймодели
Второй модуль обеспечивает визуализацию обработки ванимированном, фотореалистичном виде. Данный модуль обеспечивает возможностьнаглядно проследить весь процесс обработки и введя необходимые поправкиизбежать получения бракованной продукции. Также этот модуль позволит провестипроцесс отладки и оптимизации программы на этапе ее создания.
Работать с этим модулем должны технолог и наладчик станков сЧПУ. Работа модуля основывается на техническом паспорте станка и СТПпредприятия на изготовление осевого режущего инструмента. Результатом работыданного модуля является создание карты наладки и проверка результата обработкина аномалии (отклонение размеров от заданных, геометрия поверхностей, наличиезарезов, как на изделии, так и на оснастке).
На втором уровне, модуль расчета перемещений инструментаможно разделить на четыре этапа (рисунок 4).
Первый этап – это моделирование заготовки [4, 5]. На немзадаются параметры заготовки (размеры, геометрические особенности, вылет изпатрона). Все это производится на основании технического паспорта станка и СТПпредприятия на изготовление осевого режущего инструмента.

/>
Рисунок 4 — Второй уровеньфункциональной модели
Заданием параметров занимается технолог, но в процессеработы параметры могут менять в определенных пределах наладчик станков с ЧПУ иоператор. После окончания ввода данных параметры заготовки в оцифрованном видепередаются на следующий этап. Следующий этап – моделирование наладкиинструмента. В этом этапе задаются типы используемых кругов, их размеры икоординатные привязки к системе координат станка. Профиль каждого круга долженбыть поставлен в соответствие поверхности (или группе поверхностей) которую он обрабатывает,поэтому при подборе кругов и создании их наладки необходимо использовать данныечертежа изделия. При этом необходимо руководствоваться техническим паспортомстанка, СТП предприятия на изготовление осевого режущего инструмента и СНИП поработе на шлифовальных станках. Вводом данных должны заниматься те же люди, чтои на первом этапе. По результату этого этапа создается первая группа системныхфайлов, содержащих информацию об оснащении. Те же данные, что и в файлепередаются на следующий этап. Третий этап – моделирование обработки. Самыйважный этап, на котором создается траектория обработки. Траектория должнаучитывать особенности технологического процесса, и применяемого инструмента.Ввод данных на этом этапе осуществляет только технолог. На этот этап оказываютвлияние те же документы, что и на втором этапе. На этом этапе формируетсягруппа системных файлов, содержащих информацию обо всех перемещенияхинструмента и заготовки, та же информация передается на следующий этап. На трехвыше перечисленных этапах при определенных условиях необходимо вводить поправкипо результатам визуализации. Это сделано для того, чтобы система могла работатьв условиях реального производства, где невозможно учесть всех случайностей, както: отсутствие заказанного инструмента, отклонений заготовок, наличия оснасткии т.д. Последний этап – постпроцессирование. На этом этапе вся набраннаясистемой информация преобразуется в управляющую программу системы ЧПУ.Преобразование осуществляется программистом на основании инструкции попрограммированию ЧПУ станка. Этап моделирования обработки в свою очередь можноразделить еще на два этапа (рисунок 5). Первый этап – анализ геометрии изделия.На этом этапе технолог производит настройку приложения для максимальнообъективного преобразования данных в графическую информацию. Сюда необходимоподать информацию об оснащении и об инструменте. Здесь технолог вводит всеуточнения по конструкции изделия, которых не было в чертеже. Все уточнениявводятся на основании СТП предприятия на изготовление осевого режущегоинструмента.
/>
Рисунок 5 — Третий уровеньфункциональной модели
В результате проведенного анализа на следующий этаппередаются все геометрические параметры в оцифрованном виде [24]. Второй этап –назначение технологических переходов. На этом этапе технолог выделяет отдельныеэлементарные операции в соответствии с технологическим процессом и применяемыминструментом. Определяет все траектории движений на каждой операции всоответствии с СТП предприятия на изготовление осевого режущего инструмента,СНИП по работе на шлифовальных станках и техническим паспортом станка. Поитогам этого этапа выдается информация о перемещениях в группу системных файлови на этап постпроцессирования.2.2 Алгоритм работы программного модуля
Обобщенный алгоритм работы программного модуля мехатроннойсистемы станка с ЧПУ показан на рисунке 6.
/>
Рисунок 6 — Алгоритм работы программы
Первым этапом работы с программным модулем является вводисходных данных. Исходные данные должны включать геометрические свойстваизделия, заготовки, инструмента, особенности технологии обработки,конструктивные особенности оснастки и так далее [4, 5, 6, 7, 8, 9, 10]. Все этипараметры должны вводиться в удобной для пользователя форме. Каждый из этихпараметров должен вводиться отдельно друг от друга, но иметь определенные связимежду собой. Связи обеспечивают создание ограничений на вводимые данные.
Сразу после ввода данных программа запускается на расчеттраекторий движения инструмента. Этот процесс должен быть максимальноавтоматизирован, и иметь определенные настраиваемые параметры, чтобы бытьдостаточно универсальным.
Траектории движений инструмента сохраняются в виде понятномтолько программному модулю. Чтобы заставить пакет 3Dмоделирования читать эти данные, их необходимо преобразовать в вид, понятныйэтому пакету. Затем эти данные запускаются на выполнение пакетом 3D моделирования.
В этом пакете вначале отрисовываются все основные элементыстанка, находящиеся в зоне обработки, вся оснастка, рекомендованная кприменению, а также инструмент и заготовка. Далее пакет, имитируя всеперемещения инструмента относительно заготовки, осуществляет вычитание одноготела из другого. Таким образом, формируется наиболее приближенная кдействительности 3D модель детали. С этой моделью можнопроизводить целый ряд действий: промерить все основные размеры, оценить топологиюпостроения поверхностей, произвести контроль зарезов оснастки, элементов станкаи заготовки во время всех технологических переходов.
По результатам этой проверки принимается решение по правкеисходных данных (величины подходов, отходов, врезаний, вылета заготовки, заменаоснастки и инструмента). Этот процесс повторяется до тех пор, пока недостигается оптимальный результат, который удовлетворяет всем требованиям кданному изделию.
Когда пользователь данного программного продукта принимаетрешение о завершении правки исходных данных, он приступает в процессупостпроцессирования. Он заключается в преобразовании всей накопленнойинформации в программный код системы ЧПУ.
Этот программный код записывается в файл, который бездополнительных доработок может быть передан на станок.
Такой подход позволяет достаточно хорошо прорабатыватькаждую программу для системы с ЧПУ и наглядно отслеживать весь процессобработки, не прибегая к пробным деталям.
За счет использования стороннего пакета 3Dмоделирования можно значительно упростить создание программного модуля, за счетисключения из программного кода акселераторов 3Dграфики, заменив их неявным использованием уже готовых функций пакета 3D моделирования [25].
Так же пакет 3D моделированияобладает рядом полезных функций анализа моделей, которые позволяют проводитьдополнительную проверку геометрических свойств изделия, а также функций,упрощающих создание сопутствующей документации.2.3 Выбор программных средств реализации системы
В соответствии с функциональной моделью программный модульсостоит из двух частей: модуля расчета и модуля визуализации.
Для создания модуля расчета лучше всего подойдет языкпрограммирования Delphi.
Delphi – это среда быстройразработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi – строго типизированныйобъектно-ориентированный язык, в основе которого лежит хорошо знакомыйпрограммистам Object Pascal [23].
Бурное развитие вычислительной техники, потребность вэффективных средствах разработки программного обеспечения привели к появлениюсистем программирования, ориентированных на так называемую «быструюразработку», среди которых можно выделить Borland Delphi и Microsoft Visual Basic. В основе систем быстрой разработки (RAD-систем, Rapid Application Development – среда быстройразработки приложений) лежит технология визуального проектирования исобытийного программирования, суть которой заключается в том, что средаразработки берет на себя большую часть рутинной работы, оставляя программистуработу по конструированию диалоговых окон и функций обработки событий.Производительность программиста при использовании RAD-систем возрастает внесколько раз.
Изначально среда разработки была предназначена исключительнодля разработки приложений Microsoft Windows, затем былреализован также для платформ Linux (как Kylix), однако после выпуска в 2002году Kylix 3 его разработка была прекращена, и, вскоре после этого, былообъявлено о поддержке MicrosoftNET.
Delphi –результат развития языка Турбо Паскаль, который, в свою очередь, развился изязыка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начинаяс версии «5.5», добавил в Паскаль объектно-ориентированные свойства,а в Object Pascal – динамическую идентификацию типа данных с возможностьюдоступа к метаданным классов (то есть к описанию классов и их членов) вкомпилируемом коде, также называемом интроспекцией. Данная технология получилаобозначение RTTI.
Также отличительным свойством Object Pascal от «С++»является то, что объекты по умолчанию располагаются в динамической памяти.Однако можно переопределить виртуальные методы NewInstance и FreeInstanceкласса TObject. Таким образом, абсолютно любой класс может осуществитьвозможность расположения системных и исполняемых файлов в любом удобном месте.Соответственно организуется и «многокучность» [11].
Система ЧПУ станка Walter CIP6 создана фирмой Siemens. Фирма Siemens является одним из ведущихпроизводителей систем ЧПУ, занимая по объему продаж первое место в Европе ивторое в мире. Эти показатели были достигнуты благодаря не только знаменитомунемецкому качеству, но и аппаратным и технологическим возможностям системуправления [26].
Сегодня фирма Siemens предлагает две группы УЧПУ:
– семейство SINUMERIK 802C, 802S, 802D, которое ориентировано наприменение в простых токарных и фрезерных станках (эти системы ЧПУ ограниченыпо количеству осей и имеют оптимальные функциональные возможности,соответствующие их назначению);
– семейство SINUMERIK 810D, 840D (SINUMERIK 810D – для станков с небольшимирабочими усилиями, SINUMERIK 840D – наиболее распространенное базовое модульноеЧПУ для широкого круга станков и технологических задач);
ЧПУ SINUMERIK 810D, 840D представляют собой интегрированныемультипроцессорные системы, в которых нельзя выделить ЧПУ и приводы всамостоятельные устройства. Пульт оператора состоит из следующих частей:
– MМС-процессора (Human Machine Communication), который представляет собой персональныйкомпьютер ММС100.2 (Intel 486, MS-DOS) или ММС103 (Intel Pentium, Windows 95);
– дисплея, который может быть цветным или монохромным (10,4″ TFTплоский экран).
Кроме того, пульт может быть оснащен полноразмернойклавиатурой, дисководом, адаптером подключения к сети Ethernet. Весь интерфейсполностью русифицирован. На ММС-процессоры можно установить дополнительноепрограммное обеспечение. Это позволяет произвести объединение рабочих местпроектировщика (конструктора-технолога) и станочника-оператора.
Имеющиеся сегодня возможности позволяют говорить одействительном программировании, а не о кодировании перемещений, как это былораньше. Базовый набор технологических функций ЧПУ позволяет использовать его сширокой гаммой станков (токарные, фрезерные, шлифовальные и т.п. станки иобрабатывающие центры). Целый ряд высокоуровневых функций обеспечивает такиевозможности как:
– функции позволяющие создавать плавные непрерывные кривые (в системевозможно использование трех видов сплайнов и кривых, заданных с помощьюполиномов третьего порядка);
– изменение величины подачи по заданному закону в пределах одного кадра;
– автоматическое предотвращение зарезов;
– преобразование рабочей системы координат в пространстве;
– ориентация инструмента относительно плоскости обработки (при наличии настанке поворотной инструментальной головы при условии 2,5D-обработкизначительно упрощается обработка наклонных поверхностей);
– ориентация инструмента относительно криволинейных поверхностей;
– задание запрещенных для перемещения зон на станке;
– создание программных конструкций, аналогичных языкам высокого уровня;
– вызов внешних подпрограмм при возникновении аварийных ситуаций (в случаевозникновения нештатных ситуаций, например, при поломке инструмента,автоматически может быть вызвана специальная подпрограмма, внутри которойорганизуются все необходимые действия по устранению ситуации).
Язык программирования для ЧПУ содержит много элементов изязыков программирования высокого уровня (больше всего он напоминает Паскаль).Программист может создавать переменные различных типов, использовать командыусловных и безусловных переходов, арифметические и логические операции, циклы,выполняемые по условиям (WHILE – ENDWHILE; REPEAT – UNTIL; FOR – ENDFOR).Система предоставляет доступ к внутренним переменным (например, к текущейпамяти положения, к значениям остатков пути внутри кадра и т.д.).
Имея эти возможности, можно создавать программы, построенныепо принципу групповой технологии, для ввода новой детали необходимо простозаполнить таблицу внутри программы [12]. Это существенно облегчает работуоператора (простой запуск с промежуточного инструмента или технологическогоперехода).
Модуль визуализации слишком сложен для самостоятельногосоздания поэтому целесообразно воспользоваться стандартными средствамикакой-нибудь CAD-системы. Самой удобной для этих целейявляется система Designer Modeling компании CoCreate.Отличительной особенностью данной системы является развитый набор функций дляавтоматизации процесса разработки моделей с использованием внешних макрокоманд, записанных во внешний файл.
В качестве языка макро команд система Designer Modelingиспользует язык LISP.
Лисп (LISP, от английского Processing language – «обработкасписков») – семейство языков программирования, программы и данные вкоторых представляются системами линейных списков символов. Лисп являетсявторым в истории (после Фортрана) высокоуровневым языком программирования,который используется по сей день. Создатель Лиспа Джон Маккарти занималсяисследованиями в области искусственного интеллекта и созданный им язык по сиюпору является одним из основных средств моделирования различных аспектовискусственного интеллекта [23].
Традиционный Лисп имеет динамическую систему типов. Языкявляется функциональным, но многие поздние версии обладают также чертамиимперативности, к тому же, имея полноценные средства символьной обработки,становится возможным реализовать объектную ориентированность, примером такойреализации является платформа CLOS.
Язык Лисп, наряду с языком Ada, прошел процессфундаментальной стандартизации для использования в военном деле ипромышленности, в результате чего появился стандарт Common Lisp. Его реализациисуществуют для большинства платформ.
Одной из базовых идей языка Lisp является представлениекаждого символа как узла многокоординатной символьной сети; при этомкоординаты, свойства, уровни сети записаны в так называемых слотах символа.
Основной механизм Лиспа – инкапсулированная в списокопределяющая голова списка и подключённый к ней хвост списка, которыйрекурсивно также может быть списком. Лисп-машина способна воспринимать каждыйпоступающий на неё список на самом абстрактном уровне, например какмета-Лисп-машину, модифицирующую воспринимающую машину. В такой динамичной,высокоабстрактной среде можно реализовать как строго-научные системы, так инеисчислимое множество программистских трюков и генераторов всевозможных машин.
Любая программа на Лиспе состоит из последовательностивыражений (форм). Результат работы программы состоит в вычислении этих выражений.Все выражения записываются в виде списков – одной из основных структур Лиспа,поэтому они могут легко быть созданы посредством самого языка. Это позволяетсоздавать программы, изменяющие другие программы или макросы, позволяющиесущественно расширить возможности языка.
Внешне исходный код программы на Лиспе отличается обилиемкруглых скобок; редактирование программ значительно упрощается использованиемтекстового редактора, поддерживающего автоматическое выравнивание кода,подсветку соответствующих пар скобок и такие специальные команды, как «закрытьвсе открытые скобки», «перейти через список вправо» и т. д.
Символьная природа языка (то есть отсутствие в символьномпространстве традиционной метрической геометрии расстояний, последовательностейи т.д.) позволяет легко и продуктивно распараллеливать Лисп-процессы. Что нашлоиспользование в сверхмощных телекоммуникационных, сетевых Лисп-системах.
Первые области применения Лиспа были связаны с символьнойобработкой данных и процессами принятия решений.
Наиболее популярный сегодня диалект Коммон Лисп являетсяуниверсальным языком программирования. Он широко используется в самых разныхпроектах: интернет-серверы и службы, серверы приложений и клиенты,взаимодействующие с реляционными и объектными базами данных, научные расчёты иигровые программы.
Одно из направлений использования языка Lisp – егоиспользование в качестве скриптового языка, автоматизирующего работу в рядеприкладных программ.
Сферы применения Лиспа многообразны: наука и промышленность,образование и медицина, от декодирования генома человека до системыпроектирования авиалайнеров.
3. Технологическая реализация системы подготовки обработки деталистанка с ЧПУ3.1 Описание кодов программного модуля
Любой проект в Delphi состоит изнескольких частей (набора файлов, каждый из которых отвечает за конкретнуючасть проекта). Это файлы, содержащие тексты кода, динамические библиотеки,файлы ресурсов и файл проекта, который содержит команды для объединения всехчастей в единое целое. Все файлы создаются неявным образом, т.е. программист недолжен задумываться, какие файлы ему надо создать.
При запуске Delphi автоматическисоздается новый проект, содержащий одну пустую форму (окно Windows,готовое для запуска, со стандартным набором функций) со всеми сопутствующимифайлами. Это окно уже имеет функции закрытия, расширения до полного окна исворачивания (рисунок 7).
/>
Рисунок 7- Новый проект Delphi
В простейшем случае проект состоит из файла описанияпроекта, файла главного модуля, файла ресурсов, файла описания формы, файламодуля формы, в котором находятся основной код приложения, в том числе функцииобработки событий на компонентах формы, файл конфигурации.
Начинается главный модуль словом «program», закоторым следует имя программы, совпадающее с именем проекта. Имя проектазадается в момент сохранения проекта, и оно определяет имя создаваемогокомпилятором исполняемого файла программы. Далее за словом «uses»следуют имена используемых модулей: библиотечного модуля «Forms» имодуля формы «vrunl.pas» [13].
Строка “{$R *.RES}” — это директива компиляторуподключить файл ресурсов. Файл ресурсов содержит ресурсы приложения:пиктограммы, курсоры, битовые образы и др. Звездочка показывает, что имя файларесурсов такое же, как и у файла проекта, но с расширением «res».
Файл ресурсов не является текстовым файлом, поэтомупросмотреть его с помощью редактора текста нельзя. Для работы с файламиресурсов используют специальные программы (например «Resource Workshop»).
Помимо главного модуля, каждая программа включает в себя ещекак минимум один модуль формы, который содержит описание стартовой формыприложения и поддерживающих ее работу процедур [14].
Для разрабатываемого программного модуля необходимо создать17 форм. При запуске программного модуля на экране будут отображаться толькодва из них, остальные будут вызываться при необходимости.
Основным окном проекта будет первое, появившееся присоздании проекта, остальные окна будут присоединенными к проекту. Присоединениеновых форм к проекту происходит по средствам команды «ShowMessage».По средствам этой же команды происходит и вывод любых нестандартных диалоговыйокон (стандартные диалоговые окна выводятся с помощью команды «MessageDlg», с рядом настраиваемых параметров, таких какнабор кнопок, выводящееся сообщение и маркер).
Технология программирования в Delphiоснована на интуитивно понятном принципе. В начале строится интерфейс пользователя,заполнением формы различными стандартными компонентами с помощью мыши.Большинство визуальных параметров компонентов настраивается в «инспектореобъектов» (рисунок 8).
/>
Рисунок 8 — Инспектор объектов
Он состоит из двух вкладок: «properties»и «events». На вкладке «properties» настраиваются такие параметры как заголовок,габариты, положение на форме, наполнение при запуске, видимость и множестводругих параметров. На вкладке «events»описываются события (результат действий, которые можно произвести надобъектом). С помощью событий реализуются почти все обработчики данных.
Модуль состоит из следующих разделов: интерфейса,реализации, инициализации.
Раздел интерфейса (начинается словом «interface»)сообщает компилятору, какая часть модуля является доступной для других модулейпрограммы. В этом разделе перечислены (после слова «uses») библиотечныемодули, используемые данным модулем. Также здесь находится сформированноеDelphi описание формы, которое следует за словом «type».
Раздел реализации открывается словом «implementation»и содержит объявления локальных переменных, процедур и функций, поддерживающихработу формы. Начинается раздел реализации директивой “{$R *.DFM}”,указывающей компилятору, что в процессе генерации выполняемого файла надоиспользовать описание формы. Описание формы находится в файле с расширением «dfm»,имя которого совпадает с именем модуля. Файл описания формы генерируется средойDelphi на основе внешнего вида формы. За директивой “{$R *.DFM}”следуют процедуры обработки событий для формы и ее компонентов. Сюда жепрограммист может поместить другие процедуры и функции.
Раздел инициализации позволяет выполнить инициализациюпеременных модуля. Инструкции раздела инициализации располагаются после разделареализации (описания всех процедур и функций) между «begin» и «end».Если раздел инициализации не содержит инструкций, то слово «begin» неуказывается.
Для того чтобы в процессе набора текста программывоспользоваться шаблоном кода и вставить его в текст программы, нужно нажатькомбинацию клавиш “+” и из появившегося спискавыбрать нужный шаблон. Выбрать шаблон можно обычным образом, прокручиваясписок, или вводом первых букв имени шаблона (имена шаблонов в списке выделеныполужирным).
В основном окне будет выводиться вся самая необходимаяинформация, которая может быть использована при редактировании исходных данных,для получения оптимального результата. В нем будут отображаться все координатыперемещения инструмента, а также в нем будут собраны все обработчики событий,отвечающие за обмен информацией между всеми элементами проекта. Также в этомокне будут располагаться все основные кнопки, отвечающие за создание файловсвязи с программным продуктом 3D моделирования. Такжеесть возможность пошаговой отработки программы системы ЧПУ, которая должна бытьпредставлена в верхней части окна (рисунок 9).
/>
Рисунок 9 — Формы, появляющиеся призапуске программного модуля
Еще одна форма, появляющаяся при запуске программного модуляосуществляет накопление данных. Накопление данных происходит с помощью массива,который записывается в текстовый файл и читается из него по средствам элемента «Grid» (сетка таблицы). Этот элемент не обязателен дляотображения, но важен для работоспособности программы в целом, поэтому ее можносделать невидимой. Эта форма содержит также главное меню, по средствам которогопроисходит вызов форм для заполнения исходных данных.
Еще одной важной задачей сетки «Grid»,является оперативное хранение введенных данных и позволяет осуществитьреализацию постпроцессирования. Редактор кода выделяет ключевые слова языкапрограммирования («procedure», «var», «begin», «end»,«if» и другие) полужирным шрифтом, что делает текст программы болеевыразительным и облегчает восприятие структуры программы (рисунок 10).

/>
Рисунок 10 — Редактор кода программы
В процессе набора текста программы редактор кода выводитсправочную информацию о параметрах процедур и функций, о свойствах и методахобъектов. Один из параметров выделен полужирным. Так редактор подсказываетпрограммисту, какой параметр он должен вводить. После набора параметра изапятой в окне подсказки будет выделен следующий параметр. И так до тех пор,пока не будут указаны все параметры.
Остальные формы отвечают за удобный ввод данных (параметрызаготовки, инструмента, операций обработки, настройка технологическихпараметров и т.д.). Некоторые параметры требуют математических расчетов. Delphi со стандартными настройками может производить толькосамые простые математические действия. Чтобы вводить тригонометрическиефункции, а также сложные алгебраические действия необходимо подключитьдополнительный модуль Delphi «Math». Сделано это для того, чтобы не загружатькомпилятор лишними данными и упростить программу, если она таких вычислений нетребует. Модуль «Math» необходимо ввести встроку «Uses» редактора кода.
Из всех настроек можно выделить настройку самогопостпроцессора для перевода в Lisp. Так как этотпостпроцессор создает файл для пакета 3D моделирования,то параметры, выведенные в этот файл влияют на качество полученной модели.Модель в данном случае строится по направляющей и большому количеству сечений.При таком способе построения качество модели зависит от количества созданныхсечений, и от качества каждого сечения в отдельности. Тут необходимо найтикомпромисс между качеством производительностью. Чем больше кривизнаповерхностей модели, тем больше сечений надо, для получения качественноймодели, но слишком большое количество сечений в свою очередь может перегрузитьпроцессор даже достаточно мощного компьютера, что также не допустимо. Накачество каждого сечения влияет количество элементарных отрезков и дуг, изкоторых оно состоит. Тут также слишком малое количество элементарных частейможет привести к значительным отклонениям от действительных размеров, а слишкомбольшое их количество может привести к математическим аномалиям (длина отрезкаравна нулю или дуга образует внутреннюю петлю) [27].
Некоторые формы несут в себе только справочную информацию, ине влияют на программный модуль, другие формы не могут выводиться на экран, анесут лишь вспомогательную функцию. Они предназначены для созданияпользовательского набора инструментов, наборов и типов данных, а также событий,уникальных для этого программного модуля.
Весь проект Delphi сохраняется вспециально созданном для этого каталоге. В подкаталогах главного каталогасохраняются пользовательские файлы, на которые ссылается программный модуль(набор картинок, текстовые файлы, содержащие массивы данных, дополнительныебиблиотеки данных). Для проверки работоспособности программного модуля, в Delphi есть достаточно большой объем инструментальныхсредств. Это пошаговые компиляторы и отладчики с широким набором функцийпроверки правильности кода и т.п. При запуске программы на проверку, Delphi автоматически компилирует программный модуль висполняемый файл (рисунок 11).

/>
Рисунок 11 — Программный модуль
Компилятор генерирует исполняемую программу лишь в томслучае, если исходный текст не содержит синтаксических ошибок. В большинствеслучаев в только что набранной программе есть ошибки. Программист должен ихустранить.
Процесс устранения ошибок носит итерационный характер.Обычно сначала устраняются наиболее очевидные ошибки, например, декларируютсянеобъявленные переменные. После очередного внесения изменений в текст программывыполняется повторная компиляция.
После того как программа отлажена, необходимо выполнить ееокончательную настройку, т.е. задать название программы и выбрать значок,который будет изображать исполняемый файл приложения в папке или на рабочемстоле, а также на панели задач во время работы программы [15].3.2 Правила установки и настройки программногомодуля
Процесс установки программы предполагает не только созданиекаталога и перенос в него выполняемых файлов и файлов данных с промежуточногоносителя, но и настройку системы.
Для работы программного модуля, для начала необходимоустановить на компьютер программный пакет One Space Designer Modeling2005 и новее, созданный компанией CoCreate. Процессустановки этого пакета полностью описан в инструкции к дистрибутиву.
Далее в корне любого постоянного диска, необходимо создатькаталог с названием «CIP6». Такое названиебыло принято при создании программного модуля, поэтому менять его нельзя.Внутри этого каталога должен быть создан подкаталог «Emul». Сделаноэто для того, чтобы в каталоге «CIP6» можнобыло создать ряд других каталогов, в которых могла бы храниться информация,связанная со станком, но не связанная с программным модулем (требованиезаказчика).
В каталоге «Emul» создаются подкаталоги,содержащие служебные файлы.
Каталог «BMP» содержитфайлы изображений, используемые для пояснений и графического оформленияпрограммного модуля.
Каталог «DAT» содержитфайлы, с настроечными параметрами станка (значения абсолютных координатположения инструмента относительно заготовки в начальном положении). Этипараметры остаются неизменными в течение всего периода между ремонтами. Вслучае изменения этих значений достаточно открыть каждый из файлов кактекстовый, вручную изменить значения этих параметров и сохранить изменения втом же файле. Сделано это для того, чтобы после ремонта станка, программа ненуждалась в повторной компиляции.
Каталог «LSP» содержитгруппу файлов, отвечающую за визуализацию процесса обработки в пакете 3D моделирования. Часть файлов являются неизменными, онисодержат базовую геометрию, которая будет преобразована в частный случай. Этосистема координат, взаимное положение осей, параметрическая модель патрона изаготовки. Остальные файлы предназначены для изменения базовой геометрии. Этифайлы имеют переменное содержимое, и создаются каждый раз заново. Они строяткруги, реальную заготовку, патрон, содержат информацию о перемещениях рабочихорганов станка.
Также особой настройки требует и пакет 3Dмоделирования. Необходимо создать функцию загрузки базовой и дополнительнойгеометрии из файла (рисунок 12).
/>
Рисунок 12 — Создание дополнительныхфункций
Ссылка идет на файл, в котором прописаны ссылки на группудругих файлов, что упрощает настройку. После этого необходимо прописать впакете 3D моделирования каталог «Emul», какрабочую директорию.
На этом процесс установки завершается.3.3 Тестирование и отладка программного модуля
Первые программные системы разрабатывались в рамках программнаучных исследований или программ для нужд министерств обороны. Тестированиетаких продуктов проводилось строго формализовано с записью всех тестовыхпроцедур, тестовых данных, полученных результатов. Тестирование выделялось вотдельный процесс, который начинался после завершения кодирования, но при этом,как правило, выполнялось тем же персоналом [23].
В тестировании программного модуля можно выделить четыреэтапа:
– тестирование отдельных модулей;
– совместное тестирование модулей;
– тестирование спецификации программы;
– тестирование всего комплекса в целом (т.е. поиск несоответствиясозданного программного продукта сформулированным ранее целям проектирования,отраженным в техническом задании).
Модульное тестирование (юнит-тестирование) – тестируетсяминимально возможный для тестирования компонент, например, отдельный класс илифункция. Часто модульное тестирование осуществляется разработчикамипрограммного обеспечения.
Интеграционное тестирование – тестируются интерфейсы междукомпонентами, подсистемами. При наличии резерва времени на данной стадиитестирование ведётся итерационно, с постепенным подключением последующихподсистем.
Системное тестирование – тестируется интегрированная системана её соответствие требованиям.
Альфа-тестирование – имитация реальной работы с системойштатными разработчиками, либо реальная работа с системой потенциальнымипользователями и заказчиком. Чаще всего альфа-тестирование проводится на раннейстадии разработки продукта, но в некоторых случаях может применяться длязаконченного продукта в качестве внутреннего приёмочного тестирования. Иногдаальфа-тестирование выполняется под отладчиком или с использованием окружения,которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могутбыть переданы специалистам по тестированию для дополнительного исследования вокружении, подобном тому, в котором будет использоваться программноеобеспечение.
Бета-тестирование – в некоторых случаях выполняетсяраспространение версии с ограничениями (по функциональности или времени работы)для некоторой группы лиц, с тем чтобы убедиться, что продукт содержитдостаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобыполучить обратную связь о продукте от его будущих пользователей.
Часто для свободного (открытого)программного обеспечения стадия альфа-тестирования характеризует функциональное наполнение кода, а бета-тестирования– стадию исправления ошибок. При этом, какправило, на каждом этапе разработки промежуточные результаты работы доступныконечным пользователям.
На первых двух этапахиспользуются, прежде всего, методы структурного тестирования, так как напоследующих этапах тестирования эти методы использовать сложнее из-за большихразмеров проверяемого программного обеспечения. Последующие этапы тестированияориентированы на обнаружение ошибок различного типа, которые не обязательносвязаны с логикой программы. Известны два подхода к тестированию модулей:монолитное и пошаговое тестирование.
Существующие на сегодняшнийдень методы тестирования программного обеспечения не позволяют однозначно иполностью выявить все дефекты и установить корректность функционированияанализируемой программы, поэтому все существующие методы тестирования действуютв рамках формального процесса проверки исследуемого или разрабатываемого программногообеспечения. Такой процесс формальной проверки или верификации может доказать, что дефекты отсутствуют с точкизрения используемого метода.
Это означает, что нет никакойвозможности точно установить или гарантировать отсутствие дефектов в программномпродукте с учётом человеческого фактора, присутствующего на всех этапах жизненногоцикла программного обеспечения.
Существует множество подходовк решению задачи тестирования и верификации ПО, но эффективное тестированиесложных программных продуктов – это процесс, в высшей степени, творческий, несводящийся к следованию строгим и чётким процедурам или созданию таковых.
С точки зрения ISO9126, качество (программных средств) можноопределить как совокупную характеристику исследуемого программного обеспеченияс учётом следующих составляющих:
– надёжность;
– сопровождаемость;
– практичность;
– эффективность;
– мобильность;
– функциональность.
В терминологии профессионаловтестирования, фразы тестирование «белого ящика» и тестирование «чёрногоящика» относятся к тому, имеет ли разработчик тестов доступ к исходномукоду тестируемого программного обеспечения, или же тестирование выполняетсячерез пользовательский интерфейс либо прикладной программный интерфейс,предоставленный тестируемым модулем.
При тестированиибелого ящика, разработчик теста имеет доступ кисходному коду программ и может писать код, который связан с библиотекамитестируемого ПО. Это типично для юнит-тестирования, при котором тестируются только отдельные частисистемы. Оно обеспечивает то, что компоненты конструкции работоспособны иустойчивы, до определённой степени. При тестировании белого ящика используютсяметрики покрытия кода.
При тестированиичёрного ящика, специалист по тестированию имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешниеинтерфейсы, позволяющие другому компьютеру либо другому процессу подключиться ксистеме для тестирования. Например, тестирующий модуль может виртуальнонажимать клавиши или кнопки мыши в тестируемой программе с помощью механизмавзаимодействия процессов, с уверенностью в том, все ли идёт правильно, что этисобытия вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши.Как правило, тестирование чёрного ящикаведётся с использованием спецификаций или иных документов, описывающихтребования к системе. Как правило, в данном виде тестирования критерийпокрытия складывается из покрытия структурывходных данных, покрытия требований ипокрытия модели (в тестировании на основе моделей).
При тестировании серого ящикаразработчик теста имеет доступ к исходному коду, но при непосредственномвыполнении тестов доступ к коду, как правило, не требуется.
Покрытие кода, по своей сути, является тестированием методомбелого ящика. Тестируемое ПО собирается со специальными настройками илибиблиотеками и запускается в особом окружении, в результате чего для каждойиспользуемой (выполняемой) функции программы определяется местонахождение этойфункции в исходном коде. Этот процесс позволяет разработчикам и специалистам пообеспечению качества определить части системы, которые, при нормальной работе,используются очень редко или никогда не используются (такие как код обработкиошибок и т.п.). Это позволяет сориентировать специалистам по тестированию натестирование наиболее важных режимов.
Специалисты по тестированию могут использовать результатытеста покрытия кода для разработки тестов или тестовых данных, которые расширятпокрытие кода на важные функции.
Как правило, инструменты и библиотеки, используемые дляполучения покрытия кода, требуют значительных затрат производительности ипамяти, недопустимых при нормальном функционировании ПО, поэтому они могутиспользоваться только в лабораторных условиях. 
3.4 Инструкцияпользователя
При использовании программного модуля пользователь долженобладать полным комплектом конструкторской и технологической документации. Работаначинается с моделирования заготовки, модуль для которого показан на рисунке13.
/>
Рисунок 13 — Модуль моделированиязаготовки
Форма и положение заготовки относительно патрона имеютпервостепенное значение для проведения корректной обработки шлифованием,исключения брака и аварийных ситуаций. Предложенная схема введения размеров заготовкиобеспечивает создание тела вращения различной конфигурации, образующими формыкоторого могут быть наборы прямых линий и сопряженных с ними окружностей. Ступеньюв данной схеме является отдельно взятый отрезок прямой с началом в точке,обозначенной числом равным номеру ступени. Эти числа расположены вместе свертикальными указателями на нижней части профиля заготовки. Все изменения параметровпатрона и заготовки отображаются на верхнем графическом поле. Изменениезначения параметра производится непосредственно в соответствующей ячейкетаблицы или с помощью вспомогательных параметров «Шаг» и «Значение».В верхней части заготовки проставлены указатели с расстояниями между соседнимиступенями и значениями углов указанной ступени к оси заготовки. В нижнем правомуглу, в блоке «Измерения» находятся значения осевых, радиальныхперепадов и расстояний между двумя произвольными точками контура заготовки. Кнопка«Прикрепить» имеет три режима: «Нет», «Справа» и «Слева».Это означает, что при изменении параметров контур справа или слева отрассматриваемой ступени может меняться по-разному. Добавление и удалениеступеней желательно не делать на первой и последней ступенях, иначе можетпроизойти разрушение топологии контура заготовки. В случае любой непонятнойситуации можно применить откат вперед или назад (до 20 шагов) кнопками «Undo» и «Redo». Длязаготовок с отверстиями под СОЖ предусмотрена упрощенная схема отображения отверстийв графическом поле. После ввода всех необходимых параметров и нажатия кнопки «ОК»,генерируется программа для создания 3-d моделей патронаи заготовки. Следующим этапом является создание наладки инструмента (рисунок14).
/>
Рисунок 14 — Модуль моделированияналадки инструмента

Эта часть программного модуля использует данные, полученныепосле замеров кругов на станке. Количество кругов, их форма и расположение на оправкеопределяются шлифовщиком и технологом, исходя из их знаний и опыта. Шлифовщикунеобходимо замерить на каждом круге все соответствующие размеры и записать их вбланк замеров [4, 5, 6, 7, 8, 9, 10, 11, 12]. Все замеры шлифовщик долженпроизводить вручную, связано это с индивидуальными особенностями каждого круга,которые невозможно учесть на предварительном этапе. После ввода всехнеобходимых параметров и нажатия кнопки «ОК», генерируется программа длясоздания 3D моделей кругов и оправки. Дальше наступаетсамая главная часть процесса разработки – создание траекторий перемещенийрабочих органов станка (рисунок 15).
/>
Рисунок 15 — Модуль моделированиятраектории обработки
Операция – это совокупность движений одной или несколькихосей станка при обработке одним кругом поверхностей одного типа. Например, дляобычного сверла необходимо 4 операции: обработка винтовой канавки, формированиеленточки, заточка задней поверхности и подточка передней поверхности. При этомделение по числу зубьев, подвод и отвод круга, распределение припуска ивыхаживание могут происходить внутри одной операции. Кроме того, операция можетсодержать и дополнительные циклические движения осей для реализации, например,ступенчатой обработки затылка у сверла.
Любая линия образуется движением точки. На шлифовальномкруге выбирается активная точка и по ней фиксируется траектория движения всегокруга. Ориентация круга такова, что окружность, образованная активной точкой, касаетсятраектории, а ось круга и касательная к траектории в активной точке расположеныпод углом. Такое положение круга позволяет ему двигаться вдоль траектории, аугол отвода должен обеспечить отсутствие задевания обработанной поверхностизадней, по отношению к направлению движения, частью круга.
Как правило, к обработанной поверхности обращена частьпрофиля круга с активной точкой. Но иногда требуется обработать поверхностьполным профилем или с присутствием задевания задней частью круга. В этом случаенужно значительно уменьшать скорость подачи круга в зоне резания.
Для обработки винтовых поверхностей (цилиндрических иликонических) с постоянным шагом необходимо дополнительное вращение вокруг осизаготовки при рабочем ходе.
В ручном режиме заполнения предлагается сформироватьдостаточно большие группы операций (до 20 операций) для обработки, например,нестандартных видов осевого инструмента. Затем это может быть прототипом длядальнейшего использования. Каждая выбранная операция может быть представлена ванимированном виде в пакете 3D моделирования.
Последний этап работы с программным модулем – настройкатехнологических циклов (рисунок 16).

/>
Рисунок 16 — Модуль настройки операций
Внутри каждой операции существуют два типа движенияшлифовального круга: со снятием материала и без снятия материала с заготовки(главное и вспомогательное). Как правило, все движения имеют циклическийхарактер. Данный модуль предлагает пооперационное управление технологическимициклами.
Переключение, добавление или удаление операций производитсяв блоке «наименование». Здесь же можно изменить и наименованиеоперации.
«Положение зубьев» – для угловой разбивкиположения зубьев и назначение обработки на каждый зуб.
«Дополнит. смещения» – зависят от расположенияобрабатываемой поверхности и предназначены для смещения по одной из осейтраектории движения шлифовального круга.
«Припуски» назначаются на сторону и максимум на 3прохода вместе с подачей. Величина последнего припуска равна нулю. Если подачаравна нулю, то припуск не учитывается. Величина припуска определяет расстояние,на которое отодвинут круг вдоль назначенной оси от окончательного расчетногоположения.
«Отвод круга» используется для возврата круга висходное положение относительно детали после обработки. Величина отвода иподача назначаются применительно к одной или нескольким (до 3-х) осям одновременно.
«Циклическая обработка» – комплексное перемещениешлифовального круга для обработки поверхностей методом обкатывания. Кругпроходит через три положения: старт, экстремум и финиш. Экстремумом может бытьлюбое промежуточное значение выбранной оси. Количество циклов (до 20)равномерно распределяется на все значения от старта до финиша. В результатеполучается ступенчатая поверхность с регулируемой шероховатостью. Подача накаждую ось задается отдельно.
«Выхаживание» – стандартное циклическое движениешлифовального круга для получения более качественной по шероховатостиобработанной поверхности. Ось для выхаживания может быть выбрана только одна.
После заполнения всех таблиц и формирования готового осевогоинструмента в пакете 3D моделирования можно создатьуправляющую программу для станка.
4. Расчет экономической эффективности4.1 Расчет затрат на разработку системы
В таблице 4.1 представлены сведения о численностиработающих, принимавших участие в разработке программного изделия.
Таблица 4.1 — Ведомость фонда оплаты трудаКатегория работающих Количество, чел. Должностной оклад, руб. Фонд заработной платы, руб. Программист 1 10500 39690 Конструктор 1 13200 49896
Затраты на разработку программного обеспечения (Кп)определяется по формуле:
/>,(4.1)
где
Кпр – затраты на проектирование программногообеспечения (ПО), руб.;
Кпо – затраты на создание программных изделий,образующих ПО, руб.;
Кио – затраты на подготовку информационногообеспечения длительного пользования, создания базы данных ПО, руб.;
Ко – Затраты на отладку ПО, руб.
Укрупненный расчет на разработку ПО можно выполнить поформуле:
/>,(4.2)

где
Фз/п – фонд основной заработной платыразработчиков и других исполнителей работы, руб.;
bд– коэффициент дополнительной зарплаты (принимается 0,1 — 0,15);
bс– коэффициент отчислений на социальные нужды от основной и дополнительнойзаработной платы (принимается 0,26);
bн– коэффициент накладных расходов организации, разрабатывающей проект(принимается 0,6 — 0,8);
bпр– коэффициент прочих расходов (принимается 0,1 — 0,2);
tэвм – машинное время,затраченное для отладки программного обеспечения, ч;
Cм-ч – стоимостьмашино-часа работы ЭВМ, руб.
/>
Кп=245728,91 руб.
4.1.1 Расчет фонда заработной платы
Фонд заработной платыконсультанта и разработчика программного модуля с учетом отчислений насоциальные нужды рассчитывается:
/>,         (4.3)
где
Вр – время напроектирование и создание программного модуля, мес.;
О – среднемесячный окладразработчиков, руб.;
Ксн – коэффициентрасходов на социальные нужды.
Среднемесячный окладразработчика принимается в соответствии с окладами организации, где выполняетсяпроект.

В результате чего получим фонд заработной платы программиста:
/>;
/>руб.
Фонд заработной платы конструктора:
/>;
/>руб.
Общий фонд заработной платы:
/>руб.
Время, затраченное на отладку программного обеспечения наЭВМ tэвм устанавливается экспертным путемили по фактическим затратам машинного времени. Оно составило 40% отдлительности разработки программного модуля.
tэвм=3∙0,4∙168;
tэвм=201,6 ч.
4.1.2 Расчет себестоимости машино-часа работы персональногокомпьютера
Стоимость машино-часа работы персонального компьютера иликомплекса средств автоматизации См-ч берется в бухгалтерии той организации,где ведется разработка программного модуля [16]. При отсутствии этих данныхнеобходимо выполнить расчет себестоимости машино-часа работы с учетомконкретных условий.

Себестоимость машино-часа работы ЭВМ определяется поформуле:
/>, (4.4)
где
Зп – затраты на заработную плату обслуживающегоперсонала с учетом всех отчислений, руб.;
А – годовая сумма амортизации, руб.;
Зэ – затраты на силовую электроэнергию, руб.;
Зр – затраты на ремонт и обслуживаниеоборудования в год, руб.;
Зм – затраты на материалы в год, руб.;
Зн – накладные расходы, руб.;
Фд – действительный годовой фонд времени работыЭВМ, ч.
Расчет затрат на заработную плату обслуживающего персоналапроизводится по формуле:
/>, (4.5)
где
n – количество работников(принимается 1 работник);
li – месячный окладработника (принимается 9800 руб);
kд – коэффициент,учитывающий дополнительную заработную плату (принимается от 1,1 до 1,2); kсн – коэффициент, учитывающий отчисления насоциальные нужды (в соответствии с законодательством РФ kсн=1,26).
Зп=9800∙12∙1,1∙1,26;
Зп=162993,6 руб.

Расчет стоимости персонального компьютера для разработкипрограммного модуля представлен в таблице 4.2.
Таблица 4.2 — Расчет стоимости ЭВМ для разработки ПОНаименование оборудования Модель, серия Кол-во, шт. Стоимость, т.руб. ед. всего Системный блок Профессиональная графическая станция Compaq 1 36200 36200 Монитор Compaq P1210 1 13100 13100 Принтер HP LaserJet P2015 1 11500 11500 Итого 60800
Годовые амортизационные отчисления по ЭВМ считаются поформуле:
/>, (4.6)
где
Соб – стоимость персонального компьютера ипрочего оборудования, используемого при разработке и отладке программногомодуля;
На – норма амортизации, %.
Общая норма амортизации (На) основного фондавычислительной техники составляет 35%.
При подстановке данных из таблицы 4.2 в формулу 4.6 получаемследующие значения:
/>;
А=21280 руб.
Годовые затраты на электроэнергию рассчитываются следующимобразом:

Зэ = N ∙ Т ∙ Кисп ∙ Цэл, (4.7)
Где N – мощность оборудования, кВт;
Т – время работы оборудования, ч.;
Кисп – коэффициент использования оборудования помощности, принимаем 0,75; Цэл – стоимость 1 кВт*ч электроэнергии,руб.
В среднем вычислительная техника потребляет 0,4 кВтэлектроэнергии в час. Время потребления энергии ЭВМ составляет 1488 часов.Стоимость силовой электроэнергии равна 1,62 руб/кВт.
Зэ=0,4∙1488∙0,75∙1,62;
Зэ=723,17 руб.
Затраты на текущие ремонты Зр и на материалы Змв год берутся по данным бухгалтерии. При укрупненном расчете их сумма можетбыть принята от 4,5 до 10% от стоимости ЭВМ.
Зр=60800∙0,06;
Зр=3648 руб.
В накладные расходы включаются затраты на амортизацию исодержание площадей, затраты на отопление, освещение и прочие [2].
Коэффициент накладных расходов организации, разрабатывающейпроект принимаются равным 0,6 — 0,9 от затрат на основную заработную платуразработчиков.
Зн=89586∙0,8;
Зн=71668,8 руб.

Годовой фонд времени Фд устанавливается, исходяиз номинального фонда времени и времени профилактики оборудования и ремонтов:
Фд = (365-Пр-В)∙q∙S∙Kисп,(4.8)
где
Пр – количество праздничных дней;
В – количество выходных дней;
S – количество смен;
q – продолжительность смены, ч.
Фд=248∙8∙1∙0,75,
Фд=1488 ч.
Подставив подсчитанные значения в формулах 4.5 — 4.8 вформулу 4.4 можно вычислить стоимость машино-часа работы ЭВМ:
См-ч=(162993,6 + 21280 +723,17 + 3648 + 71668,8)/1488;
См-ч=174,94 руб/час.
4.1.3 Расчет цены программного обеспечения
Минимальная цена разработки программного обеспечения (Zmin) складывается из полных затрат на разработкуКп и минимально необходимой суммы прибыли Пminи рассчитывается по формуле:
Zmin=Кп+Пmin. (4.9)
Сумма прибыли Пminрассчитывается исходя из планируемого минимального уровня, рентабельностизатрат организации-разработчика:

Пmin=Кп∙Rmin/100 (4.10)
где
Rmin – минимальныйуровень рентабельности, % (20-30%);
Пmin=245728,91∙0,25;
Пmin=61432,23 руб.
Подставив полученные значения из формулы 4.10 в формулу 4.9можно рассчитать минимальную цену разработки программного модуля:
Zmin=245728,91+ 61432,23;
Zmin=307161,14 руб.
После выполнения расчетов, можно подвести итоги по подсчетусебестоимости программы:
– Время, затраченное на разработку и отладку программного модуля наперсональном компьютере составляет 3 месяца;
– Затраты на разработку программного модуля составляет 245728,91 рублей;
– Фонд заработной платы составляет 89586 рублей;
– Затраты на зарплату обслуживающего персонала составляют 162993,6 рубля;
– Затраты на электроэнергию составляют 723,17 рубля;
– Затраты на текущие ремонты составляют 3648 рублей;
– Накладные расходы составляют 71668,8 рублей;
– Стоимость машино-часа работы персонального компьютера составляют 174,94рубля/час.
Исходя из вышеперечисленных затрат, можно сказать чтостоимость программного модуля, которая составляет 307161,14 рубль, являетсядостаточно реальной суммой, за которую можно продать данный программныйпродукт./>/>/>/> 4.2 Методологиярасчета общей стоимости владения программным продуктом
Расчет стоимости владения программным модулем включаетопределение затрат на каждой стадии жизненного цикла информационного продуктаих классификацию и обоснование [12]. Формулы для расчета стоимости владенияпрограммным модулем приведены ниже.
Стоимость теоретического проекта рассчитывается:
С т.пр = Zmin+ С под ,
где Спод – стоимость поддержки, которая складываетсяиз расходов на услуги консультантов. Принимается время работы консультантовподдержки равным 50% от времени работы при создании [19]. Тогда время работыконсультанта равно 1,5 мес. При размере оплаты услуг консультанта 10000руб/мес, стоимость поддержки составит 15000 руб.
С т.пр = 307161,14+15000;
С т.пр = 322161,14 руб.
Стоимость технологического проекта рассчитывается:
С тех.пр = Р ап +С под ,
где Рап – расходы на аппаратное обеспечение. Спод– стоимость поддержки, которая складывается из расходов на услугипрограммистов. Принимается время работы программистов равным 50% от времениработы при создании. Тогда время работы программиста равно 1,5 мес. При размереоплаты услуг программиста 10500 руб/мес, стоимость поддержки составит 15750руб.
С тех.проекта = 60800 + 15750;
С тех.проекта = 76550 руб.
Общая стоимость владения информационным продуктомрассчитывается:
ОСВ = С т.пр + С тех.пр,
ОСВ = 322161,14 + 76550;
ОСВ = 398711,14 руб. 4.3 Экономическийэффект
Разработанный программный продукт, программный модуль станкас ЧПУ, необходим для автоматизации процесса создания управляющей программы длястанка Walter CIP6,оснащенного системой ЧПУ Sinumeric 840D.При расчёте экономического эффекта от применения программного продукта, общаястоимость разработанного программного модуля станка с ЧПУ оказалась нижестоимости аналогичного модуля, предлагаемого фирмой-изготовителем станка [18].
/>,(4.11)
где ОВСр – общая стоимость владенияразработываемого программмного продукта, руб.; ОВСп – общаястоимость владения покупного программного продукта, руб.

ОВСп = 638540 руб.;
Э – экономический эффект, руб.
Э = 638540 — 398711,14;
Э = 239828,86 руб.
Разработанный программный продукт, программный модуль станкас ЧПУ, на 239828,86 рублей дешевле аналогичного программного модуляразработанного фирмой фирмой-изготовителем станка.
5. Обеспечениебезопасности жизнедеятельности5.1 Общие сведения о безопасностижизнедеятельности
Безопасность жизнедеятельности (БЖД) – это комплекс мероприятий, направленных на обеспечение безопасностичеловека в среде обитания, сохранение его здоровья, разработку методов исредств защиты путем снижения влияния вредных и опасных факторов до допустимыхзначений, выработку мер по ограничению ущерба в ликвидации последствийчрезвычайных ситуаций мирного и военного времени [20].
Охрана здоровья трудящихся, обеспечение безопасности условийтруда, ликвидация профессиональных заболеваний и производственного травматизмасоставляет одну из главных забот человеческого общества. Обращается внимание нанеобходимость широкого применения прогрессивных форм научной организации труда,сведения к минимуму ручного, малоквалифицированного труда, создания обстановки,исключающей профессиональные заболевания и производственный травматизм.
Помещения для эксплуатации персональных компьютеров должныиметь естественное и искусственное освещение. Эксплуатация персональныхкомпьютеров в помещениях без естественного освещения допускается только присоответствующем обосновании и наличии положительногосанитарно-эпидемиологического заключения, выданного в установленном порядке.
Естественное и искусственное освещение должносоответствовать требованиям действующей нормативной документации. Окна впомещениях, где эксплуатируется вычислительная техника, преимущественно должныбыть ориентированы на север и северо-восток.
Оконные проемы должны быть оборудованы регулируемымиустройствами типа: жалюзи, занавесей, внешних козырьков и так далее.
Площадь на одно рабочее место комплектовщика компьютера набазе электронно-лучевой трубки (ЭЛТ) должна составлять не менее 6 м2, на базе плоских дискретных экранов (жидкокристаллические, плазменные) – 4,5 м2.
Для внутренней отделки интерьера помещений, где расположеныкомпьютеры, должны использоваться диффузно отражающие материалы с коэффициентомотражения для потолка 0,7-0,8; для стен0,5-0,6; для пола 0,3-0,5. Полимерные материалы используются для внутреннейотделки интерьера помещений с персональными компьютерами при наличиисанитарно-эпидемиологического заключения.
Помещения, где размещаются рабочие места с персональнымикомпьютерами, должны быть оборудованы защитным заземлением (занулением) всоответствии с техническими требованиями по эксплуатации.
Не следует размещать рабочие места с персональнымикомпьютерами вблизи силовых кабелей и вводов, высоковольтных трансформаторов,технологического оборудования, создающего помехи в работе персональныхкомпьютеров.
В производственных помещениях, в которых работа сиспользованием персональных компьютеров является вспомогательной, температура,относительная влажность и скорость движения воздуха на рабочих местах должнысоответствовать действующим санитарным нормам микроклимата производственныхпомещений.
В производственных помещениях, в которых работа сиспользованием персональных компьютеров является основной (диспетчерские,операторские, расчетные, кабины и посты управления, залы вычислительной техникии др.) и связана с нервно-эмоциональным напряжением, должны обеспечиватьсяоптимальные параметры микроклимата для категории работ 1а и 1б в соответствии сдействующими санитарно-эпидемиологическими нормативами микроклиматапроизводственных помещений. На других рабочих местах следует поддерживатьпараметры микроклимата на допустимом уровне, соответствующем требованиям указанныхвыше нормативов.
В помещениях должна проводиться ежедневная влажная уборка исистематическое проветривание после каждого часа работы на компьютере.
Уровни положительных и отрицательных аэроионов в воздухепомещений, где расположены персональные компьютеры, должны соответствоватьдействующим санитарно-эпидемиологическим нормативам.
Содержание вредных химических веществ в воздухепроизводственных помещений, в которых работа с использованием персональныхкомпьютеров является вспомогательной, не должно превышать предельно допустимыхконцентраций вредных веществ в воздухе рабочей зоны в соответствии сдействующими гигиеническими нормативами.
Содержание вредных химических веществ в производственныхпомещениях, в которых работа с использованием персональных компьютеров являетсяосновной (диспетчерские, операторские, расчетные, кабины и посты управления,залы вычислительной техники и др.), не должно превышать предельно допустимыхконцентраций загрязняющих веществ в атмосферном воздухе населенных мест всоответствии с действующими гигиеническими нормативами.
В производственных помещениях при выполнении основных иливспомогательных работ с использованием персональных компьютеров уровни шума нарабочих местах не должны превышать предельно допустимых значений, установленныхдля данных видов работ в соответствии с действующимисанитарно-эпидемиологическими нормативами.
При выполнении работ с использованием персональныхкомпьютеров в производственных помещениях уровень вибрации не должен превышатьдопустимых значений вибрации для рабочих мест (категория 3, тип «в»)в соответствии с действующими санитарно-эпидемиологическими нормативами.
Шумящее оборудование (печатающие устройства, серверы ит.п.), уровни шума которого превышают нормативные, должно размещаться внепомещений с персональными компьютерами.
Рабочие столы следует размещать таким образом, чтобывидеодисплейные терминалы были ориентированы боковой стороной к световымпроемам, чтобы естественный свет падал преимущественно слева.
Искусственное освещение в помещениях для эксплуатацииперсональных компьютеров должно осуществляться системой общего равномерногоосвещения. В производственных и административно-общественных помещениях, вслучаях преимущественной работы с документами, следует применять системыкомбинированного освещения (к общему освещению дополнительно устанавливаютсясветильники местного освещения, предназначенные для освещения зоны расположениядокументов).
Освещенность на поверхности стола в зоне размещения рабочегодокумента должна быть 300 — 500 лк. Освещение не должно создавать бликов наповерхности экрана. Освещенность поверхности экрана не должна быть более 300лк. Следует ограничивать прямую блесткость от источников освещения, при этомяркость светящихся поверхностей (окна, светильники и другие), находящихся вполе зрения, должна быть не более 200 кд/м2.
Следует ограничивать отраженную блесткость на рабочихповерхностях (экран, стол, клавиатура и другие) за счет правильного выборатипов светильников и расположения рабочих мест по отношению к источникам естественногои искусственного освещения, при этом яркость бликов на экране персональногокомпьютера не должна превышать 40 кд/м2 и яркость потолка не должна превышать200 кд/м2.
Показатель ослепленности для источников общегоискусственного освещения в производственных помещениях должен быть не более 20.Показатель дискомфорта в административно-общественных помещениях не более 40.
Яркость светильников общего освещения в зоне углов излученияот 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должнасоставлять не более 200 кд/м2, защитный угол светильников должен быть не менее40 градусов. Светильники местного освещения должны иметь не просвечивающийотражатель с защитным углом не менее 40 градусов.
Следует ограничивать неравномерность распределения яркости вполе зрения пользователя персонального компьютера, при этом соотношение яркостимежду рабочими поверхностями не должно превышать 3:1 — 5:1, а между рабочимиповерхностями и поверхностями стен и оборудования 10:1.
Для обеспечения нормируемых значений освещенности впомещениях для использования персональных компьютеров следует проводить чисткустекол оконных рам и светильников не реже двух раз в год и проводитьсвоевременную замену перегоревших ламп.
Режим пожарной безопасности помещений регламентируется двумяосновополагающими документами: ФЗ № 69 «О пожарной безопасности» и «Правиламипожарной безопасности на ОАО „АВТОВАЗ“.
Правила пожарной безопасности устанавливают основные нормы итребования к помещениям, размещению в них оборудования. Оснащение помещенийсредствами первичного пожаротушения, планы и схемы эвакуации при пожаре,порядок вызова пожарной службы при возникновении ЧС. В каждом помещении должнобыть лицо ответственное за пожарную безопасность, назначенное приказомруководителя предприятия или лицом ответственным за пожарную безопасностьпредприятия в целом. Все работники должны периодически, не реже 1 раза вполугодие, проходить инструктаж по пожарной безопасности, участвовать втренировках по эвакуации из здания при пожаре, тушению предполагаемыхвозгораний.
Требования Правил пожарной безопасности к эксплуатациивычислительной техники содержат лишь общие положения, в которых обозначенынеобходимые для соблюдения документы. Одним из таких документов являютсяПравила устройства электроустановок (ПУЭ). В них оговорены требования к монтажуэлектропроводки, освещения, порядку включения, выключения и аварийногообесточивания электросетей.
В случае загорания ПК или отдельных устройств, следуетнемедленно отключить электропитание, сообщить в службу пожарной охраны потелефону „11-01“. Оценить ситуацию и, в случае небольшого очагавозгорания, попытаться начать тушение загорания, используя средства первичногопожаротушения. Для тушения можно применять огнетушители с углекислотным илипорошковым зарядом. Они предназначены для тушения электроустановок снапряжением до 1000 В. При обнаружении неисправностей, перегрева оборудования,появления запаха гари следует выключить ПК и другие включенные устройства,вынуть вилки электропитания из розеток и сообщить об этом обслуживающемуперсоналу, то есть лицу ответственному за пожарную безопасность помещений илиответственному за электрохозяйство.
Для предотвращения возгорания необходимо соблюдать основныемеры предосторожности:
–  не эксплуатировать поврежденные розетки или розетки,выполненные с нарушением норм пожарной безопасности;
–  не допускать работу средств вычислительной техники снеисправными шнурами питания;
–  соблюдать порядок уборки и хранения горючихматериалов;
–  не класть на устройства вычислительной техникипосторонние предметы, бумагу, документацию;
–  в помещениях не пользоваться открытым огнем иэлектронагревательными приборами с открытыми элементами нагрева или безтерморегуляторов;
–  запрещается работа на неисправном оборудовании (возникновениекороткого замыкания и, как следствие, характерные искры и шум, запах плавящейсяизоляции проводов);
–  по окончании работы, перед закрытием помещений,следует обесточить все электропотребители.
–  5.2 Требования к рабочему месту инженера–программиста
Приработе с компьютером человек подвергается воздействию ряда опасных и вредныхпроизводственных факторов:
– электромагнитныхполей (диапазон высоких частот, сверх высоких частот и ультра высоких частот);
– инфракрасногои ионизирующего излучений;
– повышенный уровень шума и вибрации;
– повышенная температура внешнейсреды;
–  отсутствие или недостаточная освещенность рабочейзоны;
– электрического тока и статического электричества;
–  умственное перенапряжение;
–  перенапряжение зрительных и слуховых анализаторов;
–  монотонность труда;
– эмоциональные перегрузки;
– большиенагрузки на мышцы рук при работе с клавиатурой ЭВМ;
– большиенагрузки на мышцы шеи, спины и ног.
В соответствии с СанПиН2.2.2/2.4.1340-03 рабочее место инженера-программиста должнообеспечивать возможность поворота корпуса в горизонтальной и вертикальнойплоскости с фиксацией в заданном положении для обеспечения фронтальногонаблюдения экрана. Корпус ПК, клавиатура и другие блоки и устройства должныиметь матовую поверхность с коэффициентом отражения 0,4-0,6 и не иметьблестящих деталей, способных создавать блики. Также должно предусматриватьсярегулирование яркости и контрастности.
Концентрации вредных веществ, выделяемых персональнымикомпьютерами в воздух помещений, не должны превышать предельно допустимыхконцентраций (ПДК), установленных для атмосферного воздуха.
Рабочие места с персональными компьютерами в помещениях систочниками вредных производственных факторов должны размещаться визолированных кабинах с организованным воздухообменом.
Конструкция персонального компьютера должна обеспечиватьвозможность поворота корпуса в горизонтальной и вертикальной плоскости сфиксацией в заданном положении для обеспечения фронтального наблюдения экранамонитора. Дизайн персонального компьютера должен предусматривать окраскукорпуса в спокойные мягкие тона с диффузным рассеиванием света. Корпусперсонального компьютера, клавиатура и другие его блоки и устройства должныиметь матовую поверхность с коэффициентом отражения 0,4 — 0,6 и не иметьблестящих деталей, способных создавать блики.
Рабочие места с персональными компьютерами при выполнениитворческой работы, требующей значительного умственного напряжения или высокойконцентрации внимания, рекомендуется изолировать друг от друга перегородкамивысотой 1,5 — 2,0 м.
Большое значение имеетрациональная конструкция и расположение элементов рабочего места, что важно дляподдержания оптимальной рабочей позы человека-оператора. При размещениирабочих мест с персональным компьютером расстояние между рабочими столами свидеомониторами (в направлении тыла поверхности одного видеомонитора и экранадругого видеомонитора), должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов – не менее 1,2 м.
Экран видеомонитора должен находиться от глаз пользователяна расстоянии 600-700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.
Впроцессе работы с компьютером необходимо соблюдать правильный режим труда иотдыха. В противном случае отмечаются значительное напряжение зрительногоаппарата с появлением жалоб на неудовлетворенность работой, головные боли,раздражительность, нарушение сна, усталость и болезненные ощущения в глазах, впояснице, в области шеи и руках.
Конструкция рабочего стола должна обеспечивать оптимальноеразмещение на рабочей поверхности используемого оборудования с учетом егоколичества и конструктивных особенностей, характера выполняемой работы. Приэтом допускается использование рабочих столов различных конструкций, отвечающихсовременным требованиям эргономики. Поверхность рабочего стола должна иметькоэффициент отражения 0,5-0,7.
Высота рабочей поверхности стола для взрослых пользователейдолжна регулироваться в пределах 680 — 800 мм, при отсутствии такой возможности высота рабочей поверхности стола должна составлять 725 мм.
Модульными размерами рабочей поверхности стола для ПЭВМ, наосновании которых должны рассчитываться конструктивные размеры, следуетсчитать: ширину 800, 1000, 1200 и 1400 мм, глубину 800 и 1000 мм при нерегулируемой его высоте, равной 725 мм.
Рабочий стол должен иметь пространство для ног высотой неменее 600 мм, шириной — не менее 500 мм, глубиной на уровне колен – не менее 450 мм и на уровне вытянутых ног — не менее 650 мм.
Конструкция рабочего стула (кресла) должна обеспечиватьподдержание рациональной рабочей позы при работе на персональном компьютере,позволять изменять позу с целью снижения статического напряжения мышцшейно-плечевой области и спины для предупреждения развития утомления.
Рабочий стул (кресло) должен быть подъемно-поворотным,регулируемым по высоте и углам наклона сиденья и спинки, а также расстояниюспинки от переднего края сиденья, при этом регулировка каждого параметра должнабыть независимой, легко осуществляемой и иметь надежную фиксацию.
Поверхность сиденья, спинки и других элементов стула(кресла) должна быть полумягкой, с нескользящим, слабо электризующимся ивоздухопроницаемым покрытием, обеспечивающим легкую очистку от загрязнений.
Рабочее место пользователя персонального компьютера следуетоборудовать подставкой для ног, имеющей ширину не менее 300 мм, глубину не менее 400 мм, регулировку по высоте в пределах до 150 мм и по углу наклона опорной поверхности подставки до 20°. Поверхность подставки должна бытьрифленой и иметь по переднему краю бортик высотой 10 мм.
Клавиатуру следует располагать на поверхности стола нарасстоянии 100 — 300 мм от края, обращенного к пользователю или на специальной,регулируемой по высоте рабочей поверхности, отделенной от основной столешницы.
Мощность экспозиционной дозы мягкого рентгеновскогоизлучения в любой точке на расстоянии 0,05 м от экрана при любых положениях регулировочных устройств не должна превышать 1 мкЗв/час (100 мкР/час).5.3 Расчет естественного освещения рабочего места
Расчет и нормированиеестественного освещения производят по коэффициенту естественной освещенности „e“ (КЕО) в % по формуле 5.1:
/>,(5.1)
где
Ев – освещенность внутри помещения, лк;
Ен – одновременнаяосвещенность наружной и горизонтальной плоскости рассеянным светом небосвода,лк.
На предприятиях наибольшеераспространение получило естественное боковое освещение. При таком освещенииосновой расчета является требуемая площадь светового проема, определяемая поформуле 5.2:
/> (5.2)
где
So — площадь окон, м2;
Sп — площадь пола помещения, м2;
eн — нормированное значение КЕО, %;
ho — световая характеристика окна (6.5-29);
Кз — коэффициент запаса;
Кзо — коэффициент, учитывающий затемнение оконпротивостоящими зданиями (1,0-1,7);
to — общий коэффициент светопропускания, определяемый изСанПиН 2.2.2/2.4.1340-03;
r1 — коэффициент, учитывающий повышение КЕО за счетотражения света от поверхности помещения (1,05-1,7).
Коэффициент „Кз“определяется равным 1,5. Учитываем, что длина пола помещения „l“,равняется 12 м, а ширина „b“ 8,4 м. Находим площадь пола по формуле 5.3:
/>,(5.3)
/>.
Нормированное значение КЕОопределяется равным 1,2 %.

Значения остальныхкоэффициентов принимаются равными:
ho =29;
r1 = 1,2;
Кзо = 1;
to = 0,3.
При расчете полученоследующее значение требуемой площади светового проема по формуле 5.2:
/>.
Следовательно оконный проемдолжен быть не менее 15 м2.5.4 Расчет искусственного освещения
Искусственное освещение применяют в темное и переходноевремя суток, а также при недостаточном или отсутствии естественного освещения.В помещении применяется общее равномерное искусственное освещение, расчеткоторого производится по методу светового потока. При расчете этим методомучитывается как прямой свет от светильника, так и свет, отраженный от потолка истен.
Освещенность на поверхности стола в зоне размещения рабочегодокумента должна быть 300 – 500 лк. Освещение не должно создавать бликов наповерхности экрана. Освещенность поверхности экрана не должна быть более 300лк. Яркость бликов на экране персонального компьютера не должна превышать 40кд/м2 и яркость потолка не должна превышать 200 кд/м2.
В качестве источников света при искусственном освещенииследует применять преимущественно люминесцентные лампы типа ЛБ и компактныелюминесцентные лампы (КЛЛ).
Для освещения помещений с персональными компьютерами следуетприменять светильники с зеркальными параболическими решетками,укомплектованными электронными пуско-регулирующими аппаратами (ЭПРА) [21].Допускается использование многоламповых светильников с электромагнитнымипуско-регулирующими аппаратами (ЭПРА), состоящими из равного числа опережающихи отстающих ветвей. Применение светильников без рассеивателей и экранирующихрешеток не допускается.
Общее освещение при использовании люминесцентныхсветильников следует выполнять в виде сплошных или прерывистых линийсветильников, расположенных сбоку от рабочих мест, параллельно линии зренияпользователя при рядном расположении видеодисплейных терминалов. Припериметральном расположении компьютеров линии светильников должны располагатьсялокализовано над рабочим столом ближе к его переднему краю, обращенному коператору.
Коэффициент пульсации не должен превышать 5%.
При отсутствии светильников с ЭПРА лампы многоламповыхсветильников или рядом расположенные светильники общего освещения следуетвключать на разные фазы трехфазной сети.
Помещения, где размещаются рабочие места с персональнымикомпьютерами, освещается лампами типа ЛБ80, световой поток которых F = 5220 лм.
Освещенность определяется по следующей формуле 5.4:
/>, (5.4)

где
F — световой поток каждой из ламп, лм;
E — минимальная освещенность, лк;
k — коэффициент запаса, учитывающий запыление светильников иизнос источников света;
Sп — площадь помещения, м2;
N — число источников света;
h — коэффициент использования светового потока;
z — коэффициент неравномерности освещения;
y — коэффициент затенения.
Определим данные для расчета. Коэффициент „k“ дляпомещений освещаемых люминесцентными лампами, и при условии чистки светильниковне реже двух раз в год берется равным:
k = 1,4-1,5.
При оптимальном расположении светильников коэффициентнеравномерности равен:
z = 1,1-1,2.
Коэффициент затенения „y“ вводится в расчет дляпомещений с фиксированным положением работающих, а также при наличиикрупногабаритных предметов и принимается равным:
у = 0,8-0,9.
Коэффициент использования светового потока „h“ зависит от типа светильника,коэффициента отражения светового потока от стен, потолка, пола, а такжегеометрических размеров помещения и высоты подвеса светильников, чтоучитывается одной комплексной характеристикой — индексом помещения. Показательпомещения определяется по формуле 5.5:
/>,(5.5)
где
h — высота подвеса светильников над рабочей поверхностью, м;
l — ширина помещения, м;
b — длина помещения, м.
Тогда индекс помещения поформуле (5.5) получается равным:
/>
По найденному показателю помещения „i“ икоэффициентам отражения потолка и стен, определяем коэффициент использованиясветового потока (под которым понимается отношение светового потока, падающегона рабочую поверхность, к световому потоку источника света). Для нашего случая „h“ равняется 0,22.
Тогда освещенность по формуле(5.4) равна:
/> лк.
Расчет показывает, чтоосвещенность в помещении, где размещаются рабочие места с персональнымикомпьютеров удовлетворяет требованиям, так как нормальная минимальнаяосвещенность должна составлять 400лк.

Заключение
Данный проект был направлен на автоматизацию проектных работпо программированию станка с ЧПУ Walter CIP6. Были проведеныисследовательские работы по изучению состояния дел в этой сфере, изученыпредложения других компаний, был создан программный продукт, посчитаныэкономические затраты на его создание и сформулированы требования побезопасности жизнедеятельности.
В процессе проектирования был получен программный модуль,отвечающий всем заявленным требованиям. Этот модуль может проводить сложныематематические расчеты неявным образом, отображать в графическом представлениивведенные исходные данные. В результате использования модуля можно получитьготовую управляющую программу для системы ЧПУ.
Для упрощения задачи создания модуля, в нем применен принципвнешнего управления работой пакета 3D моделирования. Засчет этого была реализована возможность анимированной имитации обработки настанке, с получением твердотельной математической модели изделия, очень близкойк реальному изделию, которое могло бы получиться на станке, в результатеиспользования этой управляющей программы.
Особое значение имеет тот факт, что происходит уход оттрадиционных бумажных носителей на всех этапах проектирования и внедренияуправляющей программы. Достигается это за счет того, что такое же программноеобеспечение может быть установлено на рабочем месте станочника, и используяего, рабочий может получить всю необходимую информацию о наладке станка в болееудобном виде, чем это может быть представлено на бумажной карте наладки.
Данный программный модуль предназначен для применения вгруппе шлифовальных станков с ЧПУ Walter, оснащенными 4– 6 осями. С помощью этого модуля могут быть смоделированы большинствотрадиционных осевых инструментов, которые применяются в производстве, а такжеможет быть осуществлена переточка затупившегося инструмента.
Возможность имитации обработки позволяет отказаться отприменения пробной детали, которая предназначена для отладки программыобработки и чаще всего оказывается испорченной.
Также был произведен анализ условий труда программиста,который должен работать в этом приложении. Были описаны параметры рабочегоместа и рассчитаны нормы освещенности рабочего помещения. В частности былирассчитаны такие параметры как площадь оконного проема и количество лампискусственного освещения, необходимых для освещения данной комнаты при работе сперсональным компьютером.
Был произведен экономический расчет стоимости разработкиданного программного модуля. В нем были учтены стоимость компьютера ипериферийного оборудования, применяемых в ходе разработки, а так же стоимостьотладки и внедрения программного модуля. Анализ аналогов других фирм показал,что данный программный модуль может выполнять все те же действия, что ианалоги, но его стоимость на 239828,86 рублей ниже чем у аналогов.

Список литературы
1. Автоматизация проектно-конструкторских работ и технологическойподготовки производства в машиностроении. Т. 1/Под ред. О. И. Семенкова.- Минск:Высшая школа, 2005.
2. Волков Д.И., Скляренко В.К… Экономика предприятия. Курс лекций.-М.: Инфра-м, 2004.
3. Гольдштейн А.И., Молочник В.И. О внутренней структурепостпроцессоров. — В кн.: Повышение эффективности использования станков с ЧПУ.- Киев: Знание, 2006.
4. ГОСТ 886-77 „Свёрла спиральные с цилиндрическим хвостовиком.Длинная серия“.
5. ГОСТ 2092-77 „Свёрла спиральные удлиненные с коническимхвостовиком“.
6. ГОСТ 10079-71 „Развертки конические с коническим хвостовиком“.
7. ГОСТ 14952-75 „Свёрла центровочные комбинированные“.
8. ГОСТ 18121-72 „Развёртки котельные машинные“.
9. ГОСТ 19267-73 „Развертки машинные цилиндрические сцилиндрическим хвостовиком для легких сплавов“.
10. ГОСТ 21579-76 „Зенкеры с цилиндрическим хвостовиком длялегких сплавов“.
11. Делфи 4. Библия разработчика. Том Сван.Киев/Москва/Санкт-Петербург: Диалектика, 1998.
12. Ендовицкий Д.А., Коменденко С.Н. Организация анализа и контроляинновационной деятельности хозяйствующего субъекта. Под ред. Л.Т. Гимеровской.М.: Финансы и статистика, 2004.
13. Знакомство с Delphi 7. Архангельский А.Я.Москва: издательство Бином, 2004.
14. Инструменты программирования в Delphi 7.Фаронов В.В. СПб.: Питер, 2006.
15. Инструкция по программированию. Издание 03.96. SINUMERIK840D/810D/FM-NC.
16. Ильенкова С.Д., Гохберг Л.М., Ягудин С.Ю. и др.Инновационныйменеджмент. Учебник для вузов./ под ред. С.Д. Ильенковой. М.: Банки и биржи,Юнити, 1997.
17. Механика промышленных роботов: Учеб. Пособие для вузов: В 3 кн. /Под ред. К. В. Фролова, Е. И. Воробьева. Кн.2: расчет и проектированиемеханизмов / Е. И. Воробьев, О. Д. Егоров, С. А. Попов. – М: Высш. шк., 1988.
18. Инвестиции. Учебное пособие/Г.П. Подшиваленко, Н.И. Лахметкина,М.В. Макарова и др. М.: Кнорус,2004.
19. Оборудование машиностроительных предприятий / Схиртладзе А. ГВыходец., В. И., Никифоров Н. И., Отений Я. Н. − ВолгГТУ, Волгоград,2005.
20. СанПиН 2.2.2/2.4.1340-03 „Гигиенические требования кперсональным электронно-вычислительным машинам и организации работы“.
21. Системная интеграция/Машиностроение СТА 3/2002 Николай Панышев, Дмитрий Ялымов „Системачислового программного управления технологическим оборудованием“.
22. Интернет источник. CALS-технологии. www.calscenter.com.
23. Интернет источник. Всемирная интернет энциклопедия. www.wikipedia.ru.
24. Интернет источник. Информационные системы. revolution./programming.
25. Интернет источник. Уфимский государственный авиационныйтехнический университет. www.twirpx.com.
26. Интернет источник. Siemens Sinumerik 840D.www.chipmaker.ru.
27. Интернет источник. Филиппович К.В. „Идеологияпостпроцессирования в современных CAD/CAM-системах“ Россия, ООО ЕвразияЛимитед, 2000. www.sapr2000.ru

Приложение А
Исходный текст программного модуля:
program Project2; //Имя программы
uses //Объявление прикрепленных к проектуфайлов
Forms,
Unit1in ‘Unit1.pas’ {Form1},
Unit2in ‘Unit2.pas’ {Form2},
Unit3in ‘Unit3.pas’ {Form3},
Unit4in ‘Unit4.pas’ {Form4},
Unit5in ‘Unit5.pas’ {Form5},
Unit6in ‘Unit6.pas’,
Unit7in ‘Unit7.pas’ {Form7},
Unit8in ‘Unit8.pas’ {Form8},
Unit9in ‘Unit9.pas’ {Form9},
Unit10in ‘Unit10.pas’,
Unit11in ‘Unit11.pas’ {Form11},
Unit12in ‘Unit12.pas’ {Form12},
Unit13in ‘Unit13.pas’ {Form13},
Unit14in ‘Unit14.pas’ {Form14},
Unit15in ‘Unit15.pas’ {Form15},
Unit16in ‘Unit16.pas’ {Form16},
Unit17in ‘Unit17.pas’ {Form17};
var //объявление переменных
s:string; //назначение и присвоение типа переменных
ff:textfile;
{$R *.res} // директива компилятору подключить файл ресурсов
procedure Init_All; //объявление процедуры, относящейся ко всему проекту
begin
N_Ses:=1;
Init_Form2;
Form2.Caption:=’Операция N 1′;
Init_St_Det_Kr;
AssignFile(ff,path+’DAT\Stanok.dat’); //все параметры в проекта сохраняются в файл
reset(ff);
readln(ff,Xst[0]);
readln(ff,Yst[0]);
readln(ff,Zst[0]);
readln(ff,Ast[0]);
readln(ff,Bst[0]);
readln(ff,Cst[0]);
CloseFile(ff);
Init_Zag; //инициализация пользовательских функций
Init_Poly;
Init_Chk_Box;
Init_Traect(1);
Traect(1);
//Profile;
Init_Moving;
//Moving_9484;
Load_Op;
N_St:=0;N_Fin:=N_Pos[N_Act]; N_Last:=0;
Init_Data3(‘DAT\9484.txt’); //чтение данных из файла
Form3.Caption:=’Начапьные установки’;
Fill_Str_Grid1_3; //вставка стандартный элементов Windows
Init_Data4;
Fill_Str_Grid1_4;
Init_BitMap;
Draw_All;
Init_Data5;
Init_Data12;
Init_BitMap12;
Fill_Str_Grid3_12(1);
Fill_Str_Grid1_5;
Init_Data7;
Fill_Str_Grid1_7;
Step:=1;
str(Step:1:3,s);
Form8.Memo1.Text:=s;
Form8.Button17.Caption:=”;
Nst_Act:=0;
Init_Zag;
Init_Data8;
Fill_Str_Grid1_8;
Fill_Str_Grid2_8;
Init_BitMap8;
Nkr_Edit:=1;
Init_BitMap9;
Cooling;
Fill_Str_Grid1_13;
N_Buff:=1;
Put_Buff(N_Buff);
Form3.Visible:=true;
Write_Zag;
Init_Data14;
Init_Data_15;
Init_Data_16;
end;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1); //создание вспомогательных окон
Application.CreateForm(TForm2,Form2);
Application.CreateForm(TForm3,Form3);
Application.CreateForm(TForm4,Form4);
Application.CreateForm(TForm5,Form5);
Application.CreateForm(TForm7,Form7);
Application.CreateForm(TForm8,Form8);
Application.CreateForm(TForm9,Form9);
Application.CreateForm(TForm11,Form11);
Application.CreateForm(TForm12,Form12);
Application.CreateForm(TForm13,Form13);
Application.CreateForm(TForm14,Form14);
Application.CreateForm(TForm15,Form15);
Application.CreateForm(TForm16,Form16);
Application.CreateForm(TForm17,Form17);
Init_All;
Application.Run;
end.
unitUnit1;
interface
uses
Windows,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ComCtrls, Buttons, CheckLst, Grids,Math;
type
TForm1= class(TForm)
Button1:TButton;
Memo1:TMemo;
Button8:TButton;
CheckListBox1:TCheckListBox;
Button2:TButton;
Button3:TButton;
StringGrid1:TStringGrid;
Button4:TButton;
Button5:TButton;
CheckListBox2:TCheckListBox;
Button6:TButton;
Button7:TButton;
Button9:TButton;
CheckListBox3:TCheckListBox;
Button10:TButton;
Button11:TButton;
Button12:TButton;
Button13:TButton;
Button14:TButton;
Button15:TButton;
Button16:TButton;
procedureButton3Click(Sender: TObject); //функции нажатия кнопок
procedureButton2Click(Sender: TObject);
procedureButton8Click(Sender: TObject);
procedureCheckListBox1ClickCheck(Sender: TObject);
procedureStringGrid1KeyPress(Sender: TObject; var Key: Char);
procedureButton4Click(Sender: TObject);
procedureButton5Click(Sender: TObject);
procedureButton6Click(Sender: TObject);
procedureCheckListBox2ClickCheck(Sender: TObject);
procedureButton7Click(Sender: TObject);
procedureButton9Click(Sender: TObject);
procedureCheckListBox3ClickCheck(Sender: TObject);
procedureButton10Click(Sender: TObject);
procedureButton12Click(Sender: TObject);
procedureButton13Click(Sender: TObject);
procedureButton14Click(Sender: TObject);
procedureCheckListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift:TShiftState; X, Y: Integer);
procedureButton15Click(Sender: TObject);
procedureButton16Click(Sender: TObject);
procedureFormClose(Sender: TObject; var Action: TCloseAction);
private
{Private declarations }
public
{Public declarations }
end;
type
XYZ=record
x:real;
y:real;
Z:real;
end;
var
Form1:TForm1;
XYZ_D:XYZ;
X,Y,Z,A,B,C:real;
//start
Type_Tool:integer;
SM_X,SM_Y,SM_Z,POV_A,POV_B,SM_C:array[0..500]of real; //объявление массивов
Dkr,Rkr,Skr,Akr:array [1..11] of real; //для хранения вводимых параметров в сетке
Xkr,Ykr,Zkr,X1,Y1,Z1,dX,dY,dZ,XB1,YB1,ZB1,XB,YB,ZB:real;
{Ddet,}Rdet,Zst_B,Obr_Kon,FPL,Alf1,Alf2,Apodt,Dpodt,Wdet:real;
U_X,U_Y,U_Z1,U_Z2,UB_X,dRdet:array[1..11] of real;
N_Zub:integer;
Rvp,Lz,Lo,Lzt,Arp,Rp:real;
Zp_Kr:array[1..6,1..2] of real;
Np_Kr,Sb_Int:array[1..11] of integer;
FiC,Ftr,Teta,Ltr_P,Ltr_R,LC,X0,Y0,Z0:array[0..11]of real;
XC,YC,ZC,XT,YT,ZT,XD,YD,ZD,dA,dB,dC,V_D:real;
Xst,Yst,Zst,Ast,Bst,Cst:array[0..500] of real;
Xst_Old,Yst_Old,Zst_Old,Ast_Old,Bst_Old,Cst_Old:real;
N_Act,N_St,N_Fin,N_Last,Obr:integer;
FTime:real;
F,Feed:integer;
Nt,N_Pos:array[0..500] of integer; //заполнение массивов
Com:array[0..500] of string[20];
ff1:textfile;
FName,ABS_OTN:string;
Xtr,Ytr,Ztr,X0det,Y0det,Z0det:array[0..10] of real;
dXC1,dYC1,dZC1,dX_PR,dY_PR,dZ_PR,Atr,Btr:real;
Rpr:array[1..10,1..2]of real;
Num_Op,Nex,N_C,N_Op,Nop:integer;
OutMet:array[0..500] of integer;
dFiex,dYex,dZex:array [0..100] of real;
Rex,A0ex,A1ex,Yex,dRex,Hstr,Akan:real;
{D_Auto_Calc,}Ds,Hrk,Xrk:array[1..10] of real;
Gp,Gs:array[1..2,1..10] of real;
//N_Cycl:array[1..10,1..2] of integer;
//Amin,Amax,AStep:array[1..7] of integer;
Num_Check:integer;
Zel,Yel:real;
ddZ,ddY:real;
N_Ses:integer;
Beta,X_P1,Y_P1,X_P2,Y_P2,Ld1,Ld2:real;
XXtr,YYtr,ZZtr:real;
rad:real;
N_Kr:integer;
Nkr,N_Razb,N_Sech,N_Sech_X:array[1..11] of integer;
Z0_Kr,Ust_D,Ust_VD:real;
path:string;
W,Hv,Fit_Init:array[1..11] of real;
Xv,Yv,Zv,Xv1,Yv1,Zv1,XvT,YvT,ZvT,Y_X,Z_X:array[0..50,0..2,0..5,0..100] of real;
N_Tr:integer;
Cut_Kr:array[0..20] of integer;
N_Cut,Vozvr:array[0..500] of integer;
Xkr4,Ykr4:array[1..4,0..4,0..100] of real;
Name_Op:array[1..20] of string;
Viz_Vt,Viz_Dim,Auto_Calc:array[1..20] of integer;
A_Hrk:real;
dy_Ex,dz_Ex:array[0..100] of real;
Comp_Y,Comp_Z:array[0..100] of real;
x_Out,y_Out,z_Out:array[0..100] of real;
Move_Out:integer;
dfex:array[1..11] of real;
Cool:integer;
dotv_Cool,D_Cool,Fi_Cool,Sm_Kan,Fos_Kan,Frad_Kan,A_Cool:real;
Opt_Surf:array[0..3] of string;
N_Opt:array[1..11] of integer;
NC_Act:integer;
X_NC,Y_NC,Z_NC,A_NC,B_NC,C_NC,DX_NC,DY_NC,DZ_NC,DA_NC:array[1..10] of real;
N_Dop_Act:integer;
Adov:array[1..11] of real;
N_Feed:integer;
Napr:array[0..11] of integer;
S_Napr:array[0..11]of string;
Name_Napr:array[1..3] of string;
X_Arc,Y_Arc,Z_Arc:real;
XC1_0,YC1_0,ZC1_0,XC2_0,YC2_0,ZC2_0,XP_0,YP_0,ZP_0,XR_0,YR_0,ZR_0:real;
Nz_Act:array[1..20,1..20] of integer;
Nz_Fi:array[0..20] of real;
X_Dop,Y_Dop,Z_Dop,A_Dop,B_Dop,C_Dop:array[1..10] of real;
FX_Dop,FY_Dop,FZ_Dop,FA_Dop,FB_Dop,FC_Dop:array[1..10] of real;
X_Pr,Y_Pr,Z_Pr,A_Pr,B_Pr,C_Pr:array[1..10,1..3] of real;
FX_Pr,FY_Pr,FZ_Pr,FA_Pr,FB_Pr,FC_Pr:array[1..10,1..3] of real;
X_Otv,Y_Otv,Z_Otv,A_Otv,B_Otv,C_Otv:array[1..10] of real;
FX_Otv,FY_Otv,FZ_Otv,FA_Otv,FB_Otv,FC_Otv:array[1..10] of real;
X_Cst,Y_Cst,Z_Cst,A_Cst,B_Cst,C_Cst:array[1..10] of real;
X_Cfin,Y_Cfin,Z_Cfin,A_Cfin,B_Cfin,C_Cfin:array[1..10] of real;
X_Cex,Y_Cex,Z_Cex,A_Cex,B_Cex,C_Cex:array[1..10] of real;
FX_C,FY_C,FZ_C,FA_C,FB_C,FC_C:array[1..10] of real;
Num_C:array[1..10] of integer;
X_Vix,Y_Vix,Z_Vix,A_Vix,B_Vix,C_Vix:array[1..10] of real;
FX_Vix,FY_Vix,FZ_Vix,FA_Vix,FB_Vix,FC_Vix:array[1..10] of real;
FX_Kor,FY_Kor,FZ_Kor,FA_Kor,FB_Kor,FC_Kor:real;
FX_Ust,FY_Ust,FZ_Ust,FA_Ust,FB_Ust,FC_Ust:real;
PosTime:array[1..10] of real;
Num_Vix:array[1..10] of integer;
AutoCalc:boolean;
AHrk,Av,Ak,Ap,Sp:array[1..2,1..10] of real;
Avt,AHrkt:array[1..10] of real;
Xpx,Ypx:array[1..3,0..50] of real;
N_Proection,N_Profile,XSect:integer;
CrsAlfa:array[1..2] of real;
RminX,RminY:array[1..10] of real;
TwoFi:real;
FiRmin:array[1..2,1..10] of real;
CrsFiBeg,CrsFiEnd:array[1..10,1..2] of real;
CrsXbeg,CrsYbeg,CrsXend,CrsYend,CrsZend:array[1..10,1..2] of real;
x_Pol,y_Pol,z_Pol,R_Pol,Fit_Pol:array[1..10,1..2,0..300] of real;
N_Pol:integer;
NBeg,NEnd:array[1..10,1..2] of integer;
AsectK,RminS:array[1..10] of real;
NsectK,N_PolK:array[1..10] of integer;
N_Auto,Auto_Tang:array[1..10]of integer;
Lzat1,Lzat2,Rzat,Hzat:array[1..10] of real;
ExtdY:array[1..50,1..10] of real;
Xzat_c,Yzat_c:array[1..10,1..50] of real;
CrossSect,Ntr,Ntr1:integer;
Zcont,Ycont:array[0..50,1..2,0..3] of real;
LpS,LpR:real;
N_ZP_PL:integer;
HkZP,HfZP,SfZP,RfZP,FiZp:array[1..10] of real;
SLent,SnLent,ALent,APovL,BPovL,XPovL,YPovL,ZPovL:array[1..10] of real;
N_Sect:boolean;
Edit_Op:integer;
N_OpGr,N_Link:array[1..10] of integer;
X_ZP_PL,Y_ZP_PL,dY_ZP_PL,A_ZP_PL:array[1..10] of real;
Z_ZP_PL:array[1..2,1..10] of real;
Nop_ZP_PL:integer;
GlDv:array[1..6,1..10] of integer;
fiAmax:real;
procedureInit_Chk_Box; //описание процедур построцессора
procedureInit_St_Det_Kr;
procedureInit_Moving;
procedureZatilok;
ProcedureInit_Traect(i:integer);
procedureTraect(N_Act:integer);
procedureMemo_Out;
procedureW_Str(com:string);
functionw_r(val:real;f1,f2:integer):string;
procedureG90;
procedureG91;
procedureG01;
procedureProfile;
procedureLoad_Op_All;
procedureLoad_Op;
procedureFix_Det(V_D,UB_X,Ddet:real);
procedureMake_Krug(N_kr,m:integer);
procedureUpDate_ChkBox2;
procedureMake_Spind;
procedureInit_All;
implementation
usesUnit2,Unit3,Unit4,Unit5,Unit6,Unit10,Unit14, Unit8,Unit13,Unit12,
Unit7,Unit9,Unit15,Unit16,Unit17;
{$R*.dfm} //процедура реализации
var
Str_Rel:array[0..500] of string;
ff:text;
procedureInit_All;
var
s:string;
begin
path:=GetCurrentDir+’\’;
N_Ses:=1;
Init_Form2;
Form2.Caption:=’Операция N 1′;
Init_St_Det_Kr;
Init_Zag;
Init_Poly;
Init_Chk_Box;
Init_Traect(1);
Traect(1);
//Profile;
Init_Moving;
//Moving_9484;
Load_Op;
N_St:=0;N_Fin:=N_Pos[N_Act]; N_Last:=0;
//Init_Data3(‘DAT\9484.txt’);
Form3.Caption:=’Начальные установки’;
Fill_Str_Grid1_3;
Init_Data4;
Fill_Str_Grid1_4;
Init_BitMap;
Draw_All;
Init_Data5;
Init_Data12;
Init_BitMap12;
Fill_Str_Grid3_12(1);
Fill_Str_Grid1_5;
Init_Data7;
Fill_Str_Grid1_7;
Step:=1;
//str(Step:1:3,s);
Form8.Memo1.Text:=s;
Form8.Button17.Caption:=”;
Nst_Act:=0;
Init_Zag;
Init_Data8;
Fill_Str_Grid1_8;
Fill_Str_Grid2_8;
Init_BitMap8;
//Nkr_Edit:=1;
Init_BitMap9;
Cooling;
Fill_Str_Grid1_13;
N_Buff:=1;
Put_Buff(N_Buff);
Form3.Visible:=true;
Write_Zag;
Init_Data14;
Init_Data_15;
Init_Data_16;
end;
procedureW_Str(com:string);
begin
Form1.Memo1.Lines.Add(com);
end;
functionw_r(val:real;f1,f2:integer):string;
var
s:string;
begin
str(val:f1:f2,s);
w_r:=s;
end;
functionw_i(val:integer;f1:integer):string;
var
s:string;
begin
str(val:f1,s);
w_i:=s;
end;
procedureMemo_Out;
var
s:string;
i,j:integer;
TotTime:real;
begin
Form1.Memo1.Clear;
Form1.Memo1.Visible:=false;
str(N_Pos[N_Act]:2,s);
W_Str(‘Кол-вопозиций:0-‘+s);
fori:=0 to N_Pos[N_Act] do
begin
W_Str(”);
ifi=0 then s:=”;
ifi>0 then s:=’G01 ‘+Str_Rel[i];
W_Str(‘Поз.’+w_i(i,2)+’:’+s);
W_Str(‘Абс Отн’);
W_Str(‘X=’+w_r(Xst[i],9,3)+”+w_r(SM_X[i],9,3));
W_Str(‘Y=’+w_r(Yst[i],9,3)+”+w_r(SM_Y[i],9,3));
W_Str(‘Z=’+w_r(Zst[i],9,3)+”+w_r(SM_Z[i],9,3));
W_Str(‘A=’+w_r(Ast[i],9,3)+”+w_r(POV_A[i],9,3));
W_Str(‘B=’+w_r(Bst[i],9,3)+”+w_r(POV_B[i],9,3));
W_Str(‘C=’+w_r(Cst[i],9,3)+”+w_r(SM_C[i],9,3));
end;
W_Str(‘**********************’);
str(N_Act:1,s);
W_Str(‘Время оп.’+s+’:’+w_i(trunc(PosTime[N_Act]),1)+””+
w_r(frac(PosTime[N_Act])*60,2,0)+’»’);
TotTime:=0;
forj:=1 to N_op do
TotTime:=TotTime+PosTime[j];
W_Str(‘Время общее:’+w_r(TotTime,2,3));
Form1.Memo1.Visible:=true;
end;
procedureMove(Os:char;len:real;part_name:string); //создание структуры кадра
begin
writeln(ff1,'(position_pa:part_assembly :start ‘,'”‘,part_name,'” ‘,
‘:select_done:translate :dir_len :’,Os,’ :len ‘,len:8:6,’ :done ‘,
‘:pos_dynamic:dynamo-done)’);
writeln(ff1,'(redraw_vp«vport1»)’);
end;
procedureRotate(Os:char;angle:real;part_name:string);
begin
writeln(ff1,'(position_pa:part_assembly :start ‘,'”‘,part_name,'” ‘,
‘:select_done:rotate :axis :’,Os,’ :rotation_angle ‘,angle:8:6,’ :done ‘,
‘:pos_dynamic:dynamo-done)’);
writeln(ff1,'(redraw_vp«vport1»)’);
end;
procedureXX(len:real);
begin
Move(‘x’,len,’/CIP6/N_S’);
end;
procedureYY(len:real);
begin
Move(‘y’,len,’/CIP6/Krug’);
end;
procedureZZ(len:real);
begin
Move(‘z’,len,’/CIP6/Krug’);
end;
procedureAA(ang:real);
begin
writeln(ff1,'(current_wp”/CIP6/N_S/V_S/C_Sys/Det/w_A”)’);
Rotate(‘w’,ang,’/CIP6/N_S/V_S/C_Sys/Det’);
end;
procedureBB(ang:real);
begin
writeln(ff1,'(current_wp”/CIP6/N_S/V_S/w_B”)’);
Rotate(‘w’,ang,’/CIP6/N_S/V_S’);
end;
procedureCC(len:real);
begin
writeln(ff1,'(current_wp”/CIP6/N_S/V_S/w_C”)’);
Move(‘w’,len,’/CIP6/N_S/V_S/C_Sys’);
end;
procedureAddToFile(Fn:string;N_Pos:integer);
begin
AssignFile(ff1,Fn); //запись файла связи с 3D пакетом
Append(ff1);
Nt[N_Pos]:=F;
writeln(ff1,'(dotimes( n ‘,Nt[N_Pos]:2,’)’);
ifabs(SM_X[N_Pos])>=0.001 then
begin
XX(SM_X[N_Pos]/Nt[N_Pos]);
Xst[N_Pos]:=Xst[N_Pos-1]+SM_X[N_Pos];
end;
ifabs(SM_Y[N_Pos])>=0.001 then
begin
YY(SM_Y[N_Pos]/Nt[N_Pos]);
Yst[N_Pos]:=Yst[N_Pos-1]+SM_Y[N_Pos];
end;
ifabs(SM_Z[N_Pos])>=0.001 then
begin
ZZ(-SM_Z[N_Pos]/Nt[N_Pos]);
Zst[N_Pos]:=Zst[N_Pos-1]+SM_Z[N_Pos];
end;
ifabs(POV_B[N_Pos])>=0.001 then
begin
BB(POV_B[N_Pos]/Nt[N_Pos]);
Bst[N_Pos]:=Bst[N_Pos-1]+POV_B[N_Pos];
end;
ifabs(Pov_A[N_Pos])>=0.001 then
begin
AA(POV_A[N_Pos]/Nt[N_Pos]);
Ast[N_Pos]:=Ast[N_Pos-1]+POV_A[N_Pos];
end;
ifabs(SM_C[N_Pos])>=0.001 then
begin
CC(SM_C[N_Pos]/Nt[N_Pos]);
Cst[N_Pos]:=Cst[N_Pos-1]+SM_C[N_Pos];
end;
writeln(ff1,’)’);
Flush(ff1);
CloseFile(ff1);
end;
procedureG90;
begin
ABS_OTN:=’G90′;
X:=Xst[N_Pos[N_Act]];
Y:=Yst[N_Pos[N_Act]];
Z:=Zst[N_Pos[N_Act]];
A:=Ast[N_Pos[N_Act]];
B:=Bst[N_Pos[N_Act]];
C:=Cst[N_Pos[N_Act]];
end;
procedureG91;
begin
ABS_OTN:=’G91′;
X:=0;Y:=0; Z:=0;
A:=0;B:=0; C:=0;
end;
procedureG01;
var
ss,ss1:string;
begin
inc(N_Pos[N_Act]);
PosTime[N_Act]:=PosTime[N_Act]+abs(FTime);
FTime:=0;
OutMet[N_Pos[N_Act]]:=Obr;
Obr:=0;
Str_Rel[N_Pos[N_Act]]:=ABS_OTN;
ifpos(‘G91’,ABS_OTN)>0 then
begin
SM_X[N_Pos[N_Act]]:=X;
SM_Y[N_Pos[N_Act]]:=Y;
SM_Z[N_Pos[N_Act]]:=Z;
POV_B[N_Pos[N_Act]]:=B;
POV_A[N_Pos[N_Act]]:=A;
SM_C[N_Pos[N_Act]]:=C;
end;
ifpos(‘G90′,ABS_OTN)>0 then
begin
SM_X[N_Pos[N_Act]]:=X-Xst[N_Pos[N_Act]-1];
SM_Y[N_Pos[N_Act]]:=Y-Yst[N_Pos[N_Act]-1];
SM_Z[N_Pos[N_Act]]:=Z-Zst[N_Pos[N_Act]-1];
POV_B[N_Pos[N_Act]]:=B-Bst[N_Pos[N_Act]-1];
POV_A[N_Pos[N_Act]]:=A-Ast[N_Pos[N_Act]-1];
SM_C[N_Pos[N_Act]]:=C-Cst[N_Pos[N_Act]-1];
end;
Xst[N_Pos[N_Act]]:=Xst[N_Pos[N_Act]-1];
Yst[N_Pos[N_Act]]:=Yst[N_Pos[N_Act]-1];
Zst[N_Pos[N_Act]]:=Zst[N_Pos[N_Act]-1];
Ast[N_Pos[N_Act]]:=Ast[N_Pos[N_Act]-1];
Bst[N_Pos[N_Act]]:=Bst[N_Pos[N_Act]-1];
Cst[N_Pos[N_Act]]:=Cst[N_Pos[N_Act]-1];
str(N_Pos[N_Act]:1,ss);
ifNC_ACt=0 then
begin
str(N_Pos[N_Act]:1,ss1);
Form1.CheckListBox1.Items.Add(ss+’:’+Com[N_Pos[N_Act]]);
ifN_Pos[N_Act]>1 then
Form1.CheckListBox1.State[N_Pos[N_Act]-1]:=cbUnChecked;
Form1.CheckListBox1.State[N_Pos[N_Act]]:=cbChecked;
AddToFile(Path+’LSP\Hod.lsp’,N_Pos[N_Act]);
end;
end;
procedureProfile;
var
RF:real;
ff:textfile;
X3,Y3,Z3,X31,Y31,Z31,X32,Y32,Z32,Mu_YZ,Mu_YZ1,Mu_YX,Mu_XZ:real;
Xin,Yin,Zin,Xex,Yex,Zex,Muin,Muex:real;
Xin1,Yin1,Zin1,Xex1,Yex1,Zex1,Muin1,Muex1:real;
Ang,Rs,Rd,Ksi,Ksi1,Xc,Yc,Zc1,Xc1,Yc1,F0,F1,Ficx:real;
N_Uch,N_Point,Np1,i,j,N_Half:integer;
dTeta,R_Limit1,R_Limit2,xL1,yL1,zL1,xL2,yL2,zL2,xL3,yL3,zL3,
fex,Alf1,Alf2,Alf3,L1,L2,L3,Step:real;
xL1f,yL1f,zL1f,xL2f,yL2f,zL2f,xL3f,yL3f,zL3f:real;
N_Break:array[1..2,0..4,0..100] of integer;
N_SpL:integer;
//LtrR,LtrP:extended;
fiA{,fiAmax},Vfi,fit_max,dX,dY,dZ:real;
Xv03,Yv03,Zv03:real;
K_Razb:real;
Fex_Min,Fex_Max:array[1..3] of real;
fit0,{fit_st,fit_fin,}dS_Min:real;
Empt:array[1..12] of integer;
a1_p,an_p,Sn_p,r_p,Ltr_Pfin:real;
NSect:integer;
procedureSil(N_Tr:integer);
var
i:integer;
ff1:textfile;
fixX,fixY,fixZ:real;
fixX1,fixY1,fixZ1:real;
fixX2,fixY2,fixZ2:real;
procedureVint(N_Tr,N_Half,N_Uch,j:integer);
begin
XvT[N_Tr,N_Half,N_Uch,j]:=Xv[N_Tr,N_Half,N_Uch,j];
YvT[N_Tr,N_Half,N_Uch,j]:=Yv[N_Tr,N_Half,N_Uch,j]*cos({FiA}0)+
Zv[N_Tr,N_Half,N_Uch,j]*sin({FiA}0);
ZvT[N_Tr,N_Half,N_Uch,j]:=-Yv[N_Tr,N_Half,N_Uch,j]*sin({FiA}0)+
Zv[N_Tr,N_Half,N_Uch,j]*cos({FiA}0);
fixX:=XvT[N_Tr,N_Half,N_Uch,j];
fixY:=YvT[N_Tr,N_Half,N_Uch,j];
fixZ:=ZvT[N_Tr,N_Half,N_Uch,j];
writeln(ff1,XvT[N_Tr,N_Half,N_Uch,j]:8:5,’,’,
YvT[N_Tr,N_Half,N_Uch,j]:1:5,’,’,
ZvT[N_Tr,N_Half,N_Uch,j]:1:5);
end;
procedureCreate_Bspline(N_Tr,N_Sp,N_Uch,N_Half:integer);
var
j:integer;
x3,y3,z3:real;
begin
inc(N_Spl);
caseN_Sp of
begin
writeln(ff1,'(create_curve_on_surface:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:start:selected_part “/a1/Krug” :face_3d :by_feature ‘,
‘:full_name:start_name “/a1/Krug” :feature «feat1» ‘,
‘:end_name:select_done ‘);
forj:=0 to N_Razb[N_Act] do
if (N_Break[N_Half,N_Uch,j]=0)then
begin
Empt[N_Sp]:=1;
Vint(N_Tr,N_Half,N_Uch,j);
if(N_Spl=4) and (j=N_Razb[N_Act]) then
Vint(N_Tr,1,1,j);
if(N_Spl=6) and (j=N_Razb[N_Act]) then
Vint(N_Tr,1,3,j);
end;
writeln(ff1,’)’);
writeln(ff1,'(remove_from_vp_drawlist«vport1» :with-wp ‘,
‘”/Sil_’,N_Tr:1,’.’,N_Spl:1,'”)’);
end;
begin
{Vint(N_Tr,1,1,N_Razb[N_Act]);
fixX1:=fixX;fixY1:=fixY; fixZ1:=fixZ;
Vint(N_Tr,1,3,N_Razb[N_Act]);
fixX2:=fixX;fixY2:=fixY; fixZ2:=fixZ;
x3:=(fixX1+fixX2)/2;
z3:=(fixZ1+fixZ2)/2;
y3:=(fixY1+fixY2)/2+Ddet;
writeln(ff1,'(create_bspline:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:input_mode:control ‘);
Vint(N_Tr,1,1,N_Razb[N_Act]);
writeln(ff1,x3:8:8,’,’,y3:1:8,’,’,z3:1:8);
Vint(N_Tr,1,3,N_Razb[N_Act]);}
writeln(ff1,'(create_bspline:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:start_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,1:1,'” :edge_3d :by_vertex_3d’);
Empt[N_Sp]:=1;
Vint(N_Tr,1,1,N_Razb[N_Act]);
writeln(ff1,’:select_done’);
Vint(N_Tr,1,1,N_Razb[N_Act]);
writeln(ff1,’:tangent0.2 :accept ‘,
‘:end_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,3:1,'” :edge_3d :by_vertex_3d’);
Vint(N_Tr,1,3,N_Razb[N_Act]);
writeln(ff1,’:select_done’);
Vint(N_Tr,1,3,N_Razb[N_Act]);
writeln(ff1,’:tangent0.2 :accept ‘);
writeln(ff1,’)’);
writeln(ff1,'(remove_from_vp_drawlist«vport1» :with-wp ‘,
‘”/Sil_’,N_Tr:1,’.’,N_Spl:1,'”)’);
end;
begin
writeln(ff1,'(create_bspline:wire_part “/Sil_’,N_Tr:1,’.’,N_Spl:1,'” ‘,
‘:start_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,5:1,'” :edge_3d :by_vertex_3d ‘);
Empt[N_Sp]:=1;
Vint(N_Tr,2,1,N_Razb[N_Act]);
fixX1:=fixX;fixY1:=fixY; fixZ1:=fixZ;
writeln(ff1,’:select_done’);
Vint(N_Tr,2,1,N_Razb[N_Act]);
writeln(ff1,’:accept’,
‘:end_condition:edge :cv_edge ‘,
‘:start:selected_part “/Sil_’,N_Tr:1,’.’,7:1,'” :edge_3d :by_vertex_3d ‘);
Vint(N_Tr,2,3,N_Razb[N_Act]);
fixX2:=fixX;fixY2:=fixY; fixZ2:=fixZ;
writeln(ff1,’:select_done’);
Vint(N_Tr,2,3,N_Razb[N_Act]);
writeln(ff1,’:accept)’);
writeln(ff1,'(modify_bspline:curve :start :selected_part “/Sil_’,N_Tr:1,’.8″ ‘,
‘:all_3d:select_done ‘,
‘:insert_point’,fixX1:8:5,’,’,
fixY1:1:5,’,’,
fixZ1:1:5,”,
(fixX1+fixX2)/2:8:5,’,’,
(fixY1+fixY2)/2:1:5,’,’,
(fixZ1+fixZ2)/2:1:5,”);
writeln(ff1,’)’);
end;
end;
end;
begin
fori:=1 to 10 do
Empt[i]:=0;
AssignFile(ff1,Path+’LSP\Sil.lsp’);
Append(ff1);
N_Spl:=0;
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:x ‘,dX:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:y ‘,dY:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:z ‘,dZ:8:5,’)’);
{if N_Tr=N_Sech[N_Act] then
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug.1” :select_done ‘,
‘:rotate:axis 😡 :rotation_angle ‘,-fiA/pi*180:8:5,’ :done :translate 😡 ‘,
-dX:8:5,’)’);
}
{if N_Tr=N_Sech[N_Act] then
begin
writeln(ff1,'(create_multiple_pa:copy :source “/a1/surf1” :owner “/” )’);
writeln(ff1,'(create_multiple_pa:copy :source “/a1/surf2” :owner “/” )’);
writeln(ff1,'(create_multiple_pa:copy :source “/a1/surf3” :owner “/” )’);
end;}
Create_Bspline(N_Tr,1,1,1);
Create_Bspline(N_Tr,2,2,1);
Create_Bspline(N_Tr,3,3,1);
Create_Bspline(N_Tr,4,1,3);
fori:=1 to N_Spl do
writeln(ff1,'(position_pa:part_assembly :start “/Sil_’,N_Tr:1,’.’,i:1,'” ‘,
‘:select_done’,
‘:rotate:axis 😡 :rotation_angle ‘,(fiAmax-fiA)/pi*180:8:5,’)’);
ifN_Tr
begin
//writeln(ff1,'(position_pa :part_assembly :start “/a1/Krug” :select_done’,
//’:rotate :axis 😡 :rotation_angle ‘,fiA/pi*180:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:x ‘,-dX:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:y ‘,-dY:8:5,’)’);
writeln(ff1,'(position_pa:part_assembly :start “/a1/Krug” :select_done ‘,
‘:translate:z ‘,-dZ:8:5,’)’);
end;
//W_Str1(‘N_spl=’+w_i(N_Spl,1));
Flush(ff1);
CloseFile(ff1);
end;

Приложение Б
Параметры проекта Delphi:
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J-
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE«c:\programfiles\borland\delphi7\Projects\Bpl»
-LN«c:\programfiles\borland\delphi7\Projects\Bpl»
-w-UNSAFE_TYPE
-w-UNSAFE_CODE
-w-UNSAFE_CAST
[FileVersion]
Version=7.0//версия файла
[Compiler]
A=8 //начальные параметры
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=0
K=0
L=1
M=0
N=1
O=1
P=1
Q=1
R=1
S=0
T=0
U=0
V=1
W=1
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
NamespacePrefix=
SymbolDeprecated=1
SymbolLibrary=1
SymbolPlatform=1
UnitLibrary=1
UnitPlatform=1
UnitDeprecated=1
HResultCompat=1
HidingMember=1
HiddenVirtual=1
Garbage=1
BoundsError=1
ZeroNilCompat=1
StringConstTruncated=1
ForLoopVarVarPar=1
TypedConstVarPar=1
AsgToTypedConst=1
CaseLabelRange=1
ForVariable=1
ConstructingAbstract=1
ComparisonFalse=1
ComparisonTrue=1
ComparingSignedUnsigned=1
CombiningSignedUnsigned=1
UnsupportedConstruct=1
FileOpen=1
FileOpenUnitSrc=1
BadGlobalSymbol=1
DuplicateConstructorDestructor=1
InvalidDirective=1
PackageNoLink=1
PackageThreadVar=1
ImplicitImport=1
HPPEMITIgnored=1
NoRetVal=1
UseBeforeDef=1
ForLoopVarUndef=1
UnitNameMismatch=1
NoCFGFileFound=1
MessageDirective=1
ImplicitVariants=1
UnicodeToLocale=1
LocaleToUnicode=1
ImagebaseMultiple=1
SuspiciousTypecast=1
PrivatePropAccessor=1
UnsafeType=1
UnsafeCode=1
UnsafeCast=1
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
[Directories]//параметры проекта
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;teeqr;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;inetdb;inet;nmfast;vclie;dbexpress;dbxcds;indy;dclOffice2k
Conditionals=
DebugSourceDirs=
UsePackages=0
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
[Language]
ActiveLang=
ProjectLang=
RootDir=
[VersionInfo]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1049
CodePage=1251
[VersionInfo Keys] //информация о проекте
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlUnitAliases]
Count=1
Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;

Приложение B
Текст настроечного файла программного модуля:
3
2
5.260 5.000 105.0001.000 1.250
0.700 0.900 7.4100.350 120.000
10.000 25.000 0.90030.000 0.200
85.000 1.300 50.00071.000 0.060 3
3
99.86600 9.7060090.00000
0.45000 0.2000050.78000
-58.7130053.29000 -196.78000 -180.36000
125.06600 4.0560090.00000
1.95000 1.9500050.73000
-71.2630065.89000 -147.21000 -136.44000
100.16600 9.9730090.00000
0.10000 1.1000050.69000
-58.7730053.44000 -105.12700 -88.44000
130.0000088.00000 6.71400
6
Канавка
0.000 0.0000040.00000 53.50000 1 1 0.00000 0.71966 0.85300 -0.2000 99999999.000 0 2.000 2 0.0000 1 1 1 1 20 0.0100 1
0.000 0.000 0.0000.000 0.000 0.000
Затылок
0.000 -0.0171940.00000 47.00000 1 1 0.00000 5.14988 -4.85300 -1.0000 999999.000 0 1.000 2 0.0000 1 1 1 1 20 0.0100 1
0.000 0.000 0.000421.303 0.000 0.000
1 задний угол
58.525 0.0000080.00000 80.00000 3 2 0.25000 -30.00000 0.00000 0.5000 999999.000 0 2.000 2 0.0000 1 1 1 1 20 0.0100 1
0.000 0.000 0.000-70.110 0.000 0.000
2 задний угол
51.710 0.0000080.00000 80.00000 3 2 -0.65000 -30.00000 -1.26552 0.5000 999999.000 0 2.000 2 0.0000 0 1 1 1 20 0.0100 1
0.000 0.000 0.000-46.533 0.000 0.000
Подточка
30.00040.00000 25.00000 24.00000 2 1 1.00000 -0.80000 -0.24500 -9.0000 999999.000 0 2.0002 0.000 0 0 1 1 0 20 0.0100 1
0.000 0.000 0.000-45.000 0.000 0.000
Канавка подСОЖ
14.76779.65473 25.00000 20.00000 3 2 -3.21700 2.11332 -1.94988 0.5000 999999.000 0 2.0002 0.000 0 0 0 0 0 20 0.0100 1
0.000 0.000 0.0000.000 0.000 0.000
4
0.000 0.00090.000 0.000
10.520 0.000-0.016 0.000
10.477 77.00045.246 0.000
12.000 77.7550.000 0.000
12.000 130.0000.000 0.000
39.000 19.00059.000 40.000
1 1.900 6.00045.000 1.000 15.000 45.000
1
1
1
1
0.000
180.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.000-15.000 0.000 0.000
0.000 0.000 0.000-7.500 0.000 0.000
0 0 0 20 0 0
2
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000421.303 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.000-50.512 0.000 0.000
0.000 -0.240 0.000-25.256 0.000 0.000
0 20 0 20 0 0
7
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000-70.110 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000-46.533 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.000-45.000 0.000 0.000
0 0 0 20 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 20 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
0.000 0.000 0.0000.000 0.000 0.000
0 0 0 0 0 0
1 1 1 1
15.00000 2
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.100 0.1007.500 0.500
1 2 2 1
50.51161 7
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.700 0.9007.419 0.350
1 3 3 1
0.00000 1
0.000 0.0005.260 0.000 30.000
0.000 10.00000
0.100 0.1007.500 0.500
1 3 3 1
0.00000 1
0.500 2.5002.475 2.550 30.000
4.000 25.00000
0.100 0.1007.500 0.500
0 0 5 1
0.00000 1
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.100 0.1007.500 0.500
0 0 6 1
0.00000 1
0.500 2.5002.475 2.550 30.000
0.000 0.00000
0.100 0.1007.500 0.500

Приложение Г
Текст файлов связи с пакетом 3Dмоделирования:
(create_workplane:new)
(bspline_int
0.00000,-49.48300:tangent -90.00000 //точки сплайна
0.00139,-49.51831:tangent -85.50000
0.00554,-49.55340:tangent -81.00000
0.01243,-49.58805:tangent -76.50000
0.02202,-49.62206:tangent -72.00000
0.03425,-49.65521:tangent -67.50000
0.04905,-49.68730:tangent -63.00000
0.06631,-49.71812:tangent -58.50000
0.08594,-49.74750:tangent -54.00000
0.10782,-49.77525:tangent -49.50000
0.13180,-49.80120:tangent -45.00000
0.15775,-49.82518:tangent -40.50000
0.18550,-49.84706:tangent -36.00000
0.21488,-49.86669:tangent -31.50000
0.24570,-49.88395:tangent -27.00000
0.27779,-49.89875:tangent -22.50000
0.31094,-49.91098:tangent -18.00000
0.34495,-49.92057:tangent -13.50000
0.37960,-49.92746:tangent -9.00000
0.41469,-49.93161:tangent -4.50000
0.45000,-49.93300:tangent 0.00000
0.90280,-49.93300:tangent 0.00000
1.35560,-49.93300:tangent 0.00000
1.80840,-49.93300:tangent 0.00000
2.26120,-49.93300:tangent 0.00000
2.71400,-49.93300:tangent 0.00000
3.16680,-49.93300:tangent 0.00000
3.61960,-49.93300:tangent 0.00000
4.07240,-49.93300:tangent 0.00000
4.52520,-49.93300:tangent 0.00000
4.97800,-49.93300:tangent 0.00000
5.43080,-49.93300:tangent 0.00000
5.88360,-49.93300:tangent 0.00000
6.33640,-49.93300:tangent 0.00000
6.78920,-49.93300:tangent 0.00000
7.24200,-49.93300:tangent 0.00000
7.69480,-49.93300:tangent 0.00000
8.14760,-49.93300:tangent 0.00000
8.60040,-49.93300:tangent 0.00000
9.05320,-49.93300:tangent 0.00000
9.50600,-49.93300:tangent 0.00000
9.52169,-49.93238:tangent 4.50000
9.53729,-49.93054:tangent 9.00000
9.55269,-49.92747:tangent 13.50000
9.56780,-49.92321:tangent 18.00000
9.58254,-49.91778:tangent 22.50000
9.59680,-49.91120:tangent 27.00000
9.61050,-49.90353:tangent 31.50000
9.62356,-49.89480:tangent 36.00000
9.63589,-49.88508:tangent 40.50000
9.64742,-49.87442:tangent 45.00000
9.65808,-49.86289:tangent 49.50000
9.66780,-49.85056:tangent 54.00000
9.67653,-49.83750:tangent 58.50000
9.68420,-49.82380:tangent 63.00000
9.69078,-49.80954:tangent 67.50000
9.69621,-49.79480:tangent 72.00000
9.70047,-49.77969:tangent 76.50000
9.70354,-49.76429:tangent 81.00000
9.70538,-49.74869:tangent 85.50000
9.70600,-49.73300:tangent 90.00000
)
(polygon0.00000,-49.48300 0.00000,0.00000 9.70600,0.00000 9.70600,-49.73300)
(rotate_2d:select :start :all_2d :select_done :angle -90.0)
(turn :sel_part “/Krug” :keep_wp :yes :keep_profile :no :axis :v:rotation_angle 360.0)
(define_feature:selection :start :selected_part “/Krug” :spline_sf :all_3d:select_done)
(create_assembly)
(change_pa_owner:new_owner “/a1” :parts_assemblies :start “/Krug”:select_done)
(position_pa:part_assembly :start “/a1” :select_done :rotate :axis :x:rotation_angle -90.0 :done :translate :y 50.65266000 :rotate :axis :y:rotation_angle -0.00000000)
(position_pa:part_assembly :start “/a1” :select_done :translate 😡 40.00000000)
(position_pa:part_assembly :start “/a1” :select_done :translate :z 0.85300000)
(position_pa:part_assembly “/a1/Krug” :rotate :axis :two_pta40.00000000,0.71966000,0.85300000 40.00000000,50.65266000,0.85300000:rotation_angle -0.20000000)
(create_multiple_pa:copy :source “/a1/Krug”)
(remove_from_vp_drawlist«vport1» :with-wp “/a1/Krug” )
(remove_from_vp_drawlist«vport1» :with-wp “/a1/Krug.1″ )
( delete_3d”/w1”)

Приложение Д
Текст управляющей программы ЧПУ:
%_N_CIP6\Emul\Bdd\9013_MPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
DEFINT OP1,OP2,OP3,OP4,OP5,OP6
OP1=1
OP2=1
OP3=1
OP4=1
OP5=1
OP6=1
IFOP1==1
Op_1
ENDIF
IFOP2==1
Op_2
ENDIF
IFOP3==1
Op_3
ENDIF
IFOP4==1
Op_4
ENDIF
IFOP5==1
Op_5
ENDIF
IFOP6==1
Op_6
ENDIF
M10M19
M02
%_N_NACH_UST_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
G01G90 Y176.080 F5000 G09
G01G90 A=0 F5000 G09
G01G90 B=0 F5000 G09
G01G90 Z=0 F5000 G09
G01G90 X-496.007 F5000 G09
G01G90 C=0 F5000 G09
M17
%_N_Op_1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
;=======Канавка =======
EXTERNGLAV_DVIG_Op1(INT,REAL)
EXTERNOTVOD_Op1(INT)
EXTERNPRIPUSK_Op1(INT,INT)
EXTERNCYCLOBR_Op1(INT)
EXTERNVIX_Op1
DEFREAL X_KOR,Z_KOR,B_KOR,A_KOR,Y_KOR,C_KOR
DEFREAL NZ_FI[3],FPR[4]
DEFINT NZ_ACT[3]
DEFINT I_1,I_2
R306=0
MSG(“”)
NACH_UST
Коррекция:
X_KOR=0;
Z_KOR=0;
B_KOR=0;
A_KOR=0;
Y_KOR=0;
C_KOR=0;
Подвод:
DISPOUT_Op1
G01G91 X= 405.225+X_KOR G09 F=5000
DISPOUT_Op1
G01G91 Z=-193.959+Z_KOR G09 F=5000
DISPOUT_Op1
G01G91 B= 0.200+B_KOR G09 F=5000
DISPOUT_Op1
G01G91 Y=-125.427+Y_KOR G09 F=5000
DISPOUT_Op1
G01G91 A= -0.000+A_KOR G09 F=5000
DISPOUT_Op1
G01G91 C= 0.000+C_KOR G09 F=5000
Перемещениягл. движения:
R298= 93.499;X
R299= 0.000;Y
R300= -0.326;Z
R301= 0.000;A
; ПОЛОЖЕНИЕЗУБЬЕВ
; У Г О Л Акт.зуб
NZ_FI[1]= 0.000NZ_ACT[1]=1
NZ_FI[2]=180.000 NZ_ACT[2]=1
; П Р И П У СК И
; 1проход Подача2проход Подача 3проход Подача
R213=0.000R231= 20 R219=0.000 R237= 0 R225=0.000 R243= 0 ;Y
FPR[1]=R231
FPR[2]=R237
FPR[3]=R243
; ЦИКЛИЧЕСКАЯОБРАБОТКА
; СТАРТ Экстрем.ФИНИШ Подача
R264= 0.000 R270=-7.500 R276= -15.000 R282= 20 ;A
R260=2; Кол-воциклов обработки
; О Б Р А Б ОТ К А
R306=0
FORI_1=1 TO 3
R307=0
IFFPR[I_1]>0
PRIPUSK_Op1(I_1,1)
FORI_2=1 TO 2
DISPOUT_Op1
G01G91 A=NZ_FI[I_2] F=5000
IFNZ_ACT[I_2]==1
R308=I_2
CYCLOBR_Op1(R260,FPR[I_1])
ENDIF
ENDFOR
DISPOUT_Op1
G01G91 A=360-NZ_FI[2] F=5000
PRIPUSK_Op1(I_1,-1)
ENDIF
ENDFOR
M17
%_N_GLAV_DVIG_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCGLAV_DVIG_Op1(INT NAPR,REAL FGLDV)
DISPOUT_OP1
G01G91 X=NAPR*R298 Z=NAPR*R300 F=FGLDV
M17
%_N_PRIPUSK_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCPRIPUSK_Op1(INT NUM_PR,INT NAPR_PR, REAL FPR)
IF(NUM_PR==1) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op1
G01G91 Y=NAPR_PR*R213 F=200
ENDIF
IF(NUM_PR==2) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op1
G01G91 Y=NAPR_PR*R219 F=200
ENDIF
IF(NUM_PR==3) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op1
G01G91 Y=NAPR_PR*R225 F=200
ENDIF
M17
%_N_OTVOD_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCOTVOD_Op1(INT NAPR_OTV)
M17
%_N_CYCLOBR_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCCYCLOBR_Op1(INT N_CYCL,REAL FPR)
EXTERNGLAV_DVIG_Op1(INT,REAL)
EXTERNOTVOD_Op1(INT)
DEFINT I_1,I_2
DEFREAL STEP1,STEP2
FORI_1=1 TO N_CYCL
R309=I_1
IFR282>0
IFN_CYCL==2
G01G91 A=(I_1-1)*(R276-R264)
ENDIF
IFN_CYCL>2
STEP1=2*(R270-R264)/(N_CYCL-1)
STEP2=2*(R276-R270)/(N_CYCL-1)
I_2=ROUND((N_CYCL-1)/2)
IFI_1
IFI_1>1
G01G91 A=STEP1
ENDIF
ENDIF
IFI_1>I_2
G01G91 A=STEP2
ENDIF
ENDIF
ENDIF
GLAV_DVIG_Op1(1,FPR)
OTVOD_Op1(1)
GLAV_DVIG_Op1(-1,500)
OTVOD_Op1(-1)
ENDFOR
IFR282>0
DISPOUT_OP1
G01G91 A=-(R276-R264) F=R282
ENDIF
M17
%_N_DISPOUT_Op1_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
R306=R306+1
MSG(” Поз. N ”
M17
%_N_Op_2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
;=======Затылок =======
EXTERNGLAV_DVIG_Op2(INT,REAL)
EXTERNOTVOD_Op2(INT)
EXTERNPRIPUSK_Op2(INT,INT)
EXTERNCYCLOBR_Op2(INT)
EXTERNVIX_Op2
DEFREAL X_KOR,Z_KOR,B_KOR,A_KOR,Y_KOR,C_KOR
DEFREAL NZ_FI[3],FPR[4]
DEFINT NZ_ACT[3]
DEFINT I_1,I_2
R306=0
MSG(“”)
NACH_UST
Коррекция:
X_KOR=0;
Z_KOR=0;
B_KOR=0;
A_KOR=0;
Y_KOR=0;
C_KOR=0;
Подвод:
DISPOUT_Op2
G01G91 X= 405.341+X_KOR G09 F=5000
DISPOUT_Op2
G01G91 Z=-186.986+Z_KOR G09 F=5000
DISPOUT_Op2
G01G91 B= 1.000+B_KOR G09 F=5000
DISPOUT_Op2
G01G91 Y=-120.985+Y_KOR G09 F=5000
DISPOUT_Op2
G01G91 A= 0.000+A_KOR G09 F=5000
DISPOUT_Op2
G01G91 C= 0.000+C_KOR G09 F=5000
Перемещениягл. движения:
R298= 86.987;X
R299= -0.026;Y
R300= -1.518;Z
R301= 0.000;A
; ПОЛОЖЕНИЕЗУБЬЕВ
; У Г О Л Акт.зуб
NZ_FI[1]= 0.000NZ_ACT[1]=1
NZ_FI[2]=180.000 NZ_ACT[2]=1
; ДОПОЛНИТЕЛЬНЫЕСМЕЩЕНИЯ
; Смещение Подача
R203= 421.303 R209=20 ;A
; П Р И П У СК И
; 1проход Подача2проход Подача 3проход Подача
R213=0.000R231= 20 R219=0.000 R237= 0 R225=0.000 R243= 0 ;Y
FPR[1]=R231
FPR[2]=R237
FPR[3]=R243
; ЦИКЛИЧЕСКАЯОБРАБОТКА
; СТАРТ Экстрем.ФИНИШ Подача
R262= 0.000 R268=-0.240 R274= 0.000 R280= 20 ;Y
R264= 0.000 R270=-25.256 R276= -50.512 R282= 20 ;A
R260=7; Кол-воциклов обработки
; О Б Р А Б ОТ К А
R306=0
DOPSM_Op2
FORI_1=1 TO 3
R307=0
IFFPR[I_1]>0
PRIPUSK_Op2(I_1,1)
FORI_2=1 TO 2
DISPOUT_Op2
G01G91 A=NZ_FI[I_2] F=5000
IFNZ_ACT[I_2]==1
R308=I_2
CYCLOBR_Op2(R260,FPR[I_1])
ENDIF
ENDFOR
DISPOUT_Op2
G01G91 A=360-NZ_FI[2] F=5000
PRIPUSK_Op2(I_1,-1)
ENDIF
ENDFOR
M17
%_N_GLAV_DVIG_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCGLAV_DVIG_Op2(INT NAPR,REAL FGLDV)
DISPOUT_OP2
G01G91 X=NAPR*R298 Y=NAPR*R299 Z=NAPR*R300 F=FGLDV
M17
%_N_DOPSM_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCDOPSM_Op2
IFR209>0
DISPOUT_Op2
G01G91 A=R203 F=R209
ENDIF
M17
%_N_PRIPUSK_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCPRIPUSK_Op2(INT NUM_PR,INT NAPR_PR, REAL FPR)
IF(NUM_PR==1) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op2
G01G91 Y=NAPR_PR*R213 F=200
ENDIF
IF(NUM_PR==2) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op2
G01G91 Y=NAPR_PR*R219 F=200
ENDIF
IF(NUM_PR==3) AND (FPR>0)
R307=NUM_PR
DISPOUT_Op2
G01G91 Y=NAPR_PR*R225 F=200
ENDIF
M17
%_N_OTVOD_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCOTVOD_Op2(INT NAPR_OTV)
M17
%_N_CYCLOBR_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
PROCCYCLOBR_Op2(INT N_CYCL,REAL FPR)
EXTERNGLAV_DVIG_Op2(INT,REAL)
EXTERNOTVOD_Op2(INT)
DEFINT I_1,I_2
DEFREAL STEP1,STEP2
FORI_1=1 TO N_CYCL
R309=I_1
IFR280>0
IFN_CYCL==2
G01G91 Y=(I_1-1)*(R274-R262)
ENDIF
IFN_CYCL>2
STEP1=2*(R268-R262)/(N_CYCL-1)
STEP2=2*(R274-R268)/(N_CYCL-1)
I_2=ROUND((N_CYCL-1)/2)
IFI_1
IFI_1>1
G01G91 Y=STEP1
ENDIF
ENDIF
IFI_1>I_2
G01G91 Y=STEP2
ENDIF
ENDIF
ENDIF
IFR282>0
IFN_CYCL==2
G01G91 A=(I_1-1)*(R276-R264)
ENDIF
IFN_CYCL>2
STEP1=2*(R270-R264)/(N_CYCL-1)
STEP2=2*(R276-R270)/(N_CYCL-1)
I_2=ROUND((N_CYCL-1)/2)
IFI_1
IFI_1>1
G01G91 A=STEP1
ENDIF
ENDIF
IFI_1>I_2
G01G91 A=STEP2
ENDIF
ENDIF
ENDIF
GLAV_DVIG_Op2(1,FPR)
OTVOD_Op2(1)
GLAV_DVIG_Op2(-1,500)
OTVOD_Op2(-1)
ENDFOR
IFR280>0
DISPOUT_OP2
G01G91 Y=-(R274-R262) F=R280
ENDIF
IFR282>0
DISPOUT_OP2
G01G91 A=-(R276-R264) F=R282
ENDIF
M17
%_N_DISPOUT_Op2_SPF
;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD
R306=R306+1
MSG(” Поз. N ”
M17