Ngơn ngữ lập trình AutoLISP:

Một phần của tài liệu Viết chương trình vẽ đường hình tàu du lịch vỏ composite hoạt động ở vùng vịnh Nha Trang (Trang 38)

2.5.1 Đặc điểm ngữ lập trình AutoLISP:

AutoLISP, tập con của ngơn ngữ LISP, là ngơn ngữ lập trình bậc cao thích hợp với các ứng dụng đồ họa. AutoLISP là ngơn ngữ lập trình thơng dịch, đƣợc viết theo cú pháp và thủ tục chặt chẽ nhƣ ngơn ngữ LISP .Tuy nhiên, nĩ đƣợc bổ sung thêm các hàm để phù hợp với phần mềm AutoCAD.

Khi AutoCAD nhận các AutoLISP code thì chúng chuyển code này đến bộ biên dịch của AutoLISP, các dịng text tƣơng ứng với các lệnh của AutoCAD thì chúng sẽ đánh giá và thi hành các lệnh nhƣ mong muốn.

Cấu trúc dữ liệu cơ bản của AutoLISP là danh sách (list). Danh sách là tập hợp các phần tử chứa trong các dấu ngoặc đơn. Các phần tử trong danh sách phân cách nhau bởi khoảng trắng. Cĩ hai loại danh sách là biểu thức (expression), danh sách dữ liệu (data list)

Để viết một đoạn AutoLISP chúng ta cĩ thể sử dụng các chƣơng trình soạn thảo nhƣ: Notepad, Mocrosoft Word,.. nhƣng việc tiềm kiếm lỗi và nhận dạng biến rất khĩ khăn. Vì vậy để khắc phục điều đĩ AutoCAD cung cấp mơi trƣờng lập trình Visual LISP (hình 2.19), mơi trƣờng này giúp viết và gỡ rối chƣơng trình AutoLISP cũng nhƣ ngơn ngữ lập trình mẫu hộp thoại DCL (dialog control language), cho phép liên kết trực tiếp với AutoCAD để chạy thử chƣơng trình.

Hình 2.19 Giao diện Visual LISP

2.5.2 Cách viết chƣơng trình AutoLISP:

Viết trực tiếp: Nhập các đoạn mã lệnh ngay dịng Command của AutoCAD.

Các đoạn mã sẽ đƣợc thực và xuất ra kết quả ngay tại dịng Command, nhƣng lại khơng lƣu trữ đƣợc (hình 2.20)

Hình 2.20 Nhập lệnh vào dịng command trong AutoCAD

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 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. Để chƣơng trình tự động cập nhật 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 file acad2007.lsp tại mục support của AutoCAD (tùy từng phiên bản CAD cĩ thể thay đổi File acad 2007, ở đây là phiên bản 2007).

2.5.3 Các hàm và lệnh cho AutoCAD:

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])

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])

2.5.4 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 chƣơng trình thiết kế đƣờng hình. 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:

2.5.4.1 Danh sách:

a. Hàmtạo danh sách: Giúp đơn giản việc quản lý và truy cập dữ liệu

(List expression ..)

b.Hàm xử lý danh sách cơ bản: Sau khi tập hợp nhiều dữ liệu vào trong

một danh sách, khi cần thiết ta cso thể truy cập đến từng phần tử trong danh sách.

(Length LIST) : Cho phép trả về số các phần tử cĩ trong danh sách

(Car LIST) : Trích ra phần tử đầu tiên của danh sách

(Cons NEW-FIRST- ELEMENT LIST) : Bổ sung tham số thứ nhất vào vị trí đầu tiên trong danh sách.

(Reverse LIST) :trả về danh sách theo thứ tự ngƣợc lại

(Nth N LIST) : cho phép lấy ra vị trí thứ N trong danh sách LIST

c.Hàm nhập dữ liệu :

(Getint [Prompt]) : nhập số nguyên

Trong đĩ : [Prompt] là thơng báo cho ngƣời dùng nội dung cần nhập

Hình 2.21 Nhập dữ liệu kiểu số nguyên

Hình 2.22 Nhập dữ liệu kiểu số thực

(Getstring [Prompt]) : Nhập kiêu chuỗi, khơng vƣợt quá 132 ký tự

Hình 2.22 Nhập dữ liệu kiêu chuỗi

d.Hàm kiểm sốt dữ liệu:

(Initget [BITS] [STRING]) : Cung cấp các danh sách nhập các giá trị hợp lệ

tƣơng ứng với các lựa chọn.

e.Hàm gán giá trị

(Setvar [VARNAME] [VALUE]) : Gán giá trị với cấu trúc hàm

Trong đĩ: [VARNAME] : tên biến hệ thống của AutoCAD [VALUE]: Giá trị của biến hệ thống

Hàm SETQ: Gán giá trị cho các biến và trả về kết quả là giá trị này. Các biến cĩ thể chứa bất kỳ kiểu dữ liệu nào: số nguyên, số thực, chuỗi, danh sách, hoặc các kiểu khác.

(Setq SYMBOL1 VALUE1 [SYMBOL1 VALUE2] ..)

f.Hàm lấy giá trị các biến hệ thống:

(GETVAR [VARNAME] ): Hàm này trả về giá trị các biến hệ thống, nĩ

đƣợc sử dụng với hàm (setq (gắn biến dữ liệu))

g.Hàm hiện thơng báo trên màn hình:

Hiển thị thơng báo lên màn hình những thơng tin, khơng cung cấp biến dữ liệu

Hình 2.23 Thơng báo hiển thị trên màn hình AutoCAD

h.Cáchàm kiểm tra dữ liệu

Hàm ATOM: Đƣợc dùng để kiểm tra các dữ liệu cĩ phải là số nguyên tố hay khơng. Mọi dữ liệu khơng phải là kiểu danh sách khơng phải à số nguyên tố.

(Atom Item)

Hàm LISP: Kiểm tra liệu cĩ phải là kiểu danh sách hay khơng (Lisp Item)

Hàm NUMBERP: Kiểm tra dữ liệu cĩ phải kiểu số hay khơng.

(Numberp Item)

Hàm MINUSP: Kiểm tra dữ liệu cĩ phải là số âm hay khơng.

(Minusp Item)

Hàm ZEROP: Kiểm tra số liệu cĩ phải là số khơng hay khơng.

(Zerop Item)

Hàm BOUNDP: Sẽ trả về T nếu tham số là nguyên tố và nĩ đƣợc gắn với một giá trị . ngƣợc lại sẽ trả về nil.

(Boundp Atom)

Hàm NULL: Kiểm tra một biến hoặc danh sách cĩ rỗng hay khơng. (Null Item)

i.Hàm chuyển đổi dữ liệu và xử lý kiểu chuỗi:

Cần thiết phải chuyển đổi kiểu dữ liệu và xử lý chuỗi bơi lẽ, khi ngƣời dùng nhập một giá trị thì máy tính sẽ hiểu giá trị nhập vào đĩ là kiểu chuỗi (string), do đĩ nếu muốn giá trị này phục vụ việc tính tốn thì cần phải chuyển đổi chúng về dạng số nguyên hay số thực,..AutoLISP cung cấp các hàm chuyển đổi kiểu chuỗi thành số thực nhƣ sau:

Hàm ATOF : chuyển chuỗi thành một số thực

(Atof [string])

ví dụ: (atof “12”)  trả về : 12,00

Hàm DISTOF: chuyển một kiểu chuỗi thành kiểu số thực

(Distof [srting] [Mode])

Với Mode là tham số dùng để xác định kiếu đơn vị đo chiều dài mà tham số String cần phải tuân theo. Nếu khơng cĩ tham số mode, hàm Distof sử dụng giá trị chứa trong biến hệ thống LUNITS.

Bảng 2.1 Giá trị biến hệ thống LUNITS của AutoCAD

Mode Format

1 Scientific

2 Decimal

3 Engineering

4 Architectủal

5 Arbitrary fractional units

Hàm ATOL : Chuyển đổi một chuỗi thành một số nguyên (Atoi [String])

Hàm RTOS : Chuyển số thực thành kiểu chuỗi. (RTOS Number [Mode][Precision])

Với các tham số Mode và Precision cĩ ý nghĩa tƣơng tự các biến hệ thống LUNITS (đơn vị đo chiều dài) và LUPREC (số chữ số thập phân). Hàm Rtof chuyển số Number sang kiểu đơn vị đo thích hợp sau đĩ chuyển thành chuỗi.

Hàm STRCASE: Biến đổi các kí tự trong chuỗi string thành các chữ hoa hoặc chữ thƣờng.

(Strcase string [WHICH])

Nếu khơng cĩ tham số WHICH hoặc cĩ nhƣng bằng nil, hàm sẽ trả về chuỗi chứa trong tham số string với tất cả các ký tự đƣợc chuyển sang chữ hoa. Ngƣợc lại, nếu tham số WHICH khác nil, tất cả các ký tự đƣợc chuyển sang dạng chữ thƣờng.

Hàm STRCAT: dùng nối nhiều chuỗi với nhau thành một chuỗi duy nhất

(Strcat STRING1 [STRING2]…)

Hàm STRLEN: Đo chiều dài chuỗi và nếu cĩ nhiều chuỗi thì hàm sẽ trả về

tổng các chuỗi.

(STRLEN [STRING]…)

k.Hàm biểu thức điều kiện, so sánh, logic:

Biểu thức điều kiện chứa các điều kiện kiểm tra quan hệ giữa hai phần tử. Biểu thức trả về giá trị T hoặc giá trị khác rỗng (tƣơng ứng với “True”) nếu điều kiện đƣợc thỏa mản, hoặc trả về giá trị nil (tƣơng ứng với “False”) nếu điều kiện khơng đƣợc tỏa mản.

(IF [Biểu thức điều kiện] [Lệnh thực hiện])

Hàm PROGN:Nhĩm nhiều biểu thức thành một biểu thức duy nhất để sử dụng trong hàm If bằng hàm Progn

(Progn EXPRESSION ..)

Các hàm so sánh: Để thực hiện một biểu thức điều kiện. Bao gồm: =; <>; EQUAL; EQ; =<

Hàm Logic:

Để phối hợp các biểu thức điều kiện thành một (dùng cho hàm if chẳng hạn) ta cĩ thể dùng các hàm logic. Gồm cĩ: AND, OR, NOT.

Hàm AND: Định các giá trị tham số từ trái sang phải cho đến khi gặp tham

số bằng nil đầu tiên thì dừng và trả về kết quả nill. Nếu tất cả các tham số của nĩ cĩ giá trị khác nil, hàm AND trả về T (True).

(And EXPRESSION ..)

Hàm OR: Kiểm tra từ bên trái sang bên phải nếu gặp phần tử đầu tiên khác

nill thì dừng lại và trả về kết quả T (True), cịn kết quả tồn bộ là nill thì sẽ trả về là nil (OR EXPRESSION..)

Hàm NOT: Trả về T (True) nếu tham số của nĩ là giá trị nill. Ngƣợc lại trả

về nill. Nĩ cĩ thể đƣợc dùng để đổi ngƣợc kết quả của các hàm And và Or. (Not ITEM)

l. Hàm vịng lặp:

Vịng lặp chƣơng trình cho phép một hoặc nhiều biểu thức thì đƣợc thi hành nhiều lần. Vịng lặp đƣợc thực hiện theo một số lần nhất định hoặc đƣợc thực hiện cho đến khi điều kiện lặp khơng cịn thỏa mản nữa.

Hàm REPEAT: Tạo ra vịng lặp với số lần cho trƣớc

(Repeat [NUMBER] [EXPR ....])

Hàm WHILE: Tạo ra vịng lặp cĩ điều kiện. Vịng lặp này sẽ kết thúc nếu điều kiện đầu vào khơng thỏa mản.

CHƢƠNG 3

KẾT QUẢ NGHIÊN CỨU

3.1. SƠ ĐỒ THUẬT TỐN VẼ ĐƢỜNG HÌNH TÀU CAO TỐC 3.1.1 Cơ sở thành lập sơ đồ thuật tốn: 3.1.1 Cơ sở thành lập sơ đồ thuật tốn:

Sơ đồ thuật tốn chƣơng trình đƣợc xây dựng trên cơ sở của phƣơng pháp thiết kế đồng dạng hình học (affin) dựa theo đƣờng hình các tàu mẫu. Cụ thể nhƣ sau:

 Xây dựng chính xác đƣờng hình các tàu mẫu

 Vẽ lại mẫu dạng khung dây 3D để kiểm tra tính phù hợp giữa 3 hình chiếu làm cơ sở đƣờng hình vẽ đƣờng hình tàu thiết kế.

 Tính các hệ số đồng dạng tỷ lệ kích thƣớc

 Từ các kích thƣớc tàu mẫu và tàu thiết kế cần vẽ, tiến hành tính các hệ số đồng dạng theo tỷ lệ kích thƣớc nhƣ sau: tk L m L k Ltk B m B k Btk T T k T

Trong đĩ: kL, kB, kT - Hệ số đồng dạng theo chiều dài, chiều rộng, chiều cao. Ltk, Btk, Ttk- Chiều dài , chiều rộng và mớn nƣớc tàu thiết kế. Lm, Bm, Tm -Chiều dài, chiều rộng và mớn nƣớc của tàu mẫu.

3.1.2 Sơ đồ thuật tốn Khơng thỏa mản Khơng thỏa mản

Hình 3.1 Sơ đồ thuật tốn chƣơng trình vẽ dƣờng hình

3.2 GIẢI THUẬT CHƢƠNG TRÌNH VẼ ĐƢỜNG HÌNH TÀU CAO TỐC: 3.2.1Giải thuật thơng số đầu vào: 3.2.1Giải thuật thơng số đầu vào:

Về nguyên tắc, các kích thƣớc của tàu khi nhập vào chƣơng trình phải là số thực dƣơng, do đĩ cần kiểm tra để tránh các trƣờng hợp kích thƣớc nhập vào là

BẮT ĐẦU

CHỌN LOẠI TÀU THIẾT KẾ:

-Loai tau deep Veep(3 cap huong dong) -Tau Hai Than

- Tau day bang(1 cap huong dong) -Tau deep Veep(1 cap huong dong) -Tau deep Veep(3 cap huong dong) -Tau deep Veep(5 cap huong dong)

Nhập số liệu đầu vào: -Kích thƣớc tàu thiết kế Lmax,Bmax,Htk,T -Phạm vi thay đổi kích thƣớc: Kiểm tra các tỷ số kích thƣớc Tính các hệ số kích thƣớc: Tính bảng tọa tàu thiết kế:

Chọn bản vẽ cần xuất: -Bản vẽ 2D

-Bản vẽ 3D

số 0, số âm, kiểu chuỗi,..Dƣới đây là thuật tốn kiểm tra thơng số đầu vào và hạn chế lại khả năng nhập của ngƣời dùng:

Thuật tốn kiểm tra nhập kích thƣớc B

(defun KTB (val why key / L)

;val giá trị chuyển về,why kiểu trả về khi ngƣời dùng rời ơ nhập bằng chuột hay bằng enter

(setq L (atof val))

;đổi về kiểu số thực

(if (= 1 why)

;; (1 ở đây giá trị trả về của ngƣời dùng khi rời khỏi ơ nhập kích thƣớc ở đây kiểm tra khi ngƣời dùng rời khỏi ơ nhập bằng enter)

Thuật tốn kiểm tra số liệu đầu vào là số nguyên hay số thực

(progn

(if (not (or (= (type (read val)) 'REAL) (= (type (read val)) 'INT)))

(prong

(alert "B phai la mot so thuc")

(mode_tile key 2) ;; nếu khơng phải thì trả về vị trí ơ nhập cũ và và bơi đen tồn bộ

(mode_tile key 3));;hết hàm progn

Thuật tốn nếu là số 0 thì buộc nhập lại:

(progn (if (= 0 L) (progn

(alert "0 khong phai la so can nhap") (mode_tile key 2)

(mode_tile key 3) )

(mode_tile "Htk" 2)))) ;;hết hàm if

Thuật tốn nếu là số âm thì buộc nhập lại

(progn

(alert "Khong Duoc Nhap So Am") (mode_tile key 2)

(mode_tile key 3)

);;hết hàm progn );;hết hàm if

);;hết hàm progn

Thuật tốn đƣa về vị trí cũ và nhập lại khi ngƣời dùng nhập số âm

(progn

(if (not (or (= (type (read val)) 'REAL) (= (type (read val)) 'INT))) (progn

(alert "B phai la mot so thuc") );;hết hàm progn (progn

(if (= 0 L) (progn

(alert "0 khong phai la so can nhap") (mode_tile key 2) (mode_tile key 3) ) ) );;hết hàm progn );;hết hàm if (if (Minusp L) (progn

(alert "Khong Duoc Nhap So Am") (mode_tile key 2)

(mode_tile key 3) );;hết hàm prong );;hết hàm if

);;hết hàm if

);;hết hàm kiểm tra chiều rộng tàu do ngƣời dùng nhập vào.

3.2.2 Xây dựng cơ sở dữ liệu, vẽ dƣờng hình 2D, 3D

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

Đƣờng hình các mẫu tàu cao tốc vỏ Composite cĩ những đƣờng cong và độ gãy khúc đột ngột vì vậy việc vẽ đƣờng hình tàu thiết kế từ bảng tọa độ dƣờng hình tàu mẫu thƣờng gặp nhiều khĩ khăn và độ chính xác khơng cao so với tuyến hình tàu mẫu. Vấn đề này đƣợc giải quyết nhƣ sau:

Xây dựng thuật tốn tự động ghi lại tọa độ x y các điểm. nhằm tăng số lƣợng điểm cần vẽ trên đƣờng hình tàu mẫu mà bảng tọa độ khơng cung cấp đầy đủ.Sử dụng các điểm này làm cơ sở dữ liệu chƣơng trinh. Vì thế biên dạng đƣờng hình đƣợc mơ tả chi tiết hơn, đảm bảo độ chính xác và cong trơn .

Thuật tốn lấy tọa độ 2D nhƣ sau: (defun c:l2d ()

(setq tenk (getstring "Bat dau ")) (setq rong t)

(setq tdx (list) tdy (list)) (while rong

(progn

(setq p1 (getpoint "\nChon mot diem:")) (if p1

(progn

(setq tdx (append (list (rtos (car p1) 2 2)) tdx )) (setq tdy (append (list (rtos (cadr p1) 2 2)) tdy )) (setq rong t))

(setq rong nil)))) (setq tdx (reverse tdx) tdy (reverse tdy))

(princ tenk) (princ "\n") (princ "Toa do X") (princ "\n") (princ tdx) (princ "\n")

(princ "Toa do Y") (princ "\n")

(princ tdy) (princ "\n")

(alert "Chuong trinh duoc viet boi - Ho Tong Binh ")) Đây là ví dụ tọa độ biên dạng sƣờn do thuật tốn trên ghi lại:

Tọa độ x (4500.00 4559.67 4572.76 4585.31 4601.27 4608.94 4616.40 4623.67 4630.76 4637.71 4651.20 4664.17 4711.90 4754.83 4773.09 4815.16 4838.69 4870.88 4946.85 5156.49 5244.49) Tọa độ y (299.46 322.75 331.81 341.70 355.97 363.48 371.15 378.99 386.99 395.13 411.80 428.87 499.86 573.65 612.60 734.15 816.40 941.02 1275.49 2369.38 2875.86) 3.2.2.2.Thuật tốn vẽ đường hình 2D,3D:

Sử dụng thuật tốn tự động ghi lại tọa độ (x,y) ở trên làm cơ sở dữ liệu. Tên hàm thực hiện: l2d

Trình tự các bƣớc vẽ đƣờng hình hình chiếu bằng của tàu đáy bằng 16,8 mét. Các hình chiếu đứng và hình chiếu cạnh thực hiện các hàm và lệnh tƣơng tự .

a.Thuật tốn nhập thơng số của tàu:

(setq Ltk (* 1000 Ltk) Btk (* 1000 Btk)

Htk (* 1000 Htk))

(setq Lm 16800);; gán chiều dài tàu mẫu (setq Bm 4700);; gán chiều rộng tàu mẫu (setq Hm 1700);; gán chiều cao đến boong tàu (setq CDI 600);; gán khoảng cách cắt dọc 1 (setq CLI 1124);; gán khoảng cách sƣờn 1 (setq CLII 562);; gán khoảng cách sƣờn 2

(setq CBI 2400);; gán chiều rộng max của ơ lƣới hình chiếu bằng (setq CHI 2143);; gán chiều cao max ơ lƣới ở hình chiếu đứng (setq CDN 300);; gán khoảng cách các đƣờng nƣớc

(setq dx (/ Ltk Lm) dy (/ Btk Bm)

dz (/ Htk Hm));; tính tỷ số đồng dạng và gán biến

b.Thuật tốn xây dựng ơ lƣới các hình chiếu cắt dọc:

Việc xây dựng ơ lƣới chỉ áp dụng cho bản vẽ 2D Thuật tốn tự động vẽ ơ lƣới cắt dọc:

(setq P1 (LIST (* -8933.25 dx) 0) P2 (LIST (* 8933.25 dx) 0))

(command "line" p1 p2 "");; hết lệnh vẽ dọc tâm (setq k 4

i 1);; gán biến đếm (while (<= i k)

(setq P1 (LIST (* -8933.25 dx) (* (* i CDI) dy)) P2 (LIST (* 8656.87 dx) (* (* i CDI) dy))) (command "line" p1 p2 "")

(setq i (+ i 1))

Hình 3.1 Kết quả tự động vẽ ơ lƣới cắt dọc 2D

c.Thuật tốn xây dựng ơ lƣới các hình chiếu đƣờng sƣờn:

(setq k 2

i 0)

(while (<= i k)

(setq p1 (list (* i dx CLI) 0)

p2 (list (* i dx CLI) (* CBI dz))) (command "line" p1 p2 "") (setq i (+ i 1)) );; het while (setq k 10 i 0 ) (while (<= i k)

(setq p3 (list (+ (car p1) (* i dx CLII)) 0)

p4 (list (+ (car p2) (* i dx CLII)) (* CBI dz))) (command "line" p3 p4 "") (setq i (+ i 1)) );; het while ;; vẽ ngƣợc lại (setq k 7 i 1) (while (<= i k)

(setq p1 (list (- 0 (* i dx CLI)) 0)

p2 (list (- 0 (* i dx CLI)) (* CBI dz))) (0;0) (0;2400) (-8933;0) (8667;2400) CD I CBI

(command "line" p1 p2 "") (setq i (+ i 1))

) ; het while

Hình 3.2 Kết quả vẽ khung sƣờn 2D

Cấu trúc hàm và lệnh tƣơng tự để vẽ ơ lƣới của tàu thiết kế ở các hình chiếu cạnh và hình chiếu đứng. Nhƣng cĩ thêm hàm di chuyển gĩc tọa độ để vẽ hình chiếu tiếp theo.

Thuật tốn di chuyển gĩc tọa độ:Ở đây di chuyển gĩc tọa độ lên hình

chiếu đứng của tàu đáy bằng 16,8 mét

(setq p1 (list 0 (+ (/ Btk 2) (/ Btk 3)) 0)) (command "UCS" "N" p1 "")

d.Thuật tốn xây dựng đƣờng cong đƣờng nƣớc : Thuật tốn vẽ đƣờng nƣớc 1 dạng 2D:

Thiết lập các biến danh sách rỗng dựa trên các lệnh của Autolisp (setq dsm (list) dim (list))

Lập các biến danh sách tọa độ các điểm đƣờng nƣớc của tàu mẫu.

(setq tdx (list -4714.84 -4714.84 -4714.84 -4708.54 -4702.23 -4697.16 - 4692.08 -4687.96…… 6488.67 6576.33 6576.33)

tdy (list 0.00 96.82 193.63 261.42 329.20 382.50 435.80 477.44 …… 82.74 64.35 0.00)

Đếm số điểm cĩ trong danh sách tọa độ tàu mẫu và gán biến đếm (setq k (length tdy) i 0)

CDII (-8933;0) (8667;2400) (0;0) (0;2400) CDI

Nhân tọa độ tàu mẫu trong danh sách với các hệ số dx,dy tƣơng ứng và sau đĩ trả về danh sách tọa độ các điểm đƣờng hình tàu thiết kế.Gọi lệnh Spline thơng

Một phần của tài liệu Viết chương trình vẽ đường hình tàu du lịch vỏ composite hoạt động ở vùng vịnh Nha Trang (Trang 38)

Tải bản đầy đủ (PDF)

(90 trang)