Đến nội dung


Hình ảnh
- - - - -

Xin lisp lọc chọn các số trong khoảng AB


  • Please log in to reply
15 replies to this topic

#1 friendship293a

friendship293a

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: -9 (bình thường)

Đã gửi 26 November 2013 - 05:24 PM

Em cần Lisp lọc chọn các số trong khoảng ab ví dụ từ 1 - 4.5

1. nhập a

2. nhập b

3. trọn vùng cần lọc

4. kết quả là những số nằm trong khoảng AB được chọn. Thanks pro

file số liệu

 

http://www.cadviet.c...c_doi_tuong.dwg


  • 0

#2 ngochai_308

ngochai_308

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 13 August 2014 - 05:47 PM

Nếu có lisp như vậy thì đúng là tuyệt!  :)

Em nhờ bác nào giúp em với!


  • 0

#3 genius111

genius111

    biết vẽ arc

  • Members
  • PipPip
  • 45 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 13 August 2014 - 08:01 PM

mình cũng rất cần lisp này :)


  • 0

#4 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 993 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 13 August 2014 - 08:31 PM

Viết cho các bạn đây.

(defun c:TD(/ SSchon Lts_so a b LtsInAB )
(setq ssChon  (ssget (list (cons 0 "TEXT"))))
(setq ss_So  (ChonTextSo ssChon))
(setq Lts_so (acet-ss-to-list ss_So))
(setq a (getreal "\nNhap so nho: "))
(setq b (getreal "\nNhap so lon: "))
(setq LtsInAB (vl-remove nil (mapcar '(lambda(x) (if (and ( > (atof (cdr (assoc 1 (entget x)))) a) ( < (atof (cdr (assoc 1 (entget x)))) b)) x nil)) Lts_so)))
(command "_.PSELECT" (acet-list-to-ss LtsInAB) "")
(princ)
)
(defun ChonTextSo (ss / i ent str ss1) 
    (progn
      (setq i	0
	    ss1	(ssadd)
      )
      (repeat (sslength ss)
	(setq ent (ssname ss i)
	      str (cdr(assoc 1 (entget ent)))
	      i	  (+ 1 i)
	)
	(if (distof str 2)
	  (ssadd ent ss1)
	)
      )
      (if (> (sslength ss1) 0)
	ss1
      )      
    )
)

 

(defun c:TD(/ SSchon Lts_so a b LtsInAB )
(setq ssChon  (ssget))
(setq ss_So  (ChonTextSo ssChon))
(setq Lts_so (acet-ss-to-list ss_So))
(setq a (getreal "\nNhap so nho: "))
(setq b (getreal "\nNhap so lon: "))
(setq LtsInAB (vl-remove nil (mapcar '(lambda(x) (if (and ( > (atof (cdr (assoc 1 (entget x)))) a) ( < (atof (cdr (assoc 1 (entget x)))) B)) x nil)) Lts_so)))
(command "_.PSELECT" (acet-list-to-ss LtsInAB) "")
(princ)
)
(defun ChonTextSo (ss / i ent str ss1) 
    (progn
      (setq i 0
   ss1 (ssadd)
      )
      (repeat (sslength ss)
(setq ent (ssname ss i)
     str (cdr(assoc 1 (entget ent)))
     i  (+ 1 i)
)
(if (distof str 2)
 (ssadd ent ss1)
)
      )
      (if (> (sslength ss1) 0)
ss1
      )      
    )
)

  • 3



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#5 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 993 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 13 August 2014 - 08:58 PM

:)


  • 1



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#6 DanKhaosat

DanKhaosat

    biết lệnh scale

  • Members
  • PipPipPip
  • 149 Bài viết
Điểm đánh giá: 14 (tàm tạm)

Đã gửi 13 August 2014 - 09:31 PM

Thanh Duân Vạn Tuế!


  • 0

#7 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 993 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 13 August 2014 - 09:48 PM

Thôi chết em rồi. Bác làm em tổn thọ rùi. :'(
Em có giúp dc mọi người mấy đâu ạ. Hic hic


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#8 DanKhaosat

DanKhaosat

    biết lệnh scale

  • Members
  • PipPipPip
  • 149 Bài viết
Điểm đánh giá: 14 (tàm tạm)

Đã gửi 13 August 2014 - 09:58 PM

CHú luôn nhiệt tình k vụ lợi!

Rất xứng đáng vạn tuế!


  • 0

#9 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 993 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 13 August 2014 - 10:09 PM

:wub:


  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#10 genius111

genius111

    biết vẽ arc

  • Members
  • PipPip
  • 45 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 14 August 2014 - 06:52 AM

Lisp hay quá
  • 0

#11 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 14 August 2014 - 09:21 AM

Lisp có nhiều đoạn có thể rút gọn.

Tôi bổ sung thêm 1 hàm có thể chọn số trong đoạn [a,b]

 

(defun c:s1() (SelRange <))
(defun c:s2() (SelRange <=))

(defun SelRange(f / ss a b)
    (setq ss  (acet-ss-to-list (ssget '((0 . "TEXT")))))
    (setq a (getreal "\nNhap so nho: ") b (getreal "\nNhap so lon: "))
    (command "_.PSELECT" (acet-list-to-ss (vl-remove nil (mapcar '(lambda(x) (if (f a (distof (cdr (assoc 1 (entget x)))) b) x nil)) ss))) "")
    (princ)
)
 

  • 2

#12 phamhuy1

phamhuy1

    biết vẽ rectang

  • Members
  • PipPip
  • 82 Bài viết
Điểm đánh giá: 3 (bình thường)

Đã gửi 14 August 2014 - 04:16 PM

Sao các bác không phát triển luôn các trường hợp :

- Chọn số nhỏ hơn a

- Chọn số lớn hơn b

cho nó đủ bộ :)


  • 0

#13 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 14 August 2014 - 04:26 PM

Sao các bác không phát triển luôn các trường hợp :

- Chọn số nhỏ hơn a

- Chọn số lớn hơn b

cho nó đủ bộ :)

- Chọn số nhỏ hơn a >>>>>>>> Cho số bé --> bé vô cùng, số lớn = a

- Chọn số lớn hơn b >>>>>>>> Cho số lớn --> lớn vô cùng, số bé  = b


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#14 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 18 August 2014 - 11:30 AM

Bổ sung theo yêu cầu:

(defun c:n1() (SelRange1 <))
(defun c:n2() (SelRange1 <=))
(defun c:l1() (SelRange1 >))
(defun c:l2() (SelRange1 >=))

(defun SelRange1(f / ss a)
    (setq ss  (acet-ss-to-list (ssget '((0 . "TEXT")))) a (getreal "\nNhap so: ") )
    (command "_.PSELECT" (acet-list-to-ss (vl-remove nil (mapcar '(lambda(x / v) (if (and (setq v (distof (cdr (assoc 1 (entget x)))))(f v a )) x nil)) ss))) "")
    (princ)
)

  • 2

#15 ngochai_308

ngochai_308

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 27 August 2014 - 05:28 PM

Cảm ơn các bạn nhé, đúng là tuyệt vời!  :)


  • 0

#16 trinhhoanghieu090

trinhhoanghieu090

    Edu level: li8

  • Members
  • PipPipPipPipPip
  • 309 Bài viết
Điểm đánh giá: 29 (tàm tạm)

Đã gửi 03 September 2014 - 10:08 PM

Chào các bác, em dùng lisp thì bị báo lỗi:

 

Command: td
Select objects: Specify opposite corner: 18 found
Select objects:
Nhap so nho: 1
Nhap so lon: 42
_.PSELECT Unknown command "PSELECT".  Press F1 for help. 

 

em đang dùng cad 2010. bác nào biết lỗi gì chỉ em với


  • 0