Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
4 replies to this topic

#1 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 18 September 2010 - 03:38 PM

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 đỡ.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1434 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 20 September 2010 - 09:28 AM

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)
  • 2

#3 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 20 September 2010 - 12:30 PM

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é :(
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#4 VUVUZELA

VUVUZELA

    biết lệnh chamfer

  • Members
  • PipPipPipPip
  • 210 Bài viết
Điểm đánh giá: 97 (tàm tạm)

Đã gửi 20 September 2010 - 01:06 PM

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
:(
  • 0

Hệ thống Liên Kết, Thiết Kế Tự Động

ttps://www.facebook...etThietKeTuDong


#5 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 20 September 2010 - 08:45 PM

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
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD