Thiết kế chế tạo máy cắt khắc laser

82 4 0
Thiết kế chế tạo máy cắt khắc laser

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỜI CAM KẾT ii LỜI CẢM ƠN iii TÓM TẮT ĐỒ ÁN iv ABSTRACT v MỤC LỤC vi DANH MỤC HÌNH ẢNH ix DANH MỤC SƠ ĐỒ, BẢNG BIỂU xii DANH MỤC TỪ VIẾT TẮT xiii Chương 1: GIỚI THIỆU 1.1 Tính cấp thiết đề tài 1.2 Ý nghĩa khoa học thực tiễn đề tài 1.3 Mục tiêu nghiên cứu đề tài 1.4 Đối tượng phạm vi nghiên cứu 1.4.1 Đối tượng nghiên cứu 1.4.2 Phạm vi nghiên cứu 1.5 Phương pháp nghiên cứu 1.5.1 Cách thức nghiên cứu 1.5.2 Phương tiện nghiên cứu 1.6 Kết cấu đồ án tốt nghiệp Chương 2: TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI 2.1 Sơ lược phát triển tia laser 2.1.1 Laser 2.1.2 Tính chất laser 2.1.3 Ứng dụng laser 2.2 Tình hình nghiên cứu 2.2.1 Ngoài nước 2.2.2 Trong nước 2.3 Hướng nghiên cứu Chương 3: CƠ SỞ LÝ THUYẾT 3.1 Phần khí 3.1.1 Động bước 3.1.2 Bộ truyền đai 10 vi 3.2 Phần điện 13 3.2.1 Mạch driver TB6560[10] 13 3.2.2 Mạch điều khiển Arduino 15 3.2.3 Mạch giảm áp LM2596 17 3.2.4 Mạch driver laser 17 Chương 4: PHƯƠNG HƯỚNG VÀ CÁC GIẢI PHÁP 19 4.1 Những yêu cầu đề tài 19 4.2 Cơ sở chọn phương án thiết kế 19 4.3 Phần khí 19 4.4 Phần điện 22 4.5 Lựa chọn giải pháp 23 4.5.1 Phần khí 23 4.5.2 Phần điện 25 4.6 Trình tự cơng việc tiến hành 25 Chương 5: TÍNH TỐN THIẾT KẾ MÁY CẮT KHẮC LASER 26 5.1 Tính tốn tốc độ quay động 26 5.2 Tính tốn thiết kế truyền đai 27 5.3 Thiết kế khí 28 5.3.1 Mô hình tổng thể 28 5.3.2 Cơ cấu truyền động trục x 29 5.3.3 Cơ cấu truyền động trục y 29 5.3.4 Cơ cấu gá laser 30 5.3.5 Cơ cấu gá vật liệu 30 5.3.6 Gá động trục x 31 5.3.7 Gá động trục y 31 5.3.8 Hướng chuyển động tịnh tiến trục 32 5.4 Phân tích khả chịu ứng suất cho trượt chịu lực 32 Chương 6: CHẾ TẠO VÀ THỬ NGHIỆM 34 6.1 Hệ thống điều khiển máy 34 6.2 Các phận cấu trúc khí 34 6.3 Các phận cấu trúc hệ thống mạch điện điều khiển 41 6.4 Lập trình điều khiển 44 6.5 Quá trình thực nghiệm 50 Chương 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52 7.1 Kết luận 52 7.2 Phần làm 52 vii 7.3 Phần chưa làm hạn chế 52 7.4 Kiến nghị hướng phát triển 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC I 55 PHỤ LỤC II 65 viii DANH MỤC HÌNH ẢNH Hình 2.1: Minh họa tia laser Hình 2.2: Ứng dụng laser khí Hình 2.3: Ứng dụng laser y học Hình 2.4: Ứng dụng laser giải trí Hình 2.5: Phân bố ứng dụng laser Hình 2.6: Máy cắt laser công nghiệp Hình 2.7: Máy cắt khắc laser mini Hình 3.1: Động bước thực tế Hình 3.2: Động bước từ trở Hình 3.3: Động bước đơn cực Hình 3.4: Động bước hai cực Hình 3.5: Động nhiều pha Hình 3.6: Các phận cần thiết động Hình 3.7: Mối quan hệ F1, F2, α, f 11 Hình 4.1: Đế Inox 23 Hình 4.2: Tấm đế 24 Hình 4.3: Thép lỗ 24 Hình 5.1 Mơ hình máy cắt khắc laser 28 Hình 5.2: Truyền động theo trục x 29 Hình 5.3: Truyền động theo trục y 29 Hình 5.4: Cơ cấu gá laser 30 Hình 5.5: Cơ cấu gá vật liệu nam châm 30 ix Hình 5.6: Gá đặt động trục x 31 Hình 5.7: Gá đặt động trục y 31 Hình 5.8: Hướng chuyển động truc 32 Hình 5.9: Lực tác dụng trượt 32 Hình 5.10: Ứng suất trượt 33 Hình 6.1: Gối đỡ trượt máy 35 Hình 6.2: Cơ cấu gối đỡ truyền máy 35 Hình 6.3: Cơ cấu puly trục y máy 35 Hình 6.4: Cơ cấu Puly trục x máy 36 Hình 6.5: Cơ cấu tịnh tiến bệ laser 36 Hình 6.6: Cơ cấu lắp động trục x máy 37 Hình 6.7: Cơ cấu lắp động trục y máy 37 Hình 6.8: Cơ cấu di chuyển trục x máy 38 Hình 6.9 Cơ cấu lắp truyền trục x máy 38 Hình 6.10: Cơ cấu chuyển động trục y máy 38 Hình 6.11: Cơ cấu gá vật liệu máy 39 Hình 6.12: Cảm biến quang trục x nhận biết 39 Hình 6.13: Cảm biến quang trục y nhận biết 40 Hình 6.14: Mơ hình tổng thể thực tế cùa máy cắt khắc laser 40 Hình 6.15: Mạch Driver TB6560 điều khiển động bước 41 Hình 6.16: Mạch điều khiển Arduino ATMEGA 2560 41 Hình 6.17: Mạch nguồn 24V 42 Hình 6.18: Mạch giảm áp DC LM 2596 3A 42 Hình 6.19: Mạch công suất laser 12V 2W 42 x Hình 6.20: Cảm biến quang tiêm cận chữ U 43 Hình 6.21: Mạch điều khiển 44 Hình 6.22: Giao diện phần mềm Arduino 47 Hình 6.23: Giao diện điều khiển 47 Hình 6.24: Giao diện làm việc phần mềm Inkscape 48 Hình 6.25: File Gcode xuất phần mềm Inkscape 48 Hình 6.26: Kết nối cổng COM 49 Hình 6.27: Kết nối thành cơng với VDK 49 Hình 6.28: Import Gcode 50 Hình 6.29: Kết thực nghiệm 51 xi DANH MỤC SƠ ĐỒ, BẢNG BIỂU Sơ đồ 3.1: Mạch nguyên lý TB6560 13 Sơ đồ 3.2: Sơ đồ khối module TB6560 14 Sơ đồ 3.3: Ghép nối với mạch điều khiển 15 Sơ đồ 3.4 : Mạch nguyên lý LM2596 17 Sơ đồ 3.5: Mạch nguyên lý driver laser 2W 17 Bảng 4.1: Ưu điểm nhược điểm loại động 19 Bảng 4.2: Ưu điểm nhược điểm truyền 20 Bảng 4.3: Ưu điểm nhược điểm đồ gá 21 Bảng 4.4: Ưu điểm nhược điểm loại vật liệu 21 Bảng 4.5: Ưu điểm nhược điểm cấu di chuyển 22 Bảng 4.6: Ưu điểm nhược điểm PIC, ARM, ARDUINO 22 Bảng 5.1: Thông số động bước KH56KM2- 912[5] 26 Bảng 5.2: Step số động bước thông dụng[12] 26 Bảng 5.3: Các thơng số truyền đai gờ hình thang[6] 28 Bảng 5.4: Thông số vật liệu chi tiết cấu chọn 33 Sơ đồ 6.1: Hệ thống điều khiển máy 34 Sơ đồ 6.2: Sơ đồ kết nối hệ thống mạch điếu khiển máy 43 Lưu đồ 6.3: Lưu đồ điều khiển hệ thống 45 Lưu đồ 6.4: Lưu đồ giải thuật nội suy 46 Bảng 6.5: Thông số kiểm nghiệm 51 xii DANH MỤC TỪ VIẾT TẮT CNC Computerized Numerical Control COM Communication SCARA Selective Compliance Assembly Robot Arm LASER Light Amplification by Stimulated Emission of Radiation xiii Chương 1: GIỚI THIỆU 1.1 Tính cấp thiết đề tài Ngày nay, cơng nghiệp hóa, đại hóa ngày phát triển, nước ta cố gắng hướng tới năm 2020 trở thành nước cơng nghiệp hóa Việc ứng dụng cơng nghệ vào sản xuất ngày trở nên phổ biến đóng vai trị quan trọng Các máy móc thiết bị làm việc nhanh, hiệu xác để thay người nhằm tăng suất hiệu cơng việc Nhận thấy tầm quan trọng này, nhóm tiến hành nghiên cứu chế tạo, tính tốn thiết kế máy cắt khắc laser, nhằm đáp ứng nhu cầu cho người sử dụng 1.2 Ý nghĩa khoa học thực tiễn đề tài Về mặt khoa học, máy cắt khắc laser giải vấn đề vẽ tranh, cắt biên dạng phức tạp vật liệu khác nhau, có kích cỡ Máy cắt khắc laser cần thiết cho nhu cầu cắt khắc loại, việc đáp ứng nhanh, xác thực thời gian ngắn 1.3 Mục tiêu nghiên cứu đề tài Đề tài nghiên cứu: ‟Thiết kế chế tạo máy cắt khắc laser” thực theo mục tiêu sau:  Thiết kế chế tạo khí cho máy, theo cấu trục  Xây dựng chương trình điều khiển máy cắt khắc theo vẽ thiết kế  Máy thao tác nhiều vật liệu khác như: mica, gỗ,vải,… 1.4 Đối tượng phạm vi nghiên cứu 1.4.1 Đối tượng nghiên cứu  Các cấu liên quan đến máy cắt khắc laser  Các loại máy cắt khắc laser có thị trường  Cách thức hoạt động máy  Điều khiển động bước  Giao tiếp điều khiển máy tính  Nội suy đường thẳng, đường cong theo trục 1.4.2 Phạm vi nghiên cứu  Thời gian nghiên cứu đề tài khoảng bốn tháng(tháng 8-12/2015)  Nghiên cứu tìm hiểu máy móc thiết bị phịng thí nghiệm nhà trường có liên quan đến đề tài  Những sách chuyên ngành thư viện trường  Các trang tài liệu số máy móc thiết bị cơng ty có liên quan  Nghiên cứu lĩnh vực máy tự động phục vụ nhà trường, phòng thí nghiệm 1.5 Phương pháp nghiên cứu 1.5.1 Cách thức nghiên cứu  Khảo sát thực tế, thông qua việc tham quan số sở cắt khắc mica, làm bảng hiệu sở Tồn Năng  Tìm hiểu số đề tài nghiên cứu khoa học, có liên quan đến đề tài nhóm  Tham khảo tài liệu trang web số sách liên quan 1.5.2 Phương tiện nghiên cứu  Sử dụng phần mềm Solidworks 2014 thiết kế khí cho đề tài  Dùng phần mềm Arduino để lập trình cho mạch điều khiển  Sử dụng phần mềm Visual Studio 2010 để tạo giao diện điều khiển  Dùng driver TB6560 để điều khiển động bước 1.6 Kết cấu đồ án tốt nghiệp Đồ án gồm sáu chương với nội dung sau: Chương : Giới thiệu Giới thiệu lý chọn đề tài, ý nghĩa khoa học thực tiễn đề tài, mục tiêu nghiên cứu đề tài,… Chương : Tổng quan nghiên cứu đề tài Trình bày tổng quan, sơ lược lĩnh vực nghiên cứu, thành tựu nghiên cứu nước Chương : Cơ sở lý thuyết Trình bày sở lý thuyết cần thiết để thực đề tài Chương : Phương hướng giải pháp Trình bày mơ hình phần cứng thiết bị, mạch điện điều khiển sau chọn giải pháp thích hợp Lập trình tự cơng việc Chương : Tính tốn thiết kế máy cắt khắc laser: Tính tốn thơng số máy : thông số động cơ, thông số truyền đai răng, thiết kế phần cứng, lắp ráp mô chuyển động Chương : Chế tạo thử nghiệm : Chế tạo mơ hình thực tế, vận hành kiểm tra, thử nghiệm sản phẩm Chương : Kết luận hướng phát triển Trình bày kết chưa đạt được, đề nghị đưa hướng phát triển cho đề tài { tdy = Convert.ToDouble(s1); Y = Convert.ToDouble(tdy); } if (kt == "I") { tdi = Convert.ToDouble(s1); I = Convert.ToDouble(tdi); } if (kt == "J") { tdj = Convert.ToDouble(s1); J = Convert.ToDouble(tdj); } s1 = ""; } else { s1 += text2; } } R = Math.Sqrt(I*I + J*J); Y1 = Y0; X1 = X0; if(Y0 >= (Y + J)) { goc0 = (Math.Acos((X0 - X - I) / (Math.Abs(Math.Sqrt(I * I + J * J))))); } if (Y0 < (Y + J)) { goc0 = 2*Math.PI-(Math.Acos((X0 - X - I) / (Math.Abs(Math.Sqrt(I * I + J * J))))); } if (Y >= (Y + J)) { goc1 = (Math.Acos((-I) / (Math.Sqrt(I * I + J * J)))); } if (Y < (Y + J)) { goc1 = 2*Math.PI -(Math.Acos((-I) / (Math.Sqrt(I * I + J * J)))); } hs = 0.005; if(goc0 >= goc1) { for (double i = goc0; i > goc1; i = i - hs) { X1 = X + I + R * Math.Cos(i); Y1 = Y + J + R * Math.Sin(i); lenh[k1] += "X" + (X1).ToString() + " Y" + (Y1).ToString() + " Z1 "; k1++; // textBox6.Text += "X:" + X1.ToString() + "\n"; } } if(goc0 < goc1) { for (double i = goc0; i > 0; i = i - hs) { X1 = X + I + R * Math.Cos(i); Y1 = Y + J + R * Math.Sin(i); 60 lenh[k1] += "X" + (X1).ToString() + " Y" + (Y1).ToString() + " Z1 "; k1++; // textBox6.Text += "X:" + X1.ToString() + "\n"; } for (double i = 2*Math.PI; i >= goc1; i = i - hs ) { X1 = X + I + R * Math.Cos(i); Y1 = Y + J + R * Math.Sin(i); lenh[k1] += "X" + (X1).ToString() + " Y" + (Y1).ToString() + " Z1 "; k1++; // textBox6.Text += "X:" + X1.ToString() + "\n"; } } Y0 = Y; X0 = X; } private void datatextG01(string textdata) { string ka = textdata; kt = ""; for (int k5 = 0; k5 < textdata.Length; k5++) { string text2 = (textdata[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y")) { kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); X = Convert.ToDouble(tdx); } if (kt == "Y") { tdy = Convert.ToDouble(s1); Y = Convert.ToDouble(tdy); } s1 = ""; } else { s1 += text2; } } X0 = X; Y0 = Y; lenh[k1] += "X" + X + " Y" + Y + " Z1 "; k1++; } private void datatextG1(string textdata) { string ka = textdata; kt = ""; for (int k5 = 0; k5 < textdata.Length; k5++) { string text2 = (textdata[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y")) { 61 kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); X = Convert.ToDouble(tdx); } if (kt == "Y") { tdy = Convert.ToDouble(s1); Y = Convert.ToDouble(tdy); } s1 = ""; } else { s1 += text2; } } X0 = X; Y0 = Y; lenh[k1] += "X" + X + " Y" + Y + " Z0 "; k1++; //textBox1.Text += "X:" + X.ToString() + "Y:" + Y.ToString() + "I:" + I.ToString() + "J:" + J.ToString(); //textBox1.Text = "G1"; // textBox6.Text = lenh[k1].ToString(); } private void send(string text1) { string ka = text1; kt = ""; for (int k5 = 0; k5 < text1.Length; k5++) { string text2 = (text1[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y") || (text2 == "Z")) { kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); SetText(s1); tdox = Convert.ToInt64(tdx * 77); serialPort1.Write("X"); serialPort1.Write(tdox.ToString()); serialPort1.Write(" "); // MessageBox.Show(tdox.ToString()); } if (kt == "Y") { tdy = Convert.ToDouble(s1); SetText1(s1); tdoy = Convert.ToInt64(tdy * 51.5); serialPort1.Write("Y"); serialPort1.Write(tdoy.ToString()); serialPort1.Write(" "); //MessageBox.Show(tdoy.ToString()); 62 } if (kt == "Z") { tdz = Convert.ToDouble(s1); tdoz = Convert.ToInt64(tdz * 1); serialPort1.Write("Z"); serialPort1.Write(tdoz.ToString()); serialPort1.Write(" "); } s1 = ""; } else { s1 += text2; } } serialPort1.WriteLine("R"); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void buttonstar_Load(object sender, EventArgs e) { } private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e) { } private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void openToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Filter = "Gcode: NC |*.nc;*.txt;|All file types|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { richTextBox1.Text = File.ReadAllText(openFileDialog1.FileName); } } private void tabPage1_Click(object sender, EventArgs e) { } 63 private void buttonlen_Click(object sender, EventArgs e) { string up = ""; Y = Y - 100; up += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(up); } private void buttonxuong_Click(object sender, EventArgs e) { string down = ""; Y = Y + 100; down += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(down); } private void button6_Click(object sender, EventArgs e) { on = true; } private void buttonstop_Click(object sender, EventArgs e) { on = false; } private void buttontrai_Click(object sender, EventArgs e) { string trai = ""; X = X - 100; trai += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(trai); } private void buttonphai_Click(object sender, EventArgs e) { string phai = ""; X = X + 100; phai += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(phai); } private void richTextBox1_TextChanged(object sender, EventArgs e) { } } } 64 PHỤ LỤC II Code giao diện điều khiển C# using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO.Ports; using System.IO; namespace CNC_Controller { public partial class buttonstar : Form { public buttonstar() { InitializeComponent(); } int comlen = 0; string[] lenh = new string[10000000]; double goc0 = 0; double goc1 = 0; int k1 = 0; int k2 = 0; int k3 = 0; double hs = 0; string kt = ""; string s1 = ""; double R = 0; double Xmin = 0, Xmax = 0, Ymin = 0, Ymax = 0; double X = 0, Y = 0, I = 0, J = 0; double X1 = 0, Y1 = 0; double X0 = 0, Y0 = 0; double tdx = 0, tdy = 0, tdz = 0, tdi = 0, tdj = 0; double tdox = 0, tdoy = 0, tdoz = 0, tdoi = 0, tdoj = 0; bool on = false; delegate void SetTextCallback(string text); string s = String.Empty; private void button2_Click(object sender, EventArgs e) { int dem = 0; string strInput = richTextBox1.Text; string[] strArr = strInput.Split('\n'); foreach (string item in strArr) { string aa = item + " "; data(aa); } } private void timer1_Tick(object sender, EventArgs e) { string[] sport = SerialPort.GetPortNames(); if (comlen != sport.Length) { 65 comlen = sport.Length; comboBox1.Items.Clear(); for (int j = 0; j < comlen; j++) { comboBox1.Items.Add(sport[j]); if (sport[j] == Properties.Settings.Default.PortName) { comboBox1.Text = Properties.Settings.Default.PortName; } } } } private void button3_Click(object sender, EventArgs e) { if (comboBox1.Text == "") { MessageBox.Show(" Vui long chon cong COM", "Thong bao", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (serialPort1.IsOpen == true) { serialPort1.Close(); button3.Text = "Connect"; label2.Text = "DisConnect"; comboBox1.Enabled = true; } else { serialPort1.PortName = comboBox1.Text; try { serialPort1.Open(); button3.Text = "DisConnect"; label2.Text = "Connect"; comboBox1.Enabled = false; MessageBox.Show("Da ket noi:" + serialPort1.PortName); } catch (System.Exception ex) { MessageBox.Show(" Khong thu mo cong Com" + serialPort1.PortName, " Loi ", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void timer2_Tick(object sender, EventArgs e) { if (checkBox1.Checked == true) { serialPort1.WriteLine(lenh[k2]); k2++; } else { k2 = 0; } } 66 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { s = serialPort1.ReadExisting(); //SetText(s); if(on == true) { if( s =="R") { //MessageBox.Show(lenh[k3]); send(lenh[k3]); k3++; } } } private void SetText(string text) { if (this.textBox1.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); // khởi tạo delegate gọi đến SetText this.Invoke(d, new object[] { text }); } else this.tbtdoX.Text = text; } private void SetText1(string text) { if (this.textBox3.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText1); // khởi tạo delegate gọi đến SetText this.Invoke(d, new object[] { text }); } else this.tbtdoY.Text = text; } private void data(string text) { string ka = text; for (int k5 = 0; k5 < text.Length; k5++) { string text2 = (text[k5]).ToString(); // MessageBox.Show(text2); if (text2 == "G") { kt = text2; } else if (text2 == " ") { if (kt == "G") { if (s1 == "1") { datatextG1(text); // textBox1.Text = "G1"; } if (s1 == "01") { datatextG01(text); // textBox1.Text = "G1"; } if (s1 == "02") { 67 // textBox1.Text = "G2"; datatextG02(text); } if (s1 == "03") { // textBox1.Text = "G3"; datatextG03(text); } } s1 = ""; } else { s1 += text2; } } } private void datatextG03(string textdata) { string ka = textdata; for (int k5 = 0; k5 < textdata.Length; k5++) { string text2 = (textdata[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y") || (text2 == "I") || (text2 == "J")) { kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); X = Convert.ToDouble(tdx); } if (kt == "Y") { tdy = Convert.ToDouble(s1); Y = Convert.ToDouble(tdy); } if (kt == "I") { tdi = Convert.ToDouble(s1); I = Convert.ToDouble(tdi); } if (kt == "J") { tdj = Convert.ToDouble(s1); J = Convert.ToDouble(tdj); } s1 = ""; } else { s1 += text2; } } R = Math.Sqrt(I * I + J * J); Y1 = Y0; 68 X1 = X0; if (Y0 >= (Y + J)) { goc0 = (Math.Acos((X0 - X - I) / (Math.Abs(Math.Sqrt(I * I + J * J))))); } if (Y0 < (Y + J)) { goc0 = * Math.PI - (Math.Acos((X0 - X - I) / (Math.Abs(Math.Sqrt(I * I + J * J))))); } if (Y >= (Y + J)) { goc1 = (Math.Acos((-I) / (Math.Sqrt(I * I + J * J)))); } if (Y < (Y + J)) { goc1 = * Math.PI - Math.Acos((-I) / (Math.Sqrt(I * I + J * J))); } hs = 0.005; // textBox6.Text += "X:" + goc0.ToString() + "Y:" + goc1.ToString() + I.ToString() + "J:" + J.ToString(); if (goc0 = (Y + J)) { goc1 = (Math.Acos((-I) / (Math.Sqrt(I * I + J * J)))); } if (Y < (Y + J)) { goc1 = 2*Math.PI -(Math.Acos((-I) / (Math.Sqrt(I * I + J * J)))); } hs = 0.005; if(goc0 >= goc1) { for (double i = goc0; i > goc1; i = i - hs) { 70 X1 = X + I + R * Math.Cos(i); Y1 = Y + J + R * Math.Sin(i); lenh[k1] += "X" + (X1).ToString() + " Y" + (Y1).ToString() + " Z1 "; k1++; // textBox6.Text += "X:" + X1.ToString() + "\n"; } } if(goc0 < goc1) { for (double { X1 = X + Y1 = Y + lenh[k1] i = goc0; i > 0; i = i - hs) I + R * Math.Cos(i); J + R * Math.Sin(i); += "X" + (X1).ToString() + " Y" + (Y1).ToString() + " Z1 "; k1++; // textBox6.Text += "X:" + X1.ToString() + "\n"; } for (double i = 2*Math.PI; i >= goc1; i = i - hs ) { X1 = X + I + R * Math.Cos(i); Y1 = Y + J + R * Math.Sin(i); lenh[k1] += "X" + (X1).ToString() + " Y" + (Y1).ToString() + " Z1 "; k1++; // textBox6.Text += "X:" + X1.ToString() + "\n"; } } Y0 = Y; X0 = X; } private void datatextG01(string textdata) { string ka = textdata; kt = ""; for (int k5 = 0; k5 < textdata.Length; k5++) { string text2 = (textdata[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y")) { kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); X = Convert.ToDouble(tdx); } if (kt == "Y") { tdy = Convert.ToDouble(s1); Y = Convert.ToDouble(tdy); } s1 = ""; } else { s1 += text2; } } X0 = X; 71 Y0 = Y; lenh[k1] += "X" + X + " Y" + Y + " Z1 "; k1++; } private void datatextG1(string textdata) { string ka = textdata; kt = ""; for (int k5 = 0; k5 < textdata.Length; k5++) { string text2 = (textdata[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y")) { kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); X = Convert.ToDouble(tdx); } if (kt == "Y") { tdy = Convert.ToDouble(s1); Y = Convert.ToDouble(tdy); } s1 = ""; } else { s1 += text2; } } X0 = X; Y0 = Y; lenh[k1] += "X" + X + " Y" + Y + " Z0 "; k1++; } private void send(string text1) { string ka = text1; kt = ""; for (int k5 = 0; k5 < text1.Length; k5++) { string text2 = (text1[k5]).ToString(); // MessageBox.Show(text2); if ((text2 == "X") || (text2 == "Y") || (text2 == "Z")) { kt = text2; } else if (text2 == " ") { if (kt == "X") { tdx = Convert.ToDouble(s1); SetText(s1); tdox = Convert.ToInt64(tdx * 77); serialPort1.Write("X"); serialPort1.Write(tdox.ToString()); serialPort1.Write(" "); // MessageBox.Show(tdox.ToString()); 72 } if (kt == "Y") { tdy = Convert.ToDouble(s1); SetText1(s1); tdoy = Convert.ToInt64(tdy * 51.5); serialPort1.Write("Y"); serialPort1.Write(tdoy.ToString()); serialPort1.Write(" "); //MessageBox.Show(tdoy.ToString()); } if (kt == "Z") { tdz = Convert.ToDouble(s1); tdoz = Convert.ToInt64(tdz * 1); serialPort1.Write("Z"); serialPort1.Write(tdoz.ToString()); serialPort1.Write(" "); // MessageBox.Show(tdoz.ToString()); } // tbtdoX.Text = tdx.ToString(); // tbtdoY.Text = tdy.ToString(); s1 = ""; } else { s1 += text2; } } serialPort1.WriteLine("R"); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void buttonstar_Load(object sender, EventArgs e) { } private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e) { } private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void openToolStripMenuItem_Click(object sender, EventArgs e) 73 { openFileDialog1.Filter = "Gcode: NC |*.nc;*.txt;|All file types|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { richTextBox1.Text = File.ReadAllText(openFileDialog1.FileName); } } private void tabPage1_Click(object sender, EventArgs e) { } private void buttonlen_Click(object sender, EventArgs e) { string up = ""; Y = Y - 100; up += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(up); } private void buttonxuong_Click(object sender, EventArgs e) { string down = ""; Y = Y + 100; down += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(down); } private void button6_Click(object sender, EventArgs e) { on = true; } private void buttonstop_Click(object sender, EventArgs e) { on = false; } private void buttontrai_Click(object sender, EventArgs e) { string trai = ""; X = X - 100; trai += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(trai); } private void buttonphai_Click(object sender, EventArgs e) { string phai = ""; X = X + 100; phai += "X" + (X).ToString() + " Y" + (Y).ToString() + " "; send(phai); } private void richTextBox1_TextChanged(object sender, EventArgs e) { } } } 74 ... nghiên cứu: ? ?Thiết kế chế tạo máy cắt khắc laser? ?? thực theo mục tiêu sau:  Thiết kế chế tạo khí cho máy, theo cấu trục  Xây dựng chương trình điều khiển máy cắt khắc theo vẽ thiết kế  Máy thao... công việc chế tạo thiết kế máy móc thiết bị cịn hạn chế Lý điều kiện chi phí thiết bị phục vụ cho việc nghiên cứu cịn cũ kỹ, lạc hậu Cũng có cơng trình nghiên cứu, chế tạo máy khắc laser chưa... tiễn đề tài Về mặt khoa học, máy cắt khắc laser giải vấn đề vẽ tranh, cắt biên dạng phức tạp vật liệu khác nhau, có kích cỡ Máy cắt khắc laser cần thiết cho nhu cầu cắt khắc loại, việc đáp ứng nhanh,

Ngày đăng: 31/10/2022, 17:12

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan