1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

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

23 150 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 405,5 KB
File đính kèm lý đức quyết -done.rar (244 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Máy tính là một thiết bị đã và đang được sử dụng rộng rãi trong công việc cũng như giảng dạy và học tập, do đó rất thuận tiện cho việc tự động hóa trong thiết kế.. Trong rất nhiều phầnmề

Trang 1

Mụ ụ c l c

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

1.1 Mở đầu 2

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

1.1.2 Mục đích đề tài 2

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

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

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

1.2.1 Tổng quan về bích 3

1.2.2 Lý thuyết 4

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

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

1.4.1 Form chính (bick5k) 6

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

1.4.3 Form phụ (DHSD) 7

1.5 Kết luận 8

PHẦN 2: CODE LỆNH 9

2.1 Code cho form chính 9

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

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

3.1 Thông số thử 22

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

3.3 Nhận xét 23

Trang 2

1 PHẦN 1: GiỚI THIỆU CHUNG 1.1 Mở đầu

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

Ngày nay công việc thiết kế đòi hỏi tính hiệu quả và chính xác cao, do đórất cần phải được tự động hóa để đạt được điều đó Máy tính là một thiết bị đã

và đang được sử dụng rộng rãi trong công việc cũng như giảng dạy và học tập,

do đó rất thuận tiện cho việc tự động hóa trong thiết kế Trong rất nhiều phầnmềm có thể tự động hóa, thì một phần mềm đươc sử dụng nhiều nhất với ngườithiết kế đó là autocad, trong autocad có chương trình tự động hóa cao là VBA.Với VBA bạn có thể lập trình để vẽ ra những chi tiết từ đơn giản tới phức tạp,

có thể quản lý bản vẽ theo nhu cầu, load, xuất file nhanh chóng, gọn nhẹ Vídụ: có thể dùng VBA để tự động vẽ các mặt bích, bu lông thậm chí chongchóng tàu thủy hay các thiết bị phức tạp như máy chính, đường trục… Sở dĩVBA được ứng dụng nhiều vì sự đồng bộ hóa trong câu lệnh giữa VBA vàAutocad, nó kết hợp được khả năng vẽ mạnh mẽ của Autocad cùng khả năngquản lý, tính toán của 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 cách lập trình 1 chương trình VBA đểứng dụng vào học tập và công việc sau này Cho phép người sử dụng đẩynhanh tốc độ vẽ, nâng cao độ chính xác trong công việc thiết kế

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

Đối tượng nghiên cứu là chương trình VBA, một chương trình tự độnghóa nằm trong phần mềm autocad Trong môi trường học tập thì phạm vinghiên cứu của đề tài là lập trình ra một chương trình đơn giản để vẽ những chitiết không quá phức tạp và được tiêu chuẩn hóa

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

VBA giúp cho người thiết kế thao tác nhanh và chính xác hơn nhiều sovới thao tác trực tiếp bằng tay để vẽ Qua đó đẩy nhanh tốc độ công việc nhưngvẫn đảm bảo tính chính xác Rút ngắn thời gian thiết kế qua đó tăng được năngsuất lao động

Trang 3

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

1.2.1 Tổng quan về bích

Mặt bích, hay còn được biết đến như là đĩa bích, được gắn với đầu ống và

sử dụng để kết nối nó với ống khác Mối liên kết mặt bích là tháo lắp được vàcấu trúc chống thấm, là sự kết hợp của bích nối, đệm và bu lông Mặt bích nối

ốn thép là loại mặt bích đặc biệt được dùng cho đường ống và mặt bích ống nạp

- ống xả được trang bị Có các lỗ khoan trên mặt bích để bắt bu lông liên kết 2mặt bích với nhau Một vòng đệm giữa 2 mặt bích nhằm bảo vệ tránh hiện tượng

Bích nối thường được 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 còn để đảm bảo an toàn khi xảy ra

sự cố, đặc biệt những bích kiểu này thường là bích ở hệ thống chữa cháy trêncác con tàu, theo công ước SOLAR về an toàn hỏa hoạn trên biển Tiêu chuẩnJIS là 1 trong những bộ tiêu chuẩn về mặt bích ống, ở đó người ta đưa ra các sốhiệu mặt bích sẵn để tiện cho việc chế tạo cũng như là sử dụng Trong đề tài nàychúng ta sẽ nghiên cứu cách vẽ 1 loại mặt bích thuộc tiêu chuẩn này, đó là mặtbích đôi loại 5k

Hình 1-1: Mặt bích đôi tiêu chuản JIS 5k

Trang 4

Mặt bích đôi là một chi tiết thường được dùng trong các hệ thống nước trêntàu.

Khi ta muốn công chất trong đường ống chảy vào hệ thống ta sẽ cho mặtbích có lỗ ở giữa vào trông mối lắp ghép, lỗ này được thiết kế có đường kínhbằng đường kính trong của ống

Khi muốn ngắt công chất ta quay ngược phía bích còn lại và lắp vào hệthống, lúc này bích sẽ ngăn cản sự trao đổi công chất trong đường ống đi quabí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 jissau:

Hình 1-2: Thông số của mặt bích

Trang 5

Như vậy ta đă đủ các số liệu để tính toán và vẽ bích đôi theo tiêu chuẩn jis

Để thuận tiện trong quá tŕnh tính toàn và kết xuất bản vẽ ta sử dụng phầnmềm VBA trong AutoCad để thực hiện chương tŕnh này

1.3 Sơ đồ thuật toán

Hình 1-3: Sơ đồ thuật toán

Trang 6

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

Chương trình đơn giản nên ta chỉ cần làm một số form

1.4.1 Form chính (bick5k)

Hình 1-4: Form chính

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 hay là cạnh

Combobox4 để lựa chọn phương vẽ bằng click chuột hay nhập giá trị gócNếu bằng click chuột thì khi nhấn nút vẽ chương trình sẽ yêu cầu nhập 2điểm để chọn phương

Nếu nhập giá trị góc thì chương trình sẽ hiển thị một textbox yêu cầu nhậpgiá trị của góc

Nút vẽ để vẽ bích sau khi lựa chọn đủ các thông số

Nút lệnh thoát 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

Trang 7

1.4.2 Form phụ(tác giả)

Hình 1-5: Form tác giả

Trang 8

Form này chứa thông tin về tác giả, được hiện nên khi người dùng nhấnvà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ụngThoá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ênkhi 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ảThoá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ểubiết về VBA cũng như AutoCad còn hạn chế, thời gian thực hiện ngắn cho nênchương trình sẽ có nhiều khuyết điểm, lỗi

Trong quá 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!

Trang 9

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

Trang 10

ComboBoxpv.AddItem "click chon phuong" '0

ComboBoxpv.AddItem "nhap goc" '1

Trang 11

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

Trang 12

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

Trang 13

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

Trang 14

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

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

Trang 15

'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 angularThisDrawing.SetVariable "DIMBLK", "" 'special arrow blk

ThisDrawing.SetVariable "DIMDEC", 2 'Sets the number of decimal placesThisDrawing.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 extensionThisDrawing.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 linesThisDrawing.SetVariable "DIMTOH", 0 'Aligns text with the dimension lineThisDrawing.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

Trang 16

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)

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

