Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
AUTOCAD_2019

Tìm chỗ bị hở khi vùng chưa khép kín

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

Chào các anh em có rất nhiều hình của các thửa đất, vấn đề ở đây là em muốn các thửa đất này phải khép kin hết, nhưng khi vẽ thì một số line chưa bị khép, mình phải zoom to lên và tim chỗ hở sau đó nối lại, cho em hỏi có lệnh nào để phát hiện chỗ đó bị hở để em đỡ tốn thời gian tìm chỗ đó không .... vì khi zoom nhỏ các line chỉ bị hở khoản các rất nhỏ rất khó tìm ... em cảm ơn...

em gửi file ví dụ ạ...

file cad mau.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
2 phút trước, AUTOCAD_2019 đã nói:

hoặc nó hatch báo lỗi nhưng không hiện vòng tròn đỏ

+ Lỗi theo kiểu thầy bói xem voi à bạn :))) Góp ý với bạn thế này.

+ "Hatch vùng hở" : Bạn có thể Search thẳng từ khóa này trên diễn đàn, sẽ ra vô số thứ tha hồ học hỏi.

+ Trong Hatch bạn có thể tạo ra 1 Polyline khép kín theo đúng đường biên dạng Hatch. Chẳng phải lo cô người mẫu bị hở hang không kín chỗ nào :)))

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

cái mình cần ở đây là tìm ra chỗ bị hở chứ không phải là hatch được hay không ví dụ như là nếu polyline đó chưa khép thì mình cần biết vị trí chỗ hở để bít nó lại ....

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
5 giờ trước, AUTOCAD_2019 đã nói:

cái mình cần ở đây là tìm ra chỗ bị hở chứ không phải là hatch được hay không ví dụ như là nếu polyline đó chưa khép thì mình cần biết vị trí chỗ hở để bít nó lại ....

Tự tìm hiểu cách dùng nhé.

903296472_nh.png.776f5281d1e70fe9c97cb14333e794ac.png228439319_nh.png.2fdce1c92ad538e74545c6e36aa31c54.png

 

GAP.LSP

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
11 giờ trước, Bee đã nói:

Tự tìm hiểu cách dùng nhé.

903296472_nh.png.776f5281d1e70fe9c97cb14333e794ac.png228439319_nh.png.2fdce1c92ad538e74545c6e36aa31c54.png

 

GAP.LSP

bạn ơi khi mình set cái gap khoản cách nó không thể nào hợp với ý mình hết vì nhưng chỗ nó liền nhưng nó vẫn đánh dấu bạn có thể test thử trên bản cad của mình đ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
22 giờ trước, AUTOCAD_2019 đã nói:

cái mình cần ở đây là tìm ra chỗ bị hở chứ không phải là hatch được hay không ví dụ như là nếu polyline đó chưa khép thì mình cần biết vị trí chỗ hở để bít nó lại ....

polyline chưa khép kín thì bạn bấm vào polyline đó xem nó close hay không?

Hay kiểm tra vector 1 của polyline đó thôi.

Còn vùng giới hạn nhiều line,arc, polyline thì thử pedit join lại xem nó ko join dc chỗ nào thì hở chỗ đó.

Còn viết lisp thì chỉ có thể dễ nhất là tìm 2 đỉnh có khoảng cách nhỏ hơn 1 giá trị nào đó thì báo ra thôi. Cũng có thể kiểm tra 2 điểm đó thuộc 2 đường có cắt nhau hay ko. Nhưng phức tạp hơn. Tuy nhiên việc bạn muốn làm là như thế nào vùng khép kín gồm những thành phần nào pl,line, arc, elip, block, spline... Thì mới viết theo đúng ý bạn dc chứ. 

Ít ra đưa bản vẽ lên , bạn muốn lệnh hiện như thế nào thông báo cho bạn.

 

  • Like 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 giờ} trướ}c, ngokiet đã nói:

polyline chưa khép kín thì bạn bấm vào polyline đó xem nó close hay không?

Hay kiểm tra vector 1 của polyline đó thôi.

Còn vùng giới hạn nhiều line,arc, polyline thì thử pedit join lại xem nó ko join dc chỗ nào thì hở chỗ đó.

Còn viết lisp thì chỉ có thể dễ nhất là tìm 2 đỉnh có khoảng cách nhỏ hơn 1 giá trị nào đó thì báo ra thôi. Cũng có thể kiểm tra 2 điểm đó thuộc 2 đường có cắt nhau hay ko. Nhưng phức tạp hơn. Tuy nhiên việc bạn muốn làm là như thế nào vùng khép kín gồm những thành phần nào pl,line, arc, elip, block, spline... Thì mới viết theo đúng ý bạn dc chứ. 

Ít ra đưa bản vẽ lên , bạn muốn lệnh hiện như thế nào thông báo cho bạn.

 

Mình đã thử dùng lệnh pe nhưng nó tự động nối lại nhưng chỗ mà mình không muốn và rất khó kiểm soát lắm ... mình có đưa bản vẽ ngay phía dưới đó bạn ... cái mình cần là tìm ra nhưng chỗ bị hở để mình nối nó lại như những chỗ trong file mình gửi á, để mình gửi lại...

file cad mau 2.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
19 giờ trước, AUTOCAD_2019 đã nói:

Mình đã thử dùng lệnh pe nhưng nó tự động nối lại nhưng chỗ mà mình không muốn và rất khó kiểm soát lắm ... mình có đưa bản vẽ ngay phía dưới đó bạn ... cái mình cần là tìm ra nhưng chỗ bị hở để mình nối nó lại như những chỗ trong file mình gửi á, để mình gửi lại...

file cad mau 2.dwg

Bản vẽ của bạn chồng nét rất nhiều nên nếu viết lisp nó chạy rất lâu khó kiểm tra lỗi.

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

Bạn có thể cho biết mục đích chính của viêc tìm chỗ hở của các thửa đất để làm gì ko, để xem có đáng để viết líp ko, tôi ko tin vẽ thửa đất lại cần độ chính xác tuyệt đối như vậy, ko lẽ hở chút xíu là có ng vào chiếm đất hay sao?

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
18 phút trước, Botot đã nói:

Bạn có thể cho biết mục đích chính của viêc tìm chỗ hở của các thửa đất để làm gì ko, để xem có đáng để viết líp ko, tôi ko tin vẽ thửa đất lại cần độ chính xác tuyệt đối như vậy, ko lẽ hở chút xíu là có ng vào chiếm đất hay sao?

 

Mục đính chính mình là cần đóng các khoản hở để có thể tính được diện tích các thửa đất....

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
3 giờ trước, Botot đã nói:

Bạn có thể cho biết mục đích chính của viêc tìm chỗ hở của các thửa đất để làm gì ko, để xem có đáng để viết líp ko, tôi ko tin vẽ thửa đất lại cần độ chính xác tuyệt đối như vậy, ko lẽ hở chút xíu là có ng vào chiếm đất hay sao?

thửa đất là không được hở, nếu hở lúc chạy topo diện tích gộp 2 thửa bạn ah..Hình như bạn không trong ngành địa 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
Vào lúc 29/5/2019 tại 15:19, AUTOCAD_2019 đã nói:

Chào các anh em có rất nhiều hình của các thửa đất, vấn đề ở đây là em muốn các thửa đất này phải khép kin hết, nhưng khi vẽ thì một số line chưa bị khép, mình phải zoom to lên và tim chỗ hở sau đó nối lại, cho em hỏi có lệnh nào để phát hiện chỗ đó bị hở để em đỡ tốn thời gian tìm chỗ đó không .... vì khi zoom nhỏ các line chỉ bị hở khoản các rất nhỏ rất khó tìm ... em cảm ơn...

em gửi file ví dụ ạ...

file cad mau.dwg

bạn xài win 32 hay 64bit, đúng ý bạn không..

loi.dwg

  • Like 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
Vào lúc 31/5/2019 tại 17:46, Gia phuc đã nói:

bạn xài win 32 hay 64bit, đúng ý bạn không..

loi.dwg

đúng rồi đấy bạn ơi, mà mình có thể chỉnh khoản cách để nó tìm ra chỗ đấy không, bạn làm sao hay thế chỉ mình với, mình sài win 64

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 giờ trước, AUTOCAD_2019 đã nói:

đúng rồi đấy bạn ơi, mà mình có thể chỉnh khoản cách để nó tìm ra chỗ đấy không, bạn làm sao hay thế chỉ mình với, mình sài win 64

64 Bit thi bít thì bó tay mình làm trên autocadmap 2004 nhé. cái này cứ hở là báo ah

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
3 giờ trước, Gia phuc đã nói:

64 Bit thi bít thì bó tay mình làm trên autocadmap 2004 nhé. cái này cứ hở là báo ah

bạn dow phần mềm autocadmap 2004 ở đâu vậy cho mình link đượ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
54 phút trước, AUTOCAD_2019 đã nói:

 

Tôi không có Cad trong tay, viết tạm thế này, bạn test xem có lỗi gì không.


