Tài liệu cad

Lisp làm nhẹ bản vẽ cad: lệnh SPA đổi 19 biến, 3 bẫy

Lisp làm nhẹ bản vẽ cad thực chất là lệnh SPA đổi 19 biến hiển thị. Bài liệt kê đủ từng biến, chỉ ba thiết lập nên bỏ, kèm mật khẩu giải nén.

  • autocad123.vn
  • 18/08/2023

Lisp làm nhẹ bản vẽ cad là gói được tải nhiều trên trang này, và cũng là gói dễ hiểu lầm nhất. Nó không cắt bớt thứ gì trong tệp DWG. Nó chỉ đổi một loạt thiết lập hiển thị của AutoCAD. Bản viết lại này mở gói ra, đọc hết mã nguồn, rồi tra lại các biến quan trọng trong tài liệu AutoCAD 2026.

Tóm tắt. Ruột gói là một tệp spa.lsp nặng 1.581 byte, đề ngày 31/03/2020, chỉ có đúng một lệnh tên SPA. Mật khẩu giải nén: autocad123. Lệnh đặt 19 biến hệ thống, chạy thêm hai lệnh, rồi ghi một giá trị vào sổ đăng ký Windows. Ba thiết lập trong đó nên bỏ trước khi dùng: GRIPOBJLIMIT, MAXACTVPINDEXCTL.

Tải về

spa.lsp — lệnh SPA đặt nhanh 19 biến hiển thị

Đúng liên kết Google Drive của bài gốc, giữ nguyên xi. Tải xuống được vào ngày 03/09/2026.

  • Dung lượng tải 81.511 byte, khoảng 80 KB.
  • Ruột gói một tệp LSP duy nhất, 1.581 byte, 136 dòng.
  • Số lệnh một lệnh, gõ là SPA.
  • Nguồn gốc dòng đầu mã ghi rõ đây là lisp miễn phí lấy từ diễn đàn cadviet.com.
Tải lisp làm nhẹ bản vẽ

Mật khẩu giải nén: autocad123

Lisp làm nhẹ bản vẽ cad thật ra làm gì

Mã nguồn dài 136 dòng và không có gì bí hiểm. Toàn bộ nội dung là ba danh sách. Danh sách thứ nhất gồm các cặp tên biến và giá trị, đưa thẳng cho hàm setvar. Danh sách thứ hai là hai lệnh gõ vào dòng nhắc. Danh sách thứ ba là một khoá sổ đăng ký Windows.

Vì vậy phải tách hai chuyện hay bị gộp làm một. Nhẹ máy là chuyện AutoCAD vẽ lại màn hình nhanh hay chậm. Nhẹ tệp là chuyện tệp DWG nặng bao nhiêu megabyte. Gói này chỉ động tới vế thứ nhất.

Gõ SPA một cái thì những gì bị đổi spa.lsp, một lệnh tên SPA 19 biến hệ thống, đặt bằng setvar 4 biến trong số đó nằm ngay trong bản vẽ 2 lệnh gõ vào dòng nhắc IMAGEQUALITY về Draft, VIEWRES về 200 1 khoá sổ đăng ký Windows InfoCenterOn về 0, tắt dải tìm kiếm góc phải Không câu nào đụng vào ruột tệp DWG.

Lệnh SPA chỉ chỉnh cách AutoCAD vẽ lên màn hình, không chỉnh nội dung bản vẽ.

Bảng đầy đủ những gì lệnh đặt

Bảng dưới đây liệt kê đúng thứ tự trong tệp. Cột giữa là con số lệnh đặt vào, không phải giá trị mặc định của AutoCAD.

Thiết lậpLệnh đặtViệc nó làm
DYNMODE0Tắt nhập liệu động, tức khung số bám theo con trỏ
QPMODE0Tắt bảng Quick Properties bật ra khi chọn đối tượng
DRAWORDERCTL0Bỏ giữ thứ tự vẽ sau khi sửa hình
HPDLGMODE1Luôn mở hộp thoại Hatch and Gradient thay cho thẻ ribbon
UCSDETECT0Tắt dò mặt phẳng UCS động khi vẽ trên khối 3D
LAYERDLGMODE0Lệnh LAYER mở bảng lớp kiểu cũ. Khai hai lần trong tệp
ROLLOVERTIPS0Tắt bảng chú thích hiện lên khi rê chuột qua đối tượng
SELECTIONCYCLING0Tắt chọn xoay vòng khi nhiều nét chồng lên nhau
HPQUICKPREVIEW0Tắt xem trước mảng hatch lúc đang rê chuột
NAVVCUBEDISPLAY0Giấu khối ViewCube ở góc phải trên
NAVBARDISPLAY0Giấu thanh điều hướng dọc bên phải
INDEXCTL3Bắt bản vẽ lưu kèm chỉ mục lớp và chỉ mục không gian
GRIPOBJLIMIT0Bỏ ngưỡng ẩn grip. Số 0 nghĩa là luôn hiện grip
SIGWARN0Tắt thông báo khi mở tệp có chữ ký số hợp lệ
SELECTIONAREA0Tắt mảng màu tô trong khung quét chọn
MAXACTVP5Chỉ cho 5 khung nhìn của một layout hoạt động cùng lúc
VTENABLE0Tắt hiệu ứng chuyển cảnh mượt khi đổi góc nhìn
COMMANDPREVIEW0Tắt xem trước kết quả của TRIM, EXTEND, OFFSET
SELECTIONPREVIEW0Tắt tô sáng đối tượng khi con trỏ đi ngang qua
IMAGEQUALITYDraftHạ chất lượng hiển thị ảnh chèn xuống mức nháp
VIEWRES200Hạ độ mịn của đường tròn và cung tròn
InfoCenterOn0Tắt dải InfoCenter, ghi vào sổ đăng ký chứ không phải biến

Đếm ra 20 dòng setvar nhưng chỉ 19 biến khác nhau, vì LAYERDLGMODE bị chép hai lần. Lỗi này vô hại, chỉ cho thấy danh sách được dán vội.

Một câu hỏi tự nhiên là tệp viết năm 2020 thì còn bao nhiêu dòng còn tác dụng. Câu trả lời là còn nguyên. Autodesk có một trang liệt kê mọi lệnh và biến bị loại bỏ kể từ đời 2013, và không cái tên nào trong bảng trên nằm trong danh sách đó.

Bốn thiết lập đi theo tệp chứ không ở lại máy

Đây là chỗ ít người để ý. Tài liệu Autodesk ghi rõ mục Saved in của từng biến. Bốn biến MAXACTVP, INDEXCTL, DRAWORDERCTLVIEWRES đều lưu trong bản vẽ, không lưu ở máy.

Nghĩa là bạn chạy lệnh trên bản vẽ nào thì bốn giá trị đó dính vào chính tệp đó. Gửi tệp cho đồng nghiệp thì chúng đi theo. Người nhận không hề chạy lisp mà vẫn chịu hậu quả. Các biến còn lại lưu ở máy hoặc ở hồ sơ người dùng, nên chỉ ảnh hưởng tới bạn.

Ba thiết lập nên bỏ trước khi dùng

GRIPOBJLIMIT đặt 0 là làm ngược

Đây là lỗi nặng nhất trong tệp. Tài liệu AutoCAD 2026 viết rõ, biến này che bớt grip khi vùng chọn có nhiều đối tượng hơn con số bạn đặt. Giá trị mặc định là 100. Và câu quan trọng nằm ở cuối: khi đặt bằng 0 thì grip luôn được hiển thị.

Nói cách khác, đặt 0 không phải là tắt grip. Đó là bỏ hẳn cái ngưỡng bảo vệ. Quét trúng năm nghìn đối tượng thì AutoCAD sẽ cố vẽ grip cho cả năm nghìn cái. Máy yếu là máy chết đứng ở đúng chỗ này. Muốn nhanh thì đặt một con số nhỏ, ví dụ 20, chứ không phải đặt 0.

MAXACTVP đặt 5 làm khung nhìn trống trơn

Mặc định của AutoCAD 2026 là 64, và một layout cho phép tối đa 256 khung nhìn hoạt động cùng lúc. Lệnh hạ xuống 5. Bản vẽ nào có sáu khung nhìn trở lên trong một layout thì phần dôi ra sẽ không hiện nội dung.

Người gặp cảnh này thường tưởng bản vẽ hỏng hoặc xref rơi mất. Tài liệu có thêm một câu an ủi: biến này không ảnh hưởng tới số khung nhìn được in ra. Nhưng nhìn trên màn hình thì vẫn là trống. Vì nó lưu trong bản vẽ, tệp gửi đi cũng mang theo con số 5.

INDEXCTL đặt 3 làm tệp to thêm

Biến này quyết định bản vẽ có lưu kèm chỉ mục lớp và chỉ mục không gian hay không. Mặc định là 0, tức không lưu gì. Lệnh đặt 3, tức lưu cả hai loại.

Chỉ mục chỉ đáng giá trong một trường hợp: bản vẽ được dùng làm xref và bên kia bật nạp theo yêu cầu. Ngoài trường hợp đó, nó chỉ là dữ liệu thừa ghi thêm vào tệp. Một gói mang tên làm nhẹ mà lại đẩy dung lượng lên thì đúng là ngược đời.

Những thiết lập còn lại, cái nào thật cái nào chỉ dọn màn hình

DRAWORDERCTL đặt 0 là thứ tăng tốc thật

Đây là mục hiếm hoi được chính Autodesk khuyên dùng để chạy nhanh hơn. Tài liệu viết thẳng rằng giá trị 0 dùng để cải thiện tốc độ các thao tác sửa trong bản vẽ lớn. Mặc định là 3.

Cái giá phải trả cũng được ghi rõ. Sau khi sửa, đối tượng sẽ nằm đè lên trên cho tới khi bạn gõ REGEN hoặc mở lại bản vẽ. Và đối tượng mới sinh ra từ BREAK, FILLET, HATCH, EXPLODE, TRIM, JOIN, PEDIT hay OFFSET sẽ không thừa hưởng thứ tự vẽ của đối tượng gốc. Người vẽ mặt bằng nhiều hatch sẽ thấy ngay.

VIEWRES năm 2026 ăn ít hơn năm 2020

Lệnh gửi ba thứ vào dòng nhắc: tên lệnh, chữ Y, rồi số 200. Chữ Y trả lời câu hỏi zoom nhanh của thời xưa. Tài liệu 2026 nói câu hỏi đó nay bị bỏ qua, chỉ giữ lại để các đoạn kịch bản cũ không gãy. Vậy chỉ con số 200 là còn tác dụng.

Bản thân con số đó cũng yếu đi. VIEWRES chỉ điều khiển độ mịn khi biến WHIPARC tắt. Mà tài liệu ghi rằng tăng tốc phần cứng sẽ bật WHIPARC lên với hầu hết card đồ hoạ. Lúc đó đường tròn và cung được vẽ như đường cong thật, không còn chia thành đoạn thẳng nữa. Máy đời mới bây giờ gần như đều rơi vào trường hợp này.

Hai biến đổi hẳn cách làm việc

Biến LAYERDLGMODE mặc định là 1, ứng với bảng Layer Properties Manager kiểu mới, mở ra vẫn vẽ tiếp được. Lệnh đặt 0, tức quay về bảng lớp kiểu cũ mà tài liệu mô tả là phải đóng đi mới làm tiếp được.

Biến HPDLGMODE mặc định là 2, nghĩa là khi ribbon đang bật thì lệnh HATCH không mở hộp thoại. Lệnh đặt 1, tức hộp thoại Hatch and Gradient luôn hiện ra. Hai thay đổi này không nhanh hơn được bao nhiêu, nhưng đủ để người dùng tưởng máy mình hỏng.

SIGWARN tắt một thông báo bảo mật

Biến này mặc định là 1. Đặt 0 thì AutoCAD không báo gì khi bạn mở tệp có chữ ký số hợp lệ. Chữ ký hỏng thì vẫn báo như thường, nên hậu quả không lớn. Chỉ cần biết đây không phải thiết lập tốc độ, mà nó lại nằm lẫn giữa những thiết lập tốc độ.

Mục duy nhất ghi vào sổ đăng ký

Cuối lệnh có một câu ghi giá trị InfoCenterOn bằng 0, đặt dưới nhánh người dùng của AutoCAD trong sổ đăng ký. InfoCenter là dải tìm kiếm và tài khoản ở góc phải trên. Thiết lập kiểu này thường phải mở lại AutoCAD mới thấy đổi.

Chỗ này mã viết cẩn thận hơn phần còn lại. Nó hỏi hàm vlax-user-product-key trước, nếu không có mới lùi về vlax-product-key. Nhánh lùi ấy nay đã lỗi thời, vì Autodesk thay hàm cũ bằng vlax-machine-product-key từ sau đời 2012. Nhánh chính thì vẫn là hàm còn dùng, nên đoạn này chạy tốt trên bản 2026.

Nạp thế nào, và vì sao nạp xong không thấy gì

Tệp tự chạy ngay khi nạp

Dòng cuối tệp là một câu gọi thẳng lệnh. Nghĩa là vừa nạp xong đã có hộp thoại báo hoàn tất, không cần gõ gì. Muốn chạy lại thì gõ SPA. Đối chiếu tệp acad.pgp của AutoCAD 2026 trên máy thì không có bí danh nào tên SPA, chỉ có SP, SPL, SPE và vài cái khác. Vậy lệnh này không giẫm lên lệnh sẵn có.

Chặn nạp là lý do phổ biến nhất

AutoCAD 2026 mặc định để SECURELOAD bằng 1 và danh sách thư mục tin cậy để trống. Tệp lisp nằm trong thư mục Downloads sẽ bị hỏi qua hộp thoại Security - Unsigned Executable File, với ba nút Always Load, Load Once và Do Not Load.

Nặng hơn là mức 2. Ở mức đó AutoCAD bỏ qua tệp trong im lặng, không báo lỗi, không báo gì cả. Người dùng tưởng tệp tải thiếu hoặc gói hỏng. Cách chữa dứt điểm là chép tệp vào một thư mục cố định rồi khai thư mục đó vào mục Trusted Locations trong OPTIONS. Nhắc thêm, ứng dụng đưa vào Startup Suite cũng đòi nằm trong thư mục tin cậy.

Một chỗ mã viết chưa chặt

Các câu setvar đều được bọc bằng vl-catch-all-apply. Nhờ vậy biến nào máy không có thì bỏ qua chứ không làm chết lệnh. Đó chính là lý do một tệp viết năm 2020 vẫn chạy trơn trên bản 2026.

Nhưng hai lệnh IMAGEQUALITY và VIEWRES thì gọi thẳng, không bọc gì, và tệp cũng không có hàm bắt lỗi. Nếu gãy giữa chừng, biến CMDECHO sẽ nằm lại ở 0 và bạn không còn thấy dòng nhắc nữa. Gặp cảnh đó thì gõ CMDECHO rồi nhập 1 là xong.

Cách trả lại như cũ

Lệnh không lưu giá trị cũ nên không có đường lùi sẵn. Đoạn dưới đặt lại bảy biến theo đúng giá trị mặc định ghi trong tài liệu AutoCAD 2026. Tôi viết đoạn này lúc đọc mã và chưa chạy thử trên máy, nên bạn hãy thử trên một bản vẽ nháp trước.

(defun c:spatrave ( / )
  (vl-load-com)
  (setvar "GRIPOBJLIMIT" 100)
  (setvar "MAXACTVP" 64)
  (setvar "INDEXCTL" 0)
  (setvar "DRAWORDERCTL" 3)
  (setvar "LAYERDLGMODE" 1)
  (setvar "HPDLGMODE" 2)
  (setvar "SIGWARN" 1)
  (princ "Da dat lai 7 bien theo mac dinh.")
  (princ)
)

Các biến giao diện còn lại thì bật lại từng cái, gõ tên biến rồi nhập số. Riêng VIEWRES nằm trong bản vẽ nên đừng đoán. Mở một bản vẽ mới từ đúng tệp mẫu bạn hay dùng, gõ VIEWRES xem nó đang là bao nhiêu, rồi quay lại đặt đúng con số ấy cho bản vẽ đã bị đổi.

Muốn nhẹ tệp thì phải làm việc khác

Nếu điều bạn cần là tệp DWG bớt nặng thì lisp này không giúp được. Việc đó thuộc về một nhóm lệnh khác hẳn, làm bằng tay và làm rất nhanh.

Hai việc khác nhau, hay bị gọi chung một tên NHẸ MÁY Màn hình vẽ lại nhanh hơn, dung lượng tệp giữ nguyên. Làm bằng lệnh SPA của gói tải trên đây, hoặc đặt tay từng biến hiển thị. NHẸ TỆP Số megabyte của tệp DWG giảm xuống. Làm bằng PURGE, OVERKILL, AUDIT, gỡ xref và ảnh chèn không còn dùng. INDEXCTL 3 của lệnh SPA còn đẩy tệp nặng thêm.

Chọn nhầm cột là mất công: đặt biến hiển thị không làm tệp bé đi một byte nào.

Video về vế dung lượng tệp

Video dưới đây thuộc vế bên phải của sơ đồ, tức giảm dung lượng tệp CAD. Nó không liên quan tới lệnh SPA, nhưng đúng là thứ nhiều người tìm khi gõ chữ làm nhẹ.

Nên dùng hay không

Nên, nếu bạn bỏ ba biến đã nêu và chấp nhận giao diện gọn đi. Phần lớn những gì còn lại chỉ là tắt các hiệu ứng phụ trợ, và trên máy yếu thì từng chút một cộng lại vẫn thấy khác.

Không nên, nếu bạn chạy nó trên mọi bản vẽ theo thói quen. Bốn biến nằm trong tệp sẽ theo bản vẽ đi khắp nơi. Hiểu đúng từng dòng rồi mới dùng thì lisp làm nhẹ bản vẽ cad vẫn là một tệp gọn gàng, đáng giữ trong bộ đồ nghề.

Xem thêm

Các bài cùng nhóm trên trang, đã kiểm còn truy cập được: cách load lisp dùng mãi mãi, danh mục lisp tổng hợp, lisp tính diện tích vùng hatch, lisp xoá layer, lisp cắt dim, lisp gạch chân text, lisp hatch bê tông cốt théplisp thống kê nhiều loại block.