Tài liệu cad

Lisp vẽ đường hàn trong CAD: tải miễn phí link Google Drive

Tải lisp vẽ đường hàn trong CAD miễn phí trên Google Drive, kèm mật khẩu giải nén. Đọc hết mã nguồn: bốn lệnh CTT, CTK, DH, HK và hai lỗi nên biết.

  • autocad123.vn
  • 11/09/2023

Lisp vẽ đường hàn trong CAD là bộ bốn lệnh CTT, CTK, DH và HK, nằm gọn trong một tệp .lsp trên Google Drive. Bài này mở gói ra, đọc hết 318 dòng mã nguồn và ghi lại đúng những gì bộ lệnh đó làm với bản vẽ của bạn.

Tóm tắt. Gói tải về chỉ có một tệp ctt_ctk_dh_dh_hk.lsp nặng 8.155 byte, không kèm bản vẽ mẫu. Mật khẩu giải nén là xaydungso.vn. Trong tệp có năm khối defun nhưng chỉ gọi được bốn lệnh, vì C:DH bị khai báo hai lần. Hai lệnh DH và HK khi kết thúc còn đặt cứng biến OSMODE bằng 179, tức là ghi đè thiết lập truy bắt điểm của bạn.

Tải lisp vẽ đường hàn trong CAD và mật khẩu giải nén

Liên kết Google Drive của bài gốc vẫn sống, đã kiểm lại ngày 03/09/2026. Hai dòng chú thích đầu tệp ghi rõ nguồn là diễn đàn CADViet. Tệp .lsp mang dấu thời gian ngày 22/10/2019. Bộ này cũng có mặt trong kho lisp CAD tổng hợp nếu bạn muốn tải một lần nhiều thứ.

Tải về

Lisp vẽ đường hàn — bốn lệnh CTT, CTK, DH, HK

Một tệp AutoLISP thuần. Không gọi hàm Express Tools, không gọi ActiveX.

  • Tên tệp ctt_ctk_dh_dh_hk.lsp
  • Dung lượng 8.155 byte
  • Số dòng 318
  • Lệnh gọi được 4
Tải tệp lisp

Mật khẩu giải nén: xaydungso.vn

Trong gói có kèm một ảnh chỉ đường đi tìm mật khẩu ở nơi khác. Bỏ qua ảnh đó, mật khẩu đã in ngay bên trên. Mật khẩu này phân biệt chữ hoa chữ thường, gõ đúng cả dấu chấm.

Bốn lệnh vẽ ra bốn kiểu ký hiệu khác nhau

Tên lệnh lấy thẳng từ các dòng (defun c:...) trong mã nguồn chứ không suy từ tên tệp. Cả bốn lệnh hỏi cùng một bộ câu hỏi: điểm đầu, điểm cuối, khoảng cách giữa các nét, rồi chiều dài nét. Trả lời xong là lisp rải ký hiệu dọc theo đoạn thẳng nối hai điểm đó.

LệnhChú thích trong mã nguồnKý hiệu vẽ raSố nét mỗi bước
CTTĐường hàn công trường thườngDấu nhân, rải liên tục2
CTKĐường hàn công trường nét khuấtDấu nhân, vẽ bốn bỏ hai2
DHĐường hànMột gạch xiên, rải liên tục1
HKĐường hàn nét khuấtMột gạch xiên, vẽ bốn bỏ hai1

Bon hang ky hieu duong han do bon lenh CTT, CTK, DH, HK ve ra trong AutoCAD

Hình 1. Ảnh gốc của bài năm 2020, chụp kết quả của cả bốn lệnh. Hai hàng trên là dấu nhân của CTT và CTK, hai hàng dưới là gạch xiên của DH và HK. Hàng thứ hai và hàng dưới cùng đứt quãng, đó là kiểu nét khuất.

Kiểu nét khuất do đúng một dòng tạo ra: (if (< (rem i 6) 4) ...). Vòng lặp vẫn chạy đủ số bước, nhưng cứ bốn nét lại bỏ qua hai nét. Trên bản vẽ nó thành từng cụm bốn dấu cách đều, đúng quy ước phân biệt mối hàn tại xưởng với mối hàn ngoài công trường. Ai cần tài liệu nền cho phần ký hiệu này thì xem bộ tài liệu kết cấu thép.

Khoảng cách và chiều dài nét được nhớ lại

Lần chạy đầu tiên, hai giá trị này mặc định là 1.0. Từ lần sau, dòng nhắc hiện lại giá trị bạn vừa nhập trong dấu ngoặc nhọn. Bấm Enter là lấy luôn giá trị cũ. Đây là chỗ bộ lisp làm tốt: rải xong một mối hàn, các mối tiếp theo chỉ cần chọn hai điểm.

