Конвертирование исходного текста программ для станков с ЧПУ из одной системы программирования в другую

Разработка системы автоматического конвертирования исходного текста программ для станков с ЧПУ. Обоснование целесообразности создания такой системы. Критерии экономической эффективности ее функционирования. Оценка безопасности и экологичности проекта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 23.06.2008
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

if oshibka = 1 then

else

begin

I:= StrToFloat(vyh) * 1000;

I:= Int(I); // Отбрасываем дробную часть

I:= I - X_pred;

preobrazovanieVM(I,kadr);

end;

end;

uslovie:= pos('J',kadr);

if uslovie <> 0 then

begin

NaytiKoordinatu(kadr,'J',vyh);

if oshibka = 1 then

else

begin

J:= StrToFloat(vyh) * 1000;

J:= Int(J); // Отбрасываем дробную часть

J:= J - Y_pred;

preobrazovanieVM(J,kadr);

end;

end;

uslovie:= pos('Z',kadr);

if uslovie <> 0 then

begin

NaytiKoordinatu(kadr,'Z',vyh);

if oshibka = 1 then

else

begin

Z:= StrToFloat(vyh) * 1000;

Z:= Int(Z); // Отбрасываем дробную часть

preobrazovanieVM(Z,kadr);

end;

end;

uslovie:= pos('A',kadr);

if uslovie <> 0 then

begin

NaytiKoordinatu(kadr,'A',vyh);

if oshibka = 1 then

else

begin

A:= StrToFloat(vyh) * 1000;

A:= Int(A); // Отбрасываем дробную часть

preobrazovanieVM(A,kadr);

Delete(kadr, uslovie, 1);

Insert('U',kadr,uslovie);

end;

end;

uslovie:= pos('K',kadr);

if uslovie <> 0 then

begin

NaytiKoordinatu(kadr,'K',vyh);

if oshibka = 1 then

else

begin

K:= StrToFloat(vyh) * 1000;

K:= Int(K); // Отбрасываем дробную часть

preobrazovanieVM(K,kadr);

end;

end;

X_pred:= X_nast;

Y_pred:= Y_nast;

end;

procedure PC_VM(var kadr: string);

var

uslovie: integer;

I_est: boolean;

s, st: string;

begin

if (pos('%', kadr) <> 0) or (pos('$', kadr) <> 0) then exit;

I_est:= False;

if (pos('I',kadr) <> 0) or (pos('J',kadr) <> 0) then I_est:= true;

if pos('X',kadr) <> 0 then

begin

NaytiKoordinatu(kadr,'X',vyh);

if oshibka = 1 then

else

begin

X_nast:= StrToFloat(vyh) * 1000;

X_nast:= Int(X_nast); // Отбрасываем дробную часть

preobrazovanieVM(X_nast,kadr);

end;

end

else

if I_est then

begin

uslovie:= pos('Y',kadr); // Преобразуем в число строку

insert('X' + FloatToStr(X_pred), kadr, uslovie);

end;

if pos('Y',kadr) <> 0 then

begin

NaytiKoordinatu(kadr,'Y',vyh);

if oshibka = 1 then

else

begin

Y_nast:= StrToFloat(vyh) * 1000;

Y_nast:= Int(Y_nast); // Отбрасываем дробную часть

preobrazovanieVM(Y_nast,kadr);

end;

end

else

if I_est then

begin

uslovie:= pos('I',kadr); // Преобразуем в число строку

insert('Y' + FloatToStr(Y_pred), kadr, uslovie);

end;

if (pos('G42', kadr) <> 0) or (pos('G41', kadr) <> 0) then

begin

try

s:= Stroka.Strings[Succ(m)]; // ошибка нет строки вообще

except

on EStringListError do // добавляем пустую строку и исключаем ошибку

stroka.Add('');

end;

if pos('X', kadr) = 0 then

begin // Вставка Х и Y если нет

NaytiKoordinatu(Stroka.Strings[Succ(m)], 'X', s);

if oshibka <> 1 then

begin

uslovie:= FindVstavki('X', kadr);

s:= TrimRight(s);

X_nast:= StrToFloat(s) * 1000; // В позиции X Y I J F M

Insert('X' + FloatToStr(X_nast), kadr, uslovie);

end

else

begin

X_nast:= X_pred;

uslovie:= FindVstavki('X', kadr); // В позиции X Y I J F M

Insert('X' + FloatToStr(X_nast), kadr, uslovie);

end;

end;

if pos('Y', kadr) = 0 then

begin

uslovie:= FindVstavki('Y', kadr);

NaytiKoordinatu(Stroka.Strings[Succ(m)], 'Y', s);

s:= TrimRight(s);

Y_nast:= StrToFloat(s) * 1000;

Insert('Y' + FloatToStr(Y_nast), kadr, uslovie);

end;

if (pos('I', Stroka.Strings[Succ(m)]) <> 0) and (pos('J', Stroka.Strings[Succ(m)]) <> 0)

then

begin

Naytikoordinatu(Stroka.Strings[Succ(m)], 'I', st);

I:= StrToFloat(st);

