Tự động hóa thiết kế Auto CAD

23 150 1
Tự động hóa thiết kế Auto CAD

Đ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

Bài tập lớn mơn học: Tự động hóa thiết kế Mục lục PHẦN 1: GiỚI THIỆU CHUNG .2 1.1 Mở đầu 1.1.1 Lý chọn đề tài 1.1.2 Mục đích đề tài .2 1.1.3 Đối tượng phạm vi nghiên cứu 1.1.4 Ý nghĩa thực tiễn đề tài 1.2 Cơ sở lý thuyết tính tốn 1.2.1 Tổng quan bích 1.2.2 Lý thuyết 1.3 Sơ đồ thuật toán 1.4 Giới thiệu form hướng dẫn sử dụng 1.4.1 Form (bick5k) .6 1.4.2 Form phụ(tác giả) 1.4.3 Form phụ (DHSD) .7 1.5 Kết luận PHẦN 2: CODE LỆNH 2.1 Code cho form 2.2 Hàm cho form hướng dẫn sử dụng 21 PHẦN THỬ BỘI SỐ 22 3.1 Thông số thử .22 3.2 Kết chạy thử .22 3.3 Nhận xét 23 Sinh viên: Lý Đức Quyết Trang Bài tập lớn môn học: Tự động hóa thiết kế PHẦN 1: GiỚI THIỆU CHUNG 1.1 Mở đầu 1.1.1 Lý chọn đề tài Ngày cơng việc thiết kế đòi hỏi tính hiệu xác cao, cần phải tự động hóa để đạt điều Máy tính thiết bị sử dụng rộng rãi công việc giảng dạy học tập, thuận tiện cho việc tự động hóa thiết kế Trong nhiều phần mềm tự động hóa, phần mềm đươc sử dụng nhiều với người thiết kế autocad, autocad có chương trình tự động hóa cao VBA Với VBA bạn lập trình để vẽ chi tiết từ đơn giản tới phức tạp, quản lý vẽ theo nhu cầu, load, xuất file nhanh chóng, gọn nhẹ Ví dụ: dùng VBA để tự động vẽ mặt bích, bu lơng chí chong chóng tàu thủy hay thiết bị phức tạp máy chính, đường trục… Sở dĩ VBA ứng dụng nhiều đồng hóa câu lệnh VBA Autocad, kết hợp khả vẽ mạnh mẽ Autocad khả quản lý, tính tốn ngơn ngữ lập trình VB 1.1.2Mục đích đề tài Giúp cho sinh viên nắm bắt cách lập trình chương trình VBA để ứng dụng vào học tập công việc sau Cho phép người sử dụng đẩy nhanh tốc độ vẽ, nâng cao độ xác cơng việc thiết kế 1.1.3 Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu chương trình VBA, chương trình tự động hóa nằm phần mềm autocad Trong mơi trường học tập phạm vi nghiên cứu đề tài lập trình chương trình đơn giản để vẽ chi tiết không phức tạp tiêu chuẩn hóa 1.1.4Ý nghĩa thực tiễn đề tài VBA giúp cho người thiết kế thao tác nhanh xác nhiều so với thao tác trực tiếp tay để vẽ Qua đẩy nhanh tốc độ cơng việc đảm bảo tính xác Rút ngắn thời gian thiết kế qua tăng suất lao động Sinh viên: Lý Đức Quyết Trang Bài tập lớn mơn học: Tự động hóa thiết kế 1.2 Cơ sở lý thuyết tính tốn 1.2.1 Tởng quan bích Mặt bích, hay biết đến đĩa bích, gắn với đầu ống sử dụng để kết nối với ống khác Mối liên kết mặt bích tháo lắp cấu trúc chống thấm, kết hợp bích nối, đệm bu lơng Mặt bích nối ốn thép loại mặt bích đặc biệt dùng cho đường ống mặt bích ống nạp - ống xả trang bị Có lỗ khoan mặt bích để bắt bu lơng liên kết mặt bích với Một vòng đệm mặt bích nhằm bảo vệ tránh tượng rò gỉ Ngày người sử dụng ống nhiều sống công nghiệp, đặc biệt đóng tàu Do bích nối phát triển để phù hợp với phát triển đường ống Có thể nói ống có mặt đâu mặt bích có mặt đó, từ đường ống dẫn khí, dẫn dầu lớn dài, tới đường ống nhỏ dùng để dẫn nước … Ngày cơng nghiệp đóng tàu sử dụng ống nhiều cho trang trí phát triển bích nối điều bắt buộc Bích nối thường tiêu chuẩn hóa để tiện cho việc gia cơng chế tạo, tăng tính lắp lẫn cho bích Một số trường hợp để đảm bảo an tồn xảy cố, đặc biệt bích kiểu thường bích hệ thống chữa cháy tàu, theo cơng ước SOLAR an tồn hỏa hoạn biển Tiêu chuẩn JIS tiêu chuẩn mặt bích ống, người ta đưa số hiệu mặt bích sẵn để tiện cho việc chế tạo sử dụng Trong đề tài nghiên cứu cách vẽ loại mặt bích thuộc tiêu chuẩn này, mặt bích đơi loại 5k Hình 1-1: Sinh viên: Lý Đức Quyết Mặt bích đơi tiêu chuản JIS 5k Trang Bài tập lớn mơn học: Tự động hóa thiết kế Mặt bích đơi chi tiết thường dùng hệ thống nước tàu Khi ta muốn công chất đường ống chảy vào hệ thống ta cho mặt bích có lỗ vào trông mối lắp ghép, lỗ thiết kế có đường kính đường kính ống Khi muốn ngắt cơng chất ta quay ngược phía bích lại lắp vào hệ thống, lúc bích ngăn cản trao đổi công chất đường ống qua bích 1.2.2 Lý thuyết Để thiết kế bích đơi ta sử dụng bảng số liệu bích đơi 5k tiêu chuẩn jis sau: Hình 1-2: Sinh viên: Lý Đức Quyết Thơng số mặt bích Trang Bài tập lớn mơn học: Tự động hóa thiết kế Như ta đă đủ số liệu để tính tốn vẽ bích đơi theo tiêu chuẩn jis Để thuận tiện q tŕnh tính tồn kết xuất vẽ ta sử dụng phần mềm VBA AutoCad để thực chương tŕnh 1.3 Sơ đồ thuật toán Hình 1-3: Sinh viên: Lý Đức Quyết Sơ đồ thuật tốn Trang Bài tập lớn mơn học: Tự động hóa thiết kế 1.4 Giới thiệu form hướng dẫn sử dụng Chương trình đơn giản nên ta cần làm số form 1.4.1 Form (bick5k) Hình 1-4: Form Trên form có: Combobox1 để lựa chọn đường kính danh nghĩa Com bobox2 để lựa chọn có hay khơng ghi kích thước Combobox3 để lựa chọn mặt cắt muốn vẽ đứng cạnh Combobox4 để lựa chọn phương vẽ click chuột hay nhập giá trị góc Nếu click chuột nhấn nút vẽ chương trình yêu cầu nhập điểm để chọn phương Nếu nhập giá trị góc chương trình hiển thị textbox yêu cầu nhập giá trị góc Nút vẽ để vẽ bích sau lựa chọn đủ thơng số Nút lệnh dùng để rời khỏi chương trình Nút lệnh tác giả để xem thơng tin tác giả Nút lệnh HDSD đẻ xem cách dùng Sinh viên: Lý Đức Quyết Trang Bài tập lớn mơn học: Tự động hóa thiết kế 1.4.2 Form phụ(tác giả) Hình 1-5: Sinh viên: Lý Đức Quyết Form tác giả Trang Bài tập lớn môn học: Tự động hóa thiết kế Form chứa thơng tin tác giả, nên người dùng nhấn vào nút tác giả từ form hay từ form DHSD Các nút: Quay lại để trở form DHSD để xem hướng dẫn sử dụng Thoát để rời khỏi chương trình 1.4.3 Form phụ (DHSD) Hình 1-6: Form hướng dẫn sử dụng Form chứa thông tin cách thức sử dụng chương trình, nên người dùng nhấn vào nút HDSD từ form hay từ form tác giả Các nút: Quay lại để trở form Tác giả để xem thơng tin tác giả Thốt để rời khỏi chương trình 1.5 Kết luận Dù hướng dẫn tận tình giáo viên hướng dẫn vốn hiểu biết VBA AutoCad hạn chế, thời gian thực ngắn chương trình có nhiều khuyết điểm, lỗi Trong q trình sử dụng chương trình có lỗi phát sinh hay ý kiến đóng góp xin liên hệ Lý Đức Quyết - MTT50DHT Tôi xin chân thành cảm ơn! Sinh viên: Lý Đức Quyết Trang Bài tập lớn mơn học: Tự động hóa thiết kế PHẦN 2: CODE LỆNH 2.1 Code cho form Private Sub ComboBoxpv_Change() Select Case ComboBoxpv.Value Case 0: TextBoxgoc.Visible = False: Labelgoc.Visible = False Case 1: TextBoxgoc.Visible = True: Labelgoc.Visible = True End Select End Sub Private Sub TextBoxgoc_change() If IsNumeric(TextBoxgoc.Value) Then Exit Sub Else A = MsgBox("momen phai la DANG SO, vui long nhap lai!", vbOKOnly, "Thong Bao") TextBoxgoc.BackColor = &H80000001 Exit Sub End If End Sub Private Sub UserForm_initialize() ComboBoxdk.AddItem "10" '0 ComboBoxdk.AddItem "15" '1 ComboBoxdk.AddItem "20" '2 ComboBoxdk.AddItem "25" '3 ComboBoxdk.AddItem "32" '4 ComboBoxdk.AddItem "40" '5 ComboBoxdk.AddItem "50" '6 ComboBoxdk.AddItem "65" '7 ComboBoxdk.AddItem "80" '8 ComboBoxdk.AddItem "100" '9 ComboBoxdk.AddItem "125" '10 ComboBoxdk.AddItem "150" '11 ComboBoxdk.AddItem "200" '12 Sinh viên: Lý Đức Quyết Trang Bài tập lớn mơn học: Tự động hóa thiết kế ComboBoxdk.AddItem "250" '13 ComboBoxdk.AddItem "300" '14 ComboBoxdk.AddItem "350" '15 ComboBoxdk.AddItem "400" '16 ComboBoxdk.AddItem "450" '17 ComboBoxdk.AddItem "500" '18 ComboBoxdk.Style = fmStyleDropDownList ComboBoxdk.BoundColumn = ComboBoxdk.ListIndex = ComboBoxgkt.AddItem "khong" '0 ComboBoxgkt.AddItem "co" '1 ComboBoxgkt.Style = fmStyleDropDownList ComboBoxgkt.BoundColumn = ComboBoxgkt.ListIndex = ComboBoxhc.AddItem "dung" '0 ComboBoxhc.AddItem "canh" '1 ComboBoxhc.Style = fmStyleDropDownList ComboBoxhc.BoundColumn = ComboBoxhc.ListIndex = ComboBoxpv.AddItem "click chon phuong" '0 ComboBoxpv.AddItem "nhap goc" '1 ComboBoxpv.Style = fmStyleDropDownList ComboBoxpv.BoundColumn = ComboBoxpv.ListIndex = End Sub 'tạo hàm tính sin Function ArcSin(X As Double) As Double ArcSin = Atn(X / Sqr(-X * X + 1)) End Function Sinh viên: Lý Đức Quyết Trang 10 Bài tập lớn mơn học: Tự động hóa thiết kế ' hàm cho button ve Private Sub cmbve_Click() 'thiết lập số pi pi = * Atn(1) 'khai báo biến Dim B As Double Dim D As Double Dim K As Double Dim T As Double Dim H As Double Dim R As Double Dim D1 As Double Dim Kt As Double Dim Hc As Double Dim Pv As Double Dim PlineObj As AcadLWPolyline Dim C As AcadCircle Dim L As AcadLine Dim Arc As AcadArc Dim Anpha As Double Dim Dimobj As AcadDimAligned Dim Dimcir As AcadDimDiametric Dim Dimobj1 As AcadDimRadial Dim P1(0 To 2) As Double Dim P2(0 To 2) As Double Dim O1(0 To 2) As Double Dim O2(0 To 2) As Double Dim O3(0 To 2) As Double Sinh viên: Lý Đức Quyết Trang 11 Bài tập lớn mơn học: Tự động hóa thiết kế Dim O4(0 To 2) As Double Dim Location1(0 To 2) As Double Dim Location2(0 To 2) As Double Dim Location3(0 To 2) As Double Dim Location4(0 To 2) As Double Dim I(0 To 2) As Double Dim Nx(0 To 2) As Double ' chuyển đổi liệu vào sang kích thước theo tiêu chuẩn Select Case ComboBoxdk.Value Case 0: D = 41: D1 = 17: K = 55: B = 0: T = 6: H = 12: R = Case 1: D = 46: D1 = 22: K = 60: B = 0: T = 6: H = 12: R = Case 2: D = 51: D1 = 27: K = 65: B = 0: T = 6: H = 12: R = Case 3: D = 61: D1 = 34: K = 75: B = 0: T = 6: H = 12: R = Case 4: D = 71: D1 = 43: K = 90: B = 0: T = 6: H = 15: R = Case 5: D = 78: D1 = 49: K = 95: B = 0: T = 6: H = 15: R = Case 6: D = 88: D1 = 61: K = 105: B = 0: T = 6: H = 15: R = Case 7: D = 113: D1 = 77: K = 130: B = 0: T = 6: H = 15: R = Case 8: D = 124: D1 = 90: K = 145: B = 0: T = 6: H = 19: R = Case 9: D = 144: D1 = 115: K = 165: B = 90: T = 6: H = 19: R = 15 Case 10: D = 179: D1 = 141: K = 200: B = 120: T = 8: H = 19: R = 20 Case 11: D = 209: D1 = 166: K = 230: B = 140: T = 8: H = 19: R = 20 Case 12: D = 255: D1 = 218: K = 280: B = 170: T = 8: H = 23: R = 20 Case 13: D = 320: D1 = 269: K = 345: B = 140: T = 10: H = 23: R = 20 Case 14: D = 365: D1 = 321: K = 390: B = 160: T = 10: H = 23: R = 20 Case 15: D = 408: D1 = 358: K = 435: B = 190: T = 12: H = 25: R = 20 Case 16: D = 468: D1 = 409: K = 495: B = 160: T = 13: H = 25: R = 20 Case 17: D = 528: D1 = 460: K = 555: B = 180: T = 14: H = 25: R = 20 Case 18: D = 578: D1 = 511: K = 605: B = 155: T = 16: H = 25: R = 20 End Select Sinh viên: Lý Đức Quyết Trang 12 Bài tập lớn môn học: Tự động hóa thiết kế If B = Then B = D1 R = 10 End If Select Case ComboBoxgkt.Value Case 0: Kt = Case 1: Kt = End Select Select Case ComboBoxhc.Value Case 0: Hc = Case 1: Hc = End Select Select Case ComboBoxpv.Value Case 0: Pv = Case 1: Pv = End Select Me.Hide Dim Dkt As Variant Dkt = ThisDrawing.Utility.GetPoint(, "nhap diem de ve ") Dim Dbd(0 To 2) As Double Dbd(0) = 0: Dbd(1) = 0: Dbd(2) = Dim Goc As Double If Pv = Then Dim Goc1 As Variant Dim Goc2 As Variant Goc1 = ThisDrawing.Utility.GetPoint(, "nhap diem thu nhat de chon phuong ") Goc2 = ThisDrawing.Utility.GetPoint(, "nhap diem thu hai de chon phuong: ") Set L = ThisDrawing.ModelSpace.AddLine(Goc1, Goc2) Goc = L.Angle L.Delete Sinh viên: Lý Đức Quyết Trang 13 Bài tập lớn môn học: Tự động hóa thiết kế Else Goc = TextBoxgoc.Text * pi / 180 End If O1(0) = 0: O1(1) = 0: O1(2) = O2(0) = O1(0) + K / 2: O2(1) = O1(1): O2(2) = O3(0) = O1(0) + K + D / + * T: O3(1) = O1(1): O3(2) = O4(0) = O1(0) + K: O4(1) = O1(1): O4(2) = Anpha = ArcSin((R + B / 2) / (R + D / 2)) 'tạo layer Dim LayerObj As AcadLayer Dim LayertypeName As String LayertypeName = "continuous" Set LayerObj = ThisDrawing.Layers.Add("netlien") LayerObj.color = acRed LayerObj.Linetype = LayertypeName On Error Resume Next LayertypeName = "dashdot" ThisDrawing.Linetypes.Load LayertypeName, "acad.lin" Set LayerObj = ThisDrawing.Layers.Add("duongtam") LayerObj.color = acYellow LayerObj.Linetype = LayertypeName On Error Resume Next LayertypeName = "continuous" ThisDrawing.Linetypes.Load LayertypeName, "acad.lin" Set LayerObj = ThisDrawing.Layers.Add("kichthuoc") LayerObj.color = acGreen LayerObj.Linetype = LayertypeName Sinh viên: Lý Đức Quyết Trang 14 Bài tập lớn mơn học: Tự động hóa thiết kế 'thực ghi kích thước If Kt = Then 'thiết lập layer kích thước làm layer hành ThisDrawing.ActiveLayer = ThisDrawing.Layers("kichthuoc") Dim objDimStyle As AcadDimStyle Set objDimStyle = ThisDrawing.DimStyles.Add("newdimstyle") ThisDrawing.SetVariable "DIMSCALE", 'will control size of dim text ThisDrawing.SetVariable "DIMASZ", 2.5 'arrowhead size ThisDrawing.SetVariable "DIMATFIT", 'arrow-text arrangement ThisDrawing.SetVariable "DIMAZIN", '0 suppression before/after angular ThisDrawing.SetVariable "DIMBLK", "" 'special arrow blk ThisDrawing.SetVariable "DIMDEC", 'Sets the number of decimal places ThisDrawing.SetVariable "DIMDLE", 'dim line extension past extension ThisDrawing.SetVariable "DIMDLI", 10 'dist between baseline dims ThisDrawing.SetVariable "DIMDSEP", "." 'decimal separator ThisDrawing.SetVariable "DIMEXE", 1.5 'dim line extension past extension ThisDrawing.SetVariable "DIMEXO", 'dim offset from origin ThisDrawing.SetVariable "DIMFIT", 'control fit if not enough space ThisDrawing.SetVariable "DIMGAP", 'gap around text ThisDrawing.SetVariable "DIMJUST", 'text placement - above centered ThisDrawing.SetVariable "DIMLFAC", 'length scaling ThisDrawing.SetVariable "DIMTAD", 'text to dim placement - above ThisDrawing.SetVariable "DIMTIH", 'aligned with dim ThisDrawing.SetVariable "DIMTIX", 'force inside ThisDrawing.SetVariable "DIMTMOVE", 'dim moves with text ThisDrawing.SetVariable "DIMTOFL", 'Draw dim line between ext lines ThisDrawing.SetVariable "DIMTOH", 'Aligns text with the dimension line ThisDrawing.SetVariable "DIMTSZ", 'draw arrowheads ThisDrawing.SetVariable "DIMTXT", 3.5 'text height ThisDrawing.SetVariable "DIMTZIN", 12 '0 suppression before/after tol ThisDrawing.SetVariable "DIMUNIT", 'unit format - decimal ThisDrawing.SetVariable "DIMZIN", 12 '0 suppression before/after Sinh viên: Lý Đức Quyết Trang 15 Bài tập lớn mơn học: Tự động hóa thiết kế objDimStyle.CopyFrom ThisDrawing ThisDrawing.ActiveDimStyle = objDimStyle Location1(0) = K / 4: Location1(1) = D / + * H: Location1(2) = Location2(0) = K / 2: Location2(1) = D / + * H: Location2(2) = Location3(0) = O3(0) + T / 2: Location3(1) = O3(1) - * T - D / 2: Location3(2) =0 Location4(0) = O1(0) + D / 4: Location4(1) = 0: Location4(2) = If Hc = Then Set Dimobj = ThisDrawing.ModelSpace.AddDimAligned(O1, O2, Location1) Dimobj.Move Dbd, Dkt Dimobj.Rotate Dkt, Goc Set Dimobj = ThisDrawing.ModelSpace.AddDimAligned(O1, O4, Location2) Dimobj.Move Dbd, Dkt Dimobj.Rotate Dkt, Goc P1(0) = O4(0) + D / / Sqr(2): P1(1) = O4(1) - D / / Sqr(2): P1(2) = P2(0) = O4(0) - D / / Sqr(2): P2(1) = O4(1) + D / / Sqr(2): P2(2) = Set Dimcir = ThisDrawing.ModelSpace.AddDimDiametric(P1, P2, 3) Dimcir.Move Dbd, Dkt Dimcir.Rotate Dkt, Goc P1(0) = O1(0) + D1 / / Sqr(2): P1(1) = O1(1) - D1 / / Sqr(2): P1(2) = P2(0) = O1(0) - D1 / / Sqr(2): P2(1) = O1(1) + D1 / / Sqr(2): P2(2) = Set Dimcir = ThisDrawing.ModelSpace.AddDimDiametric(P1, P2, 3) Dimcir.Move Dbd, Dkt Dimcir.Rotate Dkt, Goc P1(0) = O2(0) + H / / Sqr(2): P1(1) = O2(1) - H / / Sqr(2): P1(2) = P2(0) = O2(0) - H / / Sqr(2): P2(1) = O2(1) + H / / Sqr(2): P2(2) = Set Dimcir = ThisDrawing.ModelSpace.AddDimDiametric(P1, P2, 3) Dimcir.Move Dbd, Dkt Dimcir.Rotate Dkt, Goc I(0) = O4(0) - (D / + R) * Cos(Anpha): I(1) = O1(1) + B / + R: I(2) = Nx(0) = I(0) + R * Sqr(2) / 2: Nx(1) = I(1) - R * Sqr(2) / 2: I(2) = Sinh viên: Lý Đức Quyết Trang 16 Bài tập lớn mơn học: Tự động hóa thiết kế Set Dimobj1 = ThisDrawing.ModelSpace.AddDimRadial(I, Nx, 3) Dimobj1.Move Dbd, Dkt Dimobj1.Rotate Dkt, Goc P1(0) = O2(0): P1(1) = O2(1) - B / 2: P1(2) = P2(0) = O2(0): P2(1) = O2(1) + B / 2: P2(2) = Set Dimobj = ThisDrawing.ModelSpace.AddDimAligned(P1, P2, Location4) Dimobj.Move Dbd, Dkt Dimobj.Rotate Dkt, Goc Else P1(0) = O3(0): P1(1) = O3(1) - D / 2: P1(2) = P2(0) = O3(0) + T: P2(1) = O3(1) - D / 2: P2(2) = Set Dimobj = ThisDrawing.ModelSpace.AddDimAligned(P1, P2, Location3) Dimobj.Move Dbd, Dkt Dimobj.Move O3, Dbd Dimobj.Rotate Dkt, Goc End If End If 'Thiết lập lớp hành duongtam ThisDrawing.ActiveLayer = ThisDrawing.Layers("duongtam") If Hc = Then P1(0) = O1(0): P1(1) = O1(1) + D / + T: P1(2) = P2(0) = O1(0): P2(1) = O1(1) - D / - T: P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Rotate Dkt, Goc P1(0) = O4(0): P1(1) = O4(1) + D / + T: P1(2) = P2(0) = O4(0): P2(1) = O4(1) - D / - T: P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Rotate Dkt, Goc P1(0) = O1(0) - D / - T: P1(1) = O1(1): P1(2) = Sinh viên: Lý Đức Quyết Trang 17 Bài tập lớn mơn học: Tự động hóa thiết kế P2(0) = O4(0) + D / + T: P2(1) = O1(1): P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Rotate Dkt, Goc P1(0) = O2(0): P1(1) = O2(1) + H / + T / 2: P1(2) = P2(0) = O2(0): P2(1) = O2(1) - H / - T / 2: P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Rotate Dkt, Goc Else P1(0) = O3(0) - T / 2: P1(1) = O3(1): P1(2) = P2(0) = O3(0) + * T / 2: P2(1) = O3(1): P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Move O3, Dbd L.Rotate Dkt, Goc End If ' vẽ bích 'Thiết lập lớp hành netlien ThisDrawing.ActiveLayer = ThisDrawing.Layers("netlien") If Hc = Then Set C = ThisDrawing.ModelSpace.AddCircle(O1, D1 / 2) C.Move Dbd, Dkt C.Rotate Dkt, Goc Set C = ThisDrawing.ModelSpace.AddCircle(O2, H / 2) C.Move Dbd, Dkt C.Rotate Dkt, Goc Set Arc = ThisDrawing.ModelSpace.AddArc(O1, D / 2, Anpha, * pi - Anpha) Arc.Move Dbd, Dkt Arc.Rotate Dkt, Goc Sinh viên: Lý Đức Quyết Trang 18 Bài tập lớn môn học: Tự động hóa thiết kế Set Arc = ThisDrawing.ModelSpace.AddArc(O4, D / 2, pi + Anpha, * pi Anpha) Arc.Move Dbd, Dkt Arc.Rotate Dkt, Goc I(0) = O1(0) + (D / + R) * Cos(Anpha): I(1) = O1(1) + B / + R: I(2) = Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, pi + Anpha, * pi / 2) Arc.Move Dbd, Dkt Arc.Rotate Dkt, Goc I(0) = O1(0) + (D / + R) * Cos(Anpha): I(1) = O1(1) - B / - R: I(2) = Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, pi / 2, pi - Anpha) Arc.Move Dbd, Dkt Arc.Rotate Dkt, Goc I(0) = O4(0) - (D / + R) * Cos(Anpha): I(1) = O1(1) + B / + R: I(2) = Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, * pi / 2, * pi - Anpha) Arc.Move Dbd, Dkt Arc.Rotate Dkt, Goc I(0) = O4(0) - (D / + R) * Cos(Anpha): I(1) = O1(1) - B / - R: I(2) = Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, Anpha, pi / 2) Arc.Move Dbd, Dkt Arc.Rotate Dkt, Goc P1(0) = O1(0) + (D / + R) * Cos(Anpha): P1(1) = O1(1) + B / 2: P1(2) = P2(0) = O4(0) - (D / + R) * Cos(Anpha): P2(1) = O1(1) + B / 2: P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Rotate Dkt, Goc P1(0) = O1(0) + (D / + R) * Cos(Anpha): P1(1) = O1(1) - B / 2: P1(2) = P2(0) = O4(0) - (D / + R) * Cos(Anpha): P2(1) = O1(1) - B / 2: P2(2) = Set L = ThisDrawing.ModelSpace.AddLine(P1, P2) L.Move Dbd, Dkt L.Rotate Dkt, Goc Else Dim Points(0 To 9) As Double Points(0) = O3(0): Points(1) = O3(1) - D / Sinh viên: Lý Đức Quyết Trang 19 Bài tập lớn mơn học: Tự động hóa thiết kế Points(2) = Points(0) + T: Points(3) = Points(1) Points(4) = Points(2): Points(5) = Points(3) + D Points(6) = Points(0): Points(7) = Points(5) Points(8) = Points(0): Points(9) = Points(1) Set PlineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(Points) PlineObj.Move Dbd, Dkt PlineObj.Move O3, Dbd PlineObj.Rotate Dkt, Goc End If ' xác định giá trị goc nghieng Dim zxc, zxc1 As Integer zxc = ThisDrawing.ModelSpace.Count For zxc1 = To zxc - ThisDrawing.ModelSpace.Item(zxc1).Linetype = "BYLAYER" ThisDrawing.ModelSpace.Item(zxc1).Lineweight = acLnWtByLayer ThisDrawing.ModelSpace.Item(zxc1).Update Next zxc1 ZoomExtents Me.Show End Sub ' hàm cho button thoát Private Sub cmbthoat_Click() End End Sub 'hiển thị form hdsd Private Sub CommandButton1_Click() Me.Hide hdsd.Show End Sub 'hiển thị form tác giả Private Sub CommandButton2_Click() Sinh viên: Lý Đức Quyết Trang 20 Bài tập lớn môn học: Tự động hóa thiết kế Me.Hide tacgia.Show End Sub 2.2 Hàm cho form hướng dẫn sử dụng 'quay form Private Sub CommandButton1_Click() Me.Hide bick5k.Show End Sub 'thoát Private Sub CommandButton2_Click() End End Sub 'đến form tác giả Private Sub CommandButton3_Click() Me.Hide tacgia.Show End Sub Sinh viên: Lý Đức Quyết Trang 21 Bài tập lớn mơn học: Tự động hóa thiết kế PHẦN THỬ BỘI SỐ 3.1 Thông số thử Sau chạy chương trình ta nhập thơng số để vẽ sau: Hình 3-1: Thơng số chạy thử 3.2 Kết chạy thử Sau nhấn nút vẽ ta nhận kết quả: Sinh viên: Lý Đức Quyết Trang 22 Bài tập lớn môn học: Tự động hóa thiết kế Hình 3-2: Kết chạy thử 3.3 Nhận xét Kết thu từ việc vẽ chương trình giống với số liệu từ bảng thơng số ứng với bích chọn Sinh viên: Lý Đức Quyết Trang 23 ... tập, thuận tiện cho việc tự động hóa thiết kế Trong nhiều phần mềm tự động hóa, phần mềm đươc sử dụng nhiều với người thiết kế autocad, autocad có chương trình tự động hóa cao VBA Với VBA bạn... lớn mơn học: Tự động hóa thiết kế PHẦN 1: GiỚI THIỆU CHUNG 1.1 Mở đầu 1.1.1 Lý chọn đề tài Ngày công việc thiết kế đòi hỏi tính hiệu xác cao, cần phải tự động hóa để đạt điều Máy tính thiết bị sử... Trang Bài tập lớn môn học: Tự động hóa thiết kế 1.4.2 Form phụ(tác giả) Hình 1-5: Sinh viên: Lý Đức Quyết Form tác giả Trang Bài tập lớn mơn học: Tự động hóa thiết kế Form chứa thông tin tác

Ngày đăng: 10/07/2019, 21:45

Từ khóa liên quan

Mục lục

  • 1 PHẦN 1: GiỚI THIỆU CHUNG

    • 1.1 Mở đầu

      • 1.1.1 Lý do chọn đề tài.

      • 1.1.2 Mục đích đề tài.

      • 1.1.3 Đối tượng và phạm vi nghiên cứu.

      • 1.1.4 Ý nghĩa thực tiễn của đề tài.

      • 1.2 Cơ sở lý thuyết tính toán

        • 1.2.1 Tổng quan về bích

        • 1.2.2 Lý thuyết

        • Để thiết kế bích đôi ta sử dụng bảng số liệu về bích đôi 5k tiêu chuẩn jis sau:

          • 1.3 Sơ đồ thuật toán

          • 1.4 Giới thiệu các form và hướng dẫn sử dụng

            • 1.4.1 Form chính (bick5k)

            • 1.4.2 Form phụ(tác giả)

            • 1.4.3 Form phụ (DHSD)

            • 1.5 Kết luận

            • 2 PHẦN 2: CODE LỆNH

              • 2.1 Code cho form chính

              • 2.2 Hàm cho form hướng dẫn sử dụng

              • 3 PHẦN 3 THỬ BỘI SỐ

                • 3.1 Thông số thử

                • 3.2 Kết quả chạy thử

                • 3.3 Nhận xét

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

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

Tài liệu liên quan