Thứ Ba, 6 tháng 4, 2010

Hướng dẩn viết lisp bài 12:

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 từng trường hợp cụ thể bạn có thể định chiều cao chử cho phù hợp với mục đích của bạn bằng cách mặc định độ lớn hoặc hỏi nhập độ lớn. Nhưng khi bạn muốn dùng text để hiển thị 1 thông báo gì đó thì làm sao?
Lúc này phải giải quyết 2 vấn đề:
-Độ lớn của text so với màn hình hiện hành là đảm bảo cho người dùng đọc được thông báo của bạn.
-Sau 1 thời gian nhất định text này phải bị xóa đi.
Mình cung cấp hai hàm để giải quyết:
(setq dolon (getvar "viewsize")) đo kích thước chiều cao màn hình và gán cho biến dolon.
(command "DELAY" "1000" "") dừng lisp trong thời gian nhất định (cứ 1000 là 1 giây, hồi máy cũ thì mình thấy đúng vậy còn cái máy bây giờ mới nó chạy như giặc vậy mình cũng không rỏ là bao lâu nhưng gán đến 10000 thì nó không chịu nửa) sau đó chạy tiếp các dòng lisp phía dưới.

Bây giờ mình viết 1 đoạn lisp vui vui thế này nhé:

(defun c:tlkt ()
(setq a (getpoint "\nChon diem viet: "))
(setq b (getpoint a"\nChon diem den: "))
(setq dolon (getvar "viewsize"))
(setq dolonchu (/ dolon 30))
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
(command "-style" "tlkt" "VNI-HELVE" "0" "1" "0" "n" "n")
(command ".TEXT" "m" a dolonchu 0 "tailieukythuat.com")
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".MOVE" "last" "" a c)
(command "DELAY" "5000" "")
(command ".ERASE" "last" "")
(princ)
)

Giải thích:
-Chọn điểm đầu tiên là a, điểm thứ hai là b.
-Đo độ cao màn hình gán cho dolon.
-Lấy dolon chia cho 30 gán cho biến dolonchu.
-Từ a và b suy ra điểm c là trung điểm ab.
-Tạo text Style và viết dòng chử tại điểm a độ lớn bằng dolonchu nội dung tailieukythuat.com.
-Dừng 1 lát.
-Move cái text đó từ a đến c.
-Dừng 1 lát.
-Lại Move cái text đó từ a đến c. Lúc này cái text đang nằm ở c nên nó sẽ được chuyển đến b.
-Dừng 1 lát.
-Xóa cái text đó đi.

Không có nhận xét nào:

Đăng nhận xét