; Tim khoang ho giua cac doi tuong.
(defun C:HA1(/ len ho ss i j e1 e2 sta1 end1 sta2 end2 dis1 dis2 dis3 dis4 dis5)
 (setq len (/ (getvar "viewsize") 100))
 (setq ho (getreal "\nNhap khoang cach ho min: "))
 (princ "\nChon cac doi tuong kiem tra do ho...")
 (setq ss (ssget '((0 . "ARC,*LINE"))))
 (repeat (setq i (sslength ss))
  (setq i (1- i) e1 (ssname ss i) sta1 (vlax-curve-getstartpoint e1) end1 (vlax-curve-getendpoint e1) dis1 (distance sta1 end1))
  (if (< dis1 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR end1 len 1)))
  (repeat (setq j (sslength ss))
   (setq j (1- j) e2 (ssname ss j) sta2 (vlax-curve-getstartpoint e2) end2 (vlax-curve-getendpoint e2))
   (setq dis2 (distance end1 end2) dis3 (distance end1 sta2) dis4 (distance sta1 sta2) dis5 (distance sta1 end2))
   (if (< dis2 ho) (progn (VePoint-GR end1 len 1) (VePoint-GR end2 len 1)))
   (if (< dis3 ho) (progn (VePoint-GR end1 len 1) (VePoint-GR sta2 len 1)))
   (if (< dis4 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR sta2 len 1)))
   (if (< dis5 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR end2 len 1))))))
;----- VÏ Point Grvecs.
(defun VePoint-GR(p len col / p1 p2 p3 p4)
 (setq p1 (polar p pi len) p2 (polar p 0 len) p3 (polar p (/ pi -2) len) p4 (polar p (/ pi 2) len))
 (grvecs (list col p1 p2 p3 p4)))
