AutoLISP khóa ẩn hiện layer CAD trong nháy mắt 1

AutoLISP khóa ẩn hiện layer CAD trong nháy mắt

Chắc chắn nhiều người biết dùng lệnh Layiso để hiển thị, Layoff để ẩn, Layon để bật lại toàn bộ layer.

Nhưng có mấy ai cảm thấy khó chịu khi mất hơn 10 giây mỗi khi LAYON.

Có chăng nữa cũng nghĩ rằng, bản vẽ có quá nhiều đối tượng, nhiều layers,.. nên bật layer chậm là điều đương nhiên.

Bản thân mình cũng ngộ nhận như vậy.

Cho đến một ngày mình nhận được câu hỏi: Tại sao cùng một bản vẽ nhưng thực hiện lệnh layon trên AutoCAD 2021 thì chậm chạm hơn bản 2007 rất nhiều.

Lúc đầu mình dự đoán:

  • CAD 2021 mới nên còn nhiều bug.
  • Cấu hình máy tính có vấn đề.
  • Xung đột đồ họa với phiên bản cao.

Nhưng sau một hồi kiểm tra:

  • PC thì thừa sức chạy.
  • Bản 2021 đã cập nhật đầy đủ.
  • Đã thêm hotfix sửa lỗi từ AutoDesk.

Mình đã loại bỏ các nguyên nhân trên. Thử bản vẽ đó trên các phiên bản từ 2013 trở lên vẫn chậm không khác gì 2021.

Vậy lỗi layon bị chậm hay khóa mở giật lag là do đâu?

Loại trừ nguyên nhân từ bản vẽ và máy tính chỉ còn lại ở cách thức thực hiện lệnh layon của các phiên bản AutoCAD.

Tiếc là mình không khể can thiệp vào source (data, code) của tệp lệnh. Nói đúng hơn là không tìm thấy.

Nên để giải quyết lỗi hiển thị layer chậm chỉ còn cách:

Tạo ra một số lệnh mới có chức năng tương tự, thông qua một đoạn code AutoLISP (viết bằng C#) và load vào CAD để sử dụng.

Giải pháp đã có, mời bạn xem cụ thể.

Cách layon bật layer nhanh

Mình chia sẻ cho bạn 1 tệp DLLs nhỏ gọn, nhưng có tới 7 lệnh giúp quản lý layer nhanh như chớp.

Dùng lệnh tùy chỉnh từ DLLs

Tệp này bao gồm các dòng code cấu hình lại lệnh, bỏ qua các bước rờm rà, các “ngõ ngách” mà các lệnh mặc định của cad gặp phải.

Nhờ thế có thể tăng tốc quá trình thực hiện lệnh:

  • Khóa toàn bộ layer (LL).
  • Khóa từng layer tùy chọn bằng cách select đối tượng (L1).
  • Mở khóa toàn bộ layer (UL).
  • Mở khóa từng loại layer tùy chọn (L2).
  • Ẩn các layer tùy chọn bằng cách select (T4).
  • Hiện tất các layer ẩn (T3).
  • Chỉ hiện layer tùy chọn (T8).

Để tải tệp DLL này, bạn có thể để lại email cuối bài.

Cách cài đặt:

  • Gõ lệnh NETLOAD.
  • Chọn tệp Layer.dll vừa tải.
  • OK, thưởng thức các lệnh bên trên.

Tuy nhiên, sau mỗi lần bạn tắt CAD, các tệp đã netload sẽ không còn hiệu lực, cần phải netload lại để sử dụng.

Chẳng lo, mình sẽ giúp bạn giải quyết nốt:

Cách cài đặt file DLL tự động load

Để AutoCAD tự động load DLL mỗi khi khởi động. Trên mạng cũng có nhiều hướng dẫn, ở đây bạn có thể làm theo cách đơn giản hơn:

  • Copy file Layer.dll bỏ vào thư mục C:/Program Files/Autodesk/AutoCAD xxx/Support.
  • Mở thư mục C:/Program Files/Autodesk/AutoCAD xxx/Support.
  • Tìm và mở file “acadxxxdoc.lsp” bằng Notepad.
  • Thêm đoạn code sau vào cuối: (command “_netload” “C:/Program Files/Autodesk/AutoCAD xxx/Support/Layer.dll”).
  • Lưu tệp acadxxxdoc.lsp (nếu không lưu được thì save as thư mục khác và copy vào thay thế).

Trong đó:

  • xxx: là phiên bản CAD.
  • C:/Program Files/Autodesk/AutoCAD xxx/Support: Thư mục lưu file layer.dll.

Giờ thì khởi động lại AutoCAD và thực hiện bật tắt layer xem nào.

Thật sự nhanh trong vài chớp mắt!

Sẵn tiện nói về vụ ẩn hiện layer, mình cũng lưu ý bạn điều này:

Phân biệt LAYOFF và LAYFR

Cả 2 đều là ẩn layer đi. Layoff thì dễ nhớ, dễ nhận biết hơn LayerFZ nên được nhiều người dùng.

Nhưng cá nhân mình thì thích LayerFZ hơn vì giúp tối ưu tốc độ bản vẽ CAD của mình.

Vì sao như vậy, để mình chỉ ra điểm khác nhau cho bạn.

Ẩn layer bằng layon thì đối tượng bị ẩn vẫn được xem là đối tượng hiện hành nhưng không nhìn thấy, nghĩa là:

  • Nếu dùng lệnh Ctrl + A hoặc Sellect All sẽ chọn được đối tượng ẩn.
  • Regen (refresh) bản vẽ vẫn có tác dụng với các layer ẩn.
  • Zoom A, Zoom E thu phóng bản vẽ, các đối tượng vẫn được tính tới.

Ngược lại, khi ẩn hay đóng băng bằng Layer Freeze (LAYFRZ) thì layers, đối tượng liên quan xem như tạm thời bị loại trừ khỏi bản vẽ. Vì thế:

  • Không thể chọn, Regen không tác dụng, thu phóng màn hình không ảnh hưởng.
  • Nhờ đó tốc độ thao tác trên AutoCAD cũng nhanh hơn hẳn với Layoff.

Vậy nên cũng dễ hiểu khi AutoDesk tách ra làm nhiều lệnh như vậy.

cac-lenh-an-hien-layer

Các chế độ hiển thị của layer

Các lệnh liên quan đến LayerOff:

  • Layiso: Chọn layer cần hiển thị.
  • Layon: Để bật tất cả layer ẩn.

Các lệnh liên quan đến LayFr:

  • LayThw: Bật tất cả layer đã đóng băng.

Ngoài ra còn một số lệnh quản lý layer rất thông dụng:

  • LayLck: Khóa layer.
  • LayUlk: Mở khóa layer.

Lời kết

Không biết bạn có cảm giác “cụt hứng” mỗi khi ngồi đợi AutoCAD thực hiện lệnh hay không. Nhưng nó thật sự khó chịu với mình.

Dù thế nào thì cũng không thừa khi thêm thủ thuật nhỏ này vào sổ tay bí quyết tăng tốc AutocAD của bạn.

Xem thêm:

Chúc bạn thành công!

Để tải lisp tăng tốc lệnh Layon:

  • Hãy đăng ký email ở form bên dưới
  • Nếu bạn đã đăng ký hãy truy cập thư viện

4000+ người đã nhận tài liệu miễn phí

Bạn đã đăng ký thành công. Mình vừa gửi cho bạn 1 email. Nhớ kiểm tra tất cả các hộp thư nhé!

Đã có lỗi!

5/5 - (9 bình chọn)
Donate

(Bài viết được cập nhật vào 27/08/2024)

10 Bình luận

  1. Dương Nhung
  2. Phước
  3. thịnh
  4. Son
  5. kim đức hiếu

Bình luận