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  
ptd1987

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

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

ptd1987    5

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

 

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
ketxu    2.653

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

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
phamthanhbinh    3.123

@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ể???

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

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.

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
ketxu    2.653

@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ó :)

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
ketxu    2.653

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

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
ndtnv    397

Ồ, 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

  • 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
ketxu    2.653

ồ ở 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

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
Hoan1111    694

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

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
ndtnv    397

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

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
ketxu    2.653

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

  • 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
Hoan1111    694

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

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  

×