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

Hàm con autolisp thay thế cho vl-remove-if

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

Như tiêu đề topic. Mình đang cần cái hàm con có chức năng y hệt hàm vl-remove-if nhưng đuợc viết hoàn toàn bằng autolisp. Phiền các bác ra tay giúp đỡ.

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
Như tiêu đề topic. Mình đang cần cái hàm con có chức năng y hệt hàm vl-remove-if nhưng đuợc viết hoàn toàn bằng autolisp. Phiền các bác ra tay giúp đỡ.

Thaistreetz viết lisp cho Cad R14? (không có VLisp)

 

các buớc thực hiện :

- tạo 1 list nil chứa kết quả

- lần luợt duyệt qua danh sách, kiểm tra Điều kiện

+ nếu đúng bỏ qua (không đưa vào Kết quả)

+ nếu sai đưa vào Kết quả, sử dụng hàm CONS hay APPEND

 

Minh họa :

- hàm remove_if : xóa các ph_tử kiểu String

- hàm remove_if_not : chỉ chọn các ph_tử kiểu INT (nguyên)

(defun remove_if (lst / tmp)
 (foreach item lst
   (if (not (equal (type item) 'STR))
     (setq tmp (cons item tmp))  ))
 (if tmp (reverse tmp) ))

(defun remove_if_not (lst / tmp)
 (foreach item lst
   (if (equal (type item) 'INT)
     (setq tmp (cons item tmp))  ))
 (if tmp (reverse tmp) ))

 

test :

;(setq lst (list "abc" 2 3.5 "bc" 8 7.5))

; (remove_if lst) -> (2 3.5 8 7.5)

; (remove_if_not lst) -> (2 8)

  • 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
Thaistreetz viết lisp cho Cad R14? (không có VLisp)

Đúng rồi bác ạ. em xài 1 phần mềm chạy trên cad14, phải viết thêm 1 số tiện ích cho nó

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ắc là bác Thai này chạy phần mềm Nova hay HS gì đây ấy mà

Sao bác không cài trên AutoCad 2000 có zoom bằng cách vặn con trỏ chuột nhanh hơ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
Chắc là bác Thai này chạy phần mềm Nova hay HS gì đây ấy mà

Sao bác không cài trên AutoCad 2000 có zoom bằng cách vặn con trỏ chuột nhanh hơn

:(

Mình thích dùng bản nova 4.01 trên nền cad14 hơn vì bản này ổn định, ít khi gặp lỗi treo máy (màn hình xanh) như các bản dùng cho cad2002 và 2005. Chức năng thì tương đối giống nhau, không có cải tiến gì lớn.

Vấn đề zoom bằng chuột thì mình cũng đã giải quyết được rồi. Tool này mình dùng quen lại thấy thích hơn zoom của cad2005 vì không fải dừng lại regen bản vẽ khi zoom vuợt giới hạ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

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  

×