Tải bản đầy đủ - 0 (trang)
4 Giới thiệu các form và hướng dẫn sử dụng

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

Tải bản đầy đủ - 0trang

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 7



Bài tập lớn mơn học: Tự động hóa thiết kế

Form này chứa thông tin về tác giả, được hiện nên khi người dùng nhấn

vào nút tác giả từ form chính hay từ form DHSD

Các nút:

Quay lại để trở về form chính

DHSD để xem hướng dẫn sử dụng

Thố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 này chứa thông tin về cách thức sử dụng chương trình, được hiện nên

khi người dùng nhấn vào nút HDSD từ form chính hay từ form tác giả

Các nút:

Quay lại để trở về form chính

Tác giả để xem thơng tin về tác giả

Thốt để rời khỏi chương trình

1.5 Kết luận

Dù được sự hướng dẫn tận tình của giáo viên hướng dẫn nhưng do vốn hiểu

biết về VBA cũng như AutoCad còn hạn chế, thời gian thực hiện ngắn cho nên

chương trình sẽ có nhiều khuyết điểm, lỗi.

Trong q trình sử dụng chương trình nếu có bất kì lỗi nào 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 8



Bài tập lớn mơn học: Tự động hóa thiết kế



2 PHẦN 2: CODE LỆNH

2.1 Code cho form chính

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 9



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 = 0

ComboBoxdk.ListIndex = 0

ComboBoxgkt.AddItem "khong" '0

ComboBoxgkt.AddItem "co" '1

ComboBoxgkt.Style = fmStyleDropDownList

ComboBoxgkt.BoundColumn = 0

ComboBoxgkt.ListIndex = 0

ComboBoxhc.AddItem "dung" '0

ComboBoxhc.AddItem "canh" '1

ComboBoxhc.Style = fmStyleDropDownList

ComboBoxhc.BoundColumn = 0

ComboBoxhc.ListIndex = 0

ComboBoxpv.AddItem "click chon phuong" '0

ComboBoxpv.AddItem "nhap goc" '1

ComboBoxpv.Style = fmStyleDropDownList

ComboBoxpv.BoundColumn = 0

ComboBoxpv.ListIndex = 0

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 = 4 * 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 dữ 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 = 0

Case 1: D = 46: D1 = 22: K = 60: B = 0: T = 6: H = 12: R = 0

Case 2: D = 51: D1 = 27: K = 65: B = 0: T = 6: H = 12: R = 0

Case 3: D = 61: D1 = 34: K = 75: B = 0: T = 6: H = 12: R = 0

Case 4: D = 71: D1 = 43: K = 90: B = 0: T = 6: H = 15: R = 0

Case 5: D = 78: D1 = 49: K = 95: B = 0: T = 6: H = 15: R = 0

Case 6: D = 88: D1 = 61: K = 105: B = 0: T = 6: H = 15: R = 0

Case 7: D = 113: D1 = 77: K = 130: B = 0: T = 6: H = 15: R = 0

Case 8: D = 124: D1 = 90: K = 145: B = 0: T = 6: H = 19: R = 0

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 = 0 Then

B = D1

R = 10

End If

Select Case ComboBoxgkt.Value

Case 0: Kt = 0

Case 1: Kt = 1

End Select

Select Case ComboBoxhc.Value

Case 0: Hc = 0

Case 1: Hc = 1

End Select

Select Case ComboBoxpv.Value

Case 0: Pv = 0

Case 1: Pv = 1

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) = 0

Dim Goc As Double

If Pv = 0 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) = 0

O2(0) = O1(0) + K / 2: O2(1) = O1(1): O2(2) = 0

O3(0) = O1(0) + K + D / 2 + 3 * T: O3(1) = O1(1): O3(2) = 0

O4(0) = O1(0) + K: O4(1) = O1(1): O4(2) = 0

Anpha = ArcSin((R + B / 2) / (R + D / 2))

'tạo các 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 hiện ghi kích thước

If Kt = 1 Then

'thiết lập layer kích thước làm layer hiện hành

ThisDrawing.ActiveLayer = ThisDrawing.Layers("kichthuoc")

Dim objDimStyle As AcadDimStyle

Set objDimStyle = ThisDrawing.DimStyles.Add("newdimstyle")

ThisDrawing.SetVariable "DIMSCALE", 1 'will control size of dim text

ThisDrawing.SetVariable "DIMASZ", 2.5 'arrowhead size

ThisDrawing.SetVariable "DIMATFIT", 2 'arrow-text arrangement

ThisDrawing.SetVariable "DIMAZIN", 3 '0 suppression before/after angular

ThisDrawing.SetVariable "DIMBLK", "" 'special arrow blk

ThisDrawing.SetVariable "DIMDEC", 2 'Sets the number of decimal places

ThisDrawing.SetVariable "DIMDLE", 0 '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", 0 'dim offset from origin

ThisDrawing.SetVariable "DIMFIT", 5 'control fit if not enough space

ThisDrawing.SetVariable "DIMGAP", 2 'gap around text

ThisDrawing.SetVariable "DIMJUST", 0 'text placement - above centered

ThisDrawing.SetVariable "DIMLFAC", 1 'length scaling

ThisDrawing.SetVariable "DIMTAD", 1 'text to dim placement - above

ThisDrawing.SetVariable "DIMTIH", 0 'aligned with dim

ThisDrawing.SetVariable "DIMTIX", 0 'force inside

ThisDrawing.SetVariable "DIMTMOVE", 0 'dim moves with text

ThisDrawing.SetVariable "DIMTOFL", 1 'Draw dim line between ext lines

ThisDrawing.SetVariable "DIMTOH", 0 'Aligns text with the dimension line

ThisDrawing.SetVariable "DIMTSZ", 0 'draw arrowheads

ThisDrawing.SetVariable "DIMTXT", 3.5 'text height

ThisDrawing.SetVariable "DIMTZIN", 12 '0 suppression before/after tol

ThisDrawing.SetVariable "DIMUNIT", 2 '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 / 2 + 2 * H: Location1(2) = 0

Location2(0) = K / 2: Location2(1) = D / 2 + 4 * H: Location2(2) = 0

Location3(0) = O3(0) + T / 2: Location3(1) = O3(1) - 2 * T - D / 2: Location3(2)

=0

Location4(0) = O1(0) + D / 4: Location4(1) = 0: Location4(2) = 0

If Hc = 0 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 / 2 / Sqr(2): P1(1) = O4(1) - D / 2 / Sqr(2): P1(2) = 0

P2(0) = O4(0) - D / 2 / Sqr(2): P2(1) = O4(1) + D / 2 / Sqr(2): P2(2) = 0

Set Dimcir = ThisDrawing.ModelSpace.AddDimDiametric(P1, P2, 3)

Dimcir.Move Dbd, Dkt

Dimcir.Rotate Dkt, Goc

P1(0) = O1(0) + D1 / 2 / Sqr(2): P1(1) = O1(1) - D1 / 2 / Sqr(2): P1(2) = 0

P2(0) = O1(0) - D1 / 2 / Sqr(2): P2(1) = O1(1) + D1 / 2 / Sqr(2): P2(2) = 0

Set Dimcir = ThisDrawing.ModelSpace.AddDimDiametric(P1, P2, 3)

Dimcir.Move Dbd, Dkt

Dimcir.Rotate Dkt, Goc

P1(0) = O2(0) + H / 2 / Sqr(2): P1(1) = O2(1) - H / 2 / Sqr(2): P1(2) = 0

P2(0) = O2(0) - H / 2 / Sqr(2): P2(1) = O2(1) + H / 2 / Sqr(2): P2(2) = 0

Set Dimcir = ThisDrawing.ModelSpace.AddDimDiametric(P1, P2, 3)

Dimcir.Move Dbd, Dkt

Dimcir.Rotate Dkt, Goc

I(0) = O4(0) - (D / 2 + R) * Cos(Anpha): I(1) = O1(1) + B / 2 + R: I(2) = 0

Nx(0) = I(0) + R * Sqr(2) / 2: Nx(1) = I(1) - R * Sqr(2) / 2: I(2) = 0



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) = 0

P2(0) = O2(0): P2(1) = O2(1) + B / 2: P2(2) = 0

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) = 0

P2(0) = O3(0) + T: P2(1) = O3(1) - D / 2: P2(2) = 0

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 hiện hành là duongtam

ThisDrawing.ActiveLayer = ThisDrawing.Layers("duongtam")

If Hc = 0 Then

P1(0) = O1(0): P1(1) = O1(1) + D / 2 + T: P1(2) = 0

P2(0) = O1(0): P2(1) = O1(1) - D / 2 - T: P2(2) = 0

Set L = ThisDrawing.ModelSpace.AddLine(P1, P2)

L.Move Dbd, Dkt

L.Rotate Dkt, Goc

P1(0) = O4(0): P1(1) = O4(1) + D / 2 + T: P1(2) = 0

P2(0) = O4(0): P2(1) = O4(1) - D / 2 - T: P2(2) = 0

Set L = ThisDrawing.ModelSpace.AddLine(P1, P2)

L.Move Dbd, Dkt

L.Rotate Dkt, Goc

P1(0) = O1(0) - D / 2 - T: P1(1) = O1(1): P1(2) = 0



Sinh viên: Lý Đức Quyết



Trang 17



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

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

Tải bản đầy đủ ngay(0 tr)

×