;-----
; Tim khoang ho giua cac doi tuong. 03/06/2019
(defun C:HA2(/ ho ss i j e1 e2 sta1 end1 sta2 end2 dis1 dis2 dis3 dis4 dis5)
 (setq ho (getreal "\nNhap khoang cach ho min: "))
 (princ "\nChon cac doi tuong kiem tra do ho...")
 (setq ss (ssget '((0 . "ARC,*LINE"))))
 (repeat (setq i (sslength ss))
  (setq i (1- i) e1 (ssname ss i) sta1 (vlax-curve-getstartpoint e1) end1 (vlax-curve-getendpoint e1) dis1 (distance sta1 end1))
  (if (< dis1 ho) (grdraw sta1 end1 1))
  (repeat (setq j (sslength ss))
   (setq j (1- j) e2 (ssname ss j) sta2 (vlax-curve-getstartpoint e2) end2 (vlax-curve-getendpoint e2))
   (setq dis2 (distance end1 end2) dis3 (distance end1 sta2) dis4 (distance sta1 sta2) dis5 (distance sta1 end2))
   (if (< dis2 ho) (grdraw end1 end2 1))
   (if (< dis3 ho) (grdraw end1 sta2 1))
   (if (< dis4 ho) (grdraw sta1 sta2 1))
   (if (< dis5 ho) (grdraw sta1 end2 1)))))
(vl-load-com)   

  • Like 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
25 phút trước, Doan Van Ha đã nói:

Tôi không có Cad trong tay, viết tạm thế này, bạn test xem có lỗi gì không.

 



; Tim khoang ho giua cac doi tuong.
(defun C:HA1(/ len ho ss i j e1 e2 sta1 end1 sta2 end2 dis1 dis2 dis3 dis4 dis5)
 (setq len (/ (getvar "viewsize") 100))
 (setq ho (getreal "\nNhap khoang cach ho min: "))
 (princ "\nChon cac doi tuong kiem tra do ho...")
 (setq ss (ssget '((0 . "ARC,*LINE"))))
 (repeat (setq i (sslength ss))
  (setq i (1- i) e1 (ssname ss i) sta1 (vlax-curve-getstartpoint e1) end1 (vlax-curve-getendpoint e1) dis1 (distance sta1 end1))
  (if (< dis1 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR end1 len 1)))
  (repeat (setq j (sslength ss))
   (setq j (1- j) e2 (ssname ss j) sta2 (vlax-curve-getstartpoint e2) end2 (vlax-curve-getendpoint e2))
   (setq dis2 (distance end1 end2) dis3 (distance end1 sta2) dis4 (distance sta1 sta2) dis5 (distance sta1 end2))
   (if (< dis2 ho) (progn (VePoint-GR end1 len 1) (VePoint-GR end2 len 1)))
   (if (< dis3 ho) (progn (VePoint-GR end1 len 1) (VePoint-GR sta2 len 1)))
   (if (< dis4 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR sta2 len 1)))
   (if (< dis5 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR end2 len 1))))))
;----- VÏ Point Grvecs.
(defun VePoint-GR(p len col / p1 p2 p3 p4)
 (setq p1 (polar p pi len) p2 (polar p 0 len) p3 (polar p (/ pi -2) len) p4 (polar p (/ pi 2) len))
 (grvecs (list col p1 p2 p3 p4)))
;-----
; Tim khoang ho giua cac doi tuong. 03/06/2019
(defun C:HA2(/ ho ss i j e1 e2 sta1 end1 sta2 end2 dis1 dis2 dis3 dis4 dis5)
 (setq ho (getreal "\nNhap khoang cach ho min: "))
 (princ "\nChon cac doi tuong kiem tra do ho...")
 (setq ss (ssget '((0 . "ARC,*LINE"))))
 (repeat (setq i (sslength ss))
  (setq i (1- i) e1 (ssname ss i) sta1 (vlax-curve-getstartpoint e1) end1 (vlax-curve-getendpoint e1) dis1 (distance sta1 end1))
  (if (< dis1 ho) (grdraw sta1 end1 1))
  (repeat (setq j (sslength ss))
   (setq j (1- j) e2 (ssname ss j) sta2 (vlax-curve-getstartpoint e2) end2 (vlax-curve-getendpoint e2))
   (setq dis2 (distance end1 end2) dis3 (distance end1 sta2) dis4 (distance sta1 sta2) dis5 (distance sta1 end2))
   (if (< dis2 ho) (grdraw end1 end2 1))
   (if (< dis3 ho) (grdraw end1 sta2 1))
   (if (< dis4 ho) (grdraw sta1 sta2 1))
   (if (< dis5 ho) (grdraw sta1 end2 1)))))
(vl-load-com)   

 

em cảm ơn anh để em test thử

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
2 giờ trước, Doan Van Ha đã nói:

Tôi không có Cad trong tay, viết tạm thế này, bạn test xem có lỗi gì không.

 



; Tim khoang ho giua cac doi tuong.
(defun C:HA1(/ len ho ss i j e1 e2 sta1 end1 sta2 end2 dis1 dis2 dis3 dis4 dis5)
 (setq len (/ (getvar "viewsize") 100))
 (setq ho (getreal "\nNhap khoang cach ho min: "))
 (princ "\nChon cac doi tuong kiem tra do ho...")
 (setq ss (ssget '((0 . "ARC,*LINE"))))
 (repeat (setq i (sslength ss))
  (setq i (1- i) e1 (ssname ss i) sta1 (vlax-curve-getstartpoint e1) end1 (vlax-curve-getendpoint e1) dis1 (distance sta1 end1))
  (if (< dis1 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR end1 len 1)))
  (repeat (setq j (sslength ss))
   (setq j (1- j) e2 (ssname ss j) sta2 (vlax-curve-getstartpoint e2) end2 (vlax-curve-getendpoint e2))
   (setq dis2 (distance end1 end2) dis3 (distance end1 sta2) dis4 (distance sta1 sta2) dis5 (distance sta1 end2))
   (if (< dis2 ho) (progn (VePoint-GR end1 len 1) (VePoint-GR end2 len 1)))
   (if (< dis3 ho) (progn (VePoint-GR end1 len 1) (VePoint-GR sta2 len 1)))
   (if (< dis4 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR sta2 len 1)))
   (if (< dis5 ho) (progn (VePoint-GR sta1 len 1) (VePoint-GR end2 len 1))))))
;----- VÏ Point Grvecs.
(defun VePoint-GR(p len col / p1 p2 p3 p4)
 (setq p1 (polar p pi len) p2 (polar p 0 len) p3 (polar p (/ pi -2) len) p4 (polar p (/ pi 2) len))
 (grvecs (list col p1 p2 p3 p4)))
;-----
; Tim khoang ho giua cac doi tuong. 03/06/2019
(defun C:HA2(/ ho ss i j e1 e2 sta1 end1 sta2 end2 dis1 dis2 dis3 dis4 dis5)
 (setq ho (getreal "\nNhap khoang cach ho min: "))
 (princ "\nChon cac doi tuong kiem tra do ho...")
 (setq ss (ssget '((0 . "ARC,*LINE"))))
 (repeat (setq i (sslength ss))
  (setq i (1- i) e1 (ssname ss i) sta1 (vlax-curve-getstartpoint e1) end1 (vlax-curve-getendpoint e1) dis1 (distance sta1 end1))
  (if (< dis1 ho) (grdraw sta1 end1 1))
  (repeat (setq j (sslength ss))
   (setq j (1- j) e2 (ssname ss j) sta2 (vlax-curve-getstartpoint e2) end2 (vlax-curve-getendpoint e2))
   (setq dis2 (distance end1 end2) dis3 (distance end1 sta2) dis4 (distance sta1 sta2) dis5 (distance sta1 end2))
   (if (< dis2 ho) (grdraw end1 end2 1))
   (if (< dis3 ho) (grdraw end1 sta2 1))
   (if (< dis4 ho) (grdraw sta1 sta2 1))
   (if (< dis5 ho) (grdraw sta1 end2 1)))))
(vl-load-com)   

 

anh ơi sao sau khi sử dụng lisp cho ra kết quả khi move hay sử dụng lệnh thì nó biến mất dấu x đỏ ạ nên không tài nào biết vị trí đượ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

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  

×