Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
victor85

[Yêu cầu] lisp chia khoảng cách thành các đoạn đều nhau

Các bài được khuyến nghị

Bác nào viết dùm mình lisp Chia khoảng cách thành các đoạn đều nhau thay cho lệnh divide trong cad có nhiều điểm không mong muốn với.

Lệnh: dv

Đối tượng đầu vào: pick 2 điểm tạo nên khoảng cách cần chia đều.

Nhập số khoảng cách muốn chia ra.

Đối tượng đầu ra: tạo ra các point cách đều nhau nằm tại đầu mút các khoảng cách cần chia.

Cảm ơn các bác trước nhé. :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bác nào viết dùm mình lisp Chia khoảng cách thành các đoạn đều nhau thay cho lệnh divide trong cad có nhiều điểm không mong muốn với.

Lệnh: dv

Đối tượng đầu vào: pick 2 điểm tạo nên khoảng cách cần chia đều.

Nhập số khoảng cách muốn chia ra.

Đối tượng đầu ra: tạo ra các point cách đều nhau nằm tại đầu mút các khoảng cách cần chia.

Cảm ơn các bác trước nhé. :)

Bạn dùng cái này xem:

(defun C:DV(/ p1 p2 sk x)
(setq p1 (getpoint "\nPick diem 1: "))
(setq p2 (getpoint p1 "\nPick diem 2: "))
(setq sk (getint "\nNhap so khoang chia: "))
(setq x 0)
(repeat (+ sk 1)
 (command "point" (polar p1 (angle p1 p2) (* x (/ (distance p1 p2) sk))))
 (setq x (1+ x))))

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cảm ơn bác nhé.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

chào mọi người em có thử dùng lisp này nhưng sau khi pick 2 điểm đầu và cuối của đoạn thẳng em nhập số khoảng chia thì nhập số khoảng bao nhiêu thì nó cũng chỉ chia 2 khoảng và cho ta có 3 điểm, Em dùng cad 2013

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

em làm được rồi ạ, vậy thưa anh Doan Van Ha có thể thêm dòng lệnh để tắt chế độ bắt điểm trong lisp này ko ạ

Cảm ơn anh

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn sửa dòng này:

(command "point" (polar p1 (angle p1 p2) (* x (/ (distance p1 p2) sk))))

 

Thành như này:

(command "point" "non" (polar p1 (angle p1 p2) (* x (/ (distance p1 p2) sk))))

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

E thấy lisp cũ vẫn chạy ầm ầm mà a Doan Van Ha vậy thêm "non" làm chi hả a???

Ầm ầm ấy là khi bản vẽ của bạn không gặp đồng thời 2 yếu tố sau đây:

1). Có chế độ osnap nào đó đang mở.

2). Các điểm vẽ nằm quá gần một đối tượng nào đó, mà đối tượng này bị osnap "hút" vào. Khi đó nó sẽ vẽ sai vị trí mong muốn.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Vậy "non" ở đây là tương đương với tắt osmode = 0 hả a :o

Tương đương thì không đúng lắm. Nó chỉ làm cho osnap hết hiệu lực đối với điểm liền kề sau "non". Qua điểm tiếp theo thì osnap vẫn hoạt động trở lại bình thường.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×