бесплано рефераты

Разделы

рефераты   Главная
рефераты   Искусство и культура
рефераты   Кибернетика
рефераты   Метрология
рефераты   Микроэкономика
рефераты   Мировая экономика МЭО
рефераты   РЦБ ценные бумаги
рефераты   САПР
рефераты   ТГП
рефераты   Теория вероятностей
рефераты   ТММ
рефераты   Автомобиль и дорога
рефераты   Компьютерные сети
рефераты   Конституционное право
      зарубежныйх стран
рефераты   Конституционное право
      России
рефераты   Краткое содержание
      произведений
рефераты   Криминалистика и
      криминология
рефераты   Военное дело и
      гражданская оборона
рефераты   География и экономическая
      география
рефераты   Геология гидрология и
      геодезия
рефераты   Спорт и туризм
рефераты   Рефераты Физика
рефераты   Физкультура и спорт
рефераты   Философия
рефераты   Финансы
рефераты   Фотография
рефераты   Музыка
рефераты   Авиация и космонавтика
рефераты   Наука и техника
рефераты   Кулинария
рефераты   Культурология
рефераты   Краеведение и этнография
рефераты   Религия и мифология
рефераты   Медицина
рефераты   Сексология
рефераты   Информатика
      программирование
 
 
 

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

где

Ев – освещенность внутри помещения, лк;

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

На предприятиях наибольшее распространение получило естественное боковое освещение. При таком освещении основой расчета является требуемая площадь светового проема, определяемая по формуле 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. SINUMERIK 840D/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.  Интернет источник. Информационные системы. http://revolution./programming.

25.  Интернет источник. Уфимский государственный авиационный технический университет. www.twirpx.com.

26.  Интернет источник. Siemens Sinumerik 840D. www.chipmaker.ru.

27.  Интернет источник. Филиппович К.В. "Идеология постпроцессирования в современных CAD/CAM-системах" Россия, ООО Евразия Лимитед, 2000. www.sapr2000.ru


Приложение А

Исходный текст программного модуля:

program Project2; //Имя программы

uses //Объявление прикрепленных к проекту файлов

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form4},

Unit5 in 'Unit5.pas' {Form5},

Unit6 in 'Unit6.pas',

Unit7 in 'Unit7.pas' {Form7},

Unit8 in 'Unit8.pas' {Form8},

Unit9 in 'Unit9.pas' {Form9},

Unit10 in 'Unit10.pas',

Unit11 in 'Unit11.pas' {Form11},

Unit12 in 'Unit12.pas' {Form12},

Unit13 in 'Unit13.pas' {Form13},

Unit14 in 'Unit14.pas' {Form14},

Unit15 in 'Unit15.pas' {Form15},

Unit16 in 'Unit16.pas' {Form16},

Unit17 in '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.

unit Unit1;

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;

procedure Button3Click(Sender: TObject); //функции нажатия кнопок

procedure Button2Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure CheckListBox1ClickCheck(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure CheckListBox2ClickCheck(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure CheckListBox3ClickCheck(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure CheckListBox1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button15Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure FormClose(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;

procedure Init_Chk_Box; //описание процедур построцессора

procedure Init_St_Det_Kr;

procedure Init_Moving;

procedure Zatilok;

Procedure Init_Traect(i:integer);

procedure Traect(N_Act:integer);

procedure Memo_Out;

procedure W_Str(com:string);

function w_r(val:real;f1,f2:integer):string;

procedure G90;

procedure G91;

procedure G01;

procedure Profile;

procedure Load_Op_All;

procedure Load_Op;

procedure Fix_Det(V_D,UB_X,Ddet:real);

procedure Make_Krug(N_kr,m:integer);

procedure UpDate_ChkBox2;

procedure Make_Spind;

procedure Init_All;

implementation

uses Unit2,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;

procedure Init_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;

procedure W_Str(com:string);

begin

Form1.Memo1.Lines.Add(com);

end;

function w_r(val:real;f1,f2:integer):string;

var

s:string;

begin

str(val:f1:f2,s);

w_r:=s;

end;

function w_i(val:integer;f1:integer):string;

var

s:string;

begin

str(val:f1,s);

w_i:=s;

end;

procedure Memo_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);

for i:=0 to N_Pos[N_Act] do

begin

W_Str('');

if i=0 then s:='';

if i>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;

for j:=1 to N_op do

TotTime:=TotTime+PosTime[j];

W_Str('Время общее:'+w_r(TotTime,2,3));

Form1.Memo1.Visible:=true;

end;

procedure Move(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;

procedure Rotate(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;

procedure XX(len:real);

begin

Move('x',len,'/CIP6/N_S');

end;

procedure YY(len:real);

begin

Move('y',len,'/CIP6/Krug');

end;

procedure ZZ(len:real);

begin

Move('z',len,'/CIP6/Krug');

end;

procedure AA(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;

procedure BB(ang:real);

begin

writeln(ff1,'(current_wp "/CIP6/N_S/V_S/w_B")');

Rotate('w',ang,'/CIP6/N_S/V_S');

end;

procedure CC(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;

procedure AddToFile(Fn:string;N_Pos:integer);

begin

AssignFile(ff1,Fn); //запись файла связи с 3D пакетом

Append(ff1);

Nt[N_Pos]:=F;

writeln(ff1,'(dotimes ( n ',Nt[N_Pos]:2,')');

if abs(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;

if abs(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;

if abs(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;

if abs(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;

if abs(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;

if abs(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;

procedure G90;

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;

procedure G91;

begin

ABS_OTN:='G91';

X:=0; Y:=0; Z:=0;

A:=0; B:=0; C:=0;

end;

procedure G01;

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;

if pos('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;

if pos('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);

if NC_ACt=0 then

begin

str(N_Pos[N_Act]:1,ss1);

Form1.CheckListBox1.Items.Add(ss+':'+Com[N_Pos[N_Act]]);

if N_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;

procedure Profile;

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;

procedure Sil(N_Tr:integer);

var

i:integer;

ff1:textfile;

fixX,fixY,fixZ:real;

fixX1,fixY1,fixZ1:real;

fixX2,fixY2,fixZ2:real;

procedure Vint(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;

procedure Create_Bspline(N_Tr,N_Sp,N_Uch,N_Half:integer);

var

j:integer;

x3,y3,z3:real;

begin

inc(N_Spl);

case N_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 ');

for j:=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,':tangent 0.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,':tangent 0.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

for i:=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 :x :rotation_angle ',-fiA/pi*180:8:5,' :done :translate :x ',

-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);

for i:=1 to N_Spl do

writeln(ff1,'(position_pa :part_assembly :start "/Sil_',N_Tr:1,'.',i:1,'" ',

':select_done ',

':rotate :axis :x :rotation_angle ',(fiAmax-fiA)/pi*180:8:5,')');

if N_Tr<N_Sech[N_Act] then

begin

// writeln(ff1,'(position_pa :part_assembly :start "/a1/Krug" :select_done ',

// ':rotate :axis :x :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:\program files\borland\delphi7\Projects\Bpl"

-LN"c:\program files\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=

[Version Info]

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

[Version Info 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.000 1.000 1.250

0.700 0.900 7.410 0.350 120.000

10.000 25.000 0.900 30.000 0.200

85.000 1.300 50.000 71.000 0.060 3

3

99.86600 9.70600 90.00000

0.45000 0.20000 50.78000

-58.71300 53.29000 -196.78000 -180.36000

125.06600 4.05600 90.00000

1.95000 1.95000 50.73000

-71.26300 65.89000 -147.21000 -136.44000

100.16600 9.97300 90.00000

0.10000 1.10000 50.69000

-58.77300 53.44000 -105.12700 -88.44000

130.00000 88.00000 6.71400

6

Канавка

0.000 0.00000 40.00000 53.50000 1 1 0.00000 0.71966 0.85300 -0.2000 99999999.000 0 2.000 2 0.000 0 1 1 1 1 20 0.0100 1

0.000 0.000 0.000 0.000 0.000 0.000

Затылок

0.000 -0.01719 40.00000 47.00000 1 1 0.00000 5.14988 -4.85300 -1.0000 999999.000 0 1.000 2 0.000 0 1 1 1 1 20 0.0100 1

0.000 0.000 0.000 421.303 0.000 0.000

1 задний угол

58.525 0.00000 80.00000 80.00000 3 2 0.25000 -30.00000 0.00000 0.5000 999999.000 0 2.000 2 0.000 0 1 1 1 1 20 0.0100 1

0.000 0.000 0.000 -70.110 0.000 0.000

2 задний угол

51.710 0.00000 80.00000 80.00000 3 2 -0.65000 -30.00000 -1.26552 0.5000 999999.000 0 2.000 2 0.000 0 0 1 1 1 20 0.0100 1

0.000 0.000 0.000 -46.533 0.000 0.000

Подточка

30.000 40.00000 25.00000 24.00000 2 1 1.00000 -0.80000 -0.24500 -9.0000 999999.000 0 2.000 2 0.000 0 0 1 1 0 20 0.0100 1

0.000 0.000 0.000 -45.000 0.000 0.000

Канавка под СОЖ

14.767 79.65473 25.00000 20.00000 3 2 -3.21700 2.11332 -1.94988 0.5000 999999.000 0 2.000 2 0.000 0 0 0 0 0 20 0.0100 1

0.000 0.000 0.000 0.000 0.000 0.000

4

0.000 0.000 90.000 0.000

10.520 0.000 -0.016 0.000

10.477 77.000 45.246 0.000

12.000 77.755 0.000 0.000

12.000 130.000 0.000 0.000

39.000 19.000 59.000 40.000

1 1.900 6.000 45.000 1.000 15.000 45.000

1

1

1

1

0

0

0

0

0

0

0

0

0.000

180.000

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.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.000 0.000 0.000 0.000

0 0 0 0 0 0

0

0.000 0.000 0.000 421.303 0.000 0.000

0 0 0 20 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.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.000 0.000 0.000 0.000

0 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.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

1

0.000 0.000 0.000 0.000 0.000 0.000

0 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.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

1

0.000 0.000 0.000 0.000 0.000 0.000

0 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.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

1

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

1

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0

0.000 0.000 0.000 0.000 0.000 0.000

0 20 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 20 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 20 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 20 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 20 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 20 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

0.000 0.000 0.000 0.000 0.000 0.000

0 0 0 0 0 0

1 1 1 1

15.00000 2

0.500 2.500 2.475 2.550 30.000

0.000 0.00000

0.100 0.100 7.500 0.500

1 2 2 1

50.51161 7

0.500 2.500 2.475 2.550 30.000

0.000 0.00000

0.700 0.900 7.419 0.350

1 3 3 1

0.00000 1

0.000 0.000 5.260 0.000 30.000

0.000 10.00000

0.100 0.100 7.500 0.500

1 3 3 1

0.00000 1

0.500 2.500 2.475 2.550 30.000

4.000 25.00000

0.100 0.100 7.500 0.500

0 0 5 1

0.00000 1

0.500 2.500 2.475 2.550 30.000

0.000 0.00000

0.100 0.100 7.500 0.500

0 0 6 1

0.00000 1

0.500 2.500 2.475 2.550 30.000

0.000 0.00000

0.100 0.100 7.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

)

(polygon 0.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 :x 40.00000000)

(position_pa :part_assembly :start "/a1" :select_done :translate :z 0.85300000)

(position_pa :part_assembly "/a1/Krug" :rotate :axis :two_pta 40.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

DEF INT OP1,OP2,OP3,OP4,OP5,OP6

OP1=1

OP2=1

OP3=1

OP4=1

OP5=1

OP6=1

IF OP1==1

Op_1

ENDIF

IF OP2==1

Op_2

ENDIF

IF OP3==1

Op_3

ENDIF

IF OP4==1

Op_4

ENDIF

IF OP5==1

Op_5

ENDIF

IF OP6==1

Op_6

ENDIF

M10 M19

M02

%_N_NACH_UST_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

G01 G90 Y176.080 F5000 G09

G01 G90 A=0 F5000 G09

G01 G90 B=0 F5000 G09

G01 G90 Z=0 F5000 G09

G01 G90 X-496.007 F5000 G09

G01 G90 C=0 F5000 G09

M17

%_N_Op_1_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

;======= Канавка =======

EXTERN GLAV_DVIG_Op1(INT,REAL)

EXTERN OTVOD_Op1(INT)

EXTERN PRIPUSK_Op1(INT,INT)

EXTERN CYCLOBR_Op1(INT)

EXTERN VIX_Op1

DEF REAL X_KOR,Z_KOR,B_KOR,A_KOR,Y_KOR,C_KOR

DEF REAL NZ_FI[3],FPR[4]

DEF INT NZ_ACT[3]

DEF INT 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

G01 G91 X= 405.225+X_KOR G09 F=5000

DISPOUT_Op1

G01 G91 Z=-193.959+Z_KOR G09 F=5000

DISPOUT_Op1

G01 G91 B= 0.200+B_KOR G09 F=5000

DISPOUT_Op1

G01 G91 Y=-125.427+Y_KOR G09 F=5000

DISPOUT_Op1

G01 G91 A= -0.000+A_KOR G09 F=5000

DISPOUT_Op1

G01 G91 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.000 NZ_ACT[1]=1

NZ_FI[2]= 180.000 NZ_ACT[2]=1

; П Р И П У С К И

; 1проход Подача 2проход Подача 3проход Подача

R213=0.000 R231= 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

FOR I_1=1 TO 3

R307=0

IF FPR[I_1]>0

PRIPUSK_Op1(I_1,1)

FOR I_2=1 TO 2

DISPOUT_Op1

G01 G91 A=NZ_FI[I_2] F=5000

IF NZ_ACT[I_2]==1

R308=I_2

CYCLOBR_Op1(R260,FPR[I_1])

ENDIF

ENDFOR

DISPOUT_Op1

G01 G91 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

PROC GLAV_DVIG_Op1(INT NAPR,REAL FGLDV)

DISPOUT_OP1

G01 G91 X=NAPR*R298 Z=NAPR*R300 F=FGLDV

M17

%_N_PRIPUSK_Op1_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

PROC PRIPUSK_Op1(INT NUM_PR,INT NAPR_PR, REAL FPR)

IF (NUM_PR==1) AND (FPR>0)

R307=NUM_PR

DISPOUT_Op1

G01 G91 Y=NAPR_PR*R213 F=200

ENDIF

IF (NUM_PR==2) AND (FPR>0)

R307=NUM_PR

DISPOUT_Op1

G01 G91 Y=NAPR_PR*R219 F=200

ENDIF

IF (NUM_PR==3) AND (FPR>0)

R307=NUM_PR

DISPOUT_Op1

G01 G91 Y=NAPR_PR*R225 F=200

ENDIF

M17

%_N_OTVOD_Op1_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

PROC OTVOD_Op1(INT NAPR_OTV)

M17

%_N_CYCLOBR_Op1_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

PROC CYCLOBR_Op1(INT N_CYCL,REAL FPR)

EXTERN GLAV_DVIG_Op1(INT,REAL)

EXTERN OTVOD_Op1(INT)

DEF INT I_1,I_2

DEF REAL STEP1,STEP2

FOR I_1=1 TO N_CYCL

R309=I_1

IF R282>0

IF N_CYCL==2

G01 G91 A=(I_1-1)*(R276-R264)

ENDIF

IF N_CYCL>2

STEP1=2*(R270-R264)/(N_CYCL-1)

STEP2=2*(R276-R270)/(N_CYCL-1)

I_2=ROUND((N_CYCL-1)/2)

IF I_1<=I_2

IF I_1>1

G01 G91 A=STEP1

ENDIF

ENDIF

IF I_1>I_2

G01 G91 A=STEP2

ENDIF

ENDIF

ENDIF

GLAV_DVIG_Op1(1,FPR)

OTVOD_Op1(1)

GLAV_DVIG_Op1(-1,500)

OTVOD_Op1(-1)

ENDFOR

IF R282>0

DISPOUT_OP1

G01 G91 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 " <<R306<< " Прип.N " <<R307<< " Зуб.N " <<R308<< "Цикл.N " <<R309)

M17

%_N_Op_2_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

;======= Затылок =======

EXTERN GLAV_DVIG_Op2(INT,REAL)

EXTERN OTVOD_Op2(INT)

EXTERN PRIPUSK_Op2(INT,INT)

EXTERN CYCLOBR_Op2(INT)

EXTERN VIX_Op2

DEF REAL X_KOR,Z_KOR,B_KOR,A_KOR,Y_KOR,C_KOR

DEF REAL NZ_FI[3],FPR[4]

DEF INT NZ_ACT[3]

DEF INT 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

G01 G91 X= 405.341+X_KOR G09 F=5000

DISPOUT_Op2

G01 G91 Z=-186.986+Z_KOR G09 F=5000

DISPOUT_Op2

G01 G91 B= 1.000+B_KOR G09 F=5000

DISPOUT_Op2

G01 G91 Y=-120.985+Y_KOR G09 F=5000

DISPOUT_Op2

G01 G91 A= 0.000+A_KOR G09 F=5000

DISPOUT_Op2

G01 G91 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.000 NZ_ACT[1]=1

NZ_FI[2]= 180.000 NZ_ACT[2]=1

; ДОПОЛНИТЕЛЬНЫЕ СМЕЩЕНИЯ

; Смещение Подача

R203= 421.303 R209= 20 ;A

; П Р И П У С К И

; 1проход Подача 2проход Подача 3проход Подача

R213=0.000 R231= 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

FOR I_1=1 TO 3

R307=0

IF FPR[I_1]>0

PRIPUSK_Op2(I_1,1)

FOR I_2=1 TO 2

DISPOUT_Op2

G01 G91 A=NZ_FI[I_2] F=5000

IF NZ_ACT[I_2]==1

R308=I_2

CYCLOBR_Op2(R260,FPR[I_1])

ENDIF

ENDFOR

DISPOUT_Op2

G01 G91 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

PROC GLAV_DVIG_Op2(INT NAPR,REAL FGLDV)

DISPOUT_OP2

G01 G91 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

PROC DOPSM_Op2

IF R209>0

DISPOUT_Op2

G01 G91 A=R203 F=R209

ENDIF

M17

%_N_PRIPUSK_Op2_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

PROC PRIPUSK_Op2(INT NUM_PR,INT NAPR_PR, REAL FPR)

IF (NUM_PR==1) AND (FPR>0)

R307=NUM_PR

DISPOUT_Op2

G01 G91 Y=NAPR_PR*R213 F=200

ENDIF

IF (NUM_PR==2) AND (FPR>0)

R307=NUM_PR

DISPOUT_Op2

G01 G91 Y=NAPR_PR*R219 F=200

ENDIF

IF (NUM_PR==3) AND (FPR>0)

R307=NUM_PR

DISPOUT_Op2

G01 G91 Y=NAPR_PR*R225 F=200

ENDIF

M17

%_N_OTVOD_Op2_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

PROC OTVOD_Op2(INT NAPR_OTV)

M17

%_N_CYCLOBR_Op2_SPF

;$PATH=/_N_WKS_DIR/_N_CIP6\Emul\Bdd\9013_WPD

PROC CYCLOBR_Op2(INT N_CYCL,REAL FPR)

EXTERN GLAV_DVIG_Op2(INT,REAL)

EXTERN OTVOD_Op2(INT)

DEF INT I_1,I_2

DEF REAL STEP1,STEP2

FOR I_1=1 TO N_CYCL

R309=I_1

IF R280>0

IF N_CYCL==2

G01 G91 Y=(I_1-1)*(R274-R262)

ENDIF

IF N_CYCL>2

STEP1=2*(R268-R262)/(N_CYCL-1)

STEP2=2*(R274-R268)/(N_CYCL-1)

I_2=ROUND((N_CYCL-1)/2)

IF I_1<=I_2

IF I_1>1

G01 G91 Y=STEP1

ENDIF

ENDIF

IF I_1>I_2

G01 G91 Y=STEP2

ENDIF

ENDIF

ENDIF

IF R282>0

IF N_CYCL==2

G01 G91 A=(I_1-1)*(R276-R264)

ENDIF

IF N_CYCL>2

STEP1=2*(R270-R264)/(N_CYCL-1)

STEP2=2*(R276-R270)/(N_CYCL-1)

I_2=ROUND((N_CYCL-1)/2)

IF I_1<=I_2

IF I_1>1

G01 G91 A=STEP1

ENDIF

ENDIF

IF I_1>I_2

G01 G91 A=STEP2

ENDIF

ENDIF

ENDIF

GLAV_DVIG_Op2(1,FPR)

OTVOD_Op2(1)

GLAV_DVIG_Op2(-1,500)

OTVOD_Op2(-1)

ENDFOR

IF R280>0

DISPOUT_OP2

G01 G91 Y=-(R274-R262) F=R280

ENDIF

IF R282>0

DISPOUT_OP2

G01 G91 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 " <<R306<< " Прип.N " <<R307<< " Зуб.N " <<R308<< "Цикл.N " <<R309)

M17


Страницы: 1, 2, 3, 4


© 2010 САЙТ РЕФЕРАТОВ