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 .

3 nhận xét:

  1. CÁI NÀY HAY THẾ. EM TÌM LÂU RÙI NHƯNG GIỜ MỚI HIỂU. HII

    Trả lờiXóa
  2. (setq doituong (ssget '((0 . "text")))); số 0 ở đây mang ý nghĩa gì vậy anh Huy?

    Trả lờiXóa
  3. Mình viết lâu rồi nên ko nhớ đã giới thiệu về mã dxf chưa. Bạn cứ chấp nhận hiểu số 0 đây nghĩa là kiểu của đối tượng được chọn nếu ((0. "LINE")) thì chỉ chọn đối tượng là line còn như trong bài thì chỉ chọn đối tượng text.

    Trả lờiXóa

Khi viết nhận xét mong bạn không đứng vai trò nặc danh! Bạn có thể chọn Name/Url trong đó Url là http://duy782006.blogspot.com/ như vậy hay hơn nặc danh bạn nhé.