Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
17 replies to this topic

#1 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 06 April 2012 - 08:08 AM

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.c.../49645_text.dwg

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

#2 ketui

ketui

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 06 April 2012 - 10:49 AM

http://xaydungit.vn/...i-PLINE-hiện-có.

tham khảo xem
  • 0

#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 06 April 2012 - 11:18 AM

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.c...opic=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.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 nguoihung_3

nguoihung_3

    biết zoom

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

Đã gửi 07 April 2012 - 09:00 AM

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
  • 0

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 07 April 2012 - 09:08 AM

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!
  • 2

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 nguoihung_3

nguoihung_3

    biết zoom

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

Đã gửi 07 April 2012 - 09:20 AM

Thanhks bạn! Hay quá!
  • 0

#7 nguoihung_3

nguoihung_3

    biết zoom

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

Đã gửi 07 April 2012 - 09:24 AM

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?
  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 07 April 2012 - 09:26 AM

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.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 nguoihung_3

nguoihung_3

    biết zoom

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

Đã gửi 07 April 2012 - 09:45 AM

Được rồi bạn à!Căm ơn bạn nhiều lắm!
  • 0

#10 dothanhdatvtchd

dothanhdatvtchd

    biết vẽ line

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

Đã gửi 10 October 2012 - 11:36 AM

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.
  • 0

#11 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 10 October 2012 - 11:43 AM

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
  • 0

#12 dothanhdatvtchd

dothanhdatvtchd

    biết vẽ line

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

Đã gửi 10 October 2012 - 01:56 PM

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.c..._drawing1_1.dwg
  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 11 October 2012 - 06:31 AM

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))))

  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 dothanhdatvtchd

dothanhdatvtchd

    biết vẽ line

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

Đã gửi 11 October 2012 - 10:53 AM

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
  • 0

#15 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 11 October 2012 - 11:07 AM

Có gì cứ hỏi trên CV. Tôi không giúp được thì còn có người giỏi hơn giúp. OK?
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#16 dothanhdatvtchd

dothanhdatvtchd

    biết vẽ line

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

Đã gửi 11 October 2012 - 11:20 AM

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
  • 0

#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 11 October 2012 - 11:28 AM

Do công việc hơi đặc thù thôi. Bạn có thể gởi tin nhắn trên CadViet.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#18 dothanhdatvtchd

dothanhdatvtchd

    biết vẽ line

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

Đã gửi 11 October 2012 - 11:55 AM

Do công việc hơi đặc thù thôi. Bạn có thể gởi tin nhắn trên CadViet.

vào gửi tin nhắn trên cv thì nó báo: nick của anh ko nhận được tin. :??
  • 0