Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
victor85

[Yêucầu]Nhờ viết lisp chọn số theo giá trị của số

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

victor85    10

Mình có một nhu cầu này hay gặp phải trong quá trình vẽ đó là chọn một số lượng đối tượng text cad là các số thuộc tập Q và có giá trị lớn hơn hoặc nhỏ hơn một giá trị nhất định mình mong muốn trong vùng đối tượng chọn. Mong các cao thủ lisp xuống tay giúp mình vụ này với. Mình xin chân thành cảm ơn các bác trước ạ! Chúc các lisper một ngày mới vui vẻ và làm việc hiệu quả. :)

Cụ thể lisp như sau:

Lisp: select_not equal.lsp

Lệnh đầu vào: sne

Chọn các đối tượng text là số thực đầu vào.

Chọn kiểu lựa chọn: Lớn hơn (L) / Nhỏ hơn (N)

Chọn giá trị mong muốn làm tham số lựa chọn: nhập giá trị vào.

Kết quả chọn được các số lớn hơn hoặc nhỏ hơn giá trị mong muốn trong vùng chọn.

 

VD mình có các số: 3, 5, 8, 9.81, 12.55 trong vùng chọn.

Chọn các số lớn hơn giá trị mong muốn tham số là: 9

Kết quả: chọn được số 9.81 và 12.55

 

 

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
victor85    10

Mở rộng hơn chút mong bác Doan Van Ha viết dùm minh lisp chọn đối tượng là đoạn thẳng có chiều dài lớn hơn hoặc nhỏ hơn khoảng cho trước trong tập hợp các đoạn thẳng đã chọn với. :)

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
Doan Van Ha    2.678

Lisp đây!


;Doan Van Ha - CADViet.com - Ngay 15/7/2014
;Muc dich: Chon cac doi tuong *Line lon (nho) hon chieu dai cho truoc.
(defun C:HA( / ln ss ss1 len)
 (initget "L N") (setq ln (getkword "\nKieu chon [Lon_hon/Nho_hon] <Nho>: "))
 (if (not ln) (setq ln "N"))
 (or (and kc (or (= (type kc) 'int) (= (type kc) 'real))) (setq kc 100))
 (setq kc (cond ((getdist (strcat "\nChieu dai <" (rtos kc 2 2) ">: "))) (kc)))
 (princ "\nChon cac doi tuong Line/Spline/Lwpolyline/Polyline...")
 (if (setq ss (ssget '((0 . "Line,Spline,Lwpolyline,Polyline"))))
  (progn  
   (setq ss1 (ssadd))
   (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
    (setq len (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)))
    (cond
((and (= ln "L") (> len kc))
      (setq ss1 (ssadd ent ss1)))
((and (= ln "N") (< len kc))
      (setq ss1 (ssadd ent ss1)))))
   (sssetfirst nil ss1))))
 

  • 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

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  

×