Tải bản đầy đủ (.pdf) (99 trang)

Xây dựng phần mềm thiết kế mẫu tàu du lịch mang nét văn hóa đặc trưng của khánh hòa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.5 MB, 99 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA KỸ THUẬT GIAO THÔNG
--- o0o ---

ĐỒ ÁN TỐT NGHIỆP
NGÀNH ĐÓNG TÀU

XÂY DỰNG PHẦN MỀM THIẾT KẾ
MẪU TÀU DU LỊCH MANG NÉT VĂN HÓA
ĐẶC TRƯNG CỦA KHÁNH HÒA

Giảng viên hướng dẫn

: PGS.TS. TRẦN GIA THÁI

Sinh viên thực hiện

: NGÔ VĂN CẶN

Mã số sinh viên

: 53130138

KHÁNH HÒA -06/ 2015


i

LỜI CẢM ƠN


Đến nay, tôi đã hoàn thiện đề tài tốt nghiệp chuẩn bị cho việc hoàn chương
trình đại học. Tôi xin gửi lời cảm ơn chân thành đến Ban Giám Hiệu Trường Đại
học Nha Trang, Ban chủ nhiệm Khoa Kỹ Giao Thông, cùng toàn thể các Thầy Cô
trong bộ môn Đóng Tàu đã giáo dục, giúp đỡ tôi tận tình trong suốt bốn năm qua để
có thể hoàn thành tốt khóa học của mình.
Trong suốt quá trình thực hiện đề tài, qua sự giúp đỡ của các thầy trong khoa
Kỹ Thuật Giao Thông, bộ môn Đóng tàu đặc biệt là thầy PGS-T.S Trần Gia Thái,
người đã trực tiếp hướng dẫn, chỉ bảo nhiệt tình cho tôi trong suốt thời gian thực
hiện đề tài. Nhờ sự hướng dẫn tận tình của thầy, tôi đã hoàn thành đề tài. Bên cạnh
đó tôi đã tích lũy được những kiến thức bổ ích về đề tài thực hiện.
Cuối cùng, tôi cũng xin bày tỏ lòng biết ơn đến những người thân trong gia
đình,cùng toàn thể bạn bè đã giúp đỡ, động viên tôi trong suốt thời gian học tập.
Nha trang, ngày 01 tháng 06 năm 2015
Sinh viên thực hiện
Ngô Văn Cặn


ii

MỤC LỤC
LỜI CẢM ƠN ........................................................................................................ i
MỤC LỤC ............................................................................................................. ii
PHỤ LỤC ............................................................................................................. vi
MỘT SỐ KÝ HIỆU............................................................................................ vii
DANH MỤC HÌNH ........................................................................................... viii
Chương 1: ĐẶT VẤN ĐỀ .....................................................................................1
1.1. TỔNG QUAN ..................................................................................................1
1.2. MỤC TIÊU, NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU ...................3
1.2.1. Mục tiêu và mục đích của đề tài ...................................................................3
1.2.2. Phương pháp và nội dung nghiên cứu...........................................................3

1.2.3. Phạm vi nghiên cứu.......................................................................................3
1.3. NGÔN NGỮ LẬP TRÌNH AUTOLISP ..........................................................4
1.3.1. Vài nét về ngôn ngữ lập trình AutoLISP ......................................................4
1.3.2. Cách viết chương trình AutoLISP.................................................................5
1.3.3. Các hàm và lệnh cho AutoCAD ....................................................................8
1.3.4. Các kiểu dữ liệu cơ bản trong AutoLisp .......................................................9
1.3.5. Các hàm AutoLISP .....................................................................................10
1.3.5. Một số biến hệ thống gây ảnh hưởng đến việc dùng AutoCAD .................19
Chương 2: CÁC MẪU TÀU DU LỊCH MANG NÉT .....................................21
2.1. CÁC MẪU TÀU MANG NÉT VĂN HÓA CHĂMPA ................................21
2.1.1. Mẫu tàu chở khách du lịch vỏ gỗ chạy trong ngày .....................................23
2.1.2. Mẫu tàu chở khách du lịch và lưu trú vỏ gỗ ...............................................25
2.1.3. Mẫu tàu du lịch thấp tốc vỏ Composite hoặc PPC......................................26
2.2. MẪU TÀU MANG NÉT VĂN HÓA “XỨ TRẦM – BIỂN YẾN” ..............27
2.2.1. Mẫu tàu du lịch vỏ PPC ..............................................................................28
2.2.2. Mẫu tàu du lịch hai thân ..............................................................................29
2.2.3. Mẫu tàu du lịch vỏ gỗ chạy tiếng ................................................................31
2.3. MẪU TÀU MANG NÉT VĂN HÓA TÔN GIÁO .......................................34


iii

2.4. MẪU TÀU MANG NÉT VĂN HÓA TRUYỀN THỐNG NGƯỜI VIỆT ...36
2.5. MẪU TÀU MANG HÌNH ẢNH BIỂN ĐẢO Ở NHA TRANG ...................39
Chương 3: XÂY DỰNG THUẬT TOÁN VÀ VIẾT PHẦN MỀM ................41
3.1. THUẬT TOÁN CHƯƠNG TRÌNH ..............................................................41
3.1.1. Cơ sở thành lập sơ đồ thuật toán ................................................................41
3.1.2. Sơ đồ thuật toán ..........................................................................................43
3.2. VIẾT PHẦN MỀM VẼ CABIN TÀU DU LỊCH MANG NÉT VĂN HÓA 44
3.2.1. Xây Dựng Hộp Thoại Cabin .......................................................................44

3.2.2. Giải thuật nhập các thông số đầu vào .........................................................51
3.2.3. Thuật Toán Vẽ Cabin ..................................................................................54
3.2.3.1. Thuật Toán Nhập Thông số Cabin ...........................................................54
3.2.3.2. Thuật Toán Chèn Cabin Từ Đường Dẫn..................................................55
3.3. KẾT QUẢ CHẠY CHƯƠNG TRÌNH VẼ TÀU DU LỊCH COMPOSITE ..56
3.3.1. Vẽ loại tàu deep Vee (3 cặp đôi thanh dẫn hướng) .....................................56
3.3.1.1. Vẽ đường hình loại tàu deep Vee (3 cặp đôi thanh dẫn hướng) ..............56
3.3.1.2. Vẽ cabin loại tàu deep Vee (3 cặp đôi thanh dẫn hướng) ........................61
3.3.2. Vẽ loại tàu hai thân ....................................................................................65
3.3.2.1. Vẽ đường hình loại tàu hai thân ..............................................................65
3.3.3.1. Vẽ đường hình tàu đáy bằng ....................................................................68
3.3.3.2. Vẽ cabin tàu đáy bằng ..............................................................................70
3.3.4. Vẽ tàu Deep Vee (1 cặp đôi thanh hướng dòng) .........................................71
3.3.4.1. Vẽ đường hình tàu Deep Vee (1 cặp đôi thanh hướng dòng) ..................71
3.3.4.2. Vẽ cabin tàu Deep Vee (1 cặp đôi thanh hướng dòng) ............................73
3.3.5. Vẽ tàu Deep Vee (5 cặp đôi thanh hướng dòng) .........................................74
3.3.5.1. Vẽ đường hình tàu Deep Vee (5 cặp đôi thanh hướng dòng) ..................74
3.3.5.2. Vẽ cabin tàu Deep Vee (5 cặp đôi thanh hướng dòng) ...........................76
3.4. KẾT QUẢ CHẠY CHƯƠNG TRÌNH VẼ TÀU DU LỊCH VỎ GỖ. ...........77
3.4.1. Vẽ tàu Nha Trang 1 .....................................................................................77
3.4.1.1. Vẽ đường hình tàu Nha Trang 1 ..............................................................77


iv

3.4.1.2. Vẽ cabin tàu Nha Trang 1 ........................................................................82
3.4.2. Vẽ tàu Nha Trang 2 .....................................................................................83
3.4.2.1. Vẽ đường hình tàu Nha Trang 2 ..............................................................83
3.4.2.2. Vẽ Cabin nhà lưu trú tháp Bà và tuyến hình tàu Nha Trang 2 ................85
3.4.2.3. Vẽ Cabin tháp Bà và tuyến hình tàu Nha Trang 2 ...................................86

Chương 4: KẾT LUẬN VÀ KIẾN NGHỊ .........................................................77
4.1.THẢO LUẬN KẾT QUẢ NGHIÊN CỨU ..................................................77
4.2. ĐỀ XUẤT Ý KIẾN. ......................................................................................77
TÀI LIỆU THAM KHẢO. .................................................................................88


v

PHỤ LỤC

Cài đặt chương trình:
Buoc 1: Copy folder support vào C:
C:\Programfile\Autocad2007
Buoc 2: Load file support vào AutoCad:
- Khởi động chương trình AutoCAD
- Gõ lệnh: MENULOAD
-Click Browse. Tải file menuchuongtrinh.mnu
- Click Open


vi

MỘT SỐ KÝ HIỆU

Ltk

: Chiều dài thiết kế của tàu

Btk : Chiều dài thiết kế của tàu
Htk : Chiều cao mạn tàu thiết kế

Ttk: Chiều cao mớn nước tàu thiết kế
T: Chiều cao mớn nước tàu mẫu
H
Lcbtk

: Chiều cao mép boong tàu mẫu
: Chiều dài cabin thiết kế

Bcbtk: Chiều rộng cabin thiết kế
Hcbtk : Chiều cao cabin thiết kế
Lcbm

: Chiều dài cabin mẫu

Bcbm: Chiều rộng cabin mẫu
Hcbm : Chiều cao cabin mẫu
H
Dx

: Chiều cao mép boong tàu mẫu
: Tỷ lệ chiều dài cabin thiết kế và cabin tàu mẫu

Dy: Tỷ lệ chiều rộng cabin thiết kế và cabin tàu mẫu
Dz : Tỷ lệ chiều cao cabin thiết kế và cabin tàu mẫu
Dxt: Tỷ lệ chiều dài tàu thiết kế và tàu mẫu
Dzt: Tỷ lệ chiều cao mạn tàu thiết kế và tàu mẫu
Zcb : là cao độ điểm đặt block cabin.
Zcbtm : là cao độ điểm chèn cabin vào tàu mẫu.
Zcbttk : là cao độ điểm chèn cabin tàu thiết kế.



vii

DANH MỤC HÌNH
Hình 1.1. Một mẫu tàu du lịch ở Khánh Hòa ............................................................ 1
Hình 1.2. Chọn lưu file dạng save as từ notepad....................................................... 6
Hình 1.3. Hộp thoại lưu file .lsp từ notepad .............................................................. 6
Hình 1.4. Hộp thoại load file .lsp .............................................................................. 7
Hình 1.5. Hộp thoại chọn đường dẫn cho file .lsp .................................................... 7
Hình 2.1. Hình ảnh Tháp Bà Ponagar ở Nha Trang ................................................ 21
Hình 2.2. Hình ảnh cửa chính và khuôn viên Tháp bà Po Nagar ở Khánh Hòa ....... 22
Hình 2.3. Hình ảnh phù điêu, trụ cửa, cửa sổ nét văn hóa Chămpa trên tàu............. 23
Hình 2.4. Bản vẽ đường hình của tàu thiết kế ........................................................... 23
Hình 2.5. Cabin mẫu tàu mang nét văn hóa ChămPa ............................................... 24
Hình 2.6. Mẫu tàu chở khách du lịch vỏ gỗ mang nét văn hóa ChămPa .................. 24
Hình 2.7. Mẫu tàu du lịch lưu trú vỏ gỗ mang nét văn hóa Chămpa ........................ 25
Hình 2.8. Hình ảnh cửa sổ mang nét văn hóa ChămPa trên thành cabin tàu ............ 26
Hình 2.9. Hình ảnh mẫu tàu du lịch thấp tốc mang nét văn hóa ChămPa ................ 26
Hình 2.10. Yến sào Khánh Hòa ................................................................................ 27
Hình 2.11. Hình ảnh chim yến và đường nét đuôi tàu cách điệu cánh chim yến ….27
Hình 2.12. Mẫu tàu mang hình ảnh chim yến - đặc trưng biển Khánh Hòa ............. 28
Hình 2.13. Hình ảnh cửa ra vào mang nét văn hóa Chămpa truyền thống ............... 29
Hình 2.14. Hình ảnh mẫu tàu 2 thân mang hình ảnh chim yến ................................. 30
Hình 2.15. Trầm hương Khánh Hòa ......................................................................... 31
Hình 2.16. Hình ảnh tháp .......................................................................................... 31


viii

Hình 2.17. Mẫu tàu mang hình ảnh của tháp Trầm hương ....................................... 32

Hình 2.18. Cabin tàu mang nét cách điệu dạng cánh chim yến ................................ 33
Hình 2.19. Hoa văn trang trí dạng sóng biển ôm tháp Trầm Hương ........................ 33
Hình 2.20. Mẫu tàu du lịch kết hợp mang biểu tượng “Xứ trầm - Biển yến”........... 33
Hình 2.21. Tượng phật chùa Long Sơn ..................................................................... 34
Hình 2.22. Nhà thờ núi ở Nha Trang ........................................................................ 34
Hình 2.23. Thiết kế cách điệu từ kiến trúc Nhà thờ núi ............................................ 34
Hình 2.24. Mầu tàu mang kiến trúc Nhà thờ núi tại thành phố Nha Trang .............. 35
Hình 2.25. Thành cổ Diên Khánh ............................................................................. 36
Hình 2.26. Hình ảnh mẫu tàu thiết kế ở các góc nhìn ............................................... 37
Hình 2.27. Cabin tàu mang hình ảnh thành cổ Diên Khánh ..................................... 38
Hình 2.28. Mẫu tàu mang nét văn hóa của kiến trúc Thành cổ Diên Khánh ............ 38
Hình 2.29. Hình ảnh bãi biển du lịch ở Nha Trang ................................................... 39
Hình 2.30. Thiết kế cách điệu hình ảnh bãi biển....................................................... 39
Hình 2.31. Mâu tàu mang hình ảnh du lịch biển ở Nha Trang ................................. 40
Hình 3.1. Sơ đồ thuật toán chương trình vẽ cabin .................................................... 43
Hình 3.2. Hộp thoại vẽ cabin .................................................................................... 44
Hình 3.3. Yêu cầu xuất bản vẽ 2D ............................................................................ 56
Hình 3.4. Yêu cầu xuất tuyến hình ra Notepad ......................................................... 57
Hình 3.5 Trị số tuyến hình trên Notepad .................................................................. 57
Hình 3.6 Nhấn nút OK .............................................................................................. 58
Hình 3.7 Xuất trị số tuyến hình trên AutoCAD ........................................................ 58
Hình 3.8. Nhập điểm cần chèn bảng trị số tuyến hình .............................................. 59


ix

Hình 3.9. Bản vẽ tuyến hình 2D ................................................................................ 59
Hình 3.10. Kết quả xuất tuyến hình 3D .................................................................... 60
Hình 3.11. Thông báo kích thước nhập vào không thỏa mãn ................................... 60
Hình 3.12. Hộp thoại vẽ cabin .................................................................................. 61

Hình 3.13. Hộp thoại vẽ cabin sau khi nhân nút “cabin chim yen” .......................... 62
Hình 3.14. Yêu cầu kiểm tra tỷ lệ scale .................................................................... 62
Hình 3.15. Yêu cầu chọn cabin để scale ................................................................... 63
Hình 3.16. Tàu deep Vee (3 cặp đôi thanh dẫn hướng) sau khi chèn cabin 3D ....... 63
Hình 3.17. Tàu deep Vee (3 cặp đôi thanh dẫn hướng) sau khi chèn cabin 2D ....... 64
Hình 3.18. Thông báo kích thước cabin cần nhập không thỏa mãn.......................... 64
Hình 3.20. Xuất kết quả 3D tàu hai thân ................................................................... 65
Hình 3.19. Xuât kết quả tuyến hình 2D tàu hai thân ................................................. 66
Hình 3.21. Tàu hai thân sau khi chèn cabin ở khung nhìn 3D .................................. 67
Hình 3.22. Tàu hai thân sau khi chèn cabin ở khung nhìn 2D .................................. 67
Hình 3.23. Xuất bản vẽ 3D tàu đáy bằng .................................................................. 68
Hình 3.24. Xuất bản vẽ 2D tàu đáy bằng .................................................................. 69
Hình 3.25. Tàu đáy bằng sau khi chèn cabinở khung nhìn 3D ............................... 70
Hình 3.26. Tàu đáy bằng sau khi chèn cabinở khung nhìn 2D ............................... 70
Hình 3.27.Xuất bản vẽ 3D tàu Deep Vee (1 cặp đôi thanh hướng dòng) ................. 71
Hình 3.28.Xuất bản vẽ 2D tàu Deep Vee (1 cặp đôi thanh hướng dòng) ................. 72
Hình 3.29. Tàu Deep Vee (1 cặp đôi thanh hướng dòng) sau khi chèn cabin 3D .... 73
Hình 3.20. Tàu Deep Vee (1 cặp đôi thanh hướng dòng) sau khi chèn cabin 2D .... 73
Hình 3.31.

Xuất bản vẽ 2D tàu deep Vee (5 cặp đôi hướng dòng) ........................ 75


x

Hình 3.32.

Xuất bản vẽ 2D tàu deep Vee (5 cặp đôi hướng dòng) ........................ 76

Hình 3.33. Tàu Deep Vee (5 cặp thanh hướng dòng) sau khi chèn cabin 3D .......... 76

Hình 3.34. Tàu Deep Vee (5 cặp thanh hướng dòng) sau khi chèn cabin 2D .......... 76
Hình 3.35. Giao diện phần mềm vẽ đường hình…………………………………...77
Hình 3.36. Báo lỗi khi nhập sai kích thước ............................................................. 78
Hình 3.37. Báo lỗi khi nhập sai kích thước ............................................................. 78
Hình 3.38. Kết quả khi xuất tuyến hình 2D............................................................. 79
Hình 3.39. Kết quả khi xuất tuyến hình 3D tàu Nha Trang 1 ................................. 79
Hình 3.40 Hộp thoại xuất AutoCAD....................................................................... 80
Hình 3.41. Xuất tuyến hình trên AutoCAD............................................................. 81
Hình 3.42. Tàu Nha trang 1 sau khi chèn cabin ở khung nhìn 3D .......................... 82
Hình 3.43. Tàu Nha trang 1 sau khi chèn cabin ở khung nhìn 2D .......................... 82
Hình 3.44. Tuyến hình 3D Tàu Nha trang 2 ............................................................ 83
Hình 3.45. Tuyến hình 2D Tàu Nha trang 2 ............................................................ 84
Hình 3.46. Tàu Nha trang 2sau khi chèn cabin lưu trú tháp Bà dạng 3D............... 85
Hình 3.47. Tàu Nha trang 2sau khi chèn cabin lưu trú tháp Bà dạng 2D............... 85
Hình 3.48. Tàu Nha trang 2sau khi chèn cabin tháp Bà ở khung nhìn 3D ............. 86
Hình 3.49. Tàu Nha trang 2sau khi chèn cabin tháp Bà ở khung nhìn 2D ............. 86


1

Chương 1 :

ĐẶT VẤN ĐỀ

1.1. TỔNG QUAN
Khánh Hòa là địa phương có bờ biển dài, đẹp với nhiều điểm du lịch biển đảo hấp
dẫn nên lượng du khách đến với Khánh Hòa nói chung và Nha Trang nói riêng
ngày càng gia tăng. Vì thế, du lịch hiện được xác định là một trong những ngành
kinh tế mũi nhọn của Khánh Hòa, trong đó du lịch biển đảo đang được nhiều du
khách trong và ngoài nước quan tâm, yêu thích. Theo thống kê của Trung tâm xúc

tiến Du lịch tỉnh Khánh Hòa thì tính từ năm 2005 đến nay, bình quân mỗi năm Nha
Trang đã đón trên 1.5 triệu khách, với hơn 70% là du lịch biển, đảo. Vì thế, đội tàu
phục vụ các hoạt động du lịch trên biển có vai trò và ý nghĩa quan trọng và là một
trong những yếu tố góp phần hình thành bộ mặt văn hóa của ngành du lịch địa
phương. Hiện tại ở Khánh Hòa có hơn 200 tàu chở khách du lịch trên các tuyến
tham quan biển đảo, trong đó tập trung nhiều nhất là các tuyến trong vùng vịnh Nha
Trang với khoảng trên 160 tàu. Tuy nhiên, đa số tàu chở khách du lịch ở Khánh Hòa
là tàu vỏ gỗ cải hoán từ các tàu đánh cá, hầu như chưa đáp ứng được các tiêu chuẩn
quy định đối với tàu chở khách về mặt tính năng, mức độ an toàn, trang thiết bị cấp
cứu, khả năng chống rung, chống ồn thiết bị xử lý chất thải... Mặt khác, đa số tàu
dạng này đều là tàu cũ, kiểu dáng đa dạng, không thống nhất về mẫu mã, hình thức
nên không tạo được dấu ấn đặc trưng cho du lịch biển đảo Khánh Hòa ( hình 1.1).

Hình 1.1. Một mẫu tàu du lịch ở Khánh Hòa


2

Thực trạng này không chỉ gây khó cho công tác quản lý và Đăng kiểm đội tàu du
lịch tỉnh mà còn ảnh hưởng mức độ an toàn, sức khỏe và để lại ấn tượng không tốt
trong khách du lịch. Tất cả điều này có thể tác động xấu đến hoạt động chung của
ngành du lịch tỉnh Khánh Hòa, nhất là khi du lịch văn hóa biển đảo chính là mũi
nhọn trong hoạt động du lịch của địa phương. Vì vậy cần thiết phải đặt vấn đề
nghiên cứu thiết kế chuẩn hóa mẫu tàu du lịch của địa phương, trên cơ sở vừa phải
đảm bảo được các yêu cầu đặt ra về mặt kinh tế, kỹ thuật và môi trường, đồng thời
phải thể hiện được những nét văn hóa đặc trưng của địa phương tỉnh Khánh Hòa.
Bên cạnh những lợi ích khi thiết kế đội tàu du lịch mang nét văn hóa địa phương,
việc có mẫu thiết kế chuẩn còn giúp các cá nhân, đơn vị hoạt động du lịch trong tỉnh
tiết kiệm khoản chi phí đáng kể cho công tác thiết kế và Đăng kiểm khi đặt hàng
đóng mới tàu du lịch, góp phần thúc đẩy sự phát triển mạnh mẽ và bền vững của

