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

Nhờ viết dùm lisp select các text nhỏ hơn hoặc lớn hơn 1 giá trị cho trước!

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

Nhờ các anh chị viết dùm e cái lisp chọn các text số nhỏ hơn hoặc lớn hơn 1 giá trị cho phép ạ, ví dụ em có 1 đóng các text 1.2.3.4.5.6 giờ em mún chọn các text nhỏ 6 thì nó chọn các text 1.2.3.4.5 ạ!

xin chân thành cảm ơ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

Đây bạn!


;Chuc nang: Chon tap hop text bao gom cac so lon/nho hon 1 so cho truoc.
(defun C:HA( / flag num so z n ent)
 (initget "L N")
 (setq flag (getkword "\nChon cac Text [Lon-hon/Nho-hon]<L>: "))
 (if (not flag) (setq flag "L"))
 (if (= flag "L")
  (setq num (getreal "\nGia tri Min cho truoc: "))
  (setq num (getreal "\nGia tri Max cho truoc: ")))
 (princ "\nChon Text...")
 (setq so (ssget '((0 . "*TEXT") (1 . "~*[~-0--9]*"))))
 (setq z 0 so1 (ssadd))
 (repeat (sslength so)
  (if (setq num1 (distof (cdr (assoc 1 (entget (setq ent (ssname so z)))))))
   (cond
    ((and (= flag "L") (> num1 num)) (setq so1 (ssadd ent so1)))
    ((and (= flag "N") (< num1 num)) (setq so1 (ssadd ent so1)))))
  (setq z (1+ z))) 
 (sssetfirst nil so1))
 

  • Vote tăng 3

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

Đây bạn!


;Chuc nang: Chon tap hop text bao gom cac so lon/nho hon 1 so cho truoc.
(defun C:HA( / flag num so z n ent)
 (initget "L N")
 (setq flag (getkword "\nChon cac Text [Lon_hon/Nho_hon] <L>: "))
 (if (not flag) (setq flag "L"))
 (if (= flag "L")
  (setq num (getreal "\nGia tri Min cho truoc: "))
  (setq num (getreal "\nGia tri Max cho truoc: ")))
 (princ "\nChon Text...")
 (setq so (ssget '((0 . "*TEXT") (1 . "~*[~-0--9]*"))))
 (setq z 0 so1 (ssadd))
 (repeat (sslength so)
  (if (setq num1 (distof (cdr (assoc 1 (entget (setq ent (ssname so z)))))))
   (cond
    ((and (= flag "L") (> num1 num)) (setq so1 (ssadd ent so1)))
    ((and (= flag "N") (< num1 num)) (setq so1 (ssadd ent so1)))))
  (setq z (1+ z))) 
 (sssetfirst nil so1))
 

Sao e không sử dụng được lisp trên 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

Không sử dụng được thì đừng sử dụng! <_<

Còn nếu muốn sử dụng được thì nên hỏi một câu có đầu có đuôi, chứ nói khơi khơi như thế chả bốc thuốc được.

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

Không sử dụng được thì đừng sử dụng! <_<

Còn nếu muốn sử dụng được thì nên hỏi một câu có đầu có đuôi, chứ nói khơi khơi như thế chả bốc thuốc được.

Sau khi e load lisp, gõ lệnh HA không sử dụng được lisp

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 quét chọn rồi copy các dòng ở #3 rồi paste vào 1 file lsp, chứ đừng bấm nút download, vì trong file download có nhiều ký tự lạ làm hư file lsp.

  • 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

Đây bạn!


;Chuc nang: Chon tap hop text bao gom cac so lon/nho hon 1 so cho truoc.
(defun C:HA( / flag num so z n ent)
 (initget "L N")
 (setq flag (getkword "\nChon cac Text [Lon_hon/Nho_hon] <L>: "))
 (if (not flag) (setq flag "L"))
 (if (= flag "L")
  (setq num (getreal "\nGia tri Min cho truoc: "))
  (setq num (getreal "\nGia tri Max cho truoc: ")))
 (princ "\nChon Text...")
 (setq so (ssget '((0 . "*TEXT") (1 . "~*[~-0--9]*"))))
 (setq z 0 so1 (ssadd))
 (repeat (sslength so)
  (if (setq num1 (distof (cdr (assoc 1 (entget (setq ent (ssname so z)))))))
   (cond
    ((and (= flag "L") (> num1 num)) (setq so1 (ssadd ent so1)))
    ((and (= flag "N") (< num1 num)) (setq so1 (ssadd ent so1)))))
  (setq z (1+ z))) 
 (sssetfirst nil so1))
 

bác nào rảnh có thể giúp em kiểm tra lisp này được ko ạ, em chọn số lớn hơn 1 số cho trước thì ngon rồi, nhưng khi chọn số nhỏ hơn 1 số cho trước thấy nó chọn ra kết quả không đúng. Em cám ơn các bác nhiều ^_^

  • 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

Bạn đưa bản vẽ gồm tập hợp số đó lên đây bắt mạch xem, chỉ mấy chú đó. Nhớ đừng gởi cả bản vẽ to như quả núi nghe.

  • 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

Bạn đưa bản vẽ gồm tập hợp số đó lên đây bắt mạch xem, chỉ mấy chú đó. Nhớ đừng gởi cả bản vẽ to như quả núi nghe.

http://www.cadviet.com/upfiles/6/111575_sua_loi_lisp_1.dwg

 

hề hề, đây bác ạ. Mong bác soi sét hộ em.

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 kiểm tra lại bản vẽ, tôi down về mở ra nó bảo bản vẽ không hợp lệ

Tôi Cad2007 nhé

em gửi lại bác kiểm tra hộ em, bản vẽ em đã save về cad2004, và đã gửi cho 1 người khác test trước để đỡ mất thời gian của bác. Cảm ơn bác đã nhiệt tình giúp đỡ.http://www.cadviet.com/upfiles/6/111575_sua_loi.dwg

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 vẽ của bạn vừa mở ra thì lỗi font (hình 1).

Tôi đổi sang font Times New Romans thì hiện số.

Test với số nhỏ hơn 3.05 được như hình 2 >> Kết quả đúng.

67029_1.png

Hình 2

67029_2_1.png

  • 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

Bản vẽ của bạn vừa mở ra thì lỗi font (hình 1).

Tôi đổi sang font Times New Romans thì hiện số.

Test với số nhỏ hơn 3.05 được như hình 2 >> Kết quả đúng.

67029_1.png

Hình 2

67029_2_1.png

Thật ngại quá, đã làm mất thời gian của bác hơi bị nhiều, em test lại rất kỹ rồi, khi chọn giá trị nhỏ hơn 1 số, nó đều trả về giá trị lớn hơn. Em test lại trên các bản vẽ khác nhau, kiểu text khác nhau. Bác xem lại lisp bác dùng có giống lisp bác post trên diễn đàn không. Cảm ơn bác đã quan tâm và hồi đá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

Bạn làm từ đầu, xong bấm F2, copy màn hình dán lên đây xem sao

111575_1_1.jpg

em tìm ra nguyên nhân rồi bác ạ. Khi lisp yêu cầu chọn text, nếu dùng phím chọn "L" hay "N" thì lisp hoạt động chính xác, nhưng khi dùng chuột chỉ click vào lựa chọn "nhỏ hơn" thì lisp sẽ cho kết quả sai. Bác test lại xem có đúng như vậy không. Cảm ơn bác đã hồi đáp

  • 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ôi like cho bạn 1 phát vì nhờ bạn mà tôi phát hiện ra 1 chỗ nhầm. Bạn down cái đầu tiên là ok con dê.

 hề hề, vinh dự và sung sướng quá, được đích thân bác Hà like, lại là cái like đầu đời :)). 

  • 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  

×