1. Trang chủ
  2. » Luận Văn - Báo Cáo

viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận

305 1,2K 4
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh Ninh Thuận
Tác giả Bùi Công Lộc
Người hướng dẫn PGS.TS. Trần Gia Thái
Trường học Trường Đại Học Nha Trang
Chuyên ngành Đóng tàu
Thể loại Đề tài tốt nghiệp
Năm xuất bản 2012
Thành phố Nha Trang
Định dạng
Số trang 305
Dung lượng 7,73 MB

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

Nội dung

PHIẾU ĐÁNH GIÁ CHẤT LƯỢNG ĐỀ TÀI TỐT NGHIỆP Họ và tên sinh viên: Bùi Công Lộc Lớp: 50DT2 Tên Đề tài: “Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo

Trang 1

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

Họ và tên sinh viên: Bùi Công Lộc Lớp: 50DT2

Tên Đề tài: “Viết chương trình vẽ đường hình và tính toán tính năng các mẫu

tàu khác nhau theo mẫu truyền thống tỉnh Ninh Thuận”

Số trang: 294 Số chương: 05 Số tài liệu kham khảo: 7 Hiện vật: 02 quyển đồ án; 02CD

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

Kết luận:

ĐIỂM CHUNG

Bằng chữ Bằng số

Nha Trang, ngày … tháng … năm 2012

CÁN BỘ HƯỚNG DẪN

(Ký và ghi rõ họ tên)

PGS.TS TRẦN GIA THÁI

Trang 2

PHIẾU ĐÁNH GIÁ CHẤT LƯỢNG ĐỀ TÀI TỐT NGHIỆP

Họ và tên sinh viên: Bùi Công Lộc Lớp: 50DT2

Tên Đề tài: “Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu

khác nhau theo mẫu truyền thống tỉnh Ninh Thuận”

Số trang: 294 Số chương: 05 Số tài liệu kham khảo: 7 Hiện vật: 02 quyển đồ án; 02CD

NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN

Đánh giá chung:

ĐIỂM

Bằng chữ Bằng số

ĐIỂM CHUNG

Bằng chữ Bằng số

Nha Trang, ngày … tháng … năm 2012

Cán bộ phản biện

(Ký và ghi rõ họ tên)

Nha Trang, ngày … tháng … năm 2012

Chủ tịch hội đồng

(Ký và ghi rõ họ tên)

Trang 3

Lời nói đầu A

CHƯƠNG 1: ĐẶT VẤN ĐỀ 1

1.1 TỔNG QUAN CỦA ĐỀ TÀI NGHIÊN CỨU 1

1.2 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC 2

1.2.1.Tình hình nghiên cứu trong nước 2

1.2.2.Tình hình nghiên cứu trên thế giới 3

1.3 MỤC TIÊU, PHƯƠNG PHÁP, NỘI DUNG VÀ PHẠM VI NGHIÊN CỨU 4

1.3.1.Mục tiêu đề tài 4

1.3.2.Phương pháp và nội dung nghiên cứu 5

1.3.3.Phạm vi nghiên cứu 6

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7

2.1 VẼ ĐƯỜNG HÌNH THEO MẪU 7

2.2 TÍNH TOÁN CÁC TÍNH NĂNG 8

2.2.1 Đồ Thị Thủy Tĩnh 8

2.2.2.Đồ Thị Bonjean 10

2.2.3.Đồ Thị Pantokanren 12

2.2.4.Cơ Sở Ổn Định 17

2.3 LỰA CHỌN NGÔN NGỮ LẬP TRÌNH 21

2.3.1.Tìm Hiểu Ngôn Ngữ Autolisp 23

2.3.2.Các Hàm AutoLISP Thông Dụng 25

CHƯƠNG 3: KẾT QUẢ NGHIÊN CỨU 36

3.1 LỰA CHỌN VÀ GIẢI THUẬT VẼ ĐƯỜNG HÌNH 36

3.1.1.Lựa chọn và xây dựng sơ đồ thuật toán vẽ đường hình 36

3.1.2.Giải thuật chương trình vẽ đường hình 38

3.1.3.Xây dựng hộp thoại chương trình vẽ đường hình 44

Trang 4

3.2 GIẢI THUẬT TÍNH TOÁN CÁC TÍNH NĂNG 49

3.2.1.Giải thuật tính toán và vẽ đồ thị Bonjean 49

3.2.2.Giải thuật tính toán và vẽ đồ thị thủy tĩnh 58

3.2.3.Giải thuật vẽ đồ thị pantokaren 63

3.2.4.Giải thuật vẽ đồ thị ổn định 66

3.3 XÂY DỰNG MENU CHO CHƯƠNG TRÌNH 76

3.4 KẾT QUẢ CHẠY PHẦN MỀM 83

3.4.1.Giới thiệu phần mềm 83

3.4.2.Kết quả chạy phần mềm vẽ đường hình 84

3.4.3.Xuất bảng tọa độ đường hình trên AutoCAD và Notepad 89

3.4.4.Kết quả chạy Modun vẽ đồ thị Bonjean 91

3.4.5.Kết quả chạy modun vẽ đồ thị thủy tĩnh (Hydrostatic-Curves) 96

3.4.6.Kết quả chạy modun vẽ đồ thị pantokaren 100

3.4.7.Kết quả chạy modun vẽ đồ thị ổn định 103

3.5 ĐÁNH GIÁ ĐỘ CHÍNH XÁC CỦA PHẦN MỀM 113

3.5.1.Đánh giá độ chính xác của phần mềm vẽ đồ thị Bonjean 113

3.5.2.Đánh giá độ chính xác của phần mềm vẽ đồ thị thủy tĩnh 114

3.5.3.Đánh giá độ chính xác của phần mềm vẽ đồ thị Pantokaren 116

CHƯƠNG 4: XÂY DỰNG CƠ SỞ DỮ LIỆU CHO CHƯƠNG TRÌNH 119

4.1 Xây Dựng Cơ Sở Dữ Liệu Cho Modun Vẽ Đường Hình 119

4.2 Xây Dựng Cơ Sở Dữ Liệu Cho Modun Vẽ Đồ Thị Thủy Tĩnh 124

4.3 Xây Dựng Cơ Sở Dữ Liệu Cho Modun Vẽ Đồ Thị Pantokaren 127

Chương 5: THẢO LUẬN KẾT QUẢ 132

5.1 Kết Luận 132

5.2 Những Định Hướng Nghiên Cứu Trong Tương Lai 132

Trang 5

TÀI LIỆU THAM KHẢO 133

PHỤ LỤC 134

Phụ lục I: Kết Quả Tính Đồ Thị Pantokaren 134

Phụ lục II: Code chương trình 181

Phụ lục III Code chương trình vẽ đồ thị thủy tĩnh 248

Phụ lục IV: Code chương trình vẽ đồ thị Pantokaren 263

Phụ lục V: Code chương trinhg vẽ đồ thị ổn định 271

Phụ lục VI: Kết quả tính cho mẫu tàu cụ thể 279

Trang 6

DANH MỤC HÌNH

Hình 2 1: Đồ thị thủy tĩnh 9

Hình 2 2: Đồ thị Bonjean 11

Hình 2.3 : Phương pháp Krylop_ Dargnies 13

Hình 2 4: Xác định các giá trị a,b 14

Hình 2 5: Đường sườn Tchebyshev 16

Hình 2 6: Phương pháp xác định các hệ số a,b 16

Hình 2 7: Tâm nổi ứng với các góc nghiêng khác nhau 18

Hình 2 8 Cách xác định cánh tay đòn ổn định 20

Hình 2 9: Xác định chiều cao tâm nghiêng trên đồ thị ổn định tĩnh 21

Hình 2 10: Giao diện của môi trường Visual LISP 23

Hình 2 11: Nhập số liệu là kiểu số nguyên 26

Hình 2 12: Nhập số liệu kiểu số thực 26

Hình 2 13: Thông báo nhập số liệu kiểu chuỗi 27

Hình 2 14: Nhập số liệu kiểu chuỗi 27

Hình 2 15: Hàm gán lấy giá trị của biến hệ thống AutoCAD 28

Hình 2 16: Thông báo trên màn hình của AutoCAD 30

Hình 3.1: Sơ đồ thuật toán chương trình vẽ đường hình 37

Hình 3 2: Hộp thoại chương trình vẽ đường hình 45

Trang 7

Hình 3.3: Sơ đồ thuật toán vẽ đồ thị Bonjean 51

Hình 3.4: Sơ đồ thuật toán vẽ đồ thị thủy tĩnh 59

Hình 3.5: Sơ đồ thuật toán chương trình vẽ đồ thị Pantkaren 63

Hình 3 6: Sơ đồ thuật toán vẽ đồ thị ổn định 66

Hình 3 7: Tải menu chương trình 84

Hình 3 8: Giao diện phần mềm vẽ đường hình 85

Hình 3 9: Báo lỗi khi nhập sai kích thước 86

Hình 3 10: Báo lỗi khi không phù hợp với tỷ lệ kích thước 87

Hình 3 11: Kết quả khi xuất tuyến hình 2D 87

Hình 3 12: Kết quả của việc xuất ngược từ 2D sang 3D 88

Hình 3 13: Xuất tuyến hình 3D 88

Hình 3 14: Xuất trị số tuyến hình ra NOTEPAD 89

Hình 3 15: Hộp thoại xuất AutoCAD 90

Hình 3 16: Xuất tuyến hình trên AutoCAD 90

Hình 3 17: Giao diện chương trình vẽ đồ thị Bonjean 91

Hình 3 18: Menu ngữ cảnh của chương trình 92

Hình 3 19: Thông báo khi nhập thông số đầu vào không phù hợp 93

Hình 3 20: Chương trình đang thực hiện vẽ đồ thị Bonjean 94

Hình 3 21: Bản vẽ đồ thị Bonjean do phần mềm xuất ra 95

Hình 3 22: Kết quả diện tích được xuất ra file “.txt” 95

Trang 8

Hình 3 23: Giao diện phần mềm vẽ đồ thị thủy tĩnh 96

Hình 3 24: Chọn vị trí vẽ đồ thị thủy tĩnh 97

Hình 3 25: Kết quả phần mềm vẽ đồ thị thủy tĩnh 97

Hình 3 26: Thông báo mặc định của phần mềm 98

Hình 3 27: Kết quả xuất bảng kết quả trên nền AutoCAD 98

Hình 3 28: Hộp thoại xuất file Notepad 99

Hình 3 29: Kết quả xuất file Notepad 99

Hình 3 30: Gọi chương trình từ menu phụ 100

Hình 3 31: Gọi chương trình từ menu ngữ cảnh 100

Hình 3 32: Giao diện chương trình vẽ đồ thị Pantokaren 101

Hình 3 33: Yêu cầu chọn vị trí vẽ đồ thị 101

Hình 3 34: Kết quả vẽ đồ thị Pantokaren 102

Hình 3 35: Hộp thoại xuất kết quả trên AutoCAD 102

Hình 3 36: Phần mềm xuất bản vẽ với bảng kết quả kèm theo 103

Hình 3 37: Gọi chương trình từ menu phụ 103

Hình 3 38: Gọi chương trình từ menu ngữ cảnh 104

Hình 3 39: Giao diện chương trình vẽ đồ thị ổn định 104

Hình 3 40: Nhập trực tiếp giá trị P(tấn), Zg 106

Hình 3 41: Nhập P(tấn), Zg thông qua modun tính trọng lượng, trọng tâm tàu 106

Hình 3 42: Kết quả tính trọng lượng, trọng tâm tàu 107

Trang 9

Hình 3 43: Xuất file kết quả của modun tính trọng lượng trọng tâm tàu 107

Hình 3 44: Kết quả được xuất trên file Notepad 108

Hình 3 45: Nội suy L(hd) từ đồ thị Pantokaren 109

Hình 3 46: Hộp thoại nhập giá trị L(hd) từ file “.txt” 110

Hình 3 47: File L(hd) được nhập vào 110

Hình 3 48: Thông báo của phần mềm khi nhập L(hd) sai định dạng file 111

Hình 3 49: Kết quả vẽ đồ thị ổn định 111

Hình 3 50: Thông báo của phần mềm khi xuất kết quả ra file notepad 112

Hình 3 51: Kết quả được xuất trên file Notepad 112

Hình 3 52: Kết quả tính đồ thị Pantokaren mà phần mềm cho ra 116

Hình 3.53: Kết quả tính đồ thị Pantokare trên phần mềm Autohydro 117

Hình 4 1: Đường hình tàu đánh cá lưới kéo 120

Hình 4 2: Đường hình tàu đánh cá lưới rê 121

Hình 4 3: Đường hình tàu đánh cá lưới vây 122

Hình 4 4: Đường hình tàu đánh cá pha xúc 123

Hình 4 5: Code dùng để tính toán các yêu tố tính nổi 125

Hình 4 6: Đường sườn Tchebyshev 128

Hình 4 7: Xác định các giá trị a, b 129

Hình 4 8: Đường nước đã được hiệu chỉnh 129

Trang 10

DANH MỤC BẢNG

Bảng 2 1: Xác định vị trí đường sườn Tchebyshev 15

Bảng 2 2: Bảng tính Pantokaren cho DN 1 – tại góc nghiêng δΦ = 100 17

Bảng 3.1: Bảng đánh giá độ chính xác của phần mềm vẽ đồ thị Bonjean 113

Bảng 3 2: Bảng đánh giá độ chính xác của phần mềm vẽ đồ thị thủy tĩnh 115

Bảng 3 3 Đánh giá độ sai số của phần mềm vẽ đồ thị Pantokaren so với phần mềm Autohydro 118

Bảng 4 1: Xác định vị trí đường sườn Tchebyshev 127

Bảng 4 2: Bảng tính các r theo phương pháp Krylop – Dargnies 130

Bảng 4 3: Bảng tính giá trị Zc của tàu lưới rê 130

Bảng 4 4: Bảng tính giá trị Yc của tàu lưới rê 131

Trang 11

LỜI NÓI ĐẦU

Đất nước ta có nguồn tài nguyên biển phong phú và đa dạng nên thuận lợi cho sự phát triển của ngành khai thác thủy sản nói chung và đội tàu đánh cá vỏ gỗ nói riêng Tuy nhiên, do các mẫu tàu đánh cá thường chỉ được đóng theo kinh nghiệm, chưa được tính toán và thử nghiệm thực tế nên gây ra nhiều khó khăn cho công việc quản

lý Mặt khác, các mẫu đường hình tàu đánh cá truyền thống ở nước ta hiện nay có độ cong và độ gẫy khúc phức tạp nên việc thiết kế các mẫu đường hình trên không chỉ gây ra nhiều vấn đề khó khăn mà còn có độ chính xác chưa cao khi mà công việc thiết

kế đường hình chỉ dừng lại ở các phần mềm thông dụng như phần mềm AutoCAD Vì thế, vấn đề tự động hóa việc vẽ chính xác đường hình và tính toán tính năng cho các mẫu tàu đánh cá vỏ gỗ đang là bài toán đã và đang đặt ra cho các nhà nghiên cứu

Vì lý do đó, chúng tôi đã đặt vấn đề và được giao thực hiện đề tài tốt nghiệp với tên

gọi: “Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau

theo mẫu truyền thống tỉnh Ninh Thuận” với sự hướng dẫn của thầy PGS.TS Trần Gia

Thái

Đề tài sẽ đi vào nghiên cứu ngôn ngữ lập trình AutoLISP và xây dựng thuật toán thiết kế đường hình và tính toán tính năng Trên cơ sở đó, viết chương trình thiết kế đường hình và tính toán tính năng theo mẫu truyền thống tại Ninh Thuận, cho phép người dùng có thể vẽ đường hình và tính toán tính năng một cách nhanh chóng, đơn giản, thuận tiện và nhằm mục đích hướng tới phục vụ cho nhiều cơ sở đóng tàu cá vỏ

gỗ ở Ninh Thuận

Với cách đặt vấn đề như trên, đề tài bao gồm các nội dung sau:

 Chương 1 : Đặt vấn đề

 Chương 2 : Cơ sở lý thuyết

 Chương 3 : Kết quả nghiên cứu

 Chương 4 : Xây dựng cơ sở dữ liệu chương trình

 Chương 5 : Thảo luận kết quả

Qua đây chúng tôi xin chân thành cảm ơn thầy PGS.TS Trần Gia Thái, KS

Đỗ Quang Thắng và các thầy trong khoa Kỹ thuật giao thông, đã giúp đỡ chúng tôi trong suốt thời gian thực hiện đề tài

Nha Trang, ngày 10 tháng 07 năm 2012

Chủ nhiệm đề tài: Bùi Công Lộc

Trang 12

CHƯƠNG 1: ĐẶT VẤN ĐỀ

1.1 TỔNG QUAN CỦA ĐỀ TÀI NGHIÊN CỨU

Như đã biết, thiết kế đường hình tàu đánh cá vỏ gỗ và tính toán các tính năng cần thiết cho các mẫu tàu cá truyền thống là công việc hết sức khó khăn phức tạp, đòi hỏi khối lượng công việc lớn và yêu cầu độ chính xác cao Ngoài ra, khác với khi thiết kế đường hình các loại tàu thông dụng khác, đặc điểm của nghề cá tại Ninh Thuận hiện nay, chủ yếu là nghề cá nhân dân đã và đang đặt ra nhiều yêu cầu đối với đường hình của các tàu đánh bắt thuỷ sản, khi đa số đều là tàu làm bằng gỗ và các mẫu tàu này hầu như chưa được tính toán hoặc thử nghiệm thực tế phù hợp yêu cầu đặt ra mà chủ yếu được lựa chọn chỉ vì thói quen và ý thích của các ngư dân của địa phương, tàu đã qua thực tế khai thác trong nhiều năm, đồng thời phù hợp với trình độ và kinh nghiệm thi công loại tàu vỏ gỗ một cách thủ công của các cơ sở đóng tàu ở các địa phương nghề cá Đặc điểm trên không chỉ gây nhiều vấn đề phức tạp trong công tác quản lý kinh tế - kỹ thuật của các cơ quan quản lý tàu thuyền nghề, mà còn có ảnh hưởng rất lớn đến mức độ an toàn, hiệu quả khai thác và nhiều yếu tố khác của đội tàu đánh cá tại Ninh Thuận hiện nay Chính vì vậy bài toán thiết kế đường hình tàu đánh cá phù hợp với đặc điểm khai thác và tính toán các tính năng cần thiết cho các mẫu tàu truyền thống tại Ninh Thuận có ý nghĩa lý thuyết và thực tiễn rất quan trọng và hiện cũng đang được các nhà khoa học trong và ngoài nước quan tâm nghiên cứu Ngoài ra, để tạo thuận lợi trong việc áp dụng vào thực tế thiết kế và chế tạo các tàu đánh cá, nhất là trong điều kiện kinh tế kỹ thuật còn kém, cần phải đặt vấn

đề xây dựng một phần mềm tự động hoá quá trình thiết kế đường hình và tính toán các tính năng cần thiết theo các mẫu tàu đánh cá truyền thống tại Ninh Thuận, cho phép người sử dụng ở các cơ sở đóng tàu đánh cá, thường chưa được đào tạo trình độ cao có thể tự mình thiết kế và tính toán các tính năng cần thiết cho các mẫu tàu đánh cá theo đúng mẫu truyền thống đang hoạt động trên địa bàn tỉnh Ninh Thuận

Xuất phát từ nhu cầu thực tế, Khoa Kỹ thuật Giao thông Trường Đại học Nha Trang - một trong các đơn vị đào tạo truyền thống đội ngũ kỹ sư đóng tàu cá ở Việt Nam hiện nay

Trang 13

đã thực hiện nhiều dự án thiết kế chuẩn hóa các mẫu tàu đánh cá theo mẫu truyền thống cho những địa phương nghề cá điển hình ở nước ta nói chung và của tỉnh Ninh Thuận nói riêng Trong quá trình thực hiện các dự án này, để hỗ trợ cho việc vẽ đường hình của các mẫu tàu đánh cá của các địa phương, chúng tôi đã được giao thực hiện đề tài tốt nghiệp với tên gọi :

“ Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau

theo mẫu truyền thống tỉnh Ninh Thuận”

Nội dung đề tài sẽ đi vào nghiên cứu xây dựng phương pháp và thuật toán thiết kế đường hình và tính toán tính năng cần thiết đáp ứng được hầu hết các yêu cầu hết sức đa dạng của tàu nghề cá Ninh Thuận Trên cơ sở đó, viết phần mềm thiết kế đường hình và tính toán tính năng cần thiết tàu đánh cá theo mẫu dân gian cho phép người sử dụng có thể vẽ được đường hình tàu theo mẫu truyền thống tại Ninh Thuận và tính toán tính năng một cách nhanh chóng, trực quan, đơn giản và không cần phải có kiến thức sâu về cơ sở

lý thuyết nhằm mục đích hướng tới phục vụ cho nhiều cơ sở đóng tàu cá vỏ gỗ ở Ninh Thuận

1.2 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC

1.2.1 Tình hình nghiên cứu trong nước

Như đã trình bày ở trên, đa số những tàu đánh bắt thuỷ sản ở nước ta hiện nay nói chung và tại Ninh Thuận nói riêng đều thuộc loại tàu cỡ nhỏ, do các ngư dân tự liên hệ để đóng mới nên hầu như không có thiết kế kỹ thuật mà chủ yếu đóng dựa theo kinh nghiệm

và mẫu dân gian truyền thống của từng địa phương Chỉ sau khi đóng xong con tàu, cơ quan quản lý mới tiến hành lập hồ sơ thiết kế hoàn công, do đó đường hình thường được xây dựng trên cơ sở đo đạc và vẽ lại những mẫu tàu đã đóng Trong thời gian gần đây, khi mà cơ quan quản lý nhà nước yêu cầu các tàu nghề cá đóng mới phải có hồ sơ thiết kế

kỹ thuật thì quá trình thiết kế đường hình của loại tàu này nói chung thường cũng chỉ dừng lại ở việc vẽ theo mẫu tàu có sẵn bằng phần mềm thông dụng AutoCAD Cho đến

Trang 14

hiện nay, trong lĩnh vực tự động hóa vẽ đường hình của các tàu đánh cá Việt Nam mới chỉ có các kết quả nghiên cứu của PGS.TS Trần Gia Thái của Trường Đại học Nha Trang

thông qua đề tài cấp Bộ với tên gọi ”Tự động hóa thiết kế đường hình tàu đáp ứng nhu

cầu đa dạng của tàu nghề cá Việt Nam”, trong đó đã công bố phần mềm cho phép thiết

kế tối ưu đường hình của các mẫu tàu đánh cá Việt Nam

1.2.2 Tình hình nghiên cứu trên thế giới

Riêng trên thế giới hiện nay cũng có khá nhiều phần mềm thiết kế tàu và tính toán các tính năng hàng hải uy tín như AutoShip, Fastship (Mỹ), Nepka (Tây Ban Nha), Maxsurf (Úc), Nautilus (Na Uy) v v…, nhưng sau khi khảo sát hầu hết các phần mềm thiết kế tàu nói trên chúng tôi nhận xét thấy, các phần mềm này tuy có nhiều ưu thế rất mạnh trong việc thiết kế các loại tàu vỏ thép nhưng khi dùng để thiết kế đường hình của tàu đánh cá

vỏ gỗ nước ta vẫn còn nhiều điểm hạn chế, cụ thể như sau :

1) Giá thành phần mềm quá cao, không chỉ vượt quá xa khả năng của các ngư dân

mà còn của các cơ quan Nhà nước hiện nay

2) Kỹ thuật vẽ phức tạp, không phù hợp với trình độ sử dụng của các ngư dân 3) Hầu hết các phần mềm đồ hoạ nói chung và phần mềm thiết kế tàu thủy nói riêng hiện nay đều vẽ đường hình tàu theo thuật toán vẽ đường B- Splines như đã biết hoặc dùng mặt cong toán học NURBS (Non Uniform Ration B-Spline Surfaces) Khi đó, phần mềm thực tế chỉ là công cụ để hỗ trợ cho việc vẽ đường hình tàu thủy hoặc theo đường B - Spline, hoặc dựng mặt NURBS để tạo ra bề mặt cong

vỏ tàu Một số phần mềm như Prolines lại dùng thư viện các tàu mẫu đã được vẽ sẵn và người sử dụng sẽ lấy hình dáng đường hình từ các tàu mẫu đã có trong thư viện tàu để chỉnh sửa lại cho đến khi đạt được các yêu cầu đã được đề ra trong nhiệm vụ thư Do đó việc sử dụng những phần mềm như thế thường không mang tính chủ động, do phải lệ thuộc khá nhiều vào thư viện các tàu mẫu đã nhập sẵn trong phần mềm, kỹ thuật vẽ và nhất là cũng không thật đơn giản, tốn nhiều công

Trang 15

sức và đòi hỏi người sử dụng phải có kinh nghiệm trong thiết kế và kỹ thuật vẽ trên máy tính

4) Các tính toán thường được xây dựng dựa theo Quy phạm nước ngoài nên trong nhiều trường hợp có thể không phù hợp với yêu cầu của Quy phạm Việt Nam 5) Công việc tính toán tính năng trên các phần mềm này đều được thực hiện qua các bước khá phức tạp và đòi hỏi người sử dụng phải có trình độ chuyên môn cao

Vì thế theo ý kiến chúng tôi, việc sử dụng những phần mềm nước ngoài để thiết kế đường hình và tính toán tính năng tàu cá ở nước ta nói chung và tại Ninh Thuận nói riêng còn gặp nhiều khó khăn, nhất là đối với những mẫu truyền thống đóng dựa theo kinh nghiệm dân gian của từng vùng và do đó cũng khó có thể đáp ứng được các yêu cầu đa dạng và phong phú của người sử dụng đối với tàu thiết kế

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

1.3.1 Mục tiêu đề tài

Mục tiêu đề tài là xây dựng thuật toán và viết chương trình tự động hóa việc vẽ đường hình và tính toán tính năng cho các mẫu tàu đánh cá vỏ gỗ theo mẫu truyền thống tỉnh Ninh Thuận đảm bảo các yêu cầu sau:

 Vẽ nhanh chóng và chính xác đường hình của tàu thiết kế theo các mẫu tàu đánh

cá truyền thống làm các nghề điển hình hiện nay ở Ninh Thuận cụ thể là tàu lưới vây, lưới kéo, tàu lưới rê, tàu pha xúc

 Xây dựng chính xác bảng tọa độ đường hình của mẫu tàu thiết kế phục vụ việc phóng dạng và đóng mới

 Tính toán các thông số tính nổi và vẽ các đồ thị cần thiết như: đồ thị Bonjean, Thủy tĩnh, Pantokaren, đồ thị ổn định

 Đảm bảo sử dụng dễ dàng và thuận tiện nhằm phục vụ các cơ sở đóng tàu địa phương

Trang 16

1.3.2 Phương pháp và nội dung nghiên cứu

Về lý thuyết, để giải quyết bài toán vẽ đường hình và tính toán tính năng với mục tiêu đặt ra trên đây chúng tôi lựa chọn giải pháp lập trình theo phương pháp đồng dạng và một

số phương pháp tính gần đúng như: phương pháp hình thang, phương pháp Krylop- Dargniers đã được trình bày trong các tài liệu chuyên ngành Với phương pháp nghiên cứu như thế, đề tài được giải quyết dựa trên cơ sở đo đạc thực tế để xây dựng đường hình của các mẫu tàu cá khảo sát, tính toán các tính năng tàu mẫu trên phần mềm Autohydro đóng vai trò cơ sở dữ liệu cho chương trình Với cách đặt vấn đề như thế, đề tài gồm các nội dung chính như sau :

 Phân tích, lựa chọn những mẫu tàu đánh cá điển hình làm các nghề phổ biến hiện nay ở tỉnh Ninh Thuận

 Khảo sát, đo đạc thực tế tọa độ đường hình của các mẫu tàu đánh cá đã được lựa chọn

 Xử lý các số liệu đo đạc và xây dựng chính xác đường hình của các mẫu tàu đánh cá khảo sát, cơ sở dữ liệu cần thiết của chương trình

 Nghiên cứu xây dựng thuật toán và ứng dụng ngôn ngữ lập trình AutoLISP để viết chương trình tự động vẽ đường hình và tính toán tính năng từ các thông số kích thước chính của tàu thiết kế trên cơ sở đường hình tàu khảo sát

Với cách đặt vấn đề như trên, đề tài gồm các chương chính như sau :

Chương 1: Đặt vấn đề Chương 2: Cơ sở lý thuyết Chương 3: Kết quả nghiên cứu Chương 4: Xây dựng cơ sở dữ liệu chương trình Chương 5: Thảo luận kết quả

Trang 17

1.3.3 Phạm vi nghiên cứu

Kết quả khảo sát thực tế các nghề khai thác thủy sản Ninh Thuận hiện nay cho thấy, mặc dù có khá nhiều nghề khác nhau nhưng các nghề phổ biến và đạt năng suất cao hiện nay ở tỉnh Ninh Thuận chủ yếu là những tàu làm các nghề lưới vây, lưới kéo, lưới rê và pha xúc Vì thế trong đề tài chỉ giới hạn trong vẽ đường hình và tính toán tính năng của các tàu đang làm các nghề này

Trang 18

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 VẼ ĐƯỜNG HÌNH THEO MẪU

Trong thực tế hiện nay có rất nhiều phương pháp khác nhau để thiết kế tuyến hình tàu nói chung và tàu đánh cá nói riêng Một trong những phương pháp vẽ đường hình tàu thiết kế được ứng dụng rộng rãi hiện nay đó chính là phương pháp đồng dạng hình học

(affine) dựa trên bảng tọa độ tàu mẫu Phương pháp vẽ đồng dạng khá đơn giản và đảm

bảo được tính trơn đều của tàu thiết kế nếu đường hình của tàu mẫu trơn đều, nhưng có nhược điểm là chỉ có thể làm thay đổi được các kích thước chính L, B, T trong khi vẫn giữ nguyên các hệ số hình dáng ,  như tàu mẫu Nói cách khác, phương pháp biến đổi đồng dạng chỉ cho phép vẽ đường hình tàu đảm bảo yêu cầu về các kích thước chính nhưng chưa đảm bảo được yêu cầu về các hệ số hình dáng Do đó phương pháp vẽ đường hình nói trên thường chỉ được phép sử dụng trong trường hợp tốc độ Vt và số Fr = Vt/ gLcủa tàu mẫu và tàu thiết kế chênh lệch nhau không nhiều lắm Trường hợp có sự thay đổi tốc độ tàu Vt và số Fr nhưng hệ số béo của tàu mẫu và tàu thiết kế không khác nhau nhiều, có thể lấy m = tk và buộc tất cả hệ số hình dáng khác không đổi, tuy nhiên do có

sự thay đổi tỷ số B/T hoặc H/T nên cần tính lại ổn định và dung tích của tàu Ưu điểm khác của phương pháp này là cho phép xác định các yếu tố chính của tàu thiết kế như lượng chiếm nước, vị trí tâm nổi, bán kính tâm nghiêng v v đơn giản và nhanh chóng theo các công thức xây dựng dựa trên cơ sở đồng dạng hình học của tàu mẫu và tàu thiết

kế

Xét trong trường hợp tổng quát, khi thay đổi tất cả các kích thước chính thì mối quan

hệ giữa các yếu tố của tàu thiết kế và tàu mẫu được xác định theo các công thức như sau:

- Các hệ số hình dáng , , , ,  không thay đổi

- Thể tích chiếm nước

Trang 19

Vtk =

m

tk)LBT(

)LBT(

)LB(

)BT(

3 tk tk

BL

BL

Ixo

m m

3 tk tk

LB

LB

Trang 20

có góc nghiêng ngang và nghiêng dọc Đồ thị như thế được gọi là đồ thị thủy tĩnh hay còn gọi là đồ thị thủy lực, (hình 2.1):

Hình 2 1: Đồ thị thủy tĩnh

Trong đó:

Xf (m) : Tọa độ trọng tâm mặt đường nước tại các mớn nước khác nhau

S(m2): Diện tích mặt đường nước tại các mớn nước khác nhau

V(m3): Đường cong thể tích của tàu tương ứng với các đường nước khác nhau

D(tấn): Thể hiện lượng chiếm nước của tàu tương ứng với các đường nước khác nhau Xc(m), Zc: Tọa độ tâm nổi tương ứng với các đường nước khác nhau

Cb, Cm, Cw: Các hệ số hình dáng của tàu

Có thể tóm tắt quá trình xây dựng đồ thị thủy tĩnh như sau:

 Tính các yếu tố thủy tĩnh hay các thông số tính nổi tại các mớn nước khác nhau

 Dựng hệ trục tọa độ XOY với trục Oy biểu diễn sự thay đổi của các mớn nước

Trang 21

Do bề mặt vỏ tàu thường chỉ được biểu diễn dưới dạng các đường cong hình dáng nên để tính được giá trị tích phân nói trên cần sử dụng các phương pháp gần đúng, việc tính hình thang cong chuyển sang việc tính hình thang thuần tuý bằng cách chia nhỏ thành các phần tử hữu hạn mà cụ thể các phương pháp này bao gồm: phương pháp hình thang, phương pháp Simpson , mỗi phương pháp tính mang một tính ưu việt khác nhau Phương pháp hình thang được sử dụng rộng rãi, độ chính xác tuỳ theo ý muốn tuỳ thuộc vào khối lượng tính toán Phương pháp Simpson cho kết quả chính xác hơn phương pháp hình thang tuy nhiên khối lượng tính toán lớn hơn

2.2.2 Đồ Thị Bonjean

Đường cong các yếu tố thủy tĩnh mặc dù cho phép xác định các thông số tính nổi của tàu nhưng chỉ trong trường hợp tàu nằm cân bằng không có góc nghiêng ngang và nghiêng dọc Do đó trong thực tế để xác định các thông số tính nổi của tàu trong trường hợp nghiêng dọc là điều không thực hiện được Trong trường hợp này, sử dụng đồ thị Bonjean hoặc còn gọi là đường cong diện tích các sườn là tập hợp các đường cong biểu diễn diện tích phần chìm của các sườn theo chiều chìm

Quá trình xây dựng đồ thị Bonjean được thực hiện lần lượt theo các bước sau:

 Tính lần lượt giá trị diện tích mặt cắt ngang ωi (i = 0 ÷ n ) và momen tĩnh

Mω của diện tích mặt cắt ngang này đối với trục Ox ứng với sự thay đổi của mớn nước

ω = T

0

dz y 2

T 0

dz z y 2 M

 Dựng hệ trục tọa độ OTL, trong đó trục tung OT biểu diễn mớn nước của tàu, trục hoành OL biểu diễn vị trí các mặt cắt ngang theo chiều dài ở các tỷ

lệ xích nhất định

Trang 22

Hình 2 2: Đồ thị Bonjean

Họ đường cong tích phân diện tích đường sườn sử dụng để tính thể tích chìm V và toạ

độ tâm nổi xC, zC của một đoạn hay toàn bộ phần ngập nước dưới một đường nước chúi

bất kỳ

Xét một đường nước chúi có mớn nước mũi Tm và mớn nước đuôi Td Khi đó V, xC,

zC được xác định như sau:

Với k: số khoảng chia theo cao độ z, n: số khoảng chia theo hoành độ x

Trong đó, để xác định giá trị diện tích mặt cắt ngang và momen tĩnh dựa theo phương

pháp hình thang, có công thức tính cụ thể sau:

- Công thức tính diện tích mặt cắt ngang:

- Momen tĩnh của thể tích V đối với mặt yOz:

)2

(

0

0 2

/

2 /

L

L

L dx

)2(

i

y y y T ydz

Trang 23

(với m = n/2)

Như vậy ứng với một đường nước chúi bất kỳ đặc trưng bởi Tm,Td dựa vào đồ thị Bonjean ta tìm được V, xC, zC, nhưng để tìm các giá trị đó ta phải tính toán với khối lượng lớn Để khắc phục nhược điểm trên Phiaxốp đã đưa ra một dạng đồ thị khác, đó là

1: Phương pháp Schulz – Fellow, còn gọi là phương pháp tích phân, sử dụng máy đo

diện tích khi xác định diện tích phần chìm của các sườn tính toán trên tàu, cho mỗi trạng thái nghiêng Theo cách này thể tích phần chìm của mỗi trạng thái nghiêng được tính bằng phép tích phân giới hạn từ 0 đến L của tàu, hàm tích phân chính là diện tích các đường sườn vừa được đo

Tọa độ tâm nổi được xác định cho nỗi trạng thái nghiêng, trong phương pháp này sử dụng phương pháp Tchebyshev để tính toán

2: Phương pháp Krylov – Dargniers

Phương pháp này được mệnh danh là phương pháp giải tích kết hợp với đồ họa Thực phần giải tích nêu ra ở trên nhằm ca ngợi công lao của nhà khoa học Krylop – Dargniers,

)(

2)'(

0 2

2 /

i i L

Vyz

m L

xdx M

Trang 24

phương pháp Krylop- Dargnies đơn giản và cho kết quả tương đối chính xác cho các tàu

có thể tích phần ngâm nước và phần phía trên đường nước tương đối bằng nhau Phương pháp này có trình tự tính toán như sau:

 Vẽ sườn Tchebyshev ( cả hai phía mạn) ;

 Dựng đường nước ban đầu ( φ = 00) WL0 ;

 Qua tâm S0 của đường nước ban đầu vẽ đường nước ban đầu vẽ đường nước phụ thứ nhất WL’1 dưới góc nghiêng ∆φ( lấy bằng 100 hoặc 150) như trên hình 2.3

Hình 2.3 : Phương pháp Krylop_ Dargnies

Tìm khoảng cách từ tâm đường nước phụ S’1 đến C0 : η1 theo công thức

