Trong công nghệ chế tạo động cơ Diesel các thiết bị gia công kỹ thuật số được ápdụng ở hầu hết các bước gia công, các chi tiết được thiết kế dưới dạng bản vẽ CAD cóthể tiếp cận gần hơn v
Trang 1MỞ ĐẦU
1 Tính thời sự của đề tài
Trong những năm gần đây, cùng với sự phát triển mạnh mẽ của công nghiệpđóng tàu trong cả nước, nhu cầu nội địa hóa các trang thiết bị dưới tàu đang được quantâm đặc biệt Động cơ Diesel là một thiết bị động lực chính được áp dụng rộng rãikhông chỉ dưới tàu thuỷ mà cả trên nhiều thiết bị giao thông, vận chuyển khác Mặtkhác, với giá thành tương đối lớn so với một con tàu việc sản xuất động cơ Dieseltrong nước đang được nhà nước đặc biệt quan tâm bằng việc đầu tư xây dựng nhiều cơ
sở chế tạo và lắp ráp động cơ Diesel có công suất lớn Để chế tạo động cơ Dieselkhông chỉ đầu tư về cơ sở vật chất thiết bị mà còn phải quan tâm đầu tư nâng cao khảnăng thiết kế và nghiên cứu công nghệ chế tạo các thiết bị, chi tiết của động cơ Các chi tiết cơ bản của động cơ Diesel được chế tạo phải đảm bảo các chi tiêu vềkinh tế và kỹ thuật theo các hệ thống tiêu chuẩn nhất định Như vậy, quá trình tínhtoán thiết kế các chi tiết của động cơ có ý nghĩa rất quan trọng đối với chất lượng chếtạo của chúng, việc nghiên cứu hướng tới một phần mềm tự động hoá thiết kế các chitiết cơ bản của động cơ Diesel thực sự là một vấn đề cấp thiết hiện nay đối với nước ta
và cả trên thế giới
Trong công nghệ chế tạo động cơ Diesel các thiết bị gia công kỹ thuật số được ápdụng ở hầu hết các bước gia công, các chi tiết được thiết kế dưới dạng bản vẽ CAD cóthể tiếp cận gần hơn với ngôn ngữ của máy gia công CNC và có thể dễ dàng sử dụngtích hợp với các ngôn ngữ lập trình khác như C++, Delphi, Turbo v.v để áp dụng cácphần mềm tính toán khác đã có sẵn trong thiết kế tối ưu hoá các chi tiết của động cơDiesel Vì vậy, sử dụng ngôn ngữ lập trình VBA (Visual Basic for Application) để tựđộng hoá thiết chi tiết xylanh của động cơ Diesel 4 kỳ là hợp lý và cần thiết
2 Mục đích của đề tài
Sử dụng phần mềm Visual Basic for Application xây dựng chương trình tính toánthiết kế chi tiết xylanh động cơ Diesel 4 kỳ
3 Nội dung chính của đề tài
Đề tài gồm các chương sau:
Chương 1: Tìm hiểu về bộ ngôn ngữ Visual Studio
Chương 2: Cơ sở lý thuyết thiết kế chi tiết xylanh động cơ diesel 4 kỳ Chương 3: Sơ đồ thuật toán và dao diện của chương trình
Trang 2Chương 4: Lập trình thiết kế chi tiết xylanh
Chương 5: Kết quả chạy phần mềm cho 1 động cơ cụ thể
4 Phương pháp nghiên cứu của đề tài
Về lý thuyết trên cơ sở các tài liệu liên quan đến thiết kế động cơ Diesel xây dựngphận mềm tính toán thiết kế chi tiết xylanh của động cơ Diesel 4 kỳ bằng ngôn ngữ lậptrình Visual Basic for Application
Phần mềm này có thể áp dụng tính toán thiết kế chi tiết xylanh của động cơ Diesel
4 kỳ
5 Phạm vi nghiên cứu của đề tài
Xây dựng chương trình tính toán thiết kế chi tiết xylanh của động cơ diesel 4 kỳ sửdụng vật liệu là gang hoặc thép
6 Ý nghĩa khoa học và thực tiễn
Ứng dụng phần mềm lập trình Visual Basic for Application vào việc thiết kế và hỗtrợ cho việc vẽ AutoCad
Thiết kế một chương trình tự động thiết kế chi tiết xylanh của động cơ Diesel 4 kỳ
là một công việc rất lớn, đòi hỏi nhiều công sức và thời gian Với điều kiện còn hạnchế về thời gian và kinh nghiệm lập trình, nội dung đề tài này mới chỉ đề cập tới việctính toán các kích thước cơ bản và nghiệm bền cho chi tiết xylanh của động cơ diesel 4
kỳ Tuy vậy đề tài cũng mong muốn đưa ra được một hướng nghiên cứu lâu dài, tạo cơ
sở ban đầu cho việc nghiên cứu hoàn thiện một chương trình của Việt Nam để tự độngthiết kế và chế tạo động cơ Diesel trong nước, góp phần vào sự phát triển của côngnghiệp chế tạo máy nước nhà và làm tài liệu bổ ích cho sinh viên trong học tập vànghiên cứu khoa học
Trang 3CHƯƠNG 1 : TÌM HIỂU VỀ BỘ NGÔN NGỮ LẬP TRÌNH
VISUAL STUDIO CỦA MICROSOFT1.1 Giới thiệu về VISUAL STUDIO :
Bộ Visual Studio bao gồm các ngôn ngữ lập trình trực quan:
- Microsoft Visual C++
-Microsoft Visual J++
- Microsoft Visual Basic
- Microsoft Visual Foxpro
- Microsoft Visual InterDev
Mỗi một ngôn ngữ lập trình có một đặc điểm riêng, có một miền ứng dụng riêng.Tuy nhiên để quan tâm tối các vấn đề mạng, quản trị cơ sở dữ liệu với mạng, xây dựngcác hệ thống phần mềm lớn với mạng ta phải kể tới Visual J++ Visual InterDev đượcdùng để thiết kế trang Web, kết hợp với Visual Basic để quản trị cơ sở dữ liệu vàthương mại điện tử Trong ngành máy tàu, thì ta cần phải quan tâm tới 3 ngôn ngữ cònlại đó là Visual C++, Visual Basic, và Visual FoxPro
Visual C ++ là một ngôn ngữ lập trình dựa trên nền tảng cơ bản của C++ đó là lậptrình hướng đối tượng Khi thực hiện lập trình trên C/C++, để tạo ra các giao dịch phứctạp, trình bày đẹp hoàn toàn không đơn giản Nhưng đối với Visual C++ thì việc đó kháđơn giản Người lập trình chỉ cần sử dụng các điều khiển hay xây dựng một menu đưavào ứng dụng của mình mà các mã lệnh cần phải viết không quá dài dòng và phức tạpnhư trong C/C++ Đó chính là thế mạnh của Visual C++ trợ giúp đắc lực cho người lậptrình trong khi xây dựng những đề án chương trình lớn hoặc trong kỹ thuật lập trình hệthống
VisualBasic: Phần “Visual’’ đề cập đến phương pháp được sử dụng để tạo giao
diện đồ họa người dùng (GUI), tức là người lập trình có thể trực tiếp tạo các giao diện
đồ hoạ như Form, nút bấm, hộp chọn, hộp nhập dữ liệu Phần “Basic’’ đề cập đếnngôn ngữ lập trình BASIC là ngôn ngữ cơ sở cho ngôn ngữ Visual Basic BASIC làngôn ngữ được nhiều nhà lập trình sử dụng hơn bất kỳ ngôn ngữ nào khác trong lịch
sử máy tính Ngôn ngữ Visual Basic đã được tạo ra từ ngôn ngữ BASIC gốc và hiệnnay có chứa hàng trăm hàm, câu lệnh, từ khoá liên hệ trực tiếp đến Windows GUI.Những người mới bắt đầu có thể tạo các ứng dụng hữu ích bằng cách học chỉ vài từ
Trang 4khoá, khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thànhbất kỳ điều gì mà tạo được từ những ngôn ngữ lập trình Windows nào khác.
Các công cụ của Visual Basic:
- Các đặc tính truy cập dữ liệu cho phép ta tạo ra các cơ sở dữ liệu, các trình ứngdụng trọn gói, các thành phần vip server dành cho hầu hết các định dạng cơ sở dữ liệucủa vip bao gồm Microsoft SQL Server và các cơ sở dữ liệu enterpries – level khác
- Các kỹ thuật hoạt động xtm cho phép ta sử dụng chức năng cung cấp bởi cáctrình ứng dụng khác, chẳng hạn máy sử lý từ Micrsoft Word, trang bảng tính MicrosoftExel, và các trình ứng dụng Windows khác
- Các khả năng internet làm cho nó dễ dàng truy cập đến các tài liệu và các trìnhứng dụng thông qua Internet hoặc Internet từ trong trình ứng dụng của nó, hoặc để tạocác trình ứng dụng Internet server
1.2 Đặc điểm của Microsoft VISUAL STUDIO
1.2.1 Ưu điểm
- Microsoft Visual Studio là bộ công cụ lập trình trực quan, có nghĩa là người lậptrình có thể tạo ra chương trình có giao diện đồ hoạ của Windows một cách dễ dàngchỉ bằng vài cái nhấp chuột Như vậy công cụ lập trình Microsoft Visual Studio giúpgiảm nhẹ rất lớn công việc lập trình của người lập trình
- Microsoft Visual Studio chứa trong những chiến lược lập trình hết sức mới mẻ
và hiện đại như lập trình hướng đối tượng, xây dựng chương trình thành các mô dun,
sử dụng thư viện liên kết động Điều này làm cho nó trở thành một công cụ phổ biến,được nhiều người lựa chọn để lập trình trên thế giới hiện nay
- Với Microsoft Visual Studio người lập trình có thể làm được mọi điều mà họmuốn trong chương trình của mình, với bộ nhớ của chương trình là không có giới hạn(chỉ phụ thuộc vào bộ nhớ của máy tính)
1.2.2 Nhược điểm
Nói đến nhược điểm của Microsoft Visual Studio thực ra chỉ là đề cập đến nhữngkhía cạnh không chuyên nghiệp của nó về một lĩnh vực cụ thể, còn lại nó rất nhiều ưuđiểm so với các ngôn ngữ lập trình hiện nay Microsoft Visual Studio được thiết kế đểlập trình ra những ứng dụng thông thường, phần lớn là nhằm vào các ứng dụng mangtính thương mại, do vậy nó không thể chuyên về một lĩnh vực nào Như vậy, trongngành cơ khí máy tàu, ta có thể dùng nó để lập trình ra các chương trình tính toán
Trang 5thông thường Nếu muốn tạo ra các chương trình mang nặng tính khoa học thì ngônngữ lực chọn để lập trình tốt hơn sẽ là Fortran, còn muốn tạo chương trình vẽ các bản
vẽ cơ khí thì ngôn ngữ được lựa chọn tốt hơn sẽ là AutoLisp
1.3 Tổng kết
Mặc dù hiện tại có rất nhiều ngôn ngữ lập trình liên quan tới ngành máy tàu thủynhưng với những ưu điểm đã nêu của ngôn ngữ Visual Basic for Application thì trongphạm vi chương trình này sẽ được lựa chọn để tiến hành xây dựng phần mềm Tuy đây
là ngôn ngữ còn một số hạn chế nhưng với yêu cầu không quá cao và phạm vi nghiêncứu chỉ nằm ở việc thiết kế một chi tiết xylanh của động cơ diesel 4 kỳ nên việc lựachọn ngôn ngữ Visual Basic for Application là rất hợp lý
Trang 6CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT THIẾT KẾ CHI TIẾT XYLANH CỦA ĐỘNG CƠ DIESEL 4 KỲ.
Hình 1: Kết cấu xylanh động cơ diesel 4 kỳ
2.1 Điều kiện làm việc của xylanh
Ống lót xylanh dung làm Bàn trượt cho piston, tạo thành không gian chưa môichất công tác và truyền nhiệt từ môi chất công tác cho nước làm mát Ống lót xylanhđược đỡ bởi thân xylanh và cùng với thân xylanh tạo thành khoang chứa nước làmmát
2.2 Yêu cầu cơ bản của ống lót xylanh
Trong quá trình làm việc,mặt trong xylanh chịu áp suất và nhiệt độ cao,
ăn mòn hóa học và mài mòn Mặt ngoài ống lót xylanh tiếp xúc với nước làm mát Do
đó chênh lệch nhiệt độ cao giữa mặt trong với mặt ngoài, giữa vùng buồng cháy vớivùng bàn trượt Nên ngoài chịu được ứng suất cơ, ống lót xylanh còn phải chịu đượcứng suất nhiệt cao.Phần chịu lực chủ yếu của ống lót xylanh là phần gờ vai phía buôngcháy Chính vì thế vai ống lót xylanh cần chịu được ứng suất cắt và ứng suất uốn
Trang 7Ngoài ra, tại mặt tiếp xúc với mặt đầu xylanh và vành gờ đế nắp xylanh phải córãnh hình vành khăn để lắp gioăng làm kín buồng cháy tránh không cho khí cháy ròlọt.
2.3 Các công thức sử dụng để tính kết cấu và nghiệm bền cho xylanh
2 min 2 2 max
max min z
ky p
Ứng suất nhiệt ở mặt trong ống lót (ứng suất nén) tính theo công thức, MN/m2:
1 1
Trang 8 - Hệ số Poát xông, đối với gang đúc và thép
Ứng suất nhiệt trên mặt ngoài ống lót (ứng suất kéo), MN/m2:
1 1
tt, tn - nhiệt độ mặt trong và mặt ngoài ống lót xi lanh,
Ứng suất kéo tổng trên mặt ngoài lớn hơn mặt trong:
min
kx tn
to
Khi xiết guzông nắp xi lanh, vai ống lót xi lanh chịu lực nén Pg Giá trị Pg nằmtrong khoảng Pg = (1,2 1,6) Pzmax Df2 (MN),
Df - đường kính trung bình zoăng ống lót xi lanh
- Ứng suất tại tiết diện I - I:
P
m
H k
Ứng suất cắt tại tiết diện I - I,
h D
P
m
T c
l P
Theo hình vẽ kết cấu ống lót xilanh ta có: Dm = 330 (mm)
h - chiều rộng của tiết diện I - I, m
Ứng suất tổng tại tiết diện nguy hiểm nhất được xác định theo công thức,:
Trang 9- Ứng suất tại tiết diện II - II: tại tiết diện này chỉ cần tính ứng suất cắt do lực Pggây nên,:
a D
P
II
g c
=3,140.0,878,4.0,02< [c] (MN/m2) (2-14)
- Ứng suất nén do lực Pg gây ra, MN/m2:
b D
P
f
g n
Trang 10CHƯƠNG 3: XÂY DỰNG SƠ ĐỒ THUẬT TOÁN VÀ DAO
DIỆN CỦA CHƯƠNG TRÌNH.
3.1 Sơ đồ thuật toán của chương trình
Ki?m tra các thông s? d?u
vào D>30, S>D, 6<Pz<14
Nh ? p các thông s ? d? u vào (D,S,Pz,Ne,v,i)
Trang 113.2 Dao diện làm việc của chương trình
3.2.1 Dao diện làm việc số 1
Hình 2: dao diện làm việc đầu tiên
Giải thích dao diện :
Dao diện làm việc đầu tiên là dao diện khi người dùng bắt đầu chạy chương trìnhtrên nền autocad Dao diện bao gồm những thông tin sau:
- Tên đề tài: Tính toán các thông số …
- Xây dựng phần mềm: bao gồm những thông tin về giảng viên hướng dẫn bài tậplớn, tên sinh viên, MSV, lớp, trường
- Thông số người dùng: phần nay bao gồm các thông tin do người dùng nhập vàonhư: Họ và tên người dùng, ở đây mặc định sẽ là Phạm Ngọc Quý, tương tự là lớp vàgiảng viên hướng dẫn Những thông tin mà người dùng nhập vào sẽ được sử dụng để
in vào khung tên khi suất ra bản vẽ autocad
- Nút bấm OK : nút bấm này sẽ lưu thông tin người dùng vào bản vẽ autocadđồng thời chuyển sang màn hình làm việc tiếp theo Trong lần tiếp theo sử dụng phầnmềm tiếp theo thì nút bấm OK này sẽ thực hiện xóa thông tin người dùng trước đó vàlưu thông tin người dùng mới
- Nút bấm EXIT: nút bấm này sẽ đưa người dùng thoát khỏi ứng dụng đang làmviệc
Trang 12- Picture : là hình ảnh mặt cắt xylanh và một phần cắt trích của xylanh tại vị trítai đỡ bên phải mặt cắt, trên mặt cắt còn hiển thị một số thông tin về kích thước chủyếu dùng để nghiệm bền xylanh.
3.2.2 Dao diện làm việc số 2
Hình 3: dao diện làm việc số 2
Giải thích dao diện số 2:
- Phần 1: Các thông số đầu vào Phần này bao gồm các thông số mà người dùng
sẽ nhập vào để tiến hành tính toán Gồm có: đường kính xylanh, hành trình piston, ápsuất cháy cực đại, số xylanh của động cơ, công suất động cơ, vòng quay định mức.Các thông số được sử dụng để tính toán trong chương trình gồm có các thông số bắtbuộc người dùng phải nhập vào đó là : đường kích xylanh, hành trình piston, áp suấtcháy cực đại Các thông số nhập vào còn lại được sử dụng để in ra trên bản vẽ, thểhiện các thông số của động cơ
- Phần 2: Kết quả thông số kích thước Phần này bao gồm các thông số kíchthước của xylanh mà sau khi nhập thành công thông số đầu vào và được phần mềm sử
lý đưa ra Bao gồm các thông số như: đường kính tai đỡ, chiều dày tai đỡ, đường kínhtrung bình, chiều dài xylanh, bề rộng gioăng kín khí, chiều dày thân xylanh, chiều dàiphần thân lắp gioăng L1, chiều dài phần tiếp xúc với khoang nước làm mát L2, chiềudài phần lắp ghép L3
Trang 13- Phần 3: Kết quả thông số kiểm tra ứng suất Phần này bao gồm các thông sốứng suất của xylanh, các thông số ứng suất giới hạn dùng để người dùng so sánh Saukhi các thông số đầu vào thỏa mãn thì các thông số ứng suất được tính toán sẽ đượchiện lên và các thông số ứng suất giới hạn cũng hiện lên để so sánh.
- Phần 4: Thông báo Khi bắt đầu sang màn hình làm việc thứ 2 thì phần thôngbáo sẽ hiển thị lời chào mừng và chỉ dẫn người dùng nhập và o các thông số đầu vào.Khi người dùng nhập các thông số đầu sai so với điều kiện hoặc thông số đầu vàokhông mang tính chất thực tế thì thông báo sẽ hiển thị báo lỗi và đưa ra chỉ dẫn đểngười dùng có thể nhập lại các thông số cho hợp lý Khi các thông số người dùng nhậpvào là hợp lý thì việc tính toán sẽ hiển thị thông báo kết quả hợp lý, và xylanh có đủbền hay không Nếu đủ bền sẽ chỉ dẫn người dùng xuất ra bản vẽ autocad
- Phần 5: Các nút bấm
+ Tính kích thước: sau khi nhập các thông số đầu vào và Click vào nút bấm nàythì chương trình sẽ tự động suất ra kết quả ở phần 2 và phần 3 (kich thước và ứngsuất) Nếu thông số người dùng nhập vào có lỗi thì khi Click vào nút bấm này sẽ hiện
ra thông báo tương ứng trong phần thông báo
+ Xuất ra bản vẽ: Khi người dùng đã được thông báo là tính toán kết quả thànhcông thì việc Click vào nút này sẽ cho phép xuất ra mặt cắt chi tiết xylanh trongautocad
+ Thoát: nút này cho phép thoát khỏi chương trình
+ Back : nút này cho phép quay lại màn hình đầu tiên trong trường hợp ngườidùng muốn thay đổi thông tin người dùng
Trang 14CHƯƠNG 4: LẬP TRÌNH THIẾT KẾ CHI TIẾT XYLANH
Private Sub CommandButton1_Click()
Dim textstyle As AcadTextStyle
Set textstyle = ActiveDocument.TextStyles.Add("K1")
textstyle.SetFont ".VnArialH", False, True, 0, 34
textstyle.Height = 5
Dim textstyle2 As AcadTextStyle
Set textstyle2 = ActiveDocument.TextStyles.Add("K2")
textstyle.SetFont ".VnArial", False, True, 0, 34
textstyle2.Height = 3
Dim text As AcadText
Dim textstring As String
Dim heigh As Double
Dim point(0 To 2) As Double
textstring = "MAT CAT XYLANH DONG CO DIESEL"
point(0) = 766 - 1000: point(1) = 40: point(2) = 0
heigh = 4
Set text = ThisDrawing.ModelSpace.AddText(textstring, point, heigh)
text.StyleName = "K1"
textstring = "Ho va Ten"
point(0) = 685 - 1000: point(1) = 50: point(2) = 0
Trang 15textstring = "Truong dai hoc hang hai Viet Nam"
point(0) = 693 - 1000: point(1) = 22: point(2) = 0
heigh = 3
Set text = ThisDrawing.ModelSpace.AddText(textstring, point, 3)
text.StyleName = "K1"
textstring = "Khoa Co Khi Dong Tau"
point(0) = 700 - 1000: point(1) = 14: point(2) = 0
heigh = 3
Set text = ThisDrawing.ModelSpace.AddText(textstring, point, 3)
text.StyleName = "K1"
textstring = "Lop : " + TextBox2.Value
point(0) = 700 - 1000: point(1) = 6: point(2) = 0
Trang 16Private Sub TextBox1_Change()
Dim ToC As Double
Dim xmU As Double
Dim xmTo As Double
Dim ToC2 As Double
Trang 17' nhap lieu thong so dau vao
h = Sqr((a - b) ^ 2 + ((1.24 * delta - b / 2 + (D - D2) / 4)) ^ 2) ' chieu day tai mat cat I-I
xmK = Ph / (pi * (Df + b) * h) 'ung suat keo
ToC = Pt / (pi * (Df + b) * h) ' ung suat cat
xmU = 6 * Pg * 0.008 / (pi * (Df + b) * h ^ 2) ' ung suat uon
Trang 18xmNt = 4 * Pg / (pi * (D2 ^ 2 - D3 ^ 2)) 'ung suat nen tong duoi vai ong lot xylanhxmTo = Sqr((xmK + xmU) ^ 2 + 4 * ToC ^ 2) 'ung suat tong tai tiet dien I-I
ToC2 = Pg / (1.2 * pi * D2 * a) ' ung suat cat do Pg gay ra
xmN = Pg / (2 * pi * Df * b) 'ung suat nen do Pg gay ra
'thong bao
If D < 30 Or S < 50 Or Pz < 6 Or Pz > 14 Or D > S Then
TextBox27.text = "Thong so ban nhap vao khong hop ly " & _
"Ban hay kiem tra lai va nhap vao gia tri: " & _
TextBox27.text = "+ Cac thong so kich thuoc cua ban hop ly " & _
"+ Ung suat da kiem nghiem thanh cong " & _
"+ Ban Click vao [Xuat ra ban ve] de tien hanh ve Xylanh"
End If
If D >= 30 And S >= 50 And Pz > 6 And Pz < 14 And ToC2 > 40 And xmN > 100And xmT > 80 And xmTo > 80 Then
TextBox27.text = Delete
TextBox27.text = "+ Xylanh cua ban chua du ben" & _
"+ Ban hay kiem tra lai cac thong so tinh"
Trang 19Private Sub CommandButton2_Click()
Dim startpoint(0 To 2) As Double
Dim endpoint(0 To 2) As Double
Dim lineobj As AcadLine
Dim dblRadius As Double
Dim objent As AcadArc
Dim center(0 To 2) As Double
Dim startangle As Double
Dim endangle As Double
On Error Resume Next
Trang 20D3 = D + 0.48 * delta
Df = (D + D2) / 2
Dim line As AcadLine
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
'line0
point1(0) = 48 - 1000: point1(1) = 0: point1(2) = 0
point2(0) = 48 - 1000: point2(1) = 576: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line1
point1(0) = 864 - 1000: point1(1) = 576: point1(2) = 0
point2(0) = 48 - 1000: point2(1) = 576: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line2
point1(0) = 864 - 1000: point1(1) = 576: point1(2) = 0
point2(0) = 864 - 1000: point2(1) = 0: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line3
point1(0) = 864 - 1000: point1(1) = 0: point1(2) = 0
point2(0) = 48 - 1000: point2(1) = 0: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line4
point1(0) = 684 - 1000: point1(1) = 0: point1(2) = 0
point2(0) = 684 - 1000: point2(1) = 60: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line5
point1(0) = 684 - 1000: point1(1) = 60: point1(2) = 0
point2(0) = 864 - 1000: point2(1) = 60: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line6
point1(0) = 764 - 1000: point1(1) = 0: point1(2) = 0
point2(0) = 764 - 1000: point2(1) = 60: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line7
Trang 21point1(0) = 684 - 1000: point1(1) = 30: point1(2) = 0
point2(0) = 864 - 1000: point2(1) = 30: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line8
point1(0) = 839 - 1000: point1(1) = 0: point1(2) = 0
point2(0) = 839 - 1000: point2(1) = 30: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line9
point1(0) = 839 - 1000: point1(1) = 15: point1(2) = 0
point2(0) = 864 - 1000: point2(1) = 15: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line10
point1(0) = 684 - 1000: point1(1) = 45: point1(2) = 0
point2(0) = 764 - 1000: point2(1) = 45: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line11
point1(0) = 704 - 1000: point1(1) = 30: point1(2) = 0
point2(0) = 704 - 1000: point2(1) = 60: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'line12
point1(0) = 749 - 1000: point1(1) = 30: point1(2) = 0
point2(0) = 749 - 1000: point2(1) = 60: point2(2) = 0
Set line = ThisDrawing.ModelSpace.AddLine(point1, point2)
'duong A-1
startpoint(0) = 0: startpoint(1) = 0: startpoint(2) = 0
endpoint(0) = -1.24 * delta: endpoint(1) = 0: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 1-2
startpoint(0) = -1.24 * delta: startpoint(1) = 0: startpoint(2) = 0
endpoint(0) = -1.24 * delta: endpoint(1) = 0.035 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 4-5
startpoint(0) = -delta: startpoint(1) = 0.035 * L + 0.24 * delta: startpoint(2) = 0
endpoint(0) = -delta: endpoint(1) = 0.28 * L - 0.035 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
Trang 22startpoint(0) = -1.24 * delta: startpoint(1) = 0.3406 * L: startpoint(2) = 0
endpoint(0) = -1.24 * delta: endpoint(1) = 0.356 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 16-17
startpoint(0) = -delta: startpoint(1) = 0.356 * L + 0.24 * delta: startpoint(2) = 0
endpoint(0) = -delta: endpoint(1) = 0.853 * L - 1.75 * a - 0.48 * delta: endpoint(2) =0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
startpoint(0) = -1.24 * delta: startpoint(1) = L - 1.75 * a: startpoint(2) = 0
endpoint(0) = -1.24 * delta: endpoint(1) = L - a: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 25-26
Trang 23startpoint(0) = -1.24 * delta: startpoint(1) = L - a: startpoint(2) = 0
endpoint(0) = (D - D2) / 2: endpoint(1) = L - a: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 26-27
startpoint(0) = (D - D2) / 2: startpoint(1) = L - a: startpoint(2) = 0
endpoint(0) = (D - D2) / 2: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 27-28
startpoint(0) = (D - D2) / 2: startpoint(1) = L: startpoint(2) = 0
endpoint(0) = (D - D2) / 4 - b / 2: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 28-30
startpoint(0) = (D - D2) / 4 - b / 2: startpoint(1) = L: startpoint(2) = 0
endpoint(0) = (D - D2) / 4 - b / 2: endpoint(1) = L - b: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 30-31
startpoint(0) = (D - D2) / 4 - b / 2: startpoint(1) = L - b: startpoint(2) = 0
endpoint(0) = (D - D2) / 4 + b / 2: endpoint(1) = L - b: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 31-29
startpoint(0) = (D - D2) / 4 + b / 2: startpoint(1) = L - b: startpoint(2) = 0
endpoint(0) = (D - D2) / 4 + b / 2: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 29-D
startpoint(0) = (D - D2) / 4 + b / 2: startpoint(1) = L: startpoint(2) = 0
endpoint(0) = D: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong A-C
startpoint(0) = 0: startpoint(1) = 0: startpoint(2) = 0
endpoint(0) = 0: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong A-E
startpoint(0) = 0: startpoint(1) = 0: startpoint(2) = 0
endpoint(0) = D + 1.24 * delta: endpoint(1) = 0: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
Trang 24've cac duong cong trai
Trang 25startpoint(0) = D: startpoint(1) = 0: startpoint(2) = 0
endpoint(0) = D: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong E-1
startpoint(0) = D + 1.24 * delta: startpoint(1) = 0: startpoint(2) = 0
endpoint(0) = D + 1.24 * delta: endpoint(1) = 0.035 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 3-4
Trang 26startpoint(0) = D + delta: startpoint(1) = 0.035 * L + 0.24 * delta: startpoint(2) = 0endpoint(0) = D + delta: endpoint(1) = 0.28 * L - 0.035 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
startpoint(0) = D + 1.24 * delta: startpoint(1) = 0.3406 * L: startpoint(2) = 0
endpoint(0) = D + 1.24 * delta: endpoint(1) = 0.356 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 14-16
startpoint(0) = D + delta: startpoint(1) = 0.356 * L + 0.24 * delta: startpoint(2) = 0endpoint(0) = D + delta: endpoint(1) = 0.853 * L - 1.75 * a - 0.48 * delta: endpoint(2) = 0Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
Trang 27endpoint(0) = D + 1.24 * delta: endpoint(1) = L - a: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 25-26
startpoint(0) = D + 1.24 * delta: startpoint(1) = L - a: startpoint(2) = 0
endpoint(0) = (D + D2) / 2: endpoint(1) = L - a: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 26-27
startpoint(0) = (D + D2) / 2: startpoint(1) = L - a: startpoint(2) = 0
endpoint(0) = (D + D2) / 2: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 27-28
startpoint(0) = (D + D2) / 2: startpoint(1) = L: startpoint(2) = 0
endpoint(0) = (D2 + 3 * D) / 4 + b / 2: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 28-29
startpoint(0) = (D2 + 3 * D) / 4 + b / 2: startpoint(1) = L: startpoint(2) = 0
endpoint(0) = (D2 + 3 * D) / 4 + b / 2: endpoint(1) = L - b: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 29-30
startpoint(0) = (D2 + 3 * D) / 4 + b / 2: startpoint(1) = L - b: startpoint(2) = 0
endpoint(0) = (D2 + 3 * D) / 4 - b / 2: endpoint(1) = L - b: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 30-31
startpoint(0) = (D2 + 3 * D) / 4 - b / 2: startpoint(1) = L - b: startpoint(2) = 0
endpoint(0) = (D2 + 3 * D) / 4 - b / 2: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong 31-D
startpoint(0) = (D2 + 3 * D) / 4 - b / 2: startpoint(1) = L: startpoint(2) = 0
endpoint(0) = D: endpoint(1) = L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
'duong tam 1
startpoint(0) = D / 2: startpoint(1) = -0.07 * L: startpoint(2) = 0
endpoint(0) = D / 2: endpoint(1) = 1.07 * L: endpoint(2) = 0
Setlineobj = ThisDrawing.ModelSpace.AddLine(startpoint, endpoint)
Trang 28've cac duong cong phai