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  
hdt4151

[Yêu cầu] Chọn tất cả đối tượng nằm trong polyline khép kín hoặc wipe out

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

hdt4151    1

Mình có thử tìm trong forum nhưng không thấy nên nhờ các bác viết giúp :)

 

Đầu vào: chọn polyline khép kín hoặc wipeout

Đầu ra: chọn các đối tượng nằm trong polyline hoặc wipeout đó.

 

Mình xin cám ơn.

 

http://www.cadviet.com/upfiles/3/49645_text.dwg

 

(File cad có 2 trường hợp polyline và wipeout)

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

1). Với trường hợp chọn đối tượng bên trong wipeout thì có thể kết hợp lisp của tác giả "Ketui" và lisp chuyển từ wipeout sang pline tại đường link này để có lisp tổng hợp: http://www.cadviet.com/forum/index.php?showtopic=63065&st=0

2). Trong trường hợp tổng quát của Curve thì lisp chỉ gần đúng mà thôi. Mức độ chính xác càng cao khi vi phân curve càng nhiều điểm, nhưng chạy càng chậm, chứ không thể chính xác 100% đượ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
nguoihung_3    0

Sao mình làm như lisp của kệ tui mà không lấy được đối tượng ra nhỉ?Mình dùng lệnh CTPL xong chẳng thấy có tác dụng gì cả.Bạn hướng dẫn cụ thể dùm mình được không

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

Sao mình làm như lisp của kệ tui mà không lấy được đối tượng ra nhỉ?Mình dùng lệnh CTPL xong chẳng thấy có tác dụng gì cả.Bạn hướng dẫn cụ thể dùm mình được không

1). Bạn lấy lisp này cho dễ thấy:

(defun c:ctpl()
(setq plst (acet-geom-vertex-list (car (entsel "\n Chon pline khep kin"))))
(setq SST (ssget "wp" plst))
(sssetfirst nil sst))

2). Một vấn đề thì bạn không được mở 2 topic như thế, phạm quy đấy!

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

Nhưng bạn ơi!Các đối tượng bị PL cắt qua lại không được chọn là sao nhỉ?Có cách nào chọn được cả trong PL và cả PL cắt qua không?

Sửa chữ "wp" thành "cp" là được.

  • 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
1). Bạn lấy lisp này cho dễ thấy:
 (defun c:ctpl() (setq plst (acet-geom-vertex-list (car (entsel "\n Chon pline khep kin")))) (setq SST (ssget "wp" plst)) (sssetfirst nil sst)) 

2). Một vấn đề thì bạn không được mở 2 topic như thế, phạm quy đấy!

1). Bạn lấy lisp này cho dễ thấy:
 (defun c:ctpl() (setq plst (acet-geom-vertex-list (car (entsel "\n Chon pline khep kin")))) (setq SST (ssget "wp" plst)) (sssetfirst nil sst)) 

2). Một vấn đề thì bạn không được mở 2 topic như thế, phạm quy đấy!

Bạn cho mình hỏi: Mình đã làm như hướng dẫn, nhưng Pline của mình đứt nhiều đoạn thì nó sẽ ko chọn được, báo nil nill là sao vậy?? Có thể khắc phục được không ?

Mì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
Tue_NV    3.841

Bạn cho mình hỏi: Mình đã làm như hướng dẫn, nhưng Pline của mình đứt nhiều đoạn thì nó sẽ ko chọn được, báo nil nill là sao vậy?? Có thể khắc phục được không ?

Mình cám ơn.

Nối PLINE đứt đó thành Pline khép kín bằng lệnh PEDIT là đượ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

Nối PLINE đứt đó thành Pline khép kín bằng lệnh PEDIT là được

Ý em là Pline của em nó gồm nhiều đoạn quá, vẫn kín mà. File của em đây. Bác xem giúp em vớihttp://www.cadviet.com/upfiles/3/113710_drawing1_1.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
Doan Van Ha    2.678

Dùng lisp hiệu chỉnh này:

(defun c:ctpl( / plst sst) 
(setq plst (acet-geom-vertex-list (car (entsel "\nChon pline khep kin: ")))) 
(setq plst (LM:UniqueFuzz plst 1E-8))
(setq sst (ssget "wp" plst)) 
(sssetfirst nil sst)) 
(defun LM:UniqueFuzz ( l fz )
(if l (cons (car l) (LM:UniqueFuzz (vl-remove-if '(lambda ( x ) (equal x (car l) fz)) (cdr l)) fz))))

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

Dùng lisp hiệu chỉnh này:

(defun c:ctpl( / plst sst)
(setq plst (acet-geom-vertex-list (car (entsel "\nChon pline khep kin: "))))
(setq plst (LM:UniqueFuzz plst 1E-8))
(setq sst (ssget "wp" plst))
(sssetfirst nil sst))
(defun LM:UniqueFuzz ( l fz )
(if l (cons (car l) (LM:UniqueFuzz (vl-remove-if '(lambda ( x ) (equal x (car l) fz)) (cdr l)) fz))))

Anh Hà có thể cho em nick yahoo để em hỏi anh một số vấn đề không ạ. Có gì anh chỉ giáo :D

anh gửi mail em nhé: thangt0407@gmail.com

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

Vì thấy bác pro nên em muốn xin nick yahoo cho tiện hỏi han bác :D. Bác sợ phiền thì thôi vậy. Ví như thỉnh thoảng chat 1,2 phút thì cũng không tốn thời gian lắm ạ. :D

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  

×