Câu hỏi trong tiêu đề có câu trả lời đo được, và Viện yêu cầu học viên đo trước khi học: ghi lại một tuần làm hồ sơ, đếm những việc làm đi làm lại.
Kết quả phổ biến ở lớp lập trình AutoCAD của Viện: từ 4 đến 10 giờ mỗi tuần dành cho các thao tác mà một lệnh tự viết làm xong trong vài giây. Bài này hướng dẫn bạn tự đo, so sánh hai con đường AutoLISP và VB.NET, đưa ví dụ lệnh học viên đã viết, và nói thật về việc cần biết lập trình đến đâu.
Đo thử: năm việc lặp lại trong một tuần làm hồ sơ
Lấy một tuần làm việc bình thường của người triển khai bản vẽ, ghi lại mỗi lần làm năm việc dưới đây kèm thời gian. Con số ở cột cuối là trung bình từ bản ghi của học viên, những người làm hồ sơ 6 đến 8 giờ mỗi ngày.
| Việc lặp lại | Cách làm tay | Số lần mỗi tuần | Thời gian mỗi lần | Tổng mỗi tuần |
|---|---|---|---|---|
| 1. Đánh số và ghi chú hàng loạt: số cột, số cọc, tên phòng, số tờ | Gõ từng chữ, căn từng vị trí | 3 đến 5 | 20 đến 40 phút | 1 đến 3 giờ |
| 2. Thống kê từ bản vẽ: đếm block, đo tổng chiều dài, diện tích theo layer | Chọn, đếm, đo tay rồi gõ vào Excel | 3 đến 6 | 15 đến 30 phút | 1 đến 2,5 giờ |
| 3. Chuẩn hóa bản vẽ nhận về: đổi layer, style, xóa rác, đổi tên block | Từng lệnh cho từng loại đối tượng | 2 đến 4 | 20 đến 30 phút | 1 đến 2 giờ |
| 4. Vẽ chi tiết theo tham số: dầm, cọc, móng, cầu thang đổi kích thước | Vẽ lại hoặc sửa từ chi tiết cũ | 3 đến 8 | 10 đến 20 phút | 0,5 đến 2,5 giờ |
| 5. Xuất và in hàng loạt: PDF từng tờ, đổi khung tên, chèn dữ liệu từ Excel | Mở từng tờ, sửa, in | 1 đến 3 | 30 đến 60 phút | 0,5 đến 3 giờ |
| Cộng | 4 đến 13 giờ |
Nếu tổng của bạn dưới 3 giờ thì lập trình chưa đáng; các kỹ năng trong bài AutoCAD nâng cao gồm những gì? là đủ.
Từ 4 giờ trở lên, tức khoảng một ngày làm việc mỗi tuần, tự động hóa là khoản đầu tư hoàn vốn trong vài tháng. Càng nhiều người trong công ty cùng dùng công cụ đó, hoàn vốn càng nhanh.
AutoLISP hay VB.NET
AutoCAD có hai con đường lập trình phổ biến, và câu trả lời tùy mục tiêu của bạn.
| AutoLISP | VB.NET hoặc C# qua AutoCAD .NET API | |
|---|---|---|
| Là gì | Ngôn ngữ kịch bản có sẵn trong AutoCAD từ hàng chục năm; viết trong tệp văn bản, nạp là chạy | Lập trình trên nền .NET với thư viện của AutoCAD, biên dịch thành tệp DLL nạp vào phần mềm |
| Học | Dễ bắt đầu, cú pháp lạ vì nhiều ngoặc nhưng ít khái niệm; có sẵn hàng nghìn đoạn LISP chia sẻ để sửa | Cần nền lập trình cơ bản; đổi lại có công cụ chuyên nghiệp và gỡ lỗi tốt |
| Phù hợp với | Lệnh nhỏ, việc cá nhân, sửa nhanh, thử ý tưởng | Công cụ dùng chung cho cả công ty, có giao diện, xử lý dữ liệu lớn, nối với Excel hay cơ sở dữ liệu |
| Hiệu năng | Đủ cho bản vẽ thường, chậm với hàng chục nghìn đối tượng | Nhanh và ổn định |
| Chia sẻ, bảo trì | Dễ chia sẻ tệp, khó bảo vệ mã, khó bảo trì khi dài | Đóng gói được, cài cho nhiều máy, quản lý phiên bản |
| Trên AutoCAD LT | Các phiên bản gần đây hỗ trợ một phần | Không dùng được |
Lời khuyên: người làm hồ sơ muốn tự động hóa việc của chính mình thì bắt đầu bằng AutoLISP, một tuần là có lệnh đầu tiên. Người được giao làm công cụ cho cả phòng kỹ thuật thì học VB.NET hoặc C#, vì công cụ đó sẽ sống nhiều năm và nhiều người dùng.
Khóa Lập trình trong AutoCAD 10 buổi của Viện đi con đường thứ hai: nhập môn API AutoCAD .NET, nền tảng VB.NET, làm việc với thực thể đồ họa, chọn lọc và chỉnh sửa đối tượng, rồi dựng giao diện Form, Palette và Ribbon. Người đã biết VB.NET chuyển sang Revit API rất nhanh, vì cùng nền .NET.
Năm lệnh học viên đã tự viết
Năm công cụ dưới đây do học viên viết trong hoặc ngay sau khóa, hiện đang dùng thật ở công ty của họ.
Đánh số cọc theo lưới. Chọn các vòng tròn cọc trên mặt bằng móng, lệnh tự sắp xếp theo trục và ghi số hiệu đúng quy ước, kèm xuất bảng tọa độ ra Excel. Trước mất 40 phút cho mặt bằng 300 cọc, sau còn 10 giây.
Thống kê chiều dài ống theo layer và đường kính. Quét bản vẽ điện nước, cộng chiều dài polyline theo layer, ghi bảng ngay trên bản vẽ và xuất Excel. Trước mất nửa buổi, sau còn một lệnh. Công cụ này về sau được phòng dự toán dùng để kiểm tra chéo, việc mà bài Bóc tách khối lượng là gì? mô tả kỹ.
Chuẩn hóa bản vẽ nhận từ đối tác. Một lệnh làm trọn: ánh xạ layer đối tác sang layer công ty theo bảng, đổi text style, xóa layer rỗng, purge, audit, rồi ghi báo cáo những gì đã đổi. Trước mất 30 phút mỗi tệp và hay sót, sau còn 20 giây và không sót.
Vẽ chi tiết dầm theo tham số. Một cửa sổ nhập nhịp, tiết diện, số thanh thép và đai; lệnh vẽ mặt cắt cùng khai triển dầm đúng chuẩn công ty, kèm bảng thép. Trước 15 phút mỗi dầm, sau một phút và không sai chuẩn.
Xuất PDF cả bộ kèm khung tên từ Excel. Đọc danh sách tờ từ Excel, điền khung tên, in từng Layout ra PDF đúng tên tệp. Trước mất cả buổi mỗi lần phát hành, sau còn vài phút.
Điểm chung của cả năm: mỗi công cụ chỉ vài trăm dòng mã, giải quyết đúng một việc, và người viết là kỹ sư xây dựng chứ không phải lập trình viên. Giá trị của chúng không nằm ở độ phức tạp mà ở chỗ người viết biết chính xác việc nào đang tốn thời gian, lợi thế mà lập trình viên thuần không có.
Cần biết lập trình đến đâu
Với AutoLISP, gần như không cần nền gì. Học cú pháp và vài chục hàm trong một tuần, rồi học tiếp bằng cách sửa các đoạn LISP có sẵn cho đúng việc của mình. Giới hạn xuất hiện khi công cụ cần giao diện, cần xử lý dữ liệu lớn, hoặc cần chia cho nhiều người dùng.
Với VB.NET hoặc C#, cần ba lớp kiến thức.
- Nền lập trình cơ bản. Biến, điều kiện, vòng lặp, hàm, danh sách, lớp và đối tượng. Vài tuần học nghiêm túc, và khóa của Viện dành riêng một phần cho người chưa có nền này.
- Mô hình đối tượng của AutoCAD. Database, BlockTable, các thực thể như Line, Polyline, Circle, Text, BlockReference, rồi Transaction, SelectionSet, Layer, Layout. Kỹ sư học phần này nhanh vì đã hiểu các đối tượng đó từ góc nhìn người vẽ.
- Công cụ. Visual Studio, cấu trúc dự án, gỡ lỗi, đóng gói và nạp DLL cho máy người khác.
Cái không cần: bằng công nghệ thông tin, kinh nghiệm viết phần mềm thương mại, hay giải thuật phức tạp. Điều kiện thật sự chỉ có hai. Một là đã thành thạo AutoCAD, vì tự động hóa thứ mình chưa làm tay được là không khả thi. Hai là có sẵn ít nhất một việc lặp cụ thể để làm công cụ đầu tiên.
Bài AutoCAD nâng cao có một bài tự kiểm tra 10 câu; đạt từ 8 câu trở lên mới nên nghĩ đến lập trình.
Về thời gian hoàn vốn: với 4 đến 13 giờ tiết kiệm mỗi tuần theo bảng đo ở đầu bài, một khóa 10 buổi cộng vài tuần tự viết công cụ đầu tiên thường hoàn vốn trong quý đầu. Và khác với phần lớn kỹ năng phần mềm, công cụ viết ra là tài sản: người viết chuyển công ty thì công cụ vẫn ở lại.
Câu hỏi thường gặp
Lập trình AutoCAD có cần bản quyền đặc biệt không?
Không. AutoLISP và bộ .NET API đi kèm AutoCAD bản đầy đủ, còn thư viện .NET tải miễn phí từ Autodesk. Riêng AutoCAD LT thì hạn chế với .NET.
LISP tải trên mạng có dùng được không?
Dùng được, và đó là cách học tốt. Nhưng nên đọc hiểu trước khi chạy trên bản vẽ thật, vì LISP trôi nổi có thể xóa hoặc đổi đối tượng ngoài ý muốn. Biết LISP cơ bản cũng giúp bạn sửa chúng theo chuẩn công ty mình.
Nên học lập trình AutoCAD hay Revit API?
Tùy phần mềm bạn dùng hằng ngày. Công ty vẫn làm phần lớn hồ sơ trên CAD thì lập trình AutoCAD hoàn vốn nhanh hơn; công ty đã chuyển sang Revit thì học Revit API. Hai thứ dùng chung nền .NET nên học cái thứ hai sau cái thứ nhất rất nhanh.
Lệnh tự viết có hỏng khi nâng cấp AutoCAD không?
LISP thì gần như không. Công cụ .NET thường chỉ cần biên dịch lại theo phiên bản mới, hiếm khi phải sửa mã. Đây là lý do công ty nên có người phụ trách bảo trì bộ công cụ nội bộ.
Một người không có nền lập trình học bao lâu thì viết được lệnh đầu tiên?
Với AutoLISP thường là một tuần. Với VB.NET, khóa 10 buổi đủ để viết được công cụ đầu tiên giải quyết một việc thật, nhưng cần thêm vài tuần áp dụng để thành thạo.