Lisp ghi tọa độ là món quen của dân trắc địa và người làm hồ sơ hoàn công. Bấm vào một điểm trên bản vẽ, lisp tự viết hai con số tọa độ, kẻ đường dẫn, khoanh một vòng tròn đánh số, rồi dựng luôn bảng thống kê ở chỗ bạn chỉ. Bài này mở gói tải của trang ra, đọc thẳng mã nguồn, nên nói đúng tên lệnh, đúng số chữ số thập phân, và đúng chuyện hai trục X, Y bị hoán đổi.
Tóm tắt. Mật khẩu giải nén gói này là xaydungso.vn, không phải autocad123 quen thuộc như các bài khác. Bên trong chỉ có một tệp xuat toado.lsp nặng 3,0 KB, định nghĩa đúng một lệnh tên TD. Chạy TD, nhập chiều cao chữ, rồi bấm lần lượt các điểm cần ghi. Bấm Enter là lisp hỏi vị trí đặt bảng và dựng bảng ba cột. Hai điểm cần nhớ. Lisp ghi cố định hai chữ số thập phân. Và nó có hoán đổi trục theo quy ước trắc địa Việt Nam, tức cột ghi X nhận giá trị Y của AutoCAD.
Tải tệp và mật khẩu giải nén
Tệp nằm trên Google Drive. Mật khẩu giải nén của gói này là xaydungso.vn, viết thường, không phải mật khẩu chung mà nhiều bài khác trên trang đang dùng. Gói có kèm một ảnh chỉ đường sang trang khác để lấy mật khẩu, bạn không cần đi vòng như vậy nữa.
Lisp ghi tọa độ điểm và lập bảng tọa độ (lệnh TD)
Tệp AutoLISP ghi nhãn tọa độ lên bản vẽ rồi dựng bảng thống kê, dùng cho bản vẽ định vị và hồ sơ hoàn công.
- Định dạng AutoLISP (.lsp)
- Dung lượng 3,0 KB khi giải nén, gói tải 151 KB
- Đóng gói RAR, một tệp lisp
Mật khẩu giải nén: xaydungso.vn
Một điểm nhỏ để bạn khỏi tìm nhầm. Thư mục trong gói đặt tên là s032.xuat toado-diện tích tam giác đều, nhưng gói chỉ chứa đúng một tệp lisp tọa độ, không có phần tính diện tích tam giác. Tên thư mục là dấu vết của một lần gom tệp cũ, không phải nội dung thiếu.
Các tiện ích khác lấy từ bộ lisp cad tổng hợp cũng vậy. Tệp lisp nên để trong một thư mục cố định trên ổ C, ví dụ C:\lisp, đừng bỏ trong Downloads. Lý do nằm ở phần nạp lisp bên dưới: thư mục đó còn phải khai vào danh sách tin cậy thì lisp mới chạy trơn.
Lệnh TD làm được những gì
Ba bước chạy lệnh
Nạp lisp xong, gõ TD rồi Enter. Dòng lệnh hỏi ngay nhap chieu cao chu. Đây là chiều cao chữ trong đơn vị bản vẽ, không phải chiều cao chữ khi in ra giấy, và lisp chỉ hỏi đúng một lần cho cả lượt chạy. Gõ một số rồi Enter.
Hình 1. Bước đầu tiên của lệnh TD là hỏi chiều cao chữ, tính theo đơn vị bản vẽ.
Bước hai, lisp hỏi chon cac vi tri co toa do can ghi và chờ bạn bấm. Bấm xong một điểm là nhãn hiện ra ngay, rồi lisp hỏi tiếp điểm sau. Cứ bấm liên tục cho tới hết, xong thì bấm Enter để dừng. Nên bấm kèm truy bắt điểm, vì lisp lấy đúng tọa độ mà bạn đưa cho nó.
Bước ba, lisp hỏi vi tri dat bang. Bạn bấm một điểm trống trên bản vẽ, lisp dựng bảng ba cột ngay tại đó, kẻ đủ khung và đường phân dòng. Bảng liệt kê lại toàn bộ điểm vừa bấm theo đúng thứ tự.
Mỗi điểm được ghi những gì
Nhìn kết quả sẽ dễ hiểu hơn mô tả. Mỗi điểm bạn bấm nhận bốn thứ. Một đường dẫn gãy khúc chạy chéo lên rồi rẽ ngang. Hai con số tọa độ xếp trên dưới ở đoạn nằm ngang. Và một vòng tròn chứa số thứ tự dạng N1, N2, N3.
Hình 2. Kết quả thật của lệnh TD trên ba điểm. Số thứ tự N chạy theo thứ tự bấm, không theo vị trí.
Hình 3. Cấu tạo một nhãn tọa độ. Toàn bộ kích thước hình vẽ đều nhân theo chiều cao chữ bạn nhập.
Khoảng cách từ điểm bấm tới chỗ đặt chữ bằng ba lần chiều cao chữ, bán kính vòng tròn bằng một lần rưỡi chiều cao chữ. Nghĩa là chỉ cần nhập chiều cao chữ đúng thì cả cụm nhãn tự co giãn theo, không phải chỉnh gì thêm.
Bảng thống kê ở cuối có ba cột: số thứ tự, rồi hai cột tọa độ. Bề rộng cột lấy theo bề rộng chuỗi chữ của điểm cuối cùng bạn bấm, nên nếu điểm cuối có tọa độ ngắn bất thường thì bảng sẽ hơi chật.
Chỗ dễ sai nhất: X là bắc, Y là đông
Quy ước trắc địa ngược với trục của AutoCAD
Đây là điểm khiến nhiều bản vẽ định vị bị lập bảng sai mà không ai nhận ra cho tới lúc ra hiện trường, và nó đúng với cả những tiện ích khác trong bộ lisp CAD cho trắc địa. Trong trắc địa Việt Nam, X là trục bắc, Y là trục đông. Trong AutoCAD thì ngược lại: trục X nằm ngang, chạy sang phải, tức là hướng đông, còn trục Y dựng đứng, tức là hướng bắc. Hai hệ gọi tên chéo nhau.
Hệ quả rất cụ thể. Nếu bạn dùng lệnh ID của AutoCAD đọc một điểm rồi chép nguyên hai số vào cột X và cột Y của bảng tọa độ, bảng đó sai chỗ đứng của công trình. Trục X và trục Y ở đây là trục của hệ toạ độ AutoCAD. Máy toàn đạc nhận số theo quy ước trắc địa, nên hai số phải đảo lại.
Hình 4. Lisp lấy hoành độ của AutoCAD đưa vào cột Y và tung độ đưa vào cột X, đúng quy ước trắc địa.
Lisp này có hoán đổi không
Có. Đọc mã nguồn thì thấy rõ. Giá trị lấy từ trục X của AutoCAD được đưa vào cột mang tiêu đề Tọa độ Y. Giá trị lấy từ trục Y của AutoCAD đưa vào cột Tọa độ X. Trên bản vẽ cũng vậy: con số nằm trên là tung độ của AutoCAD, tức X trắc địa. Con số nằm dưới là hoành độ, tức Y trắc địa.
Nhưng có hai chỗ vẫn phải để mắt. Thứ nhất, hai số trên bản vẽ không có chữ X hay Y đi kèm, chỉ là hai dãy số trần, nên người xem bản vẽ phải tự biết số trên là X. Thứ hai, thứ tự cột trong bảng là số thứ tự, rồi Y, rồi mới tới X. Nhiều bảng tọa độ ở Việt Nam quen đặt X trước Y, nên khi in ra bạn nên đọc kỹ tiêu đề cột chứ đừng đọc theo thói quen.
Phép thử một phút, làm một lần rồi yên tâm cả bản vẽ: bấm TD vào một mốc đã biết tọa độ thật, ví dụ mốc gửi hay góc nhà đã đo. So hai số lisp ghi ra với số trong sổ đo. Khớp thì dùng tiếp, lệch thì bản vẽ của bạn đang đặt điểm theo chiều ngược, phải xoay dữ liệu chứ không phải sửa lisp.
Bản vẽ phải nằm trong hệ tọa độ gốc
Hàm lấy điểm của AutoLISP trả về tọa độ theo hệ tọa độ người dùng đang hiện hành, không phải hệ gốc. Ai đó đã dời hoặc xoay hệ tọa độ để vẽ chi tiết thì mọi con số lisp ghi ra đều là số của hệ đã dời. Chúng sai hoàn toàn so với tọa độ thực địa.
Trước khi chạy, gõ UCS rồi chọn World để về hệ gốc; cách quản lý các hệ toạ độ người dùng có trong bài lệnh UCSMAN. Muốn chắc hơn thì bật biểu tượng hệ tọa độ ở góc màn hình bằng lệnh UCSICON và nhìn xem nó có nằm đúng gốc không. Đây là bước hay bị bỏ qua nhất khi nhận bản vẽ từ người khác.
Ba thứ nên đặt trước khi chạy lisp ghi tọa độ
Chiều cao chữ tính theo tỉ lệ bản vẽ
Chiều cao chữ mà lisp hỏi là chiều cao trong đơn vị bản vẽ, nên phải quy đổi từ chiều cao muốn có trên giấy. Công thức chỉ có một dòng: lấy chiều cao chữ khi in nhân với mẫu số tỉ lệ bản vẽ. Bảng dưới tính sẵn cho bản vẽ đơn vị milimet.
| Tỉ lệ in | Chữ in ra 2,5 mm | Chữ in ra 3,5 mm |
|---|---|---|
| 1:50 | 125 | 175 |
| 1:100 | 250 | 350 |
| 1:200 | 500 | 700 |
| 1:500 | 1250 | 1750 |
Bản vẽ trắc địa hay vẽ theo đơn vị mét chứ không phải milimet. Khi đó lấy các số trong bảng chia thêm cho 1000, ví dụ tỉ lệ 1:500 với chữ in 2,5 mm thì nhập 1,25.
Lớp vẽ riêng cho nhãn tọa độ
Lisp không tạo lớp và cũng không đổi lớp. Mọi thứ nó vẽ ra đều rơi vào lớp đang hiện hành. Lúc chạy mà bạn đang đứng ở lớp nét tường thì chữ, đường dẫn, vòng tròn và cả bảng đều nằm lẫn vào đó. Sau này muốn tắt riêng nhãn tọa độ để in bản gọn thì rất phiền.
Cách gọn nhất là tạo trước một lớp tên TOADO, đặt nó thành lớp hiện hành rồi mới gõ TD; việc này cũng có lisp tạo layer làm hộ. Ai quen sửa lisp thì thêm một dòng ngay sau dòng đặt cmdecho, dạng (command "-layer" "m" "TOADO" "c" "3" "" ""). Lisp sẽ tự tạo lớp và tự chuyển sang lớp đó mỗi lần chạy.
Kiểu chữ và bảng mã tiếng Việt
Có hai cái bẫy nằm ở kiểu chữ, cả hai đều làm người dùng tưởng lisp hỏng.
Bẫy thứ nhất là kiểu chữ đặt sẵn chiều cao cố định khác 0. Khi đó lệnh viết chữ của AutoCAD không hỏi chiều cao nữa, cả chuỗi câu lệnh trong lisp lệch đi một nhịp, và bạn nhận về những dòng chữ vô nghĩa hoặc lỗi giữa chừng. Kiểu chữ đặt ở đâu và sửa ra sao thì xem bài lệnh TEXTSTYLE trong CAD. Chữa bằng cách vào STYLE, đặt lại chiều cao của kiểu chữ hiện hành về 0, rồi chạy lại.
Bẫy thứ hai nằm ở tiêu đề bảng. Hai chữ tiêu đề cột trong tệp lisp được gõ bằng bảng mã tiếng Việt cũ theo chuẩn TCVN3, thứ dùng cho các phông tên bắt đầu bằng dấu chấm như .VnArial hay .VnTime. Nếu kiểu chữ hiện hành của bạn dùng phông Unicode thông thường, tiêu đề bảng sẽ hiện ra ký tự lạ chứ không phải chữ Tọa độ. Cách chữa nhanh là mở tệp lsp bằng Notepad rồi sửa hai chuỗi tiêu đề thành chữ không dấu, ví dụ TOA DO X và TOA DO Y.
Số chữ số thập phân trong lisp là con số cố định, luôn ghi hai chữ số thập phân và luôn dùng dấu chấm, không phụ thuộc thiết lập đơn vị của bản vẽ. Muốn ba chữ số thì mở tệp lsp, tìm hai dòng có rtos ở đầu đoạn lặp và đổi số 2 đứng cuối thành 3. Đổi đúng hai dòng đó, đừng đổi con số 2 đứng trước, vì đó là mã kiểu số thập phân.
Còn một điều lisp không làm: nó chỉ ghi hai con số mặt bằng, không ghi cao độ. Hồ sơ hoàn công cần cả cao độ thì bạn phải ghi thêm bằng cách khác. Cần toạ độ các đỉnh của một thửa khép kín thì dùng lisp xuất toạ độ đỉnh hình khép kín.
Nạp lisp trên AutoCAD 2026 và hộp thoại chặn
Nạp lisp thì gõ APPLOAD, trỏ tới tệp lsp, bấm Load; từng bước bấm có trong bài cách load lisp trong CAD. Nhưng đây là chỗ nhiều người tưởng lisp hỏng. AutoCAD đời mới không cho tệp lsp, fas hay vlx chưa ký chạy tự do. Tệp nằm ngoài danh sách thư mục tin cậy thì AutoCAD dừng lại và bật hộp thoại Security - Unsigned Executable File.
Hình 5. Hộp thoại chặn tệp lisp chưa ký. Ba nút ở đáy quyết định lisp có chạy hay không.
Ba nút có nghĩa khác nhau. Load Once cho chạy đúng lần này, lần sau hỏi lại. Do Not Load là không nạp, và đây chính là nút nhiều người bấm nhầm rồi kết luận lisp không chạy. Always Load thì AutoCAD nhớ và thôi hỏi. Cách gọn hơn là khai hẳn thư mục chứa lisp vào danh sách tin cậy: vào OPTIONS, thẻ Files, mục Trusted Locations, thêm thư mục của bạn. Danh sách này chính là biến TRUSTEDPATHS. Chỉ khai thư mục do bạn kiểm soát, đừng khai Downloads hay cả ổ đĩa.
Nạp bằng APPLOAD chỉ sống trong một phiên làm việc. Muốn lần nào mở AutoCAD cũng có sẵn lệnh TD thì trong hộp thoại APPLOAD, bấm Contents ở mục Startup Suite rồi thêm tệp vào đó.
Video dưới đây làm cùng việc theo hướng khác, ghi tọa độ hàng loạt kèm khoảng cách, xem để so cách làm.
Ghi tọa độ mà không cần lisp
Không phải máy nào cũng nạp được lisp, và có lúc bạn chỉ cần xem một điểm chứ không cần cả bảng. AutoCAD có sẵn vài đường.
Lệnh ID là đường ngắn nhất để đọc một điểm. Tài liệu của Autodesk mô tả đúng một câu. Lệnh này hiển thị giá trị tọa độ theo hệ tọa độ người dùng của một vị trí được chỉ định. Nó liệt kê cả ba giá trị X, Y, Z ra dòng lệnh. Lệnh này chỉ đọc chứ không viết chữ lên bản vẽ. Nhớ rằng số nó đưa ra là theo trục của AutoCAD, muốn ghi vào bảng trắc địa thì bạn phải tự đảo.
Lệnh DIMORDINATE là cách ghi tọa độ chính quy của AutoCAD, ít người Việt dùng. Nó tạo ra một loại kích thước riêng, đo khoảng cách ngang hoặc dọc từ gốc tọa độ tới điểm bạn chỉ, rồi viết con số đó ở đầu một đường dẫn. Tuỳ chọn Xdatum cho ra hoành độ, Ydatum cho ra tung độ. Vì nó đo từ gốc của hệ tọa độ hiện hành, muốn ra tọa độ tuyệt đối thì phải để hệ tọa độ ở World. Ưu điểm so với chữ viết tay là con số này gắn với điểm thật, dời điểm thì số tự cập nhật.
Trường dữ liệu cho ra chữ tự cập nhật. Theo hướng dẫn của Autodesk, bạn bấm đúp vào một đối tượng chữ rồi bấm chuột phải và chọn Insert Field. Trong hộp thoại, chọn Field Category là All và chọn Object trong danh sách Field Names. Bấm nút chọn đối tượng ngoài bản vẽ, rồi chọn thuộc tính muốn hiện trong ô Property. Danh sách thuộc tính thay đổi theo loại đối tượng, nên với một điểm thì bạn tìm mục vị trí trong danh sách đó. Cách này hợp khi bản vẽ còn phải chỉnh, vì chữ đi theo đối tượng.
Một cái tên hay bị nhắc nhầm ở đây là MEASUREGEOM. Lệnh đó đo khoảng cách, bán kính, góc, diện tích và thể tích. Tuỳ chọn Distance của nó có trả về các thành phần X, Y, Z, nhưng đó là hiệu giữa hai điểm chứ không phải tọa độ của một điểm. Cần tọa độ thì dùng ID hoặc DIMORDINATE, đừng dùng MEASUREGEOM.
Câu hỏi thường gặp
Gõ TD mà AutoCAD báo Unknown command?
Lisp chưa nạp. Soát theo thứ tự: đã chạy APPLOAD chưa, hộp thoại Security có hiện ra và bạn có lỡ bấm Do Not Load không, và bạn có vừa đóng mở lại AutoCAD không. Nạp bằng APPLOAD chỉ sống trong một phiên, muốn giữ mãi thì thêm tệp vào Startup Suite.
Trong hai số lisp ghi ra, số nào là X?
Số nằm trên là X theo quy ước trắc địa, tức hướng bắc, và nó lấy từ trục Y của AutoCAD. Số nằm dưới là Y, hướng đông, lấy từ trục X của AutoCAD. Trong bảng thống kê thì đọc theo tiêu đề cột, đừng đọc theo vị trí, vì cột Y đứng trước cột X.
Muốn ba chữ số thập phân thì sửa ở đâu?
Mở tệp lsp bằng Notepad, tìm hai dòng chứa rtos nằm trong vòng lặp bấm điểm. Mỗi dòng có hai con số đứng cuối, con số sau cùng là số chữ số thập phân. Đổi 2 thành 3 ở cả hai dòng rồi lưu lại, nạp lại lisp là xong.
Tiêu đề bảng ra ký tự lạ, sửa thế nào?
Tiêu đề trong tệp gõ theo bảng mã TCVN3 nên chỉ hiện đúng với các phông tên bắt đầu bằng dấu chấm. Đổi kiểu chữ hiện hành sang một phông như vậy, hoặc mở tệp lsp sửa hai chuỗi tiêu đề thành chữ không dấu. Cách thứ hai chắc ăn hơn vì bản vẽ ngày nay hầu hết dùng phông Unicode.
Bấm nhầm rồi, có xoá nhanh được không?
Được. Lisp gói toàn bộ một lượt chạy vào một nhóm hoàn tác, nên gõ U một lần là mất sạch nhãn và bảng của lượt đó. Nhớ thoát lệnh bằng Enter chứ đừng bấm Esc giữa chừng, vì bấm Esc sẽ bỏ dở nhóm hoàn tác đó.
Lisp này chạy trên AutoCAD LT không?
AutoCAD LT từ bản 2024 đã chạy được AutoLISP, và tệp này chỉ gọi các lệnh cơ bản như text, pline, circle nên nhiều khả năng chạy được. Các bản LT cũ hơn thì không. Trên LT đời cũ, đường thay thế gần nhất là DIMORDINATE.

