Naytikoordinatu(Stroka.Strings[Succ(m)], 'J', st);

J:= StrToFloat(st);

Podhod_G41_G42_radius;

J:= J * 1000;

J:= Int(J);

if (I_sled = -1) and (J > 0) then J:= -J;

if (I_sled = 1) and (J < 0) then J:= -J;

if Pos('I', kadr) <> 0 then

begin

NaytiKoordinatu(kadr, 'I', s);

PreobrazovanieVM(J, kadr);

end

else

begin

uslovie:= FindVstavki('I', kadr);

Insert('I' + FloatToStr(J), kadr, uslovie);

end;

I:= I * 1000;

I:= Int(I);

if(J_sled = -1) and (I > 0) then I:= -I;

if(J_sled = 1) and (I < 0) then I:= -I;

if Pos('J', kadr) <> 0 then

begin

NaytiKoordinatu(kadr, 'J', s);

PreobrazovanieVM(I, kadr);

end

else

begin

uslovie:= FindVstavki('J', kadr);

Insert('J' + FloatToStr(I), kadr, uslovie);

end;

Exit;

end

else

begin

Podhod_G41_G42_line;

X_sled:= Int(X_sled);

if Pos('X', kadr) <> 0 then

begin

NaytiKoordinatu(kadr, 'I', s);

PreobrazovanieVM(X_sled, kadr);

end

else

begin

uslovie:= FindVstavki('Y', kadr);

Insert(FloatToStr(X_sled), kadr, uslovie);

end;

Y_sled:= Int(Y_sled);

if Pos('Y', kadr) <> 0 then

begin

NaytiKoordinatu(kadr, 'J', s);

PreobrazovanieVM(Y_sled, kadr);

X_pred:= X_nast;

Y_pred:= Y_nast;

exit;

end

else

begin

uslovie:= FindVstavki('X', kadr);

Insert(FloatToStr(Y_sled), kadr, uslovie);

end;

end;

end;

if pos('I',kadr) <> 0 then

begin

NaytiKoordinatu(kadr,'I',vyh);

if oshibka = 1 then

else

begin

I:= StrToFloat(vyh) * 1000;

I:= Int(I); // Отбрасываем дробную часть

preobrazovanieVM(I,kadr);

end;

end;

if pos('J',kadr) <> 0 then

begin

NaytiKoordinatu(kadr,'J',vyh);

if oshibka = 1 then

else

begin

J:= StrToFloat(vyh) * 1000;

J:= Int(J); // Отбрасываем дробную часть

preobrazovanieVM(J,kadr);

end;

end;

if pos('Z',kadr) <> 0 then

begin

NaytiKoordinatu(kadr,'Z',vyh);

if oshibka = 1 then

else

begin

Z:= StrToFloat(vyh) * 1000;

Z:= Int(Z); // Отбрасываем дробную часть

preobrazovanieVM(Z,kadr);

end;

end;

uslovie:= pos('A',kadr);

if uslovie <> 0 then

begin

NaytiKoordinatu(kadr,'A',vyh);

if oshibka = 1 then

else

begin

A:= StrToFloat(vyh) * 1000;

A:= Int(A); // Отбрасываем дробную часть

preobrazovanieVM(A,kadr);

Delete(kadr, uslovie, 1);

Insert('U',kadr,uslovie);

end;

end;

if pos('K',kadr) <> 0 then

begin

NaytiKoordinatu(kadr,'K',vyh);

if oshibka = 1 then

else

begin

K:= StrToFloat(vyh) * 1000;

K:= Int(K); // Отбрасываем дробную часть

preobrazovanieVM(K,kadr);

end;

end;

X_pred:= X_nast;

Y_pred:= Y_nast;

end;

// НАЧАЛО ОСНОВНОЙ ПРОГРАММЫ obrabotka

begin

if (Form1.NomerKadra.State = cbUnchecked) and (Form1.Probel.State = cbUnchecked) and

(Form1.Pustostr.State = cbUnchecked) and (Form2.Ne_obrabatyvat.Checked) then

begin

ShowMessage(' Обработка не задана ');

Goto metka;

end;

Priz_pusto_memo:= false;

kol:= Memo1.Lines.Count; // Количество строк

if kol = 0 then // Если поле пусто

begin

ShowMessage(' В поле редактирования пусто ');

Goto metka;

end;

memo1mod:= true;

Panel1.Caption:= IntToStr(kol);

buf:= 0; m:= 0; I:= 0; J:= 0;

PolChisla_1Proc:= kol div 100;

uvel:= PolChisla_1Proc;

Indikator.Position:= 0;

Proc:= Succ(Indikator.Position);

u:= 100 div kol;

Proci:= u;

stroka:= TStringList.Create();

stroka.Text:= Memo1.Text;

Memo1.Clear;

repeat

bufer:= stroka.Strings[m];

Panel2.Caption:= IntToStr(Succ(m));

Panel2.Refresh;

if (Form1.Probel.Checked)then

DelProbel(bufer); // Удаляем пробелы

if Form1.NomerKadra.Checked then // включен переключатель

nomerkadra(bufer);

if Form2.PC_MAYAK.Checked then

pc_mayak(bufer);

if Form2.PC_VM.Checked then

pc_vm(bufer);

if Form2.VM_MAYAK.Checked then

VM_MAYAK(bufer);

if Form2.MAYAK_VM.Checked then

Mayak_vm(bufer);

if kol >= 100 then

begin

if m >= PolChisla_1Proc then

begin

Indikator.Position:= Proc;

Form1.PanelSostoyaniya.Panels[1].Text:= ' Выполнено ' + IntToStr(Indikator.Position) + ' %';

PanelSostoyaniya.Refresh; // Перерисовка панели

Inc(proc);

PolChisla_1Proc:= PolChisla_1Proc + uvel;

end;

end

else

begin

Indikator.Position:= Proci;

Form1.PanelSostoyaniya.Panels[1].Text:= ' Выполнено ' + IntToStr(Indikator.Position) + ' %';

PanelSostoyaniya.Refresh; // Перерисовка панели

Inc(proci, u);

end;

stroka.Strings[m]:= bufer; // Для токарного станка

if Length(bufer) = 0 then

if Form1.PustoStr.Checked then

pustostroka;

Bufer:= ''; // Очистка строки Буфер

Inc(m); // Следующая строка (+1)

until m >= kol;

Panel1.Caption:= IntToStr(Stroka.Count); // Сколько реально осталось

Form1.PanelSostoyaniya.Panels[1].Text:= ' Выполнено ' + '100' + ' %';

Indikator.Position:= 100;

if (Form2.PC_MAYAK.Checked) or (Form2.PC_VM.Checked) or (Form2.VM_MAYAK.Checked) or (Form2.MAYAK_VM.Checked) then

begin

Form2.PC_VM.Enabled:= false;

Form2.PC_MAYAK.Enabled:= false;

Form2.VM_MAYAK.Enabled:= false;

Form2.MAYAK_VM.Enabled:= false;

Form2.Ne_obrabatyvat.Checked:= true;

end;

try // Ошибка если в Memo1 пробелы

if Stroka.Strings[0] <> '' then // Вставить пустую строку если её нет

Stroka.Insert(0, '');

except

on EStringListError do

end;

Memo1.Text:= Stroka.Text;

stroka.Free;

metka: // если Поле пустое то выход сюда

end;

procedure TForm1.ToolButton6Click(Sender: TObject); // Кнопка очистить

begin

Memo1.Clear;

Panel1.Caption:= '0';

Panel2.Caption:= '0';

Form2.PC_VM.Enabled:= true;

Form2.PC_MAYAK.Enabled:= true;

Form2.VM_MAYAK.Enabled:= true;

Form2.MAYAK_VM.Enabled:= true;

Label1.Caption:= '';

Form2.FormActivate(Sender);

Memo1.SetFocus;

Indikator.Position:= 0;

end;

procedure TForm1.ToolButton4Click(Sender: TObject); // Кнопка параметры

begin

Form2.ShowModal;

end;

procedure TForm1.Toolbutton9Click(Sender: TObject); // Кнопка найти и заменить

begin

ReplaceDialog1.Execute;

end;

procedure TForm1.ReplaceDialog1Replace(Sender: TObject); // Кнопка найти и заменить

label

10;

begin

Memo1.HideSelection:= true;

10:

if pos(ReplaceDialog1.FindText, Memo1.Text) <> 0 then

begin

Memo1.SelStart:= pos(ReplaceDialog1.FindText, Memo1.Text) - 1 ;

Memo1.SelLength:= Length(ReplaceDialog1.FindText);

Memo1.SelText:= ReplaceDialog1.ReplaceText;

goto 10;

end;

Memo1.HideSelection:= false;

end;

procedure TForm1.memo1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

Panel1.Caption:= IntToStr(Memo1.Lines.Count);

end;

procedure TForm1.ToolButton5Click(Sender: TObject); // Кнопка в верхний регистр

begin

Memo1.Text:= UpperCase(Memo1.Text);

end;

procedure TForm1.ToolButton8Click(Sender: TObject);

begin

Form5.Visible:= true;

end;

end.

Файл Unit2.pas

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type

TForm2 = class(TForm)

PereschotProg: TGroupBox;

PC_MAYAK: TRadioButton;

Ne_obrabatyvat: TRadioButton;

PC_VM: TRadioButton;

VM_MAYAK: TRadioButton;

MAYAK_VM: TRadioButton;

Button1: TButton;

Mayk223mp: TRadioButton;

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure Sostoyanie_perekluchateley;

begin

if Form2.Ne_obrabatyvat.Checked then

Form1.PanelSostoyaniya.Panels[0].Text:= st + Form2.Ne_obrabatyvat.Caption

else

if Form2.PC_MAYAK.Checked then

Form1.PanelSostoyaniya.Panels[0].Text:= st + Form2.PC_MAYAK.Caption

else

if Form2.PC_VM.Checked then

Form1.PanelSostoyaniya.Panels[0].Text:= st + Form2.PC_VM.Caption

else

if Form2.VM_MAYAK.Checked then

Form1.PanelSostoyaniya.Panels[0].Text:= st + Form2.VM_MAYAK.Caption

else

if Form2.MAYAK_VM.Checked then

Form1.PanelSostoyaniya.Panels[0].Text:= st + Form2.MAYAK_VM.Caption

else

if Form2.Mayk223mp.Checked then

Form1.PanelSostoyaniya.Panels[0].Text:= st + Form2.Mayk223mp.Caption;

end;

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

Sostoyanie_perekluchateley;

If Mayk223mp.Checked then

begin

Form2.Close;

end;

end;

procedure TForm2.FormActivate(Sender: TObject);

begin

Sostoyanie_perekluchateley;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

Sostoyanie_perekluchateley;

Form2.Close;

end;

end.

Файл Unit5.pas

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm5 = class(TForm)

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

Edit1: TEdit;

Label1: TLabel;

ButtonObpabotka: TButton;

ButtonNastroyka: TButton;

procedure FormActivate(Sender: TObject);

procedure ButtonObpabotkaClick(Sender: TObject);

procedure ButtonNastroykaClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses unit1, unit6;

{$R *.dfm}

procedure TForm5.FormActivate(Sender: TObject);

begin

Form5.Caption:= Application.Title;

end;

procedure TForm5.ButtonObpabotkaClick(Sender: TObject);

var

stroka, stroka1: TStrings;

Name_File, kol_v_stroka: integer;

chast, chot, ObshiySchot: integer;

st, name: WideString;

begin

stroka:= TStringList.Create();

stroka1:= TStringList.Create();

chot:= 0; Name_File:= 1; chast:= 0;

chast:= StrToInt(Edit1.Text) * 955;

kol_v_stroka:= 0;

ObshiySchot:= 0;

stroka1.Text:= Form1.memo1.Text;

repeat

try

st:= stroka1.Strings[ObshiySchot];

except

on EStringListError do

begin

Stroka.Free;

stroka1.Free;

Form1.memo1.Text:= ' Ошибка в редакторе: Возможно в поле редактирования пусто или одни пробелы';

Form5.Close;

Exit;

end;

end;

if chot <= chast then

begin

stroka.Insert(kol_v_stroka, st);

Inc(chot, Length(st)); // Увеличиваем на длину строки

Inc(kol_v_stroka);

Inc(ObshiySchot);

end

else

begin