Một chú thích trong mã hứa rằng chiều dài nét mặc định bằng 0,75 lần khoảng cách. Lời hứa đó không thành hiện thực. Ngay phía trên, chiều dài đã được gán bằng 1.0 rồi, nên nhánh 0,75 không bao giờ chạy tới. Đừng trông vào nó, cứ nhập tay con số bạn muốn.

Năm khối defun nhưng chỉ bốn lệnh, vì DH bị viết hai lần

Tên tệp ctt_ctk_dh_dh_hk có chữ dh hai lần. Đó không phải lỗi gõ. Trong tệp có thật hai khối (defun C:DH ...), ở dòng 165 và dòng 216. AutoLISP nạp tuần tự từ trên xuống, nên bản sau ghi đè bản trước. Gõ DH là bạn luôn chạy bản ở dòng 216.

ctt_ctk_dh_dh_hk.lsp 318 dòng · 5 khối defun · 4 lệnh gọi được Dòng 8 · C:CTT — gọi được Dòng 85 · C:CTK — gọi được Dòng 165 · C:DH — bị ghi đè, mã chết Bản này biết hỏi phía đặt mối hàn Dòng 216 · C:DH — bản thật sự chạy Dòng 266 · C:HK — gọi được Nạp từ trên xuống nên khối sau thắng khối trước

Hình 2. Vị trí năm khối defun trong tệp. Khối C:DH ở dòng 165 không bao giờ chạy, dù nó là bản có thêm câu hỏi chọn phía đặt mối hàn.

Đáng tiếc, bản bị ghi đè lại là bản khôn hơn. Nó hỏi thêm một điểm thứ ba, ý là bạn chỉ vào phía muốn đặt mối hàn, rồi nó tự lật nét về đúng bên. Bản đang chạy thì không hỏi, nét luôn ngả về một phía cố định do hướng vẽ quyết định. Vẽ ngược bên thì chọn lại điểm đầu và điểm cuối theo thứ tự ngược lại.

