Thứ Tư, 18 tháng 6, 2025

Lisp miễn phí chọn đối tượng trong vùng kín SWC SCC | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản
   

Thông tin thêm: 👉👉👉

Lệnh SWC 

Chọn Polyline kín. 

Lisp tự động chọn các đối tượng nằm HOÀN TOÀN bên trong Polyline được chọn.



1 Thêm class SWC_.lsp

Lưu mã sau dưới dạng tệp tin SWC_.lsp
Code:
(defun c:SWC (/ _pac add ss i temp i2)
 ;; Select Within Curve
 ;; Alan J. Thompson, 03.31.11

 (vl-load-com)

 (defun _pac (e / l v d lst)
   (setq d (- (setq v (/ (setq l (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e))) 100.))))
   (while (< (setq d (+ d v)) l)
     (setq lst (cons (vlax-curve-getPointAtDist e d) lst))
   )
 )

 (princ "\nSelect closed curves to select object(s) within: ")
 (if (setq add (ssadd)
           ss  (ssget '((-4 . "<OR")
                        (0 . "CIRCLE,ELLIPSE")
                        (-4 . "<AND")
                        (0 . "*POLYLINE")
                        (-4 . "&=")
                        (70 . 1)
                        (-4 . "AND>")
                        (-4 . "OR>")
                       )
               )
     )
   (progn (repeat (setq i (sslength ss))
            (if (setq temp (ssget "_WP" (_pac (ssname ss (setq i (1- i))))))
              (repeat (setq i2 (sslength temp)) (ssadd (ssname temp (setq i2 (1- i2))) add))
            )
          )
          (sssetfirst nil add)
          (ssget "_I")
   )
 )
 (princ "\nBy alanjt")
 (princ "\nFrom https://www.cadtutor.net/forum/topic/29523-how-to-select-all-objects-enclosed-in-a-poly-line/")
 (princ "\nReshare on https://www.lisp.vn/2025/06/lisp-mien-phi-chon-doi-tuong-trong-vung.html")
 (princ)
)


Nguồn: Tác giả alanjt



Lệnh SCC 



Chọn Polyline kín. 

Lisp tự động chọn các đối tượng nằm trong Polyline được chọn.



2 Thêm class SCC_.lsp

Lưu mã sau dưới dạng tệp tin SCC_.lsp
Code:
(defun c:SWC (/ _pac add ss i temp i2)
 ;; Select Within Curve
 ;; Alan J. Thompson, 03.31.11

 (vl-load-com)

 (defun _pac (e / l v d lst)
   (setq d (- (setq v (/ (setq l (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e))) 100.))))
   (while (< (setq d (+ d v)) l)
     (setq lst (cons (vlax-curve-getPointAtDist e d) lst))
   )
 )

 (princ "\nSelect closed curves to select object(s) within: ")
 (if (setq add (ssadd)
           ss  (ssget '((-4 . "<OR")
                        (0 . "CIRCLE,ELLIPSE")
                        (-4 . "<AND")
                        (0 . "*POLYLINE")
                        (-4 . "&=")
                        (70 . 1)
                        (-4 . "AND>")
                        (-4 . "OR>")
                       )
               )
     )
   (progn (repeat (setq i (sslength ss))
            (if (setq temp (ssget "_CP" (_pac (ssname ss (setq i (1- i))))))
              (repeat (setq i2 (sslength temp)) (ssadd (ssname temp (setq i2 (1- i2))) add))
            )
          )
          (sssetfirst nil add)
          (ssget "_I")
   )
 )
 (princ "\nBy alanjt")
 (princ "\nFrom https://www.cadtutor.net/forum/topic/29523-how-to-select-all-objects-enclosed-in-a-poly-line/")
 (princ "\nReshare on https://www.lisp.vn/2025/06/lisp-mien-phi-chon-doi-tuong-trong-vung.html")
 (princ)
)


Link tải (MediaFire)




---------------------------------------------------------------------------------------------
Ứng dụng được phát triển bởi đội ngũ AutoLISP Thật là đơn giản - Tác giả ứng dụng in D2P

    

Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:

Đăng nhận xét

Lisp miễn phí chọn đối tượng trong vùng kín SWC SCC | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản     Thông tin thêm: 👉👉👉