name:= Concat('E:\Наладчик\Пров\', IntToStr(Name_File), '.txt');

stroka.SaveToFile(name);

stroka.Clear;

chot:= 0;

kol_v_stroka:= 0;

Name_File:= Succ(Name_File);

end;

if (stroka1.Count = ObshiySchot) and (Length(stroka.Text) <> 0) then

begin

name:= Concat('E:\Наладчик\Пров\', IntToStr(Name_File), '.txt');

stroka.SaveToFile(name);

end;

until stroka1.Count = ObshiySchot;

stroka.Free;

stroka1.Free;

Form5.Close;

ShowMessage(' Обработка завершена ');

end;

procedure TForm5.ButtonNastroykaClick(Sender: TObject);

var

NameF: WideString;

begin

Form6.Visible:= true;

end;

end.

Файл Unit6.pas

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Registry, FileCtrl;

type

TForm6 = class(TForm)

Panel1: TPanel;

Memo1: TMemo;

ButtonRedEndFile: TButton;

ButtonRedPapku: TButton;

Label1: TLabel;

SaveDialog1: TSaveDialog;

procedure FormActivate(Sender: TObject);

procedure ButtonRedPapkuClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

RegIni: TRegistry;

implementation

uses unit1;

{$R *.dfm}

procedure TForm6.FormActivate(Sender: TObject);

begin

Form6.Caption:= Application.Title;

RegIni:= TRegistry.Create;

RegIni.RootKey:= HKEY_LOCAL_MACHINE;

RegIni.OpenKey('Software\Naladchik', false);

Label1.Caption:= RegIni.ReadString('pach');

RegIni.CloseKey;

RegIni.Free;

end;

procedure TForm6.ButtonRedPapkuClick(Sender: TObject);

begin

if SaveDialog1.Execute then

begin

Label1.Caption:= SaveDialog1.FileName;

RegIni:= TRegistry.Create;

RegIni.RootKey:= HKEY_LOCAL_MACHINE;

RegIni.OpenKey('Software\Naladchik', true);

RegIni.CreateKey('a');

RegIni.WriteString('pach', SaveDialog1.FileName);

RegIni.CloseKey;

RegIni.Free;

end;

end;

end.

ПРИЛОЖЕНИЕ 2

РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

Главное окно программы

При запуске программы, появляется главное окно, представленное на рис.П.2.1.

Рис.П. 2.1

При нажатии кнопки «Открыть», открывается диалоговое окно выбора файла рис. П.2.2.

Рис.П.2.2

Выбираем обработку рис.П.2.3. и нажимаем «Закрыть»

Рис.П.2.3

Нажимаем кнопку «Обработка» рис.П.2.4.

Рис.П.2.4

Всё программа полностью обработана заданным методом обработки

ПРИЛОЖЕНИЕ 3

РУКОВОДСТВО ПРОГРАММИСТА

3.1. Назначение программы

Программа «Наладчик» предназначена для конвертирования исходного текста программ для станков с ЧПУ. И предназначена для использования на производстве в различных областях.

Программа позволяет:

– конвертировать программный текст в любою из доступных программе систем;

– удалять лишние пробелы;

– удалять пустые строки;

– устанавливать периодическую нумерацию кадров;

– задавать шрифт(цвет, размер, тип);

– печать документа;

– визуальный контроль обработки;

– менять регистр букв к заглавным(что требует синтаксис программ);

– разбивать программу на заданное количество частей;

– осуществляет поиск и замену по образцу.

3.2. Условия применения программы

Разработанная программа является приложением MS Windows. Для ее работы требуется наличие на компьютере операционной системы MS Windows NT4.0/2000/XP и все вытекающее отсюда техническое обеспечение.

Кроме того, требуется:

– физическая память 1Mб + память на используемые и создаваемые текстовые файлы (не менее 5 Мб);

– оперативная память 2*размер текстового файла. При нехватке оперативной памяти может использоваться виртуальная память. А за счет того, что все данные находятся в памяти, сильно сокращается время решения задач.

Для написания программы использовалась среда разработки Borland Delphi 7.

3.3. Характеристики программы

После запуска программы пользователь может запускать решение задачи в следующей последовательности:

- выбор (открытие) текстового файла;

- выбор метода конвертирования;

- выбор шрифта;

- выбор дополнительных методов обработки

3.4. Обращение к программе

Запустить программу можно из оболочки Windows, посредством запуска файла Наладчик.ехе

3.5. Входные и выходные данные

В качестве входных и выходных данных используются текстовые файлы.

3.6 Сообщения

Сообщения, выдаваемые оператору приведены в табл. П.3.1.

Таб.П.3.1

Вид сообщения

Описание

Действие

В поле редактирования пусто

В поле редактирования нет ни какого текста

Введите текст в поле редактирования

Обработка не задана

Не поставлена ни одна галочка задач обработки

Задайте обработку

ПРИЛОЖЕНИЕ 4

РУКОВОДСТВО ОПЕРАТОРА

4.1. Назначение программы

Программа «Наладчик» предназначена для конвертирования исходного текста программ для станков с ЧПУ. И предназначена для использования на производстве в различных областях.

Программа позволяет:

– конвертировать программный текст в любою из доступных программе систем;

– удалять лишние пробелы;

– удалять пустые строки;

– восстанавливать периодическую нумерацию кадров;

– задавать шрифт(цвет, размер, тип);

– печать документа;

– визуальный контроль обработки;

– менять регистр букв к заглавным(что требует синтаксис программ);

– разбивать программу на заданное количество частей;

– осуществляет поиск и замену по образцу.

4.2. Условия выполнения программы

Разработанная программа является приложением MS Windows. Для ее работы требуется наличие на компьютере операционной системы MS Windows 98/NT4.0/2000/XP и все вытекающее отсюда техническое обеспечение.

Кроме того, требуется:

– физическая память 1Mб + память на используемые и создаваемые из текстовые файлы (не менее 10 Мб);

– оперативная память 2*размер используемого файла. При нехватке оперативной памяти может использоваться виртуальная память. А за счет того, что все данные находятся в памяти, сильно сокращается время решения задач.

Для написания программы использовалась среда разработки Borland Delphi 7.

4.3. Выполнение программы

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

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

Главное окно программы

Рис.П.4.1

Панель инструментов

Рис.П.4.2

----- открыть файл

----- сохранить файл

----- распечатать содержимое поля редактирования

----- при нажатии этой кнопки появляется дополнительный диалог обработки (см. далее)

----- очистить поле редактирования

----- при нажатии этой кнопки появляется дополнительный диалог замены (см. далее)

----- при нажатии всё содержимое поля редактирования преобразуется к верхнему регистру

------ при нажатии появляется дополнительный диалог (разбивка файла на несколько частей)

Меню файл

Выход - выход из программы;

Сохранить - вызов диалогового окна (Сохранить как);

Открыть - вызов диалогового окна (Сохранить как);

Печать - вызов диалогового окна (Печать).

Меню настройки

Шрифт - вызов диалогового окна(Шрифт);

Принтер - вызов диалогового окна(Настройка печати);

Параметры - вызов диалогового окна(Параметры).

Меню справка

Вызов диалогового окна(Версия) Рис.П.4.3.

Рис.П.4.3

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

Рис. П.4.4

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

Не обрабатывать - пересчет производится не будет.

ПК - МАЯК - выбрана обработка конвертирование системы (Sinumeric - Маяк).

ПК - ВМ - выбрана обработка конвертирование системы (Sinumeric - ВМ).

ВМ - МАЯК - выбрана обработка конвертирование системы (ВМ - Маяк).

МАЯК - ВМ - выбрана обработка конвертирование сис Рис.П.4.5 темы (Маяк - ВМ).

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

Рис.П.4.6

Выбрано обработка ПК - МАЯК

Дополнительная панель настройки обработки

Номера кадров - упорядочить номера кадров, начиная с 1.

Пробелы - будут удалены все пробелы.

Пустые строки - будут удалены все пустые строки.

Рис.П.4.7

4.4 Информация во время обработки

нажимаем кнопку <Обработка>

Рис.П.4.8

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

Рис.П.4.9

Во время обработки в верхней части окна показано, сколько обработано строк, в нижней сколько всего рис.П.4.9.1.

Рис.П.4.9.1

Всё файл обработан, сохраняем или меню файл - сохранить

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

Выберите желаемый файл из списка или напишите имя в поле «Имя файла» рис.П.4.9.2.

Рис.П.4.9.2

всё, можно закрывать программу кнопка «Закрыть»

Функция разделения файла

При нажатии кнопки на панели инструментов (Рис.П.4.9.3.) появляется диалог «Разбивка файла на несколько частей»

Рис.П.4.9.3

При нажатии на кнопку «Обработка» происходит разбивка файла на файлы заданной ёмкости. Нажимаем кнопку «Настройка» рис.П.4.9.3.

Рис.П.4.9.4

В этом диалоге при нажатии кнопки «Редактирование вставки в конец файла» текст набранный в поле редактора (находится внизу формы) вставляется в каждую часть файла рис.П.4.9.4.

При нажатии кнопки «Редактировать конечную папку» появляется диалог «Сохранить как» (Рис.П.4.9.2 ).

4.5. Дополнительные настройки

Меню - Настройки

Шрифт - выбор шрифта для поля редактирования рис.П.4.9.5.

Рис.П.4.9.5

Принтер - установка свойств принтера для вывода на печать рис.П.4.9.6.

Рис.П.4.9.6

Это диалог вызывается нажатием кнопки и работает как замена чего-то чем-то. В данном примере все вхождения X заменяются Y рис.П.4.9.7.


Рис.П.4.9.7

4.6. Инструкции по обработке исключительных ситуаций

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

- Это сообщение поступает, когда вы нажимаете кнопку <Обработка>, но в поле редактирования пусто.

Действия - откройте не пустой файл и повторите обработку.
Рис.П.4.9.8

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

Действия - если хотите сохранить изменённый файл нажмите <Yes> иначе <No>
рис.П.4.9.9

4.7. Дополнительные инструкции по программированию и математическая постановка

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

Пример кода из Unigraphics

Программа 1

N0800 X90.91 Y-160.881

N0810 G3 X91.643 Y-166.402 I423.693 J53.462

N0820 X92.657 Y-173.301 I350.64 J47.998

N0830 G1 X91.625 Y-178.443

N0840 G2 X91.623 Y-178.442 I2.026 J6.7

N0850 X90.181 Y-177.736 I1.441 J4.76

N0860 G1 X89.494 Y-177.174

N0870 X89.242 Y-176.969

Как видно из примера, координаты задаются в миллиметрах до 0.001 долей (при обработке в программе Наладчик размеры разрядностью более 0.001 отбрасываются).

Пример Unigraphics 0.0016 после обработки Наладчик 0.001

Центр радиуса задаётся относительно начальной точки радиуса (относительно).

N0810 G3 X91.643 Y-166.402 I423.693 J53.462

ПК - МАЯК

У Маяков, как известно координаты задаются тоже в миллиметрах, но I, J - координаты центра радиусов задаются относительно начала системы координат (абсолютно) таб.П.4.10.

Таблица П4.10

Программа до и после обработки.

Программа до обработки

(программа 1)

Программа после обработки ПК - МАЯК(программа 2)

N0800 X90.91 Y-160.881

N0810 G3 X91.643 Y-166.402 I423.693 J53.462

N0820 X92.657 Y-173.301 I350.64 J47.998

N0830 G1 X91.625 Y-178.443

N0840 G2 X91.623 Y-178.442 I2.026 J6.7

N0850 X90.181 Y-177.736 I1.441 J4.76

N0860 G1 X89.494 Y-177.174

N0870 X89.242 Y-176.969

N73X90.91Y-160.881

N74G3X91.643Y-166.402I514.603J-107.419

N75X92.657Y-173.301I442.283J-118.404

N76G1X91.625Y-178.443

N77G2X91.623Y-178.442I93.651J-171.743

N78X90.181Y-177.736I93.064J-173.682

N79G1X89.494Y-177.174

N80X89.242Y-176.969

Принцип пересчёта:

Пересчёт радиусов

Iнаст = Xпред + Iнаст Это формулы пересчёта радиусов с относительной в

Jнаст = Yпред + Jнаст абсолютную систему координат.

То есть, для кадра N74 (программа 2) берём из кадра N0800 (программа 1) X, Y из N0810 берём I, J получаем:

Iнаст = X90.91 + I423.693 = 514.603 результат обработки в программе 2 (кадр N74)

Jнаст = Y-160.881 + J53.462 = -107.419

Расчёт линейных заходов (функции G41, G42) на эквидистанту контура обрабатываемой детали.

Таблица П4.11

Добавление недостающих координат

до обработки (программа 1)

после обработки (программа 2)

N5G1Z-25.F500M8

N6G90G42D20X-104.6Y0F20

N7Y-23.

N5G1Z-25.F500M8

N6G90G42D20X-104.6Y0I0J-23.F20

N7Y-23.

Здесь мы видим, что в программу были вставлены недостающие части кадра I и J координаты таб.П4.11.

I = X_sled - X_nast; Это формулы расчёта координат заходов на линейный

J = Y_sled - Y_nast контур детали.

То, есть для кадра N6 (программа 2) берём из кадра N6 и N7 (программа 1) настоящие и следующие значения координат X и Y.

I = (его нет значит значение то же, что и предыдущее) 104.6 - 104.6 = 0

J = 23 - 0 = 23

Расчёт заходов на радиус (функции G41, G42) на эквидистанту контура обрабатываемой детали.

С начала рассчитываем значение (I и J) из следующего кадра.

Логическое решение задачи

Если G3, то проверяем значение заданных координат:

Если I_sled > 0 и J_sled >= 0, то I = 1, J = -1;

Если I_sled < 0 и J_sled <= 0, то I = -1, J = 1;

Если I_sled < 0 и J_sled >= 0, то I = 1, J = 1;

Если I_sled > 0 и J_sled <= 0, то I = -1, J = -1

Если G2, то проверяем значение заданных координат:

Если I_sled > 0 и J_sled >= 0, то I = -1, J = 1;

Если I_sled < 0 и J_sled <= 0, то I = 1, J = -1;

Если I_sled < 0 и J_sled >= 0, то I = -1, J = -1;

Если I_sled > 0 и J_sled <= 0, то I = 1, J = 1

Следующее операция описана формулами:

I_nast = Y_nast + J_sled

J_nast = X_nast + I_sled

Заключительные вычисления:

если I = -1 и J > 0, то J_nast:= -J_nast;

если I = 1 и J < 0, то J_nast:= -J_nast;

если J = -1 и I > 0, то I_nast:= -I_nast;

если J = 1 и I < 0, то I_nast:= -I_nast.

В данном примере срабатывает условие, если I_sled > 0 и J_sled >= 0,

значит I = 1, J = -1, то есть I - будет положительным, а J - отрицательным

Далее по формулам: I_nast = Y_nast + J_sled; J_nast = X_nast + I_sled

находим: I_nast = 0 + 0 = 0; J_nast = 104.6 + (-2.5) = 102.1

Залючительные вычисления, если I = 1 и J < 0, то J_nast:= -J_nast;

J_nast = -102.1, что мы и видим в таб. П4.12.

Таблица П4.12

Расчёт заходов на радиус (функции G41, G42)

до обработки (программа 1)

после обработки (программа 2)

N5G1Z-25.F500M8

N6G90G42D20X-104.6Y0I0J-23.F20

N8G3X-102.1Y-25.5I2.5J0.0

N1G1Z-25.F500M8

N2G90G42D20X-104.6Y0I0J-102.1F20

N3G3X-102.1Y-25.5I-102.1J0

Не пересчитывайте программу дважды. Обычно бывает так - программист сгенерировал программу в (Unigraphics) или где-то в другом редакторе на МАЯК или ВМ в «Наладчике» и забыл ещё вставить код, он его добавляет и опять открывает и пересчитывает. Вообще-то программа не даст пересчитать дважды, но если открыть и закрыть файл то можно просчитать ещё раз (сколько угодно раз можно пересчитывать только номера кадров, пустые строки и пробелы, без урона для программы). Здесь же чисто математический расчёт и программа, пересчитанная дважды, не будет правильной.

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ 4
  • 1. РАЗРАБОТКА СИСТЕМЫ АВТОМАТИЧЕСКОГО КОН ВЕРТИРОВАНИЯ ИСХОДНОГО ТЕКСТА ПРОГРАММ ДЛЯ СТАНКОВ С ЧПУ 6
    • 1.1. Обоснование целесообразности разработки системы автоматического конвертирования текста исходных программ для станков с ЧПУ 6
      • 1.1.1. Назначение системы 6
      • 1.1.2. Характеристика функциональной структуры системы 6
      • 1.1.3. Обоснование цели создания системы 7
      • 1.1.4. Обоснование состава автоматизируемых задач 7
    • 1.2. Аналитический обзор 8
    • 1.3. Основные требования к системе 10
      • 1.3.1. Основные цели создания системы и критерии эффективности её функционирования 10
      • 1.3.2. Функциональное назначение системы 10
      • 1.3.3. Особенности программы и условия её эксплуатации 11
      • 1.3.4. Требования к функциональной структуре 11
      • 1.3.5. Требования к техническому обеспечению 12
      • 1.3.6. Требования к информационному обеспечению 12
      • 1.3.7 Требования к программному обеспечению 12
    • 1.4. Основные технические решения проекта системы 13
      • 1.4.1. Решение по комплексу технических средств 13
      • 1.4.2. Описание системы программного обеспечения 13
  • 2. РАЗРАБОТКА ЗАДАЧИ «Конвертирование исходного текста программ для станков с ЧПУ» 14
    • 2.1. Описание постановки задачи 14
      • 2.1.1. Характеристика задачи 14
      • 2.1.2. Входная информация 14
      • 2.1.3. Выходная информация 14
      • 2.1.4. Математическая простановка задачи 15
    • 2.2. Описание алгоритма метода выбора обработки 20
      • 2.2.1. Назначение и характеристика алгоритма 20
      • 2.2.2. Используемая информация 20
      • 2.2.3. Результаты решения 20
      • 2.2.4. Алгоритм решения 20
      • 2.2.5. Список условных обозначений 21
    • 2.3 Описание алгоритма выбора вспомогательных методов обработки 23
      • 2.3.1. Назначение и характеристика алгоритма 23
      • 2.3.2. Используемая информация 23
      • 2.3.3. Результаты решения 23
      • 2.3.4. Алгоритм решения 23
    • 2.4. Описание алгоритма конвертирования 24
      • 2.4.1. Назначение и характеристика алгоритма 24
      • 2.4.2. Алгоритм решения 24
    • 2.5 Описание программы «Наладчик» 27
      • 2.5.1. Водная часть 27
      • 2.5.2. Функциональное назначение 27
      • 2.5.3. Описание информации 28
      • 2.5.4. Используемые подпрограммы 28
      • 2.5.5. Описание логики 29
    • 2.6. Описание контрольного примера 30
      • 2.6.1. Назначение 30
      • 2.6.2. Исходные данные 30
      • 2.6.3. Результаты расчета 30
      • 2.6.4. Результаты испытания 30
  • 3. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКАЯ ЧАСТЬ 31
    • 3.1. Обоснование необходимости разработки системы конвертирования текста программ для станков с ЧПУ 31
    • 3.2. Планирование разработки 31
    • 3.3. Расчет расходов на создание системы 32
  • 4. БЕЗОПАСНОСТЬ И ЭКОЛОГИЧНОСТЬ ПРОЕКТА 37
    • 4.11 Анализ вредных и опасных производственных факторов 37
    • 4.2. Техника безопасности при работе с компьютером 39
    • 4.3. Электробезопасность при работе с компьютером 41
    • 4.4. Требования к освещению рабочего места и его расчет 42
      • 4.4.1. Требования к освещению рабочего места 42
      • 4.4.2. Расчет освещенности рабочего места 44
    • 4.5. Параметры микроклимата, загрязнение воздуха рабочей зоны вредными веществами 47
    • 4.6. Пожаробезопасность при работе с компьютером 48
  • ЗАКЛЮЧЕНИЕ 52
  • СПИСОК ЛИТЕРАТУРЫ 52
  • ПРИЛОЖЕНИЕ 1 ТЕКСТ ПРОГРАММЫ 54
  • ПРИЛОЖЕНИЕ 2 РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ 84
  • ПРИЛОЖЕНИЕ 3 РУКОВОДСТВО ПРОГРАММИСТА 86
  • ПРИЛОЖЕНИЕ 4 РУКОВОДСТВО ОПЕРАТОРА 88

Подобные документы

  • Модели конвертирования образовательного контента. Основные объекты разрабатываемой автоматизированной системы. Диаграмма деятельностей для прецедента "Извлечение структуры документа". Структурная модель системы конвертирования контента, модель интерфейса.

    реферат [3,6 M], добавлен 30.03.2011

  • Особенности графической среды разработки и Visual C++. Разработка проекта с использованием функций библиотеки MFC для удаления комментариев из текстов программ, автоматического выбора языка, на котором написана утилита и сохранения результата в файл.

    курсовая работа [22,7 K], добавлен 07.11.2010

  • Классификация программ обработки текстовых документов. Общие принципы оформления издания. Правила набора текста. Системы распознавания текста (OCR). Комплекс программного обеспечения для настольных издательских систем. Примеры текстовых редакторов.

    презентация [75,0 K], добавлен 13.08.2013

  • Цели, задачи и виды, методы и направления обработки информации, современные системы. Проблемы, связанные с компьютерными способами обработки информации. Конвертирование текста из DJVU в PDF, преобразование из PDF в WORD, редактирование полученного текста.

    дипломная работа [1,8 M], добавлен 18.06.2011

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

    курсовая работа [63,7 K], добавлен 12.12.2010

  • Построение компилятора с языка высокого уровня как одного из элементов системы программирования. Разработка компилятора ассемблера, модификация базы данных исходного макета. Загрузчик, эмулятор, отладчик. Использование Flex и Bison для программирования.

    курсовая работа [599,0 K], добавлен 04.11.2014

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

    дипломная работа [767,2 K], добавлен 14.10.2010

  • Характеристика предприятия ТОО "Com Sales Group". Составление программ на языке программирования. Составление алгоритмов, разработка численных методов решения задач. Методы откладки программ. Анализ технологии машинной обработки экономической информации.

    отчет по практике [1,3 M], добавлен 19.04.2016

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

    курсовая работа [45,5 K], добавлен 04.06.2014

  • Перевод - процесс создания на основе исходного текста на одном языке равноценного ему в коммуникативном отношении текста на другом языке, требования к обеспечению его эквивалентности. Машинные технологии перевода; характеристика систем Translation Memory.

    презентация [347,8 K], добавлен 06.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.