Thứ Tư, 7 tháng 4, 2010

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

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ờ dùng cái lisp trên sửa lại như sau:
Chọn 1 hoặc nhiều đối tượng có sẳn trên màn hình. Chọn điểm gốc a, chọn điểm đến b, hỏi số lần di chuyển. Move cái đối tượng vừa chọn từ a đến b từ từ với số đoạn di chuyển là số lần vừa nhập.
-Cần biết cú pháp để chọn đối tượng bằng lisp:
(Setq doituong (Ssget))
-Khi dùng dòng trên các đối tượng được chọn sẽ gán cho biến doituong. Để cho đẹp thêm dòng (princ "\nChon doi tuong") trước dòng chọn đối tượng để ghi dòng Chon doi tuong ra dòng lệnh trước khi chọn đối tượng.

(defun c:tlkt ()
(princ "\nChon doi tuong")
(Setq doituong (Ssget))
(setq a (getpoint "\nChon diem goc: "))
(setq b (getpoint a"\nChon diem den: "))
(setq so (getreal "\nSo lan di chuyen: "))
(setq daiab (distance a b))
(setq dodai (/ daiab so))
(setq gocab (angle a b))
(setq c (polar a gocab dodai))
(setq sol (fix so))
(repeat sol
(command "DELAY" "5000" "")
(command ".MOVE" doituong "" a c)
)
(princ)
)

Khi dùng dòng (Setq doituong (Ssget)) để chọn đối tượng thì tất cả các kiểu đối tượng được quét qua sẽ chọn hết nhưng có đôi lúc bạn có nhu cầu chỉ chọn 1 kiểu đối tượng nào đó thôi ví dụ: line, dimension, hatch, insert. . . thì dùng dòng sau:
(setq doituong (ssget '((0 . "text"))))
-Lúc này trong vùng quét của bạn chỉ nhận các đối tượng có kiểu nằm trong ngoặc kép (dòng trên cụ thể là đối tượng kiểu text) là được chọn thôi .

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

Đăng nhận xét