Chuyển đến nội dung
Diễn đàn CADViet
bemove

[Share] lisp xóa tất cả đối tượng trong một layer

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

Dùng để xóa sạch tất cả đối tượng trong 1 layer :lol:

Lệnh "LD"

 

download

 

anh bemove có thể hướng dẫn cho tôi nếu gặp trường hợp block trong block và block tồn tại trong 2 layer vậy có cách nảo tìm ra đối tượng này để delete ?

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ác này cho tải về file nén mà không cho password để Unzip.

Bótay chấm cơm...

Trường hợp mà bác vbao nói thì chỉ cần lọc đối tượng nào mà assoc với 8 là OK rồi.

Còn chuyện block trong block hay một block có chứa nhiều đối tượng có layer khác nhau thì không lo gì vì bản thân block cũng thuộc một layer nhất đình thôi, nếu explode nó ra thì các đối tượng trong block mới chuyển về trạng thái layer gốc.

Ngu ý một chút, nếu không phải thì bỏ qua

....

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ác này cho tải về file nén mà không cho password để Unzip.

Bótay chấm cơm...

Trường hợp mà bác vbao nói thì chỉ cần lọc đối tượng nào mà assoc với 8 là OK rồi.

Còn chuyện block trong block hay một block có chứa nhiều đối tượng có layer khác nhau thì không lo gì vì bản thân block cũng thuộc một layer nhất đình thôi, nếu explode nó ra thì các đối tượng trong block mới chuyển về trạng thái layer gốc.

Ngu ý một chút, nếu không phải thì bỏ qua

....

 

tôi gặp trường hợp trong 1 bản vẽ có nhiều layer không thể purge được dù các layer này empty, sau khi explode các block trong bản vẽ và chuyển về layer 0, lúc đó mới có thể purge các layer empty này, vấn đề tôi muốn nêu ra: nếu block2 có chứa nội dung block1 và nằm ở nhiều layer khác nhau, có thủ thuật hoặc tiện ích nào có thể chỉ ra và đánh dấu block thuộc các trường hợp vừa nêu ? chứ explode toàn bộ các block trong bản vẽ tôi sợ khó quản lý, chỉnh sửa, cũng như dung lượng của file sẽ tăng đáng kể.

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ôi gặp trường hợp trong 1 bản vẽ có nhiều layer không thể purge được dù các layer này empty, sau khi explode các block trong bản vẽ và chuyển về layer 0, lúc đó mới có thể purge các layer empty này, vấn đề tôi muốn nêu ra: nếu block2 có chứa nội dung block1 và nằm ở nhiều layer khác nhau, có thủ thuật hoặc tiện ích nào có thể chỉ ra và đánh dấu block thuộc các trường hợp vừa nêu ? chứ explode toàn bộ các block trong bản vẽ tôi sợ khó quản lý, chỉnh sửa, cũng như dung lượng của file sẽ tăng đáng kể.

 

 

Vậy bác cần xóa Layer hay là xóa các đối tượng trong Layer.

Theo tôi hiểu thì bác cần như sau:

Bác muốn dùng lệng PURGE để xóa đi các layer không chứa đối tượng (== rỗng?)

Các layer này có vẽ như là không chứa đối tượng nhưng thực chất là một số đối tượng nằm trong block thuộc layer khác, khi bác dùng lệng Explode thì các đối tượng lại trả về layer gốc của nó.

Nếu vậy thì chương trình của bác gì ấy post lên chưa làm được đâu.

 

Xin lỗi các bác để sáng mai mình gửi.

Bây giờ buồn ngủ rồ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
Vậy bác cần xóa Layer hay là xóa các đối tượng trong Layer.

Theo tôi hiểu thì bác cần như sau:

Bác muốn dùng lệng PURGE để xóa đi các layer không chứa đối tượng (== rỗng?)

Các layer này có vẽ như là không chứa đối tượng nhưng thực chất là một số đối tượng nằm trong block thuộc layer khác, khi bác dùng lệng Explode thì các đối tượng lại trả về layer gốc của nó.

Nếu vậy thì chương trình của bác gì ấy post lên chưa làm được đâu.

 

Xin lỗi các bác để sáng mai mình gửi.

Bây giờ buồn ngủ rồi

 

cảm ơn vndesperados trước nhé.

  • 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
cảm ơn vndesperados trước nhé.

Xin lỗi nhé. Cái này khó thật đó. Mình nghĩ mãi mấy hôm rồi mà vẫn chưa tìm ra. Xin thêm ít thời gian nữa...

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

vndesperados khỏi cần viết lisp mà mất công. Nếu mục đích của vbao chỉ là pure các layer thì quá đơn giản.

 

Đầu tiên dùng lệnh laytrans để chuyển tất cả các đối tượng chứa các layer cần pure về layer 0. Bằng cách: cửa sổ Translate from (bên trái) chọn các layer cần pure, cửa sổ Translate to (bên phải) chọn layer 0; Rồi nhấn map, rồi nhấn tiếp translate.

 

Sau đó dùng lệnh pure, đảm bảo sạch 100%.

 

Điều này có thể làm được trong mọi trường hợp, có nghĩa là có thể pure toàn bộ layer của một bản vẽ (trừ layer 0) mà không cần phải explode, bedit, refedit, ....

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

Lệnh này dùng rất sướng khi xử lý một file đạc cần cho nó về layer 0. Trước đây để làm công việc này thì mất thời gian hơn rất nhiều với lệnh bedit và refedit mà còn không triệt để nữa chứ!! :s_dead:

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
vndesperados khỏi cần viết lisp mà mất công. Nếu mục đích của vbao chỉ là pure các layer thì quá đơn giản.

 

Đầu tiên dùng lệnh laytrans để chuyển tất cả các đối tượng chứa các layer cần pure về layer 0. Bằng cách: cửa sổ Translate from (bên trái) chọn các layer cần pure, cửa sổ Translate to (bên phải) chọn layer 0; Rồi nhấn map, rồi nhấn tiếp translate.

 

Sau đó dùng lệnh pure, đảm bảo sạch 100%.

 

Điều này có thể làm được trong mọi trường hợp, có nghĩa là có thể pure toàn bộ layer của một bản vẽ (trừ layer 0) mà không cần phải explode, bedit, refedit, ....

 

tôi hiện đang sử dụng cad 2000 nên không có lệnh laytrans, , khó khăn tôi gặp trong file này là không thể xóa mất 1 layer (trong file tôi có ghi chú các vướng mắc cần tháo gỡ) cảm ơn anh Hoanh đã giải đáp, tôi sẽ tìm hiểu thêm về lệnh này. Thanks

http://www.cadviet.com/upfiles/RChieu.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

Để xóa tất cả đối tượng thuộc 1 layer bất kỳ (trừ layer 0 và DEFPOINTS), AutoCAD có sẵn 1 lệnh là LAYDEL. Ở phiên bản 2000 thì lệnh này nằm trong Express Tool, với phiên bản cao hơn, lệnh trở thành lệnh cơ bản của CAD.

  • 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

Chào các bác. Cho em hỏi 1 câu là : Có cách nào để del các block rác không dùng đến trong file của mình không? Block chỉ hiện trong insert ( theo em nghĩ thì nó gây tốn dung lượng và khó quản lí list block của mình hơn ).

 

Dùng purge thì xóa cả layer... em muốn nó chỉ purge riêng block thôi có đượ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

Purge cho phép chọn đối tượng phi hình học (định nghĩa) nào đó để xóa, k nhất thiết à phải Purge All

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

×