ngành du lịch Khánh Hòa nói chung và du lịch biển đảo nói riêng.
Từ phân tích trên đây có thể nhận thấy, vấn đề nghiên cứu thiết kế chuẩn hóa các
mẫu tàu phù hợp hoạt động du lịch biển và mang những nét văn hóa đặc trưng của
tỉnh Khánh Hòa, đang là vấn đề có vai trò, ý nghĩa quan trọng đối với sự phát triển
kinh tế - xã hội địa phương. Vì thế trong công văn số 380/TB-UBND đã thông báo
kết luận của UBND tỉnh đề nghị thiết kế một số mẫu tàu du lịch có tính năng tốt
mang những nét văn hóa đặc trưng của địa phương Khánh Hòa và giao cho Khoa
Kỹ thuật Giao thông của Trường Đại học Nha Trang thực hiện đề tài: “Nghiên cứu
thiết kế một số mẫu tàu du lịch mang nét văn hóa của tỉnh Khánh Hòa”.
Cho đến nay, đề tài đã hoàn thành việc thiết kế các mẫu tàu mang những nét văn
hóa đặc trưng của tỉnh Khánh Hòa trên những mẫu tàu có các kích thước cụ thể. Để
có thể triển khai được những mẫu tàu văn hóa này cho tàu có kích thước khác, đề
tài tiếp tục đặt vấn đề xây dựng phần mềm cho phép người sử dụng thiết kế các
mẫu tàu mang nét văn hóa Khánh Hòa có kích thước khác mẫu tàu thiết kế ban đầu.
Trên cơ sở đó chúng tôi thực hiện đề tài:
“Xây dựng phần mềm thiết kế mẫu tàu du lịch mang nét văn hóa đặc trưng của
Khánh Hòa”, góp phần tạo cơ sở dữ liệu và nâng cao hiệu quả thiết kế các mẫu tàu
du lịch mang nét văn hóa Khánh Hòa.

1.2. MỤC TIÊU, NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU


3

1.2.1. Mục tiêu và mục đích của đề tài
Mục tiêu của đề tài là xây dựng thuật toán và viết phần mềm tự động hóa vẽ các
mẫu tàu du lịch vỏ Composite và vỏ gỗ mang nét văn hóa đặc trưng Khánh Hòa,
nhằm mục đích triển khai hiệu quả chủ trương thiết kế các tàu mang nét văn hóa
cho đội tàu chở khách du lịch biển, góp phần phát triển bền vững ngành du lịch nói
chung và du lịch biển đảo ở địa phương nói riêng.

1.2.2. Phương pháp và nội dung nghiên cứu
Phần mềm viết dựa trên cơ sở phần mềm vẽ đường hình các mẫu tàu du lịch vỏ
Composite của tác giả Hồ Trọng Bình [6] và phần mềm vẽ đường hình các mẫu
tàu du lịch vỏ gỗ hoạt động ở vùng vịnh Nha Trang của tác giả Lê Đình Quang [7].
Riêng các mẫu tàu mang nét văn hóa đặc trưng của Khánh Hòa được thừa hưởng từ
đề tài nghiên cứu khoa học cấp tỉnh “Nghiên cứu thiết kế một số mẫu tàu du lịch
mang nét văn hóa của tỉnh Khánh Hòa” của PGS TS Trần Gia Thái đã nói ở trên.
Từ đó chọn phương pháp nghiên cứu là xây dựng thư viện các mẫu cabin mang nét
văn hóa đặc trưng đã có và tích hợp vào đường hình đã có trong các phần mềm này.
Trên cơ sở đó, nội dung nghiên cứu của đề tài gồm các chương chính sau:
Chương 1 : Đặt vấn đề
Chương 2 : Các mẫu tàu mang nét văn hóa đặc trưng của Khánh Hòa
Chương 3 : Xây dựng thuật toán và viết phần mềm.
Chương 4 : Thảo luận kết quả
1.2.3. Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài giới hạn trong việc xây dựng thuật toán và viết
chương trình vẽ các mẫu tàu du lịch mang nét văn hóa đặc trưng của Khánh Hòa,
gồm các tàu chở khách vỏ gỗ và vỏ composite hoạt động ở vùng vịnh Nha Trang.
Các nội dung về thiết kế đường hình và thiết kế mẫu tàu văn hóa được thừa hưởng
từ công trình nghiên cứu của các tác giả khác.


4

