Проектирование операций изготовления заготовок

 

Листинг 87.1. Передача исходных данных с Form3 в Form5.

//Объявляем объект myForm5 в классе Form5:

Form5 myForm5 = new Form5();

//Присваиваем исходные данные другим переменным

//класса панели Form5, но с такими же именами:

myForm5.d = d;

myForm5.H = H;

myForm5.Rn = Rn;

myForm5.s = s;

myForm5.Radio = Radio;

myForm5.s_sheet = s_sheet;

myForm5.C = C;

myForm5.L = L;

myForm5.rho = rho;

myForm5.nu = nu;

myForm5.El = El;

myForm5.sig_ys = sig_ys;

myForm5.sig_u = sig_u;

myForm5.e_u = e_u;

myForm5.e_tot = e_tot;

//Выводим диалоговую панель Form5:

myForm5.Show();

Открываем файл Form5.cs и в любом месте класса Form5 (например, после всех функций для кнопок) записываем наш основной код с методми для расчета параметров первой операции технологического процесса по разрезке листа на полосы; этот код мы берем без изменений с первого листинга предыдущей главы. Ниже записываем функцию для расчета силы вырубки Fcut круглой заготовки в штампе [1].

Листинг 87.2. Метод для расчета силы вырубки Fcut.

double ForceCut()

{

double A, k_cut, Fcut;

A=Area_Semiproduct();

D=Math.Sqrt(4*A/pi);

k_cut=1.2;

Fcut=pi*D*s_sheet*sig_u*k_cut/1000;

return Fcut;

}

Листинг 87.3. Код кнопки “=” Form5 для расчета второй операции.

//Объявляем переменные:

double Web_a, Web_b, Nblst, G, K_G;

//Расчет и передача в окна рациональных параметров

//разрезки листа на полосы, а полосы на заготовки:

Cutting(); //Эта функция нужна для расчета W_F.

//Расчет и передача значения ширины полосы "B"

//в окно textBox1 на Form5:

B = Bstrip();

textBox1.Text = B.ToString();

//Расчет и передача в окна на Form5 параметров раскроя:

D = DBlank();

textBox2.Text = D.ToString();

t = D + a;

textBox3.Text = t.ToString();

Web_a = a;

textBox4.Text = Web_a.ToString();

Web_b = b;

textBox5.Text = Web_b.ToString();

if (W_F==C)

{

Nblst = Math.Floor((L - a)/t);

textBox6.Text = Nblst.ToString();

G = Nblst * t;

textBox7.Text = G.ToString();

textBox8.Text = (L - G).ToString();

K_G = L;

textBox9.Text = L.ToString();

}

else

{

Nblst = Math.Floor((C - a)/t);

textBox6.Text = Nblst.ToString();

G = Nblst * t;

textBox7.Text = G.ToString();

textBox8.Text = (C - G).ToString();

K_G = C;

textBox9.Text = C.ToString();

}

//Сила вырезки заготовки в штампе:

textBox10.Text = ForceCut().ToString();

//Коэффициент раскроя полосы на заготовки

//диаметром D или D_blank:

textBox11.Text = (pi*D*D/4*Nblst/(K_G*B)).ToString();

Листинг 87.4. Код для выполнения анимации.

//Объявляем булеву переменную myText со значением false:

bool myText = false;

private void timer1_Tick(object sender, EventArgs e)

{

//Программируем анимацию:

if (myText == false)

{

//Выводим текст внутри элемента управления:

this.button1.Text = "Click";

//Изменяем значение myText на противоположное:

myText = true;

}

else

{

//Выводим другой текст внутри элемента управления: this.button1.Text = "OK";

//Изменяем значение myText на противоположное:

myText = false;

}

}

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

На практике часто ограничиваются только двумя операциями разрезки листа на полосы и полосы на заготовки; в этом случае следующая операция технологического процесса не нужна, и, соответственно, не нужна и кнопка Next>> на Form5.

В нашем общем случае требуется, чтобы (после щелчка кнопки Next>> на Form5, рис. 87.1) выходила следующая форма Form7 со следующей операцией технологического процесса (и со следующим эффектом анимации), к разработке которой мы и приступаем.

Предлагаю ознакомиться с аналогичными статьями: