Trang chủ

Thứ Ba, 25 tháng 1, 2011

Sắp chấm dứt đợt rét đậm, rét hại

(Dân trí) - “Khoảng 28 Tết Nguyên đán, vùng Đồng bằng Bắc bộ bắt đầu hửng nắng, chấm dứt đợt rét hại kéo dài kỷ lục. Tuy nhiên, vùng núi thì vẫn tiếp tục chuỗi rét đậm”.
Trao đổi với Dân trí, ông Lê Thanh Hải, Phó Giám đốc Trung tâm Dự báo khí tượng thủy văn TƯ cho biết thông tin trên.

Xin ông cho biết cụ thể về diễn biến thời tiết từ nay đến dịp Tết Nguyên đán?

Đợt rét đậm kéo dài từ 3/1 đến nay ở các tỉnh miền Bắc và Trung Bộ đã có dấu hiệu kết thúc. Tuy nhiên, vào khoảng 28/1 vẫn còn có một đợt không khí lạnh tăng cường mạnh tràn về. Chúng tôi dự đoán đây sẽ là đợt không khí lạnh cuối cùng ảnh hưởng đến miền Bắc, kết thúc chuỗi rét đậm, rét hại liên tục trong 28 ngày qua.

Như vậy, từ nay đến hết 31/1 (tức ngày 28 Tết Tân Mão) ở các tỉnh miền Bắc vẫn còn nhiều ngày giá rét. Nền nhiệt vùng núi có nơi vẫn dưới 7 độ C; Hà Nội duy trì 9 - 14 độ. Sau 28 Tết, nền nhiệt vùng Đồng bằng Bắc Bộ sẽ tăng đáng kể, ở mức 17 - 20 độ, ban ngày có nắng ấm, đêm rét. Tuy nhiên vùng núi thì vẫn ở mức thấp, khoảng 7 - 10 độ.


Người Hà Nội phải trải qua chuỗi ngày rét hại kỷ lục. (Ảnh: TT)

Trong và sau đợt nghỉ Tết, dự báo có còn xảy ra những đợt rét như hiện nay không thưa ông?

Chúng tôi chưa thấy có dấu hiệu của những đợt rét đậm tiếp theo. Nhiều khả năng trong và sau dịp Tết, thời tiết bắt đầu ấm dần và chỉ còn rét về đêm.

So với đợt rét kỷ lục kéo dài 38 ngày năm 2008, đợt rét năm nay có khác biệt gì không thưa ông?

Có, nếu như đợt rét năm 2008 có số ngày rét đậm (từ 13 độ trở lên) nhiều hơn thì đợt rét năm nay lại diễn ra rất nhiều ngày rét hại (dưới 13 độ) ở cả vùng núi và đồng bằng. Rét hại đã ảnh hưởng lớn đến sức khỏe của con người. Đàn gia súc, gia cầm của nhiều hộ dân cũng đã bị chết do kiệt sức và thiếu thức ăn.

Trạng thái băng giá và sương muối kéo dài liên tục trong những ngày qua tại các vùng núi khiến cây cối không thể sinh trưởng và dẫn đến hiện tượng cháy lá.

Xin cảm ơn ông!.

Thứ Bảy, 22 tháng 1, 2011

Ví dụ

I.Chuẩn bị bình đồ:
- Scan bình đồ vào máy tính (Trước khi scan kẻ 2 đường thẳng vuông góc với nhau, mỗi đường thẳng dài 2cm_để sau này xác định tỷ lệ bình đồ cho chính xác)
- Có thể scan bằng tay (bằng các đường polyline trong Cad), hoặc sử dụng phần mềm (Scan ID cad; CADMAP...)
Chú ý:Nếu scan bằng tay thì trước khi tô bạn cần tạo layer cho các đường đồng mức,khi tô phải tô bằng các đường Pline.Nếu tô phân đoạn càng nhỏ của Pline thì sự nội suy của Nova càng chính xác.

II.Trình tự thiết kế:
Bước 1: Cài đặt các thông số ban đầu (lệnh NS)
-
Làm tròn về hai chữ số thập phân
-
Thay đôi chữ viết bằng lệnh UN

Bước 2:khai báo thay đổi tuyến thiết kế (Lệnh CS)
-
Lựa chọn tiêu chuẩn thiết kế
-Lựa chọn tốc độ thiết kế
-Lựa chọn lý trình ban đầu trong trường hợp đoạn tuyến là một phần của dự án.

Bước 3:Định nghĩa đường đồng mức (Lệnh ĐNDM)
-Ghi cao độ -> chọn đội tượng trong bản hướng dẫn của Nova
-Kiểm tra việc định nghĩa đườngđồng mức bằng các lệnh: CDTN; VP; LIST

Bước 4:Chèn các điểm cao trình (lệnh NT)
-Sau khi kiểm tra các đường đồng mức đã định ngĩa, chúng ta tiến hành chèn các vị trí "3" mà Nova TDN không nội suy được
+ Vị trí yên ngựa
+ Vị trí đỉnh đồi
+ Vị trí dốc chân chim
-Tại những điểm đó ta có thể dùng lệnh NT hoặc phương pháp đườngđồng mức phụ (vẽ các đường Pline không khép kín rồi sử dụng lệnh DNDM để định nghĩa cho các đường trên).
-
Cách dùng lệnh NT:
+ Đánh lệnh NT trong ô lệnh
+ Chọn "Nhập các tọa độ tuyệt đối"
+ Điền cao độ.
+ Chọn chế độ "Chỉ điểm" -> "vẽ" -> nhấn "OK"
Bước 5:Xây đựng mô hình lưới bề mặt (Lệnh LTG)

Bước 6: Xem mô hình lưới vừa tạo (Lệnh CED)

Bước 7: Sử dụng các đường Pline bằng lệnh PL để vẽ các đường cánh tuyến (Đường dẫn hướng tuyến)

Bước 8: Vẽ gốc tuyến bằng lênh GT (Điểm xuất phát tuyến)

Bước 9: Định nghĩa mặt bằng tim tuyến (lệnh DMB)
- Sử dụng để định nghĩa đường Pline vừa vẽ dẫn hg tuyến thành đg tim tuyến có layer thuộc Nova.

Bước 10: Cắm cong nằm và bố trí siêu cao (lệnh CN)
- Sau khi đánh lệnh, Nova sẽ bật bảng thông báo cho ta điền các thông tin:
+ BK đg cong nằm
+ Bố trí hoặc ko bố trí đg cong chuyển tiếp.
+ Giá trị siêu cao
+ Độ mở rộng PXC
+ Chiều dài đoạn nối siêu cao.
Bước 11: Cắm cọc (lệnh PSC)
- Để phát sinh các cọc với k/c cho trước.
-Chú ý chọn phát sinh ở cả hai đầu, K/c giữa các cọc phát sinh phụ thuộc vào từng giai đoạn thiết kế.

Bước 12: Chèn thêm các cọc lên bình đồ (Lệnh CC)
- Các cọc cần chèn là:
+ Cọc đường cong (ND, TD, P, TC, NC)
+ Cọc cống (C)
+ Cọc CT, cọc địa hình (giao với đg đồng mức)
Bước 13: Sửa số liệu (lệnh SSL)
-Sửa tên cọc cho đúng với quy định:
+ Cọc đầu cuối
+ Cọc lý trình
Bước 14: Điền tên cọc (lệnh DTC)

Bước 15:Thiết lập bảng biểu cho đầu Trắc dọc, trắc ngang (lệnh BB)
- Mẫu bảng biểu của đầu Trắc dọc, Trắc ngang thường do chủ đầu tư quyết định, không có một quy chuẩn nhất định
- Sử dụng hai phím InsertDelete để chèn thêm hay xóa bỏ những dòng trong bảng biểu.
- Trong mỗi dự án ta nên làm một mẫu bảng biểu chuẩn rồi ghi tệp lại, lần sau cần sử dụng ta có thể gọi lại từ đó.

Bước 16:Vẽ trắc dọc tự nhiên (lệnh TD)
- Tỷ lệ đứng, tỷ lệ ngang phải là (1/1000; 1/100) hay (1/2000; 1/200)

Bước 17:Vẽ trắc ngang tự nhiên (lệnh TN)
- Tỷ lệ chuẩn 1/200.

Bước 18: Thiết kế đường đỏ (lệnh DD)
- Sử dụng một trong hai phương pháp để đi đường đỏ: đi bao hoặc đi cắt (trên từng đoạn tuyến)
- Phải tính toán các điểm khống chế trên cống, xác định điểm khống chế đầu cuối tuyến.Tính toán các điểm mong muốn (có lợi về kinh tế) rồi rắc lên trắc dọc trước khi đi đường đỏ.
- Chọn chế độ bám cọc
- Đi đường đỏ theo độ dốc
- Chú ý chiều dài đoạn đổ dốc và độ dốc tối thiểu thoát nước

Bước 19:Thiết kế đường cong đứng (lệnh CD)
- Chọn 1 trong 2 phương pháp:
+ Cong tròn
+ Cong parabol
- Chú ý giá trị của BK lồi nhỏ nhất và BK lõm nhỏ nhất.

Bước 20: Điền thiết kế cho trắc dọc (lệnh DTK)
-Chọn cả hai lựa chọn trong bảng lệnh.

Bước 21: Thiết kế trắc ngang (lệnh TKTN).
- Nhấn vào "sửa" để hiệu chỉnh cho đúng MCN thiết kế.
- Sau khi sửa xong tiến hành áp thiết kế cho các trắc ngang bằng cách nhấn vào "Áp TN" trong bảng báo của Nova.

Bước 22:Vẽ các yếu tố của MCN bằng lệnh đa tuyến dốc (lệnh DTD).
- Chọn điểm bắt đầu vẽ.
- Chọn phía cần vẽ: nếu bên trái thì giữ nguyên, nếu bên phải thì nhấn"ENTER" bỏ qua bên trái.
- Vào khoảng cách cần vẽ.
- Vào độ dốc cần tạo (Chú ý dấu:Độ dốc hướng ra khỏi tim đường là (+) và ngược lại)

Bước 23:Định nghĩa thiết kế trắc ngang (lệnh DNTKTN)
- Chọn đối tượng cần định nghĩa vừa được vẽ bằng lệnh đa tuyến dốc
- Chọn đối tượng vừa vẽ (Mặt trái, mặt phải, lề trái, lề phải).Khi chọn xong Nova sẽ tự chuyển Layer cho phần vừa định nghĩa,layer cũ sẽ tự động mất đi.

Bước 24:Lệnh vẽ taluy (lệnh TL).
- Chọn phía mặt hoặc lề cần vẽ taluy.
- Vào 1 cặp (Khoảng cách và độ dốc) liên tiếp để vẽ dạng taluy.
- Lệnh này còn áp dụng để vẽ rãnh biên, bệ phản áp, mương, máng...

Bước 25:Điền thiết kế cho trắc ngang (lệnh DTKTN).
- Bỏ mục điền cao độ thiết kế và điền cao độ hoàn thiện.

Bước 26:Copy thiết kế (lệnh CTK).
- Sử dụng để copy những phần đã sửa bằng Nova cho những phần khác giống nó mà chưa sửa.

Bước 27:Áp khuôn áo đường (lệnh APK)
- Thường áp dụng tạo khuôn áo đường cho nền đường mới.
- Đối với áo đường PXC, áp dụng biện pháp "Áp tự động", đối với lề gia cố thì "Áp chỉ điểm".
- Sau đó sử dụng lệnh Copy thiết kế để copy cho các MCN khác.

Bước 28:Khai báo vét bùn và đánh cấp (lệnh KBVB).
- Đưa vào chiều sâu vét (0,3m)
- Taluy vét (1/0)
- Chiều rộng đánh cấp (1,0m)

Bước 29:Vét bùn (lệnh VB)

Bước 30:Đánh cấp (lệnh DC)
-Với ins lớn hơn 20% mới đánh cấp.

Bước 31:Tính diện tích (lệnh TDT)
- Tính diện tích mà bản thân Nova có thể hiểu được.
Dưới đáy áo đường có 1 lớp K98 làm lớp chuyển tiếp giữa nền và KCAD.Cần khai báo lớp K98 là 1 lớp áo đường bằng lệnh APK

Còn tiếp....

Hướng dẫn viết lispcad

06:06 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!
Trong các loạt bài viết này mình sẽ dùng ngôn ngữ bình dân như nói chuyện để hướng dẩn và diển tả cách lập trình lisp cho dể hiểu và cũng dể cho mình khi viết bài.
*Công cụ dùng viết lisp:
-Tất cả các chương trình có thể soạn và lưu file txt.-Cá nhân mình dùng Notepad.

-Lưu file bằng phần mở rộng (đuôi) lsp là thành file lisp (chạy được hay không tính sau)
*Khái niệm nôm na về lập trình lisp.
-Cách mình viết là cách thô sơ nhất: Trong khi vẽ CAD có 1 số thao tác lặp đi lặp lại có cả việc tính toán nếu làm thủ công thì mệt và nhàm nên mình lưu các thao tác này vào 1 file txt có đuôi là lsp để nó làm cho mình.
*Cấu trúc 1 lệnh lisp:
-Nguyên tắc chung: cứ mở ngoặc ra thì phải đóng lại trong 1 file lisp số lượng dấu “(” và “)” luôn bằng nhau.
-Mở đầu luôn luôn có dòng sau:(defun c:lenlenh ()
Trong đó tenlenh là cái mà bạn gỏ vào thanh command để thực thi lệnh lisp
-Kết thúc luôn là dấu ngoặc đơn đóng:)
-Toàn bộ phần giữa quyết định việc lệnh lisp của bạn làm việc gì, từ nay về sau mình sẽ nói về cách viết đoạn giữa này còn cái mở đầu và kết thúc luôn như vậy.
06:12 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!
*Để chọn 1 điểm (để làm gì thì tùy bạn) dùng dòng sau:
(setq a (getpoint "Chon diem: "))
Trong đó:
-a: là điểm xác định bằng cách pick chuột.
-Chon diem: là dòng chữ sẽ hiển thị trên dòng lệnh khi chạy lệnh.

*Để thực hiện 1 lệnh cad trong lisp thì gỏ đúng trình tự mà lệnh cad chạy, lưu ý "" là thay cho enter.
Ví dụ:(command ".line" a b "")
Tác dụng:
-Thực hiện lệnh line, chọn điểm a, chọn điểm b, enter.
-Bạn thấy chưa giống y như vẽ cad thôi có gì đâu.
*Bây giờ ví dụ gọn gọn nhé:
Bắt đầu bằng cái lisp vẽ đoạn thẳng nhé.
(defun c:doanthang ()
(setq a (getpoint "Chon diem: "))
(setq b (getpoint "Chon diem: "))
(command ".line" a b ""))
-Bạn lưu đoạn trên ra file vdt.lsp-Khởi động CAD.-Gỏ lệnh AP. Chọn đến file vdt.lsp load nó lên.
-Rồi bạn chỉ cần nhập lệnh doanthang nó hỏi bạn Chon diem bạn chọn 1 điểm nó lại hỏi Chon diem bạn lại chọn nó vẽ ra đoạn thẳng qua 2 điểm bạn vừa chọn.
-Khớ khớ chắc bạn kiu lisp gì mà mắc cười vậy. Đừng nôn nóng cái này là bước đầu mà từ từ rồi bạn sẽ thấy cái hay của lisp đem lại.
!^__^! Theo dỏi các bài tiếp theo nhé.
06:15 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!
Đây là những gì hiển thị trên dòng lệnh khi chạy lệnh doanthang.
Command: doanthang
Chon diem: Chon diem:
nil

*Phân tích:
-Hai câu hỏi của lisp là Chon diem và Chon diem dính liền nhau trên 1 hàng và cuối cùng xuất hiện chữ nil không được đẹp mắt lắm.
-Khi bạn chọn điểm thứ nhất trên màn hình lisp sẽ tiếp tục chọn điểm thứ hai nhưng không xuất hiện “dây tóc” nối điểm thứ nhất với con trỏ như thường thấy ở lệnh line của cad làm việc chọn điểm thứ hai không được bài bản cho lắm.
*Khắc phục:Sửa đoạn lisp lại như sau:
(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")
(princ))
Bây giờ load lại và thực hiện lệnh doanthang sẽ thấy:
Command: DOANTHANG
Chon diem:
Chon diem:
Hai câu hỏi của lisp đưa ra xuống hàng đàng hoàn.Chữ nil cuối lệnh đã biến mất.Có dây tóc giúp việc chọn điểm thứ hai trực quan hơn.
*Phân tích:
\n sẽ làm cho các nội dung phía sau đó nhảy xuống hàng.
Thêm chữ
a sau getpoint sẽ làm xuất hiện dây tóc nối con trỏ với điểm a
(princ) sẽ ghi ra 1 dòng trắng giúp triệt tiêu các thông báo lòng thòng khi chạy lisp còn dư.
!^__^! Theo dỏi các bài tiếp theo nhé.
06:18 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!Cũng với đoạn trên nhưng bây giờ không vẽ đường thẳng nửa mà vẽ đường tròn:
Thay dòng
(command ".line" a b "")
Bằng dòng
(command ".circle" a b)
Bạn để ý nhé dòng vẽ line có "" sau khi chọn a và b còn vẽ circle thì không. Vì khi vẽ line sau khi nhập hai điểm sẽ tiếp tục lệnh line muốn kết thúc phải enter, còn circle thì chỉ cần chọn tâm và bán kính là kết thúc lệnh nên không có enter để kết thúc.
-Để thấy cái lợi của lisp bạn lưu đoạn sau thành file lsp rồi chạy thử.
(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")
(command ".circle" a b)(command ".circle" b a)
(princ))
Sẽ thấy sau khi chọn 2 điểm trên màn hình lisp sẽ vẻ ra:
-Đường thẳng từ a đến b.
-Đường tròn tâm a bán kính ab.
-Đường tròn tâm b bán kính ab.
**Kinh nghiệm rút ra:
-Từ 1 kiểu dữ liệu nhập vào lisp có thể làm nhiều việc (đây mới là sử dụng nguyên gốc hai điểm a và b chưa kể đến tính toán và cho ra điểm mới phục vụ mục đích nào đó).
-Sau khi dử liệu được nhập (điểm a và b) có thể dùng vào mọi việc không cần đến thứ tự ví dụ nhập a trước nhưng vẫn có thể dùng b trước như dòng vẽ circle thứ 2.
06:21 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!Từ 2 điểm a và b lisp sẽ làm được rất nhiều việc.
-Giới thiệu 1 số hàm đối với 1 điểm:
(setq xa (car a)) tọa độ x của điểm a
(setq ya (cadr a)) tọa độ y của điểm a
(setq za (caddr a)) tọa độ z của điểm a
-Giới thiệu 1 số hàm đối với 2 điểm:
(setq daiab (distance a b)) khoảng cách từ a đến b
(setq gocab (angle a b)) góc mà đoạn ab tạo với trục x
-Giới thiệu hàm tính toán:Cú pháp các hàm toán học hơi ngược với cách thông thường:(dấu sốđầu sốsau) nghĩa là nếu muốn có
a+b thì viết (+ a b) đối với + - * / điều như vậy.
**Từ hai điểm a và b kết hợp các hàm trên chúng ta bắt đầu cho việc tính toán cho ra những kết quả phục vụ cho việc mình cần.
-Tìm điểm nằm chính giữa a và b:
+Ngoài việc xác định 1 điểm bằng cách pick điểm thông qua hàm getpoint như trên thì 1 điểm trong lisp còn biểu diển như sau:
(setq c (list xc yc zc))
Trong đó:Xc, yc, zc lần lượt là tọa độ x, y,z của điểm c các giá trị này được xác định kiểu gì cũng được. Trong trường hợp này xác định từ các giá trị của điểm a và b. Để đơn giản mình chỉ tính toán trên mặt phẳng xy khi nào lisp vẽ phối cảnh mình hãy đưa giá trị z vào từ bây giờ 1 điểm chỉ cần biểu diển bằng x và y nên xác định điểm c như sau:
(setq c (list xc yc))
(setq xab (+ xa xb)) xác định 1 biến tạm bằng tổng x điểm a và x điểm b
(setq yab (+ ya yb)) xác định 1 biến tạm bằng tổng y điểm a và y điểm b
(setq xc (/ xab 2)) xác định x điểm c bằng cách lấy xab chia 2
(setq yc (/ yab 2)) xác định y điểm c bằng cách lấy yab chia 2
(setq c (list xc yc)) xác định điểm c bằng x và y vừa tính được.
(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")
(command ".circle" a b)
(command ".circle" b a)
(setq xa (car a))
(setq ya (cadr a))
(setq xb (car b))
(setq yb (cadr b))
(setq xab (+ xa xb))
(setq yab (+ ya yb))
(setq xc (/ xab 2))
(setq yc (/ yab 2))
(setq c (list xc yc))
(command ".circle" c a)
(princ))
*Bây giờ chạy thử đoạn trên bạn sẽ thấy có thêm 1 vòng tròn tâm là trung điểm đoạn ab đường kính bằng ab.
*Hai hàm:
distanceangle trong bài này chưa xài tới nhưng nhân tiện nói về đểm mình nói luôn bạn hãy ghi nhớ cho sau này.
06:30 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!Đoạn lisp trên mình viết rất cơ bản làm từng bước 1 để bạn làm quen, thực chất bạn có thể làm gọn lại bằng cách gộp các đoạn lại với nhau.