Muốn dùng cả hai thì mở tệp bằng Notepad, đổi dòng 165 từ (defun C:DH() thành một tên khác, ví dụ (defun C:DHP(). Lưu lại rồi nạp. Từ đó DH là bản cũ và DHP là bản hỏi phía. Nhớ đặt lại tên lớp hiện hành trước khi vẽ, vì mọi nét đều rơi vào lớp đang bật; xem cách quản lý trong bài lisp tạo layer trong CAD.

Cách nạp tệp và vì sao nạp xong gõ lệnh không thấy gì

Cách nạp nhanh nhất là gõ AP, tức lệnh APPLOAD, trỏ tới tệp .lsp rồi bấm Load và Close. Cách này chỉ có tác dụng cho tới khi bạn đóng AutoCAD.

Hop thoai Load Unload Applications dang tro toi tep ctt_ctk_dh_dh_hk

Hình 3. Hộp thoại Load/Unload Applications trong ảnh gốc của bài, đang trỏ đúng vào tệp ctt_ctk_dh_dh_hk. Ảnh chụp trên bản cũ nên khung Loaded Applications còn liệt kê acad2015.LSP.

Muốn nạp một lần dùng mãi thì bấm nút Contents trong khung Startup Suite ở góc dưới bên phải hộp thoại, rồi thêm tệp vào đó. Chi tiết từng bước có trong bài cách load lisp trong CAD.

Từ bản 2026, AutoCAD siết việc nạp tệp lạ chặt hơn hẳn. Ngoài hộp thoại Security quen thuộc hỏi bạn có tin tệp chưa ký hay không, còn một mức chặn nữa: tệp nằm ngoài danh sách thư mục tin cậy có thể bị bỏ qua trong im lặng, không báo lỗi, không báo gì cả. Bạn gõ CTT và AutoCAD chỉ trả lời Unknown command. Đó không phải tệp hỏng hay tải thiếu.

Cách xử lý là đưa thư mục chứa tệp .lsp vào danh sách thư mục tin cậy trong Options, đừng để nó nằm trong Downloads hay trên Desktop. Nếu vẫn không gọi được lệnh, bài không load được lisp trong CAD đi qua từng nguyên nhân một.

Bộ lisp này chạy được trên AutoCAD LT không

Chạy được, với LT từ bản 2024 trở đi. Lý do là toàn bộ mã chỉ dùng AutoLISP thuần: getpoint, getdist, command, setvar. Không có hàm acet- của Express Tools, cũng không có hàm vla- hay vlax- của ActiveX. Đó chính là hai thứ mà LT không có.

Hai chỗ trong mã nguồn nên biết trước khi dùng

Đây là phần bài cũ không nói. Cả bốn lệnh đều tắt truy bắt điểm trước khi vẽ, việc đó hợp lý vì nếu để bật thì các nét ngắn sẽ bị hút vào nhau. Vấn đề nằm ở lúc trả lại.

CTT và CTK làm đúng: đọc giá trị OSMODE cũ, cất đi, vẽ xong thì đặt lại đúng giá trị đó. Còn DH và HK thì không cất gì cả, và khi kết thúc chúng ghi thẳng (setvar "OSMODE" 179). Con số 179 là tổ hợp Endpoint, Midpoint, Quadrant, Intersection và Perpendicular. Nghĩa là chạy DH một lần thôi, thiết lập truy bắt điểm bạn dày công chỉnh đã bị thay bằng năm mục cố định đó. Muốn dựng lại theo ý mình thì mở bảng cài đặt theo hướng dẫn ở bài thiết lập chế độ bắt điểm Osnap.

Chỗ thứ hai là bộ lisp không có hàm bẫy lỗi *error*. Nếu bạn bấm ESC giữa chừng, chương trình dừng ngay tại đó. Truy bắt điểm vẫn đang tắt và nhóm Undo vừa mở vẫn chưa đóng. Cách gỡ là gõ tiếp một lệnh bất kỳ cho AutoCAD tự đóng nhóm, rồi bật lại truy bắt điểm bằng phím F3. Muốn hiểu vì sao nhóm Undo bỏ dở lại phiền thì đọc bài lệnh Undo trong CAD.

Biến trong lisp đều là biến toàn cục

Cả bốn khối đều khai báo kiểu (defun C:CTT ( / ), tức là sau dấu gạch chéo không có tên biến nào. Mọi biến trong đó, kể cả những cái tên rất chung như a, b, l, n và i, đều thành biến toàn cục của phiên làm việc. Nếu bạn nạp thêm một bộ lisp khác cũng dùng những tên này thì hai bên giẫm chân nhau. Nạp bộ vẽ đường hàn sau cùng là cách đơn giản nhất để tránh phiền.

Lỗi thường gặp khi dùng lisp vẽ đường hàn trong CAD

Hiện tượngNguyên nhânCách xử lý
Gõ CTT báo Unknown commandTệp chưa nạp, hoặc bị chặn im lặng vì nằm ngoài thư mục tin cậyĐưa thư mục vào danh sách tin cậy rồi nạp lại
Gõ DH ra bản không hỏi phía đặt mối hànKhối defun ở dòng 216 ghi đè khối ở dòng 165Đổi tên khối ở dòng 165 thành C:DHP
Truy bắt điểm tự đổi sau khi vẽDH và HK đặt cứng OSMODE bằng 179Chỉnh lại Osnap, hoặc sửa hai dòng đó trong tệp
Báo lỗi divide by zeroNhập khoảng cách bằng 0, hoặc chọn điểm cuối trùng điểm đầuNhập khoảng cách lớn hơn 0 và chọn hai điểm rời nhau
Nét hàn nằm sai lớpLisp vẽ bằng lệnh LINE trên lớp hiện hànhĐặt lớp ký hiệu làm lớp hiện hành trước khi gọi lệnh
Nét hàn ngả sai bênBản DH đang chạy không hỏi phíaChọn điểm đầu và điểm cuối theo thứ tự ngược lại

Còn một chi tiết nhỏ nữa. Dòng nhắc chiều dài nét in ra chữ Lenght, viết sai chính tả từ Length. Lỗi này có sẵn trong tệp gốc và không ảnh hưởng gì tới kết quả vẽ.

Câu hỏi thường gặp

Mật khẩu giải nén có phải autocad123 không

Không. Gói này mở bằng xaydungso.vn, đã thử tay và đối chiếu. Các gói khác trên trang có thể dùng mật khẩu khác, không có mật khẩu chung cho mọi gói.

Tệp có 318 dòng mà sao vẫn hiện vài dòng toàn dấu bằng

Đó là bảy dòng ngăn cách bị mất dấu chấm phẩy đầu dòng khi người ta chép bài từ diễn đàn về. AutoLISP đọc chúng như một tên biến chưa gán nên không chặn việc nạp. Nếu bạn sửa tệp thì thêm lại dấu chấm phẩy cho sạch.

Bộ lisp có vẽ được ký hiệu hàn theo tiêu chuẩn không

Nó chỉ rải nét ký hiệu dọc một đoạn thẳng, không vẽ mũi tên chỉ dẫn và không ghi chiều cao mối hàn. Phần đó bạn vẫn phải làm bằng lệnh vẽ và lệnh ghi chú thông thường.

Có nên sửa mã nguồn không

Nên, và chỉ cần Notepad. Hai chỗ đáng sửa nhất là đổi tên khối C:DH ở dòng 165, và thay hai dòng đặt cứng OSMODE bằng 179 trong DH và HK thành cách cất giữ rồi trả lại như CTT đang làm.

Bài này đọc mã nguồn để mô tả, không chạy thử từng lệnh trên máy. Ảnh kết quả là ảnh gốc của bài năm 2020.