1.3. NGÔN NGỮ LẬP TRÌNH AUTOLISP
Hiện nay có rất nhiều ngôn ngữ lập trình cho Autocad như : Script, Autolisp, VBA,
NET (C#, VB.NET, F#, ..), ARX... nhưng phổ biến nhất là ngôn ngữ lập trình
Autolisp, ngôn ngữ được tích hợp trong phần mềm AutoCad.
1.3.1. Vài nét về ngôn ngữ lập trình AutoLISP
LISP là chữ viết tắt của cụm từ tiếng Anh: List Processor (Xử lý danh sách).

AutoLisp là một ứng dụng của ngôn ngữ Lisp được sử dụng trong môi trường
AutoCad. LISP là ngôn ngữ lập trình thuộc nhóm trí tuệ nhân tạo do MacCarthy
soạn thảo cuối những năm 50. Với AutoLisp người dùng có thể mở rộng và tuỳ biến
các chức năng của AutoCad. Hiện nay AutoLisp đã được hãng Autodesk phát triển
theo các số hiệu phát hành của AutoCad. Về căn bản những phiên bản sau vẫn sử
dụng được những chương trình lập bằng phiên bản trước, ngược lại thì không được
do có một số biến hệ thống và lệnh của AutoCad giữa các phiên bản không giống
nhau nên việc dùng chung có gặp một số trở ngại. Do vậy yêu cầu người lập trình
AutoLisp phải nắm thật vững AutoCad để sử dụng AutoLisp một cách hiệu quả.
AutoLisp là một ngôn ngữ lập trình thông dịch, nghĩa là dịch đến dòng nào thực
hiện dòng đó và cho kết quả, không có trình biên dịch riêng. Một tập hợp các câu
lệnh của AutoLisp được gọi là hàm Lisp và tệp (file) chứa các hàm gọi là tệp (file)
Lisp có phần mở rộng là *.Lsp. Với AutoLisp, người dùng có thể dễ dàng truy
cập đến dữ liệu của AutoCad, có thể thay đổi, tạo mới, xoá bỏ các đối tượng, thêm
các thông tin vào bản vẽ thực hiện các công việc Tự động hoá trong thiết kế... Một
số ưu và nhược điểm của Autolisp:
 Ưu điểm
- Dễ viết và ngắn gọn
- Có nhiều nguồn hướng dẫn (Các trang hướng dẫn về Autolisp trên internet).
- Có khả năng tác động đến hầu hết các đối tượng của bản vẽ.
- Có thể chạy trực tiếp trong command hay trong menu.
- Không cần quản lý bộ nhớ
- Có thời gian sử dụng dài (một số ngôn ngữ lập trình sau một thời gian thì
phải cập nhật lại.
- Có thể tạo các hàm con, module dùng chung.


5

- Có thể liên kết với dữ liệu từ excel

 Nhược điểm
- DCL (hộp thoại) đơn giản, khó sử dụng, hỗ trợ Unicode kém
- Khó khăn trong vấn đề thay đổi, nâng cấp code.
- Tốc độ khá chậm.
- Khả năng tương tác với các lisp hay chương trình khác bị giới hạn (chỉ trao
đổi dữ liệu bằng text).
1.3.2. Cách viết chương trình AutoLISP
Có 2 cách viết chương trình AutoLisp:
1.Viết trực tiếp
Tại dòng nhắc Command: của AutoCad ta có thể gõ các câu lệnh theo cú
pháp của AutoLisp. Lệnh này sẽ được thực thi ngay và cho kết quả trên màm hình
tại vùng dòng lệnh, nhưng lệnh này không lưu trữ được.
2.Viết thành chương trình
- Dùng chương trình soạn thảo (dạng mã ASCII) bất kỳ hoặc Visual LISP, viết
thành chương trình như một tập tin nguồn có phần mở rộng *.lsp
- Tên tệp tuân thủ theo qui ước của hệ điều hành, thường không quá 8 ký tự,
giữa các ký tự không có khoảng trống.
Người ta thường dụng Notepad để viết các đoạn lisp bằng cách lưu dưới dạng
file *.lsp như sau:
Bước một: Mở một file Notepad mới,sau khi biên tập các dòng lệnh chọn lưu ở
dạng save as (hình 1.2)


6

Hình 1.2. Chọn lưu file dạng save as từ notepad
Bước hai: Trong hộp thoại save as chọn lưu dưới dạng all file (hình 1.3)

Hình 1.3. Hộp thoại lưu file .lsp từ notepad
Bước ba: Lưu tên file dưới dạng đuôi .lsp



7

3. Tải và chạy chương trình ứng dụng AutoLisp
Từ VLISP: Tools\ Load Text in Editor
Từ AutoCad: Tool\Load Application (hình 1.4) hoặc trên dòng lệnh
Command: ap

Hình 1.4. Hộp thoại load file .lsp
Để AutoCad tự động tải ngay từ khi khởi động hoặc mở bản vẽ có 2 cách:
- Đặt tên tệp là ACAD.LSP và đặt trong thư mục Support của AutoCad
- Khi tải file lần đầu sử dụng Startup Suite\ Contents và chọn đường dẫn cho
file (hình 1.5)

Hình 1.5. Hộp thoại chọn đường dẫn cho file .lsp


8

1.3.3. Các hàm và lệnh cho AutoCAD
AutoCad nhận và xử lý các lệnh trong hàm của AutoLisp theo cú pháp sau:
Tên hàm do người dùng định nghĩa gồm các chữ cái và con số trừ các ký tự đặc
biệt: như: ? < > , . * & ^ % $ # @ ! ~ \ | { } [ ] ..., tên hàm không nên quá dài và
phải dễ quản lý.
Hàm và câu lệnh của AutoLisp phải được đặt trong cặp dấu ngoặc đơn, bắt đầu
bằng “(“ và kết thúc bằng “)”. Hàm được viết từ trái qua phải theo kiểu Ba-lan,
nghĩa là phần tử đầu tiên sau dấu mở ngoặc phải là tên hàm (có sẵn hay do người
lập trình tự định nghĩa) hay toán tử. Các phần tử đứng sau là các tham số cần thiết
để thực hiện hàm hay toán tử đó. Phân cách giữa tên hàm (hay toán tử) với các tham

số, giữa các tham số với nhau phải có ít nhất một dấu cách ( dấu Space).
Một câu lệnh có thể viết trên nhiều dòng. Các dòng chữ có thể viết thụt vào tuỳ
ý theo cấu trúc đoạn lệnh cho dễ hiểu.
Không phân biệt chữ hoa và chữ thường, thường thì tên hàm nên viết bằng chữ
thường, tên các lệnh và các biến hệ thống của AutoCad viết bằng chữ hoa cho dễ
đọc và chương trình sáng sủa hơn.
Bất kỳ một hàm nào cũng trả về một giá trị nào đó, nếu không có giá trị trả về
trị số mặc định là nil.
Lời chú thích ghi trong chương trình AutoLisp được ghi sau dấu “ ; ” và không
được thực thi trong chương trình.
1. Hàm tự tạo
Sử dụng hàm tự tạo Defun (Define function) và khi AutoLISP chạy gặp bất kỳ
hàm nào có tên hàm tự tạo , nó sẽ tự động tính và trả kết quả của hàm.
(Defun [Tên hàm]/ [tham số gọi] [các biểu thức của hàm]) Tên hàm: Tuân theo các
quy định về đặt tên biến.
- Danh sách biến: Gồm hai phần ngăn cách nhau bởi dấu /
- Phần thứ nhất chứa tham số cần thiết khi gọi hàm, phần thứ hai chứa các biến cục
bộ của hàm.
- Biểu thức của hàm: Khi hàm được gọi, các biểu thức này lần lượt được tính.


9

2.Các lệnh mới cho AutoCAD
Các lệnh mới được tạo ra từ AutoLISP cũng sẽ được coi như là các lệnh của
AutoCAD lệnh này tương tự như các hàm tự tạo ở trên, chỉ khác là có thêm “C:”
vào trước tên hàm.
(Defun C: [Tên hàm]/ [tham số gọi] [các biểu thức của hàm]).
1.3.4. Các kiểu dữ liệu cơ bản trong AutoLisp
1. Kiểu danh sách (list)

Đây là kiểu đặc trưng của ngôn ngữ Lisp bao gồm nhóm các giá trị riêng lẻ
gồm các biến, các hằng số, các hàm... cách nhau bằng khoảng trống nằm trong dấu
ngoặc đơn.
Danh sách được chia làm 3 loại chính:
- Biểu thức (expression list): Chứa tên hàm và các tham số của hàm.
- Toạ độ điểm (Point Coordinate List): Có hàm Quote hoặc dấu ‘ ở phía trước.
Đây là trường hợp đặc biệt của danh sách kho dữ liệu, trong đó thông tin lưu trữ là
toạ độ điểm.
- Kho dữ liệu (Data Storage List): Có hàm Quote hoặc dấu ‘ ở phía trước có thể
chứa bất kỳ kiểu dữ liệu nào.
Ký hiệu hoàn trả của AutoLisp: “LIST”
Ví dụ: toạ độ của 1 điểm được khai báo dưới dạng danh sách: ‘(1.0 1.0 1.0) hoặc
(list 1.0 1.0 1.0).
2. Kiểu số
- Kiểu số nguyên là số nguyên thông thường trong toán học. Trong AutoLisp giới
hạn của số nguyên từ: -32768 đến +32767. Các phép tính trên số nguyên cho
kết quả là một số nguyên, nếu là phép chia cho kết quả là một số nguyên, phần dư
nếu có sẽ bị cắt bỏ. Ví dụ: (/ 5 2) cho kết quả là 2.
Ký hiệu hoàn trả của AutoLisp: “INT”
- Kiểu số thực trong AutoLisp có độ chính xác đến 14 chữ số sau dấu phẩy
thập phân. Các số thực có thể biểu diễn theo dạng chú thích khoa học, qua đó một
số e hoặc E được theo sau bởi số mũ của con số đó.
Ký hiệu hoàn trả của AutoLisp: “REAL”
3.Kiểu chuỗi


10

Chuỗi kí tự là tập hợp các ký tự bất kỳ đặt trong dấu ngoặc kép “ ”. Trong
AutoLisp chuỗi dài không quá 132 ký tự.

Ký hiệu hoàn trả của AutoLisp: “STR”
4. Kiểu đối tượng và nhóm đối tượng
- Mỗi đối tượng được vẽ trong AutoCad đều được quản lý theo tên (ENAME
- Entity Name). Mỗi tên đối tượng sẽ lưu trữ toàn bộ thông tin về đối tượng đó.
Ký hiệu hoàn trả của AutoLisp: “ENAME”
- Nhóm đối tượng (AutoCad selection set) là kiểu đặc trưng cho tập hợp
chứa các ENAME của các đối tượng được lựa chọn. Có thể lấy ENAME của một
đối tượng trong tập hợp các đối tượng được chọn.
Ký hiệu hoàn trả của AutoLisp: “PICKSET”
5. Số Pi và Nil
- Số Pi toán học trong AutoLisp được ký hiệu là pi và nhận giá trị không đổi là
3.1415926. Pi tham gia vào các biểu thức toán học và là số đo góc bằng Radian.
- Nil là ký hiệu để chỉ ra rằng biến hay hàm không có giá trị hoặc biểu thức logic
nhận giá trị không đúng.
1.3.5. Các hàm AutoLISP
Phần này chỉ trình bày các hàm thông dụng liên quan đến nội dung đề tài và
một số vẫn đề căn bản. Còn chi tiết cấu trúc các hàm có thể tham khảo trong các tài
liệu chuyên sâu. Cụ thể như sau:
1. Danh mục các hàm
a. Các hàm chuyển lệnh từ AutoLisp sang AutoCad
Hàm (Load ...)
Chức năng: Gọi một chương trình ứng dụng vào AutoCad
Cú pháp:
(Load “Tên_tệp”)
Load:
Tên_tệp: là tên tập tin có phần mở rộng *.LSP, .ARX, .ADS hoặc .EXE
Nếu chương trình đặt ngoài thư mục làm việc của AutoCad thì phải chỉ rõ đường
dẫn của tệp tin đó.
Hàm (Command ...)
Chức năng: Thực hiện lệnh của AutoCad



11

Cú pháp:
(Command “Tên_lệnh” [các đáp ứng lời nhắc] [các tuỳ chọn]...)
Giải thích:
Tên_lệnh: là tên các lệnh của AutoCad
[các đáp ứng lời nhắc] và [các tuỳ chọn]: Tuân theo các lệnh của AutoCad
Nếu Tên_lệnh = _Tên_lệnh hoặc _.Tên_lệnh Autocad sẽ truy cập các gía trị
trong bảng số liệu của lệnh thực thi trong AutoCad
b. Các hàm nhập liệu từ người dùng
Các hàm sau sẽ tạm dừng chương trình để yêu cầu người dùng nhập dữ liệu vào
từ bàn phím hoặc chuột
Hàm (getpoint ...)
Chức năng: Chờ người dùng nhập toạ độ một diểm
Cú pháp:
(getpoint [point] [prompt])
Giải thích:
point: Nếu có, cho bằng 1 danh sách điểm , là điểm thứ nhất, còn điểm người
dùng nhập vào sẽ là điểm thứ 2. Điểm thứ 2 có thể cho bằng toạ độ tương đối.
[prompt]: Nếu có, là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập. Dòng nhắc
phải được đặt trong ngoặc kép “ ”
VD : Vẽ 1 đoạn thẳng Line khi biết toạ độ 2 điểm
(defun c:VL () ;(1)
(setq p1 (getpoint "\n Nhap toa do diem thu nhat cua Line :"))
; (2) (setq p2
(getpoint p1 "\n Nhap toa do diem thu hai cua Line :")) ; (3) (Command "Line" p1
p2 "") ; (4)
) ; (5)

Giải thích:
Dòng (1) định nghĩa 1 lệnh tắt để vẽ Line có tên là VL
Dòng (2) : Trên Command sẽ xuất hiện dòng nhắc “ Nhap toa do diem thu nhat”
của Line. Hàm getpoint chờ người dùng nhập toạ độ hoặc pick trên màn hình, sau
đó sẽ gán toạ độ này cho biến p1 nhờ hàm setq.
Dòng (3) : Trên Command sẽ xuất hiện dòng nhắc “Nhap toa do diem thu hai”
cua Line. Hàm getpoint chờ người dùng nhập toạ độ hoặc pick trên màn hình, sau
đó sẽ gán toạ độ này cho biến p2 nhờ hàm setq. Bạn để ý nếu hàm getpoint có chứa


12

biến p1 thì sẽ xuất hiện sợi tóc của chuột tại điểm p1
Dòng (4): Thông qua hàm Command, ta vẽ 1 line từ p1 đến p2
Dòng (5): Dấu ) của hàm defun ở dòng (1)
Hàm (getangle ...)
Chức năng: Chờ người dùng nhập vào:
Một số thực là số đo bằng độ của góc hoặc cung tròn
Toạ độ của 1 hoặc 2 điểm
Nếu nhập toạ độ điểm, AutoLisp hoàn trả góc nghiêng giữa đoạn thẳng nối hai
điểm so với phương nằm ngang
Kết quả trả về: REAL ( số đo là Radian)
Cú pháp:
(getangle [point] [prompt])
Giải thích:
point: giống như getpoint
[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập
VD:
(setq a1 (getangle “Nhap gia tri cua goc:”))
Kết quả cho trên dòng nhắc chờ người dùng nhập số liệu:

Nhap gia tri cua goc:
Hàm (getreal ...)
Chức năng: Chờ người dùng nhập vào một số thực
Kết quả: REAL
Cú pháp
(getreal [prompt])
Giải thích:
[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập
Hàm (getstring ...)
Chức năng: Chờ người dùng nhập vào một chuỗi ký tự . Nếu chuỗi ký tự dài hơn
132 ký tự, hàm chỉ lấy 132 ký tự
Kết quả: STR
Cú pháp:
(getstring [string] [prompt])
Giải thích:


13

[string]: Nếu không có hoặc nhận giá trị Nil, không được nhập dấu trống, nếu gõ
dấu trống tương đương gõ ENTER kết thúc nhập.
Nếu có giá trị khác Nil cho phép nhập cả dấu trống. Kết thúc nhập phải gõ
ENTER
[prompt]: là dòng nhắc hoặc giải thích về dữ liệu sẽ nhập
Hàm (getkword ...)
Chức năng: Chờ người dùng nhập vào một ký tự hoặc một chuỗi ký tự liền nhau
không có dấu trống
Kết quả trả về: STR
Cú pháp: (getkword [prompt])
Giải thích:

Hàm này luôn đặt sau hàm initget, nếu chuỗi nhập vào không trùng với từ khoá
trong hàm initget trước đó, getkword yêu cầu nhập lại
Hàm này thường áp dụng khi người dùng nhập vào các lựa chọn
[prompt]: là dòng nhắc nên chỉ rõ các từ khoá để người dùng dễ nhập dữ liệu.
VD:
(initget “VUong DAgiac:”)
(getkword “Nhap cac lua chon: VUong/DAgiac:”) Kết quả cho trên dòng nhắc:
Nhap cac lua chon: VUong/DAgiac:
Ta chỉ cần nhập các chữ cái: VU kết quả trả về: “vuong” DA kết quả trả về:
“dagiac”
c. Hàm lấy giá trị các biến hệ thống
Hàm (getvar ...)
Chức năng: Lấy giá trị hiện hành của biến hệ thống trong AutoCa
Cú pháp: (getvar varname)
Giải thích:
varname: Tên biến hệ thống
d. Hàm hiện thông báo trên màn hình
Hàm (promt ...)
Chức năng: Xuất một ký tự ra màn hình (dòng command)
Cú pháp: (promt msg)
Giải thích:
msg: Chuỗi ký tự cần xuất ra như một dòng thông báo


14

e. Các hàm chuyển đổi kiểu dữ liệu
Hàm (atoi...)
Chức năng: Chuyển đổi chuỗi ký tự thành số nguyên
Cú pháp: (atoi str)

Giải thích:
str : Là chuỗi ký tự (chứa các chữ số)
Hàm (atof...)
Chức năng: Chuyển đổi chuỗi ký tự thành số thực
Cú pháp: (atof str)
Giải thích:
str : Là chuỗi ký tự (chứa các chữ số)
Hàm (strcat...)
Chức năng: Nối các chuỗi thành phần thành một chuỗi chung
Cú pháp:
(strcat str1 str2 [str3]...)
Giải thích:
str1, str2, str3... : Là các chuỗi thành phần cần được ghép lại
Hàm (strcase...)
Chức năng: Chuyển chuỗi ra chữ in hoa hoặc chữ thường
Cú pháp: (strcase str which)
Giải thích:
str: Là chuỗi cần chuyển đổi
which: Nếu không có, tất cả chuỗi biến thành chữ in hoa, nếu là chữ T tất cả
chuỗi trở thành chữ thường
Hàm (substr...)
Chức năng: Trích một phần của chuỗi ký tự thành một chuỗi khác
Cú pháp:
(substr str start [length])
Giải thích:
str: Là chuỗi cần trích
start: Vị trí ký tự trong chuỗi cần trích ra
length: Chiều dài của chuỗi mới (số ký tự), nếu không có thì chuỗi mới bắt đầu từ
vị trí start cho đến hết



×