Thứ Ba, 6 tháng 4, 2010

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

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ờ trước dòng text thể hiện khoảng cách này bạn muốn thêm chử L= ví dụ L=3621.025 thì sao???
-Giải pháp dùng hàm ghép chuổi, hàm: strcat cú pháp như sau:
(setq ndthem (strcat "L=" ndlc))
Trong đó phần trong ngoặc kép là phần muốn thêm vào chuổi.


(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(setq dt (getstring "\nDo lon:"))
(setq nd (distance a b))
(setq ndlc (rtos nd 2 3))
(setq ndthem (strcat "L=" ndlc))
(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" b dt 0 ndthem)
(princ)
)

Với bây nhiêu thứ bạn có thể viết được cái lisp đánh cao độ rồi đấy. Linh hoạt 1 chút với vài hàm tính toán + - * / là xong ngay. (Phần viết lisp đánh cos mình sẽ quay lại sau, đến khi nào nói đến các hàm điều kiện đã).


Nhân nói về text và chuổi mình cung cấp thêm 1 vài hàm liên quan:
(setq so (getreal "\nNhap so: ")) nhập vào 1 chuổi dạng số có thể dùng để tính toán bằng các hàm + - * / .

(setq nd (getstring "\nNoi dung:")) nhập vào 1 chuổi dạng text có thể là số nhưng không dùng để tính toán được.

(setq sochu (strlen chuoicandem)) lấy ra giá trị số lượng ký tự của chuổi chuoicandem.

(setq chuoicon (substr chuoime vitridoc sokytudoc)) lấy chuoicon từ chuoime vị trí lấy bắt đầu từ vitridoc với số lượng trích bằng sokytudoc. Ví dụ
(setq chuoicon (substr "www.tailieukythuat.com" 5 14)) thì chuoicon = tailieukythuat

(setq ndhoa (strcase ndgoc)) làm chuổi ndgoc trở thành ký tự viết hoa toàn bộ. Ví dụ:
(setq kyhieu (strcase (getstring 5"\nTen truc: "))) lúc này chuổi nhập vào dù bạn gỏ hoa hay thường điều thành chử hoa hết. (cái này áp dụng cho lisp đánh trục kích thước vì trục kích thước thì các chữ luôn viết hoa).

1 nhận xét:

  1. Bài này cũng vậy anh Duy ơi hình như dư phần tìm trung điểm c của đoạn ab rùi .Anh xem lại nhé!
    Mến chào anh !
    jula_julo@yahoo.com.vn

    Trả lờiXóa