ηi = 1

) (

2 2

2 2

i i

i i b a

b a

ai, bi được xác định như hình 2.4

Trang 25

 Đường nước phụ WL’2 vẽ qua điểm S1, đường nước phụ WL’3 sẽ vẽ qua S2 và cứ tiếp tục như vậy cho đến hết;

 Tính các giá trị r(φ) bằng phương pháp tích phân gần đúng

i i

b a

b

Trong đó a, b là hoành độ của các đường nước thể tích tương đương thực tế đo từ điểm

A chân đường vuông góc hạ từ điểm S0 xuống đường nước đó Mômen quán tính diện tích đường nước, bán kính tâm nghiêng tính theo công thức :

Trang 26

Ii =

) b a (

) b a ( n

L 3

1

2 i 2 i

2 i 2 i

 

Si =  aibin

L

r ( φ ) = I( )

V

 ; V lấy từ đường cong thuỷ lực

Với cách trình bày trên, để tính toán các thông số này cần thực hiện các bước sau:

Bước I: Chúng tôi tiến hành dựng đường sườn theo phương pháp của Tchebyshev

Đầu tiên xác định vị trí của sườn Tchebyshev trên bản vẽ đường hình dựa vào bảng sau:

Bảng 2 1: Xác định vị trí đường sườn Tchebyshev

Sau khi xác định được vị trí của các đường sườn trên trục hoành (L), tiếp theo đó xác định các giao điểm của từng đường sườn với đường cắt dọc, đường nước (tương tự như quá trình phóng dạng)

Bước II: Khi đã xác định đầy đủ tọa độ của từng sườn Tchebyshev, chúng tôi tiến hành

vẽ lại đường sườn trên mặt cắt ngang (hình 2.5) :

Trang 27

Hình 2 5: Đường sườn Tchebyshev

Bước III: Khi có các đường sườn Tchebyshev tiến hành tính toán theo phương pháp Krylop_ Dargnies

Dựng đường nước ban đầu WO1, tại góc nghiêng 0, qua tâm O kẻ đường nước phụ thứ nhất A1 dưới góc nghiêng δΦ bằng 10 như (hình 2.6):

Hình 2 6: Phương pháp xác định các hệ số a,b

Tại từng góc nghiêng δΦ ta xác định được các giá trị a,b như hình trên và các kết quả a,b sẽ được điền vào (bảng 2.2) để tính rθ và η

Trang 28

Bảng 2 2: Bảng tính Pantokaren cho DN 1 – tại góc nghiêng δΦ = 10 0

Tiếp theo ta xây dựng đường nước WL2 sao cho V = const, ở đây chúng ta hiệu chỉnh đường nước dựa vào giá trị η, cách dựng đường nước WL2 và hiệu chỉnh đường

nước dựa theo “η” chúng tôi đã nêu kỹ ở phần trên, như vậy tính lần lượt tới Φ =90 0

cho từng đường nước cho đến hết

2.2.4 Cơ Sở Ổn Định

a Định nghĩa

Tính ổn định là một đặc tính hàng hải của tàu, xác định khả năng tàu khôi phục vị trí cân bằng ban đầu khi mômen ngoại lực thôi tác dụng và khả năng tàu chống lại mômen ngoại lực

Trang 29

b Tâm nổi - Đường cong tâm nổi –Tâm nghiêng – Bán kính tâm nghiêng - Đường

cong tâm nghiêng

Vị trí đặt lực của lực nổi gọi là tâm nổi, ký hiệu là C, khi nghiêng hình dáng thân tàu

ngâm nước thay đổi, vị trí đặt lực nổi cũng thay đổi theo một đường cong ”ε” nhất định,

gọi là đường cong tâm nổi Mỗi điểm trên đương cong tâm nổi đều ứng với mớn nước

nghiêng ở một góc nhất định Tiếp tuyến với đường cong tâm nổi tại một điểm C bất kỳ,

đều song song đường nước tương ứng với tâm nổi đó Pháp tuyến của đường cong tâm

nổi tại một điểm C bất kỳ, đều vuông góc với đường nước tương ứng với điểm đó

Giả sử tàu nghiêng một góc ∆φ so với vị trí nghiêng ban đầu Tâm nổi ứng với góc φ

là Cφ, còn tâm nổi ứng với góc nghiêng φ + ∆φ là Cφ + ∆φ Hai pháp tuyến của đường

cong tâm nổi tại hai điểm Cφ và Cφ + ∆φ gặp nhau tại Mφ Nếu ∆φ 0, Mφ chính là tâm

tức thời của đường cong tâm nổi tại góc nghiêng Tâm đó được gọi là tâm nghiêng và

khoảng cách MφFφ gọi là bán kính tâm nghiêng ngang kí hiệu là r

Hình 2 7: Tâm nổi ứng với các góc nghiêng khác nhau

Theo hình vẽ ta có : MφFφ = r = C C   



 Mặt khác từ điều kiện cân bằng ta có : C C    = v S S1 2

V

Trang 30

y dx

 nên bán kính tâm nghiêng ngang : r = y

I V

Tương tự, ta có công thức của bán kính tâm nghiêng dọc: R = I x

V

Khi góc nghiêng ngang tăng dần, tâm nghiêng Mφ dịch chuyển theo một đường cong gọi

là đường cong tâm nghiêng Tính chất của đường cong tâm nghiêng phụ thuộc vào sự biến thiên của đường cong tâm nổi Toạ độ mỗi điểm trên đường cong tâm nghiêng liên quan tới toạ độ điểm ứng với nó trên đường cong tâm nổi theo các công thức sau:

Ycθ = yc0 – r sinφ

Zcθ = zc0 + r cosφ

c Mômen hồi phục Cánh tay đòn ổn định tĩnh

Dưới tác động của ngoại lực, tàu bị nghiêng khỏi vị trí một góc φ, do đó hình dáng phần thân tàu ngập nước cũng thay đổi, tâm nổi dịch chuyển từ điểm C đến điểm Cφ Cặp lực P và D bằng nhau về giá trị tuyệt đối, có phương song song và hướng tác dụng ngược chiều nhau, tạo thành mômen gọi là mômen hồi phục hay còn gọi là mômen ổn định tĩnh Công thức Mômen hồi phục như sau:

Mhp = P N G  sinφ Hay là: Mhp = P(z sinφ + y cosφ + zG sinφ)

Trang 31

Hình 2 8 Cách xác định cánh tay đòn ổn định

Trên hình vẽ ta thấy :

l = N G sinφ = GH= z sinφ + y cosφ - zG sinφ Trong đó: l được gọi là cánh tay đòn ổn định tĩnh

Biểu thức trên gồm hai thành phần:

+ Thành phần thứ nhất lF = zsinφ + ycosφ : cánh tay đòn ổn định hình dáng + Thành phần thứ hai lG = zG sinφ : cánh tay đòn ổn định trọng lượng

Chiều cao tâm nghiêng ổn định tổng quát : hφ = dl

d = MH

Đặc điểm của đồ thị này là :

 Giá trị cực đại của đường cong xác định góc nghiêng cức đại và cánh tay đòn cực đại của mômen nghiêng trong trường hợp nghiêng tĩnh

Trang 32

 Chiều cao tâm nghiêng tổng quát hφ chính là tang của góc nghiêng của tiếp tuyến với đường cong, vì tg α = dl

d

Hình 2 9: Xác định chiều cao tâm nghiêng trên đồ thị ổn định tĩnh

Do đó với mỗi tâm nghiêng φ, bằng đồ thị ta có thể xác định chiều cao tâm nghiêng

hφ = MH bằng cách tại điểm ứng với góc φ trên đường cong vẽ tiếp tuyến với đường cong Trên đường song song với trục φ kẻ từ điểm đó một đoạn bằng 5307 (tương ứng với 1 rad) Và kẻ vuông góc với trục φ Cạnh góc vuông đối với góc α chính là hφ =

MH

2.3 LỰA CHỌN NGÔN NGỮ LẬP TRÌNH

Trên thực hiện nay có rất nhiều ngôn ngữ lập trình hỗ trợ cho việc lập trình đồ họa trong các ngành kỹ thuật đặc biệt là ngành cơ khí, xây dựng như: ngôn ngữ Visual Basic, C++… Qua quá trình tìm hiểu, chúng tôi đã lựa chọn ngôn ngữ lập trình AutoLISP, ngôn ngữ này có nhưng đặc điểm sau:

 AutoLISP là ngôn ngữ lập trình bậc cao thích hợp với các ứng dụng đồ họa và

là ngôn ngữ lập trình thông dịch nghĩa là chạy đến đâu dịch đến đó và cho kết quả, được viết theo cú pháp và thủ tục rất chặt chẽ

Trang 33

 Ngôn ngữ này được bổ sung vào phiên bản AutoCAD 2000 nhằm tăng sự linh hoạt và giảm thiểu tối đa thời gian thiết kế để tăng thêm tính ưu việt cho phần mềm AutoCAD

 Ngôn ngữ lập trình AutoLISP cho phép khả năng liên kết dữ liệu với phần mềm AutoCAD, có thể thêm hoặc xóa đối tượng, thêm thông tin vào các bản vẽ hiện hành, lấy các mã DXF của từng đối tượng thông qua các lệnh có sẵn rồi từ đó điều khiển đối tượng theo những mục đích sử dụng khác nhau

 AutoLISP đã được ứng dụng rộng rãi và tạo ra được các phần mềm có chức năng hỗ trợ đắc lực cho người thiết kế khi vẽ các chi tiết phức tạp, nếu chỉ sử dụng các công cụ vẽ thông thường của AutoCAD sẽ mất nhiều thời gian và công sức Như vậy, nhờ có ngôn ngữ này mà công việc đã được đơn giản hóa

và đem lại năng suất cao

 AutoLISP tận dụng tối đa các lệnh có sẵn trong AutoCAD, lấy và thiết lập các biến hệ thống của AutoCAD

Để viết một chương trình AutoLISP chúng ta có thể sử dụng các chương trình

soạn thảo như: Notepad, Microsoft Word….nhưng việc tìm kiếm lỗi và nhận dạng

biến là không thể Vì vậy, AutoCAD cung cấp môi trường lập trình Visual LISP đã đem lại sự thuận tiện cho người lập trình Visual LISP là môi trường dùng soạn thảo

và viết ra các chương trình dựa trên ngôn ngữ AutoLISP Môi trường này cung cấp nhiều công cụ hỗ trợ cho việc viết và gỡ rối chương trình, cho phép người lập trình liên kết trực tiếp với AutoCAD để chạy thử chương trình, cung cấp chức năng kiểm tra lỗi toàn bộ chương trình hay một cụm mã lệnh, như vậy giảm thời gian tìm kiếm

lỗi Ngoài ra, còn hỗ trợ thêm một ngôn ngữ lập trình DCL (Dialog Control

Language), cho phép người lập trình soạn thảo và kiểm tra các mẫu hộp thoại (hình

2.10)

Trang 34

Hình 2 10: Giao diện của môi trường Visual LISP

2.3.1 Tìm Hiểu Ngôn Ngữ Autolisp

2.3.1.1 Biểu thức trong AutoLISP

Một biểu thức trong AutoLISP đơn giản chỉ gồm các phép tính số học thông thường và cấu trúc dữ liệu Tuy nhiên để AutoLISP thực hiện một biểu thức cần dùng các cấu trúc

sau :

- Cấu trúc dữ liệu cơ bản là danh sách (theo đúng tên gọi của nó list processor)

- Cấu trúc chứa các biểu thức toán học Là tập hợp các hàm toán học có nhiệm vụ

xử lý danh sách dữ liệu nhập vào

Quá trình xử lý của AutoLISP như sau khi nhận được dữ liệu là danh sách, AutoLISP

sẽ xử lý danh sách đó và đưa đến các biểu thức toán học để thực hiện một chức năng nào

đó do người lập trình đặt ra

2.3.1.2 Biến trong AutoLISP

Biến trong ngôn ngữ AutoLISP là đại diện cho các tham số, có thể cố định hoặc thay đổi trong một chương trình Biến có thể là số thực, số nguyên, chuỗi v.v… AutoLISP cung cấp hai lệnh Setq và Set để gán các giá trị cho biến Ví dụ, để gán cho biến A một

Trang 35

giá trị bằng 12, có thể thực hiện ngay dưới dòng lệnh Command của AutoCAD, gõ chuỗi lệnh sau:

Command : (Setq A 12)

Cần phải hiểu rõ sự khác nhau giữa giá trị và biến Biến đại diện cho giá trị, để AutoCAD không hiểu nhầm giữa giá trị và biến thì khi sử dụng biến cần phải thêm “!” vào trước tên biến Bắt đầu từ phiên bản AutoCAD 14 Tên biến có thể chứa bất kì ký tự nào, ngoại trừ các kí tự ( ) , ; “ ‘ và khoảng trắng

2.3.1.3 Cách viết chương trình của AutoLISP

 Viết trực tiếp

Để viết lệnh trực tiếp người lập trình đánh các đoạn mã lệnh ngay trên dòng

Command của AutoCAD Các đoạn mã lệnh này sẽ được thực thi và xuất ra kết quả

ngay tại dòng Command, những lệnh này không lưu trữ được

 Viết gián tiếp

Dùng chương trình soạn thảo dưới dạng mã ASCII bất kỳ hoặc dùng ngay Visual LISP để viết thành một chương trình đóng vai trò như một tập tin nguồn có phần mở rộng là *.lsp Tên của các tập tin dùng trong ngôn ngữ lập trình AutoLISP cũng tuân thủ theo đúng qui ước của hệ điều hành, tức là không có quá 8 ký tự và giữa các ký tự không có các khoảng trống

Để chương trình có thể tự động Upload phần mềm mỗi khi khởi động AutoCAD, phải copy hết tất cả các mã lệnh của chương trình vào trong file acad2007.lsp tại mục

Support của AutoCAD (tùy theo từng phiên bản CAD có thể thay đổi file acad2007, ở

đây là phiên bản CAD 2007) Quá trình này thuận tiện cho việc sử dụng lại chương

trình mỗi khi thoát AutoCAD, nhưng lại làm chậm quá trình khởi động phần mềm AutoCAD Chương trình có dung lượng càng lớn, tính toán phức tạp thì quá trình khởi động AutoCAD càng mất nhiều thời gian

Trang 36

2.3.1.4 Cách tạo các hàm, lệnh cho AutoCAD

 Cách tạo hàm tự tạo

Để nhận được hàm tự tạo, sử dụng hàm Defun (Define function) và khi AutoLISP

chạy gặp bất kỳ hàm nào có tên hàm đã được tạo, nó sẽ tự động tính và trả về kết quả của hàm

Cấu trúc tạo hàm tự tạo như sau:

(DEFUN [Tên Hàm] / [tham số gọi] [các biểu thức của hàm] )

 Cách tạo 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 Cách tạo các lệnh mới này cho AutoCAD cũng tương tự cách làm các hàm tự tạo đã trình bày, chỉ khác là có thêm “c:” vào trước tên hàm Cấu trúc tạo lệnh mới cho AutoCAD

(Defun C: [Tên Hàm] / [tham số gọi] [các biểu thức của hàm] ) 2.3.2 Các Hàm AutoLISP Thông Dụng

Như đã giới thiệu, đặc trưng của ngôn ngữ lập trình AutoLISP là: nhập số liệu → xử

lý số liệu → sử dụng các hàm toán học thực hiện một thuật toán nào đó → Xuất kết quả như yêu cầu AutoLISP cung cấp nhiều hàm với nhiều chức năng khác nhau nhưng trong

phần này chỉ trình bày các hàm thông dụng liên quan đến nội dung bài toán đặt ra trong

đề tài Cụ thể như sau :

2.3.2.1 Các hàm nhập số liệu

AutoLISP cung cấp nhiều hàm để người dùng có thể nhập nhiều kiểu số liệu khác

nhau như kiểu chuỗi, số thực, số nguyên, danh sách v.v Theo đó mỗi kiểu số liệu được nhập vào trong cơ sở dữ liệu của AutoCAD bằng những lệnh khác nhau như Getpoint,

Getreal, Getint v.v Vì AutoLISP trao đổi số liệu trực tiếp với AutoCAD nên có thể

nhập các số liệu trực tiếp từ môi trường AutoCAD và nhập gián tiếp vào cơ sở dữ liệu của AutoCAD thông qua môi trường Visual

Trang 37

 Nhập số liệu kiểu số nguyên (interget)

AutoLISP sử dụng hàm Getint để nhập số nguyên với cấu trúc:

Trong đó :

[Prompt] là thông báo cho người sử dụng biết nội dung cần nhập

Ví dụ, nhập kiểu số nguyên là tỷ số cá thể đực và cá thể cái bằng cấu trúc như sau : Command : (Getint “\nNhập tỷ số giữa cá thể đực và cá thể cái”) 

Khi đó, con trỏ chuột trên vùng đồ họa của AutoCAD và tại dòng nhắc lệnh Command của AutoCAD sẽ thông báo như hình 2.11

Hình 2 11: Nhập số liệu là kiểu số nguyên

 Nhập số liệu kiểu số thực (real)

Kiểu số thực là chứa tất cả các loại số tự nhiên, thập phân v.v… AutoLISP sử dụng

hàm Getreal để nhập số thực trực tiếp vào môi trường AutoCAD

Trong đó: [Prompt] là thông báo của dòng nhắc lệnh tới người sử dụng

Ví dụ: yêu cầu người dụng nhập kết quả của phép chia ¾

Command : (Getreal “\n3 chia 4 bang bao nhieu ”) 

thì dòng con trỏ chuột và dòng nhắc lệnh của AutoCAD thông báo:

Hình 2 12: Nhập số liệu kiểu số thực

Trang 38

 Nhập dữ liệu kiểu chuỗi (String)

AutoLISP sử dụng hàm Getstring nhập số liệu kiểu chuỗi, không vượt quá 132 ký tự

Command : (Getstring [Prompt])

Ví dụ, yêu cầu người dùng nhập câu trả lời bằng chữ: Đất nước Việt Nam hình chữ gì

(Getstring “\nĐất nước Việt Nam hình chữ gì ? ”) 

Thì dòng con trỏ chuột của AutoCAD thông báo :

Hình 2 13: Thông báo nhập số liệu kiểu chuỗi

Dòng nhắc lệnh Command thông báo :

Hình 2 14: Nhập số liệu kiểu chuỗi 2.3.2.2 Hàm kiểm soát dữ liệu nhập vào

AutoLISP cung cấp hàm Initget để kiểm soát số liệu nhập vào Hàm Initget cung cấp

danh sách giá trị nhập vào hợp lệ bằng cách gắn bit kiểm tra (bit code) và danh sách từ

khóa của hàm nhập dữ liệu như Getpoint, Getreal, Getangle, Getint …., ngoại trừ hàm Getstring, nhưng hàm Initget chỉ có tác dụng một lần đối với hàm Getxxx Nó bị mất tác

dụng khi ta sử dụng Getxxx ở các lần kế tiếp

Cấu trúc của hàm kiểm soát dữ liệu nhập :

Trong đó :

Trang 39

[BITS] - số nguyên, là tổng các bitcode ứng với chế độ kiểm soát mong muốn

[STRING] - chứa danh sách các từ khóa

Ví dụ về lệnh kiểm soát dữ liệu nhập :

Bảng 2.1: Các giá trị Bit Code cụ thể tương ứng với chế độ kiểm soát dữ liệu

8 Chấp nhận giá trị nhập vào nằm ngoài giới hạn bản vẽ ngay cả khi biến hệ thống

LIMCHECK = ON (lựa chọn ON của lệnh LIMITS)

128

Cho phép nhập kí tự không có trong danh sách từ khóa Các bit code khác sẽ được ưu tiên trước, nhưng nếu bit 1 và 128 được sử dụng cùng với nhau (129) thì giá trị Null nhập vào (nhấp ENTER sẽ thành chuỗi rỗng)

Hình 2 15: Hàm gán lấy giá trị của biến hệ thống AutoCAD

Các biến hệ thống của AutoCAD dùng điều khiển đối tượng và môi trường làm việc của AutoCAD Biến hệ thống của AutoCAD không giống với biến toàn cục hay biến cục

bộ của AutoLISP Không dùng hàm SETQ để gán biến mà dùng hàm SETVAR để gán

giá trị cho biến hệ thống Cụ thể như sau:

Trang 40

1 Hàm gán giá trị SETVAR

AutoLISP cung cấp hàm SETVAR để gán giá trị với cấu trúc hàm như sau:

Trong đó :

[VARNAME] - tên biến hệ thống của AutoCAD, được đặt trong dấu “”

[VALUE] - giá trị của biến hệ thống

Có rất nhiều biến hệ thống trong AutoCAD có thể tham khảo trong tài liệu chuyên sâu

về AutoCAD

2 Hàm lấy giá trị của biến hệ thống GETVAR

AutoLISP cung cấp hàm GETVAR để lấy biến hệ thống

Hàm Getvar dùng để lấy các biến hệ thống của AutoCAD làm dữ liệu cho phần mềm

Hàm này rất hữu ích khi sử dụng các dữ liệu của hệ thống làm cơ sở để tính toán Cấu trúc hàm:

(GETVAR [VARNAME] )

Hàm này sẽ trả về các giá trị của biến hệ thống, có thể là kiểu chuỗi, kiểu số thực

v v Nó được sử dụng kết hợp với hàm Setq (gắn biến dữ liệu)

Ví dụ, để lấy diện tích của hình tròn thì phải thông qua lệnh Area hoặc Massprop

Trong ví dụ này sẽ lấy diện tích của hình trong thông qua biến hệ thống Area, rồi gắn

biến bằng hàm Setq

Command: area(lệnh tính diện tích) Specify first corner point or [Object/Add/Subtract]: o Select objects:

Diện tích trả về khi dùng lệnh AREA nhưng giá trị chỉ hiện thông báo trên màn hình, không thể sử dụng trực tiếp nó Để lấy giá trị này phục vụ cho việc tính toán tiếp theo phải dùng hàm Setq kết hợp với Getvar

Command: AREA

Ngày đăng: 28/06/2014, 15:32

HÌNH ẢNH LIÊN QUAN

Hình 2. 5: Đường sườn Tchebyshev - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 2. 5: Đường sườn Tchebyshev (Trang 27)
Hình 3.1: Sơ đồ thuật toán chương trình vẽ đường hình - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3.1 Sơ đồ thuật toán chương trình vẽ đường hình (Trang 48)
Hình 3.3: Sơ đồ thuật toán vẽ đồ thị Bonjean - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3.3 Sơ đồ thuật toán vẽ đồ thị Bonjean (Trang 62)
Hình 3. 10: Báo lỗi khi không phù hợp với tỷ lệ kích thước - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 10: Báo lỗi khi không phù hợp với tỷ lệ kích thước (Trang 98)
Hình 3. 15: Hộp thoại xuất AutoCAD - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 15: Hộp thoại xuất AutoCAD (Trang 101)
Hình 3. 20: Chương trình đang thực hiện vẽ đồ thị Bonjean - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 20: Chương trình đang thực hiện vẽ đồ thị Bonjean (Trang 105)
Hình 3. 21: Bản vẽ đồ thị Bonjean do phần mềm xuất ra - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 21: Bản vẽ đồ thị Bonjean do phần mềm xuất ra (Trang 106)
Hình 3. 23: Giao diện phần mềm vẽ đồ thị thủy tĩnh - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 23: Giao diện phần mềm vẽ đồ thị thủy tĩnh (Trang 107)
Hình 3. 28: Hộp thoại xuất file Notepad - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 28: Hộp thoại xuất file Notepad (Trang 110)
Hình 3. 34: Kết quả vẽ đồ thị Pantokaren - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 34: Kết quả vẽ đồ thị Pantokaren (Trang 113)
Hình 3. 36: Phần mềm xuất bản vẽ với bảng kết quả kèm theo - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 36: Phần mềm xuất bản vẽ với bảng kết quả kèm theo (Trang 114)
Hình 3. 48: Thông báo của phần mềm khi nhập L(hd) sai định dạng file - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 3. 48: Thông báo của phần mềm khi nhập L(hd) sai định dạng file (Trang 122)
Hình 4. 7: Xác định các giá trị a, b - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 4. 7: Xác định các giá trị a, b (Trang 140)
Hình 2: Cân bằng đường nước tại góc nghiêng khác nhau để V = const - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 2 Cân bằng đường nước tại góc nghiêng khác nhau để V = const (Trang 191)
Hình 10: Đồ thị Pantokaren được tính bằng phần mềm Autohydro - viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh ninh thuận
Hình 10 Đồ thị Pantokaren được tính bằng phần mềm Autohydro (Trang 302)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w