-Cụ thể đoạn
(setq xa (car a))
(setq xb (car b))
(setq xab (+ xa xb))
-Có thể thay bằng
(setq xab (+ (car a) (car b)))
-Tương tự sau khi gộp bước 1 từ đoạn:
(
setq xa (car a))
(setq ya (cadr a))
(setq xb (car b))
(setq yb (cadr b))
(setq xab (+ xa xb))
(setq yab (+ ya yb))
(setq xc (/ xab 2))
(setq yc (/ yab 2))
(setq c (list xc yc))
-Ta có
(setq xab (+ (car a) (car b)))
(setq yab (+ (cadr a) (cadr b)))
(setq c (list (/ xab 2) (/ yab 2)))
-Tương tự sau khi gộp bước 2 ta có
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
*Đoạn lisp bây giờ còn như sau:
(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")(command ".circle" a b)
(command ".circle" b a)
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
(command ".circle" c a)
(princ))
*Chạy thử kết quả giống y như trước nhưng ngắn được 1 số dòng. Nếu mới bắt đầu viết gộp quá rối thì bạn cứ viết từng bước như cũ đến khi nào rành rành thì bắt đầu gộp lại.
*Mới có pick 2 điểm mà đã đủ thứ chuyện vậy đó. Tất nhiên cái hình mà lisp này vẽ ra giống y như cái mạng nhện vậy chẳng để làm gì cả nhưng khi đã nắm vấn đề thì bạn muốn làm gì mà chả được.
06:34 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!
Bây giờ bỏ bớt cái hình tròn tâm b đường kính ab đi.
Áp dụng lệnh Array với cái hình tròn tâm a đường kính ab.
Cho nó Array thành 8 đối tượng quanh điểm c nhé.
-Cú pháp lệnh Array như sau:
+Vì trong lệnh Array có hỏi chọn đối tượng nhưng mình muốn nó chọn tự động cái hình tròn thì làm sao? Giải pháp đưa ra là lựa chọn
last nghĩa là chọn đối tượng mới tạo ra muốn vậy cái đường tròn này mình đừng vẽ vội mà chỉ vẽ nó trước khi thực hiện lệnh Array thôi.
(command ".circle" a b)
(command ".array" "last" "" "p" c "8" "" "")
+Giải thích dòng trên: gọi lệnh Array, gỏ
last để chọn đối tượng vừa tạo trước đó, enter kết thúc chọn đối tượng, gõ p để chọn kiểu Array là Polar, chọn điểm tâm quay là c, gỏ 8 để xác định số lượng tạo ra là 8, enter hai lần để kết thúc lệnh Array.

(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
(command ".circle" c a)
(command ".circle" a b)
(command ".array" "last" "" "p" c "8" "" "")
(princ))

*C
hạy thử đoạn trên. Khớ khớ đẹp chưa có nguyên cái bông rồi nhưng sao nhiều cánh quá á? Yên tâm sẽ có cách cho bạn quyết định số lượng cánh của cái bông này…….
06:37 Được đăng bởi Phạm Quốc Duy
Bạn nên theo dỏi theo tên bài viết tăng từ nhỏ tới lớn thì mới đúng trình tự!**Bây giờ thêm 1 dòng giúp bạn quyết định số lượng sẽ Array.
-Để nhập 1 chuổi vào lisp dùng dòng sau:
(setq sl (getstring 5"\nSo luong:"))
-Bạn lưu ý con số
5 này nhé, nếu không có nó thì khi nhập chuổi nút Space sẽ tương đương với enter nghĩa là kết thúc quá trình nhập chuổi, còn có nó thì Space là khoảng trắng.

Tùy theo nhu cầu chuổi cần nhập mà quyết định có số 5 này hay không.
-Để thấy lisp làm việc từng bước mình thêm dòng hỏi số lượng này vào sau dòng vẽ line và circle.
Sau khi bạn nhập số lượng vào thì thực hiện lệnh array như vậy thú vị hơn là chọn 2 điểm và hỏi số lượng hết rồi mới vẽ 1 lần xong lun.
(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
(command ".circle" c a)
(command ".circle" a b)
(setq sl (getstring "\nSo luong:"))
(command ".array" "last" "" "p" c sl "" "")
(princ))
Chạy thử sẽ thấy sau khi chọn 2 điểm trên màn hình lisp sẽ vẻ ra:
-Đường thẳng từ a đến b.
-Đường tròn tâm c đường kính ab.
-Đường tròn tâm a bán kính ab. Lúc này lisp dừng lại và hỏi số lượng bạn nhập vào lisp tiếp tục array cái hình tròn này ra theo số mà bạn nhập vào và kết thúc lệnh.

Người theo dõi