using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;//nie opisywać bibliotek i importowanych przestrzeni, rzeczy pobocznych
namespace Elektromagnes
{
public partial class Form1 : Form
{
CElektromagnesNurnikowy en
= new CElektromagnesNurnikowy
();
public Form1()
{
InitializeComponent();
}
private void btnZamknij_Click(object sender, EventArgs e)
{
Close();
}
private void Form1_Load(object sender, EventArgs e)
{
tbInfo.AppendText("Start.\r\n\r\n");
tbInfo.AppendText("Program do obliczania elektromagnesu nurnikowego\r\n\r\n");
tbInfo.AppendText("Projekt: Krzysztof Kurzawa\r\n");
tbInfo.AppendText("Kierunek: Mechatronika\r\n");
tbInfo.AppendText("Rok III Semestr VI\r\n");
tbInfo.AppendText("Grupa EIUM2\r\n");
tbInfo.AppendText("Nr albumu: 130790\r\n");
}
private void bImportBH_Click(object sender, EventArgs e)
{
ofdImportBH.InitialDirectory = Application.StartupPath; //katalog do którego przejdzie okienko
if(ofdImportBH.ShowDialog()==DialogResult.OK)
{
tbInfo.AppendText("Wczytuję charakterystykę BH z pliku: " + ofdImportBH.FileName);
if (en.importBH(ofdImportBH.FileName))
{
tbInfo.AppendText("\r\nWczytano poprawnie.");
en.plotBH(chBH);
}
else
tbInfo.AppendText("\r\nNIE wczytano.");
tbInfo.AppendText("\r\nKoniec wczytywania.\r\n");
}
}
private void chBH_Click(object sender, EventArgs e)
{
}
private void chart1_Click(object sender, EventArgs e)
{
}
private void btnOblicz_Click(object sender, EventArgs e)
{
tbInfo.AppendText("Start obliczeń...\r\n");
en.Napiecie = float.Parse(tbU.Text);
tbInfo.AppendText("Napiecie:\t\t\t" + en.Napiecie.ToString() + "\t[V]\r\n");
en.Sila = float.Parse(tbF.Text);
tbInfo.AppendText("Sila:\t\t\t" + en.Sila.ToString() + "\t[N]\r\n");
en.Indukcja = float.Parse(tbB.Text);
tbInfo.AppendText("Indukcja:\t\t\t" + en.Indukcja.ToString() + "\t[T]\r\n");
en.Szczelina = float.Parse(tbx.Text);
tbInfo.AppendText("Szczelina powietrza:\t" + en.Szczelina.ToString() + "\t[m]\r\n");
en.Sn1 = (float)((float.Parse(tbF.Text) * 2 * 4 * Math.PI * Math.Pow(10, -7))/(Math.Pow(float.Parse(tbB.Text),2))) ;
tbInfo.AppendText("Pole przekroju:\t" + en.Sn1.ToString() + "\t[m^2]\r\n");
en.Dn = (float)(Math.Sqrt((4 * en.Sn1) / Math.PI));
tbInfo.AppendText("Średnica nura:\t" + en.Dn.ToString() + "\t[m]\r\n");
en.Dzew1 = (en.Dn + 2 * float.Parse(tbc.Text));
tbInfo.AppendText("Średnica zewnętrzna zwojów:\t" + en.Dzew1.ToString() + "\t[m]\r\n");
en.Dzk1 = (float)(Math.Sqrt(Math.Pow(en.Dn, 2) + Math.Pow(en.Dzew1, 2)));
tbInfo.AppendText("Średnica zewnętrzna korpusu elektromagnesu:\t" + en.Dzk1.ToString() + "\t[m]\r\n");
en.Hz = (float.Parse(tbh.Text) + 2 * float.Parse(tbhp.Text));
tbInfo.AppendText("Całkowita wysokość elektromagnesu:\t" + en.Hz.ToString() + "\t[m]\r\n");
en.Fi = (float.Parse(tbB.Text) * (en.Sn1));
tbInfo.AppendText("Strumień stały dla wszystkich punktów obwodu:\t" + en.Fi.ToString() + "\t[Wb]\r\n");
tbInfo.AppendText("Pola powierzchni przekroju w charakterystycznych punktach obwodu magnetycznego:\r\n");
en.S11 = (float)((Math.PI * Math.Pow(en.Dn, 2)) / 4);
tbInfo.AppendText("S1:\t" + en.S11.ToString() + "\t[m^2]\r\n");
en.Obliczone = true;//elektromagnes zostal obliczony; zeby wykorzystac konstruktory we wszystkich klasach w celu ...,mają pojawic sie wartosci false
tbInfo.AppendText("Koniec obliczeń.\r\n");
}
private void tpStruktura_Paint(object sender, PaintEventArgs e)
{
//if (en.Obliczone == true)
{
int wys = tpStruktura.Height;
int szer = tpStruktura.Width;
//sprawdzamy która odleglosc jest wieksza okna, elektromagnesu i proporcja szerokosci okna do elektromagnesu; pokolorowanie obszarów w zależności od indukcji - jeden kolor i jego intensywnosc uzależnic od warotści indukcji!!! na wyższą ocene
CRysunek R1
= new CRysunek
();//tweorzenie obiektu R1 klasy rysunek, wywolujemy konstruktor domyslny CRysunek;fragment kodu reprezentuje podstawianie zmiennych na podstawie kodu???
R1.X1 = 10;
R1.Y1 = 10;
R1.X2 = 90;
R1.Y2 = 10;
R1.X3 = 90;
R1.Y3 = 150;
R1.X4 = 10;
R1.Y4 = 150;
//tworzenie tablicy współrzędnych punktów
//tworzenie obszaru na podstawie 3 punktów
Point[] obszar = //tablica o nazwie obszar, każdy jej element typu point
{ //wypełnienie tablicy
(new Point
((int) R1
.X1,
(int) R1
.Y1)),
//tablica zmiennych typu Point, typ przechowujący informacje o zmiennych typu int, trzeba jawnie rzutowac - zamiana typów na int
(new Point
((int) R1
.X2,
(int) R1
.Y2)),
(new Point
((int) R1
.X3,
(int) R1
.Y3)),
(new Point
((int) R1
.X4,
(int) R1
.Y4))
};
double Bmax = 1.5;//maksymalną wartość indukcji
double Bmin = 0.0;
double B = 0.75;
double B_kolor = 255*(B / (Bmax - Bmin));//kolor w zależności od wartości indukcji
Color kolor = Color.FromArgb(0, (int) B_kolor, 0);//rzutowanie jawne zmiennej B_kolor na typ integer
Pen p1
= new Pen
(kolor,
3);//kolor kredki o grubosci 3
e.Graphics.DrawPolygon(p1, obszar);
//definicja pędzla
Brush b1
= new SolidBrush
(kolor
);//konstruktor klasy solidbrush
e.Graphics.FillPolygon(b1, obszar);
}
}
private void btnZapiszRysunek_Click(object sender, EventArgs e)
{
SaveFileDialog zapiszDialog
= new SaveFileDialog
();
zapiszDialog.Filter = "Bitmap |*.bmp"; //dodanie filtrowania tylko pliki graficzne interesuja
zapiszDialog.InitialDirectory = Application.StartupPath;
if (zapiszDialog.ShowDialog() == DialogResult.OK)
{
Bitmap bitmapa
= new Bitmap
(tpStruktura
.Width, tpStruktura
.Height);//argumenty to wymiary
tpStruktura
.DrawToBitmap(bitmapa,
new Rectangle
(0,
0, bitmapa
.Width, bitmapa
.Height));
bitmapa.Save(zapiszDialog.FileName, ImageFormat.Bmp); //metoda save dla komp bitmapa
}
}
}
}