Đến nội dung


Hình ảnh
- - - - -

Nhờ các bac viết lisp hatch nhiều polyline cùng 1 lúc


  • Please log in to reply
14 replies to this topic

#1 ptd1987

ptd1987

    biết vẽ ellipse

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

Đã gửi 30 March 2014 - 04:21 PM

Nhờ các bác viết dùm lisp hatch nhiều polyline kín cùng 1 lúc: dùng lệnh, quét chọn nhiều polyline kín, enter > xong !! ( cứ polyline kín là dc hatch, ko cần quan tâm có giao nhau với dối tượng khác hay ko) mẫu hatch lấy theo hiện hành. Em đã lùng sục trong forum và google mấy hôm rồi ko thấy. Thanks

 


  • 0

#2 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 30 March 2014 - 06:29 PM

Chỉ chọn pline kín, pline hở sẽ báo lỗi.

http://www.cadviet.c...168_tmp1_31.lsp


  • 0

#3 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 31 March 2014 - 09:44 AM

@Tot77 : Mình nhớ là Hatch có chế độ chọn Object, sao lại cần đến lisp nhỉ :)

 

(defun c:hp()(command ".-Hatch" "s" (ssget (list (cons 0 "*POLYLINE"))) "" ""))
 

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#4 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 31 March 2014 - 10:09 AM

@Tot77 : Mình nhớ là Hatch có chế độ chọn Object, sao lại cần đến lisp nhỉ :)

 

(defun c:hp()(command ".-Hatch" "s" (ssget (list (cons 0 "*POLYLINE"))) "" ""))
 

Hề hề hề,

Sao bác Ket tiết kiệm hay là hoang thế, không nhét luôn thằng mã 70 vào bộ lọc cho nó ...... oách nhể???


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 31 March 2014 - 10:11 AM

Cả lisp của Tot77 lẫn Ketxu đều chưa thỏa mãn y/c của chủ topic: cứ pline kín là hatch, bất kể có giao với object khác hay không.

Bởi khi cho 2 pline kín giao nhau thì sẽ hatch thiếu.


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


#6 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 31 March 2014 - 10:38 AM

@Bác Bình : vì kín có thể do Close trong lúc vẽ thì sử dụng dxf 70 để lọc, còn kín do bắt điểm thì không. Nên cứ để thế bác ạ.Ket quick thế để minh hoạ cho lệnh Hatch Object thôi, chứ để kiểm chứng Object kín hay k còn phụ thuộc vào OP định nghĩa thế nào là kín

 

@Bác HẠ : Bác test chưa ạ ^^ cháu chỉ sợ thừa bác ạ, thiếu thì khó :)


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#7 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 31 March 2014 - 10:43 AM

Đây!

67029_untitled_16.png


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


#8 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 31 March 2014 - 01:11 PM

Ồ, Bác test trên lisp nào, đời CAD bao nhiêu ạ ^^ Cháu xin file đó, vì trên máy cháu thử k có vậy. Về phân tích thì hình trên chỉ xảy ra nếu Hatch bằng Point, còn bằng Object Ket chưa gặp

 

P/s :  thử mãi mới gặp trường hợp giống bác Hạ khi cả 2 thằng k kín. K biết có nằm trong dự trù của OP k nhưng cái đoạn ket viết k có lọc kín đâu ^^ (như đã @ bác Bình) 


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#9 ndtnv

ndtnv

    biết lệnh minsert

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

Đã gửi 31 March 2014 - 01:31 PM

Ồ, Bác test trên lisp nào, đời CAD bao nhiêu ạ ^^ Cháu xin file đó, vì trên máy cháu thử k có vậy. Về phân tích thì hình trên chỉ xảy ra nếu Hatch bằng Point, còn bằng Object Ket chưa gặp

 

P/s :  thử mãi mới gặp trường hợp giống bác Hạ khi cả 2 thằng k kín. K biết có nằm trong dự trù của OP k nhưng cái đoạn ket viết k có lọc kín đâu ^^ (như đã @ bác Bình) 

Biến hệ thống HPSEPARATE


  • 1

#10 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 31 March 2014 - 01:48 PM

ồ ở máy ket luôn để separate. H ket ở ngoài rồi, nhờ bác Hạ test thử ^^ Nghe cũng có lý lắm. Tks bác Hạ và bác ntdnv
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 31 March 2014 - 01:50 PM

Mọi người test thêm cái này cho vui:

67029_untitled_17.png

http://www.cadviet.c...7029_ket_xu.dwg


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


#12 Hoan1111

Hoan1111

    biết lệnh adcenter

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

Đã gửi 31 March 2014 - 02:46 PM

114276_ddsg.png

 

Em không dùng biến như bác Ndtvn. Em dùng bỏ chọn Cre.... để có kết quả như của bác Hà

Tạm kết luận: Dùng dùng lệnh H (cad) cũng tương đương dùng lệnh HP (lisp), kết quả như nhau không hơn không kém (Em dùng thử cả AutoCAD2007 và AutoCAD2013)

Vấn đề em muốn biết là làm thế nào để khi hát  thì Pline hở nó không ăn theo Pline kín???


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#13 ndtnv

ndtnv

    biết lệnh minsert

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

Đã gửi 31 March 2014 - 03:41 PM

114276_ddsg.png

 

Em không dùng biến như bác Ndtvn. Em dùng bỏ chọn Cre.... để có kết quả như của bác Hà

Tạm kết luận: Dùng dùng lệnh H (cad) cũng tương đương dùng lệnh HP (lisp), kết quả như nhau không hơn không kém (Em dùng thử cả AutoCAD2007 và AutoCAD2013)

Vấn đề em muốn biết là làm thế nào để khi hát  thì Pline hở nó không ăn theo Pline kín???

 

Ô chọn Cre..   <=> HPSEPARATE

Lệnh HP là lệnh Hatch với bộ lọc chỉ chọn các Pline, nếu có thêm các đối tượng khác như Line, Arc.. thì HP không còn tương đương H.

Với các Pline kín, Hatch của từng Pline sẽ phân biệt.

Nếu có Pline hở hoặc Line, các đối tượng hở sẽ bắt cặp với các đối tượng kín cho ra các Hatch không kiểm soát được.

Trong trường hợp này, nếu chọn các đối tượng theo thứ tự khác nhau, kết quả thu được cũng khác nhau


  • 0

#14 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 31 March 2014 - 05:37 PM

Xét lại thì tất cả các hình đều có lý của nó ^^ Ket vẫn dạy học sinh là k được Hatch Select Object các đối tượng mà tự thân nó k kín, giờ vẫn giữ quan điểm đó ^^ (trừ TH đặc biệt), k biết đến bao giờ thì thay đổi.

Vụ dính vào nhau thì hatch riêng chắc sẽ ổn thôi 

(defun c:hp()
(setq ss (ssget (list (cons 0 "*POLYLINE"))) i -1)
(while (setq e (ssname ss (setq i (1+ i)))) (command ".-Hatch" "s" e "" ""))
)

Còn vụ thế nào là kín thì tuỳ OP quy định, ket hem ý kiến


  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#15 Hoan1111

Hoan1111

    biết lệnh adcenter

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

Đã gửi 31 March 2014 - 09:09 PM

Em vừa thử lisp của bác, tình hình là  có khác với cái lisp lúc trưa một chút  :) :) :)

Em tò mò muốn hỏi  là có thể sửa lisp hiện giờ thành lisp có hai sự lựa chọn:

1_ Chỉ Hát được Pline kín, không cho Pline hở ăn theo được không ???

2_ Chỉ Hát phần giao của 2 hoặc nhiều Pline giao nhau như ảnh dưới đây được không??? (Cái này trong thực tế, em cũng hay gặp, hát nhiều sẽ mất nhiều thời gian, một vài cái thì không vấn đề gì)

114276_ogfa.png


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...