Trang 17

Set Dimobj1 = ThisDrawing.ModelSpace.AddDimRadial(I, Nx, 3)

Trang 19

Set Arc = ThisDrawing.ModelSpace.AddArc(O4, D / 2, pi + Anpha, 3 * pi Anpha)

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

Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, pi / 2, pi - Anpha)

Arc.Move Dbd, Dkt

Arc.Rotate Dkt, Goc

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

Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, 3 * pi / 2, 2 * pi - Anpha)Arc.Move Dbd, Dkt

Arc.Rotate Dkt, Goc

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

Set Arc = ThisDrawing.ModelSpace.AddArc(I, R, Anpha, pi / 2)

Arc.Move Dbd, Dkt

Arc.Rotate Dkt, Goc

P1(0) = O1(0) + (D / 2 + R) * Cos(Anpha): P1(1) = O1(1) + B / 2: P1(2) = 0P2(0) = O4(0) - (D / 2 + R) * Cos(Anpha): P2(1) = O1(1) + B / 2: P2(2) = 0Set L = ThisDrawing.ModelSpace.AddLine(P1, P2)

L.Move Dbd, Dkt

L.Rotate Dkt, Goc

P1(0) = O1(0) + (D / 2 + R) * Cos(Anpha): P1(1) = O1(1) - B / 2: P1(2) = 0P2(0) = O4(0) - (D / 2 + R) * Cos(Anpha): P2(1) = O1(1) - B / 2: P2(2) = 0Set 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 / 2

Trang 20

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

' hàm cho button thoát

Private Sub cmbthoat_Click()

'hiển thị form tác giả

Private Sub CommandButton2_Click()

Trang 22

3 PHẦN 3 THỬ BỘI SỐ 3.1 Thông số thử

Sau khi chạy chương trình ta nhập các thông số để vẽ như sau:

Hình 3-1: Thông số chạy thử

3.2 Kết quả chạy thử

Sau khi nhấn nút vẽ ta nhận được kết quả:

Trang 23

Hình 3-2: Kết quả chạy thử

3.3 Nhận xét

Kết quả thu được từ việc vẽ bằng chương trình giống với số liệu từ bảngcác thông số ứng với bích đã chọn

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

TỪ KHÓA LIÊN QUAN

w