Dùng Claude MCP để vẽ chi tiết máy hoàn chỉnh trong AutoCAD
Bạn mô tả chi tiết bằng tiếng Việt trong ô chat, Claude điều khiển AutoCAD vẽ thật trên bản vẽ — từ một hình chữ nhật đầu tiên cho tới chi tiết trục bậc đầy đủ kích thước, khung tên và xuất PDF.
Chương 1
Giới thiệu: MCP là gì và vì sao Claude vẽ được AutoCAD
1.1. MCP (Model Context Protocol) là gì?
MCP (Model Context Protocol) là một chuẩn mở do Anthropic công bố vào cuối năm 2024. Nó định nghĩa cách một mô hình AI kết nối với các công cụ và nguồn dữ liệu bên ngoài — giống như cách USB định nghĩa một chuẩn cắm chung cho mọi thiết bị.
Trong hệ MCP có hai phía:
- MCP server: chương trình chạy trên máy của bạn, cung cấp một danh sách tools (công cụ) mà AI có thể gọi — ví dụ tool "vẽ đường tròn", tool "tạo layer", tool "chèn block".
- MCP client: ứng dụng chứa AI — ở đây là Claude Desktop. Khi bạn chat, Claude đọc danh sách tools của server, quyết định gọi tool nào, với tham số gì, và server thực thi lệnh đó trong phần mềm thật.
Hiểu đơn giản: MCP cho Claude một "kênh lệnh" vào phần mềm. Claude không tự vẽ bằng chuột — nó gọi các tool theo đúng thứ tự, và phần mềm đích (AutoCAD) mới là nơi bản vẽ thật sự thay đổi.
1.2. Vì sao dùng Claude + AutoCAD?
Cách làm việc thay đổi tận gốc: thay vì tự tay gõ lệnh LINE, CIRCLE, RECTANGLE hàng trăm lần, bạn mô tả kết quả bằng lời và Claude điều khiển AutoCAD vẽ. Cách này mạnh nhất ở những việc có ba đặc điểm:
- Lặp đi lặp lại: vẽ lưới lỗ bu-lông 8×12, hàng cột cách đều nhau, 40 block thiết bị xếp theo dây chuyền.
- Tốn thời gian nhưng dễ mô tả: dọn layer lộn xộn về đúng quy ước, đánh số thiết bị hàng loạt, ghi chú giống nhau cho nhiều chi tiết.
- Có quy luật rõ ràng: mọi kích thước, khoảng cách, tên gọi đều nói được bằng câu chữ và con số cụ thể.
Ngược lại, việc cần cảm nhận hình khối, phán đoán kỹ thuật hay đọc bản vẽ giấy thì vẫn là việc của kỹ sư. Claude qua MCP là một "tay vẽ" cực nhanh và không biết mệt — nhưng nó vẽ đúng những gì bạn mô tả, kể cả khi bạn mô tả sai. Chương 11 sẽ nói kỹ về giới hạn này.
1.3. Phân biệt quan trọng: MCP chính chủ của Autodesk KHÔNG vẽ được
Đây là điểm rất nhiều người nhầm. Khi tìm "AutoCAD MCP" bạn sẽ gặp hai loại server hoàn toàn khác nhau:
- MCP chính chủ của Autodesk (Product Help MCP Server): chỉ cho Claude đọc tài liệu help của các sản phẩm Autodesk để trả lời câu hỏi kiểu "lệnh này dùng thế nào". Nó không chạm vào bản vẽ, không vẽ được bất cứ thứ gì.
- MCP cộng đồng (ở đây là multiCAD-mcp): điều khiển AutoCAD thật qua COM/AutoLISP, có tools vẽ, sửa, ghi kích thước, xuất bản vẽ. Đây mới là thứ hướng dẫn này dùng.
Lưu ý quan trọng
Toàn bộ hướng dẫn này dùng multiCAD-mcp. Khi đọc tài liệu trên mạng, hãy kiểm tra kỹ server bạn sắp cài có tools điều khiển bản vẽ hay chỉ là server đọc tài liệu — tên gọi "MCP" giống nhau nhưng khả năng khác nhau hoàn toàn.
Chương 2
Chuẩn bị: máy, phần mềm và kiến thức nền
Trước khi cài đặt, hãy kiểm tra đủ 5 mục dưới đây. Thiếu một mục, quá trình cài ở Chương 3 sẽ dừng giữa chừng — thường là ở đúng bước khó gỡ nhất.
Cài Python 3.11.9 bằng winget (khuyến nghị)
Nếu máy chưa có Python, cài ngay bằng winget — trình quản lý gói có sẵn trên Windows 10/11 — thay vì tải installer thủ công. Làm theo thứ tự:
- Mở PowerShell với quyền Admin: bấm phím Windows, gõ "PowerShell", chuột phải vào kết quả → chọn Run as Administrator.
- Chạy lệnh cài đặt:
winget install Python.Python.3.11
- Kiểm tra version: đóng PowerShell, mở lại (để PATH được cập nhật), rồi gõ
python --version— phải hiện Python 3.11.9. - Kiểm tra pip: gõ
pip --versionđể chắc chắn pip đi kèm Python cũng đã sẵn sàng.
Kết quả mong đợi
Lệnh python --version in ra Python 3.11.9 và lệnh pip --version in ra phiên bản pip (dạng pip 24.x from ...\Python311\...). Thấy đủ hai kết quả này là Python đã sẵn sàng — sang phần kiểm tra bên dưới và Chương 3.
- Nếu winget báo không tìm thấy gói: chạy
winget search Pythonđể xem danh sách các gói Python hiện có, hoặc tải installer trực tiếp từ python.org. - Nếu cài bằng installer thủ công tải từ python.org, nhớ tick chọn Add python.exe to PATH ở màn hình đầu tiên của trình cài đặt — quên ô này là nguyên nhân phổ biến nhất khiến lệnh
pythonkhông chạy được trong PowerShell.
| Hạng mục | Yêu cầu | Lý do / ghi chú |
|---|---|---|
| Hệ điều hành | Windows 10 hoặc Windows 11 | Bắt buộc. multiCAD-mcp điều khiển AutoCAD qua COM — công nghệ tự động hóa riêng của Windows. Không có đường vòng qua macOS hay Linux cho hướng dẫn này. |
| AutoCAD | Bản full, phiên bản 2024 trở lên | Server loại .NET cần AutoCAD bản full. Bản LT bị cắt nhiều khả năng tự động hóa — với LT chỉ dùng được server loại AutoLISP, không dùng được đầy đủ như hướng dẫn này. |
| Python | Python 3.10 trở lên, cài native trên Windows | MCP server viết bằng Python và cần thư viện pywin32 để nói chuyện với COM. Không dùng WSL — Python trong WSL không chạm được vào AutoCAD đang chạy trên Windows. |
| Claude Desktop | Cài bản desktop cho Windows, đăng nhập tài khoản Pro | Claude Desktop là MCP client: nó đọc file config, khởi động MCP server và hiển thị danh sách tools trong ô chat. Tài khoản Pro là đủ cho nhu cầu chat + MCP. |
| Kiến thức AutoCAD | Biết cơ bản về layer, block, dimension | Bạn không cần vẽ nhanh bằng tay, nhưng cần đọc hiểu bản vẽ để kiểm tra kết quả Claude vẽ: layer nào chứa gì, block khác đối tượng thường ở đâu, dimension đo cái gì. Chương 4–5 sẽ ôn lại qua ví dụ thực tế. |
Kiểm tra nhanh trước khi sang Chương 3
- Mở PowerShell, gõ
py --version— phải hiện Python 3.10 trở lên. Nếu chưa có, cài Python từ python.org và nhớ tick ô Add python.exe to PATH khi cài. - Mở AutoCAD, tạo một bản vẽ mới trống — AutoCAD phải chạy ổn định, không báo lỗi license.
- Mở Claude Desktop và đăng nhập thành công, chat thử một câu bất kỳ.
- Chọn sẵn một thư mục cố định để chứa mã nguồn MCP server, ví dụ
C:\CAD\. Đường dẫn này sẽ xuất hiện trong file config ở Chương 3 — chọn đường dẫn ngắn, không dấu tiếng Việt, không khoảng trắng để tránh lỗi không đáng có.
Cảnh báo
Đừng cài Python qua WSL rồi thắc mắc vì sao server không thấy AutoCAD. COM là cầu nối phía Windows: Python, MCP server và AutoCAD phải cùng chạy trên Windows. Đây là lỗi tốn thời gian nhất của người mới vì thông báo lỗi thường không nói rõ nguyên nhân.
Chương 3
Cài đặt từng bước với multiCAD-mcp
Làm đúng thứ tự 5 bước dưới đây. Sau mỗi bước đều có khung Kết quả mong đợi — nếu chưa thấy đúng dấu hiệu đó thì dừng lại xử lý ngay, đừng làm tiếp, vì các bước sau đều dựa trên bước trước.
Cài uv — trình quản lý môi trường Python
uv là công cụ quản lý package và môi trường ảo Python, nhanh và gọn. Mở PowerShell (bấm phím Windows, gõ "PowerShell", Enter) và chạy lệnh sau:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Đóng PowerShell rồi mở lại để PATH được cập nhật, sau đó kiểm tra bằng lệnh uv --version.
Kết quả mong đợi
Lệnh uv --version in ra một dòng chứa số phiên bản (dạng uv 0.x.x). Nếu báo "uv is not recognized" thì bạn chưa mở lại PowerShell sau khi cài.
Clone mã nguồn và cài đặt thư viện
Vẫn trong PowerShell, di chuyển vào thư mục đã chọn ở Chương 2 (ví dụ C:\CAD) rồi clone repo và cài đặt:
cd C:\CAD
git clone https://github.com/AnCode666/multiCAD-mcp.git
cd multiCAD-mcp
uv sync --dev
uv run python -m pip install --upgrade pywin32
Trong đó: uv sync --dev tạo môi trường ảo .venv ngay trong thư mục dự án và cài mọi thư viện cần thiết; dòng cuối cài/nâng cấp pywin32 — thư viện bắt buộc để Python gọi được COM của Windows.
Cách thay thế nếu không dùng uv
py -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
py -m pip install --upgrade pywin32
Kết quả mong đợi
Trong thư mục multiCAD-mcp xuất hiện thư mục .venv, và đường dẫn C:\CAD\multiCAD-mcp\.venv\Scripts\python.exe tồn tại thật. Ghi lại đường dẫn này — Bước 3 sẽ dùng nguyên văn.
Thêm server vào file config của Claude Desktop
Mở Claude Desktop → vào menu Settings → mục Developer → bấm nút Edit Config. Claude Desktop sẽ mở file claude_desktop_config.json — file này nằm tại:
C:\Users\<tên-user>\AppData\Roaming\Claude\claude_desktop_config.json
Thêm đoạn sau vào file (nếu file đang trống hoặc chỉ có {} thì thay toàn bộ bằng đoạn này):
{
"mcpServers": {
"multiCAD": {
"command": "C:\\CAD\\multiCAD-mcp\\.venv\\Scripts\\python.exe",
"args": ["C:\\CAD\\multiCAD-mcp\\src\\server.py"]
}
}
}
Cấu trúc file config có dạng cây như sau — hiểu cây này sẽ giúp bạn tự sửa khi chuyển máy hoặc đổi thư mục cài đặt:
Lưu ý quan trọng
- Bắt buộc dùng đường dẫn TUYỆT ĐỐI tới python trong
.venv(ví dụC:\CAD\multiCAD-mcp\.venv\Scripts\python.exe). Đừng điền lệnhpycủa hệ thống — Python hệ thống không có các thư viện đã cài trong.venv, server sẽ chết ngay khi khởi động mà không báo lỗi rõ ràng. - Trong JSON, mỗi dấu
\của đường dẫn Windows phải viết thành\\. Quên thoát dấu này là nguyên nhân phổ biến nhất khiến file config bị lỗi cú pháp và Claude Desktop bỏ qua toàn bộ config. - Nếu trong file đã có sẵn server khác, chỉ thêm khóa
"multiCAD"vào bên trong"mcpServers", đừng ghi đè mất phần cũ.
Kết quả mong đợi
File lưu lại không báo lỗi khi mở bằng Notepad/VS Code; nội dung JSON hợp lệ (đủ dấu ngoặc đóng, không thừa dấu phẩy ở phần tử cuối).
Khởi động lại Claude Desktop và kiểm tra tools
Thoát hẳn Claude Desktop: chuột phải vào icon Claude ở khay hệ thống (góc phải thanh taskbar) → chọn Exit. Chỉ đóng cửa sổ là chưa đủ — app vẫn chạy nền và giữ config cũ. Sau đó mở lại Claude Desktop.
Trong ô chat, tìm icon hình cái búa / tools và bấm vào. Bạn phải thấy một mục server tên multiCAD kèm danh sách tools của nó (vẽ hình, layer, block, dimension...).
Kết quả mong đợi
Server multiCAD xuất hiện trong danh sách tools của ô chat. Nếu không thấy: kiểm tra lại cú pháp JSON ở Bước 3 và xem log tại %APPDATA%\Claude\logs\ (chi tiết ở Chương 11).
Vẽ thử hình đầu tiên
Mở AutoCAD, tạo một bản vẽ mới (menu File → New). Giữ cửa sổ AutoCAD đang mở, quay sang Claude Desktop và chat:
Câu chat mẫu
Vẽ hình chữ nhật 100x50 tại gốc tọa độ, đặt trên layer 0
Khi Claude hỏi quyền gọi tool (nút Allow for This Chat), bấm đồng ý. Chuyển sang cửa sổ AutoCAD và quan sát.
Kết quả mong đợi
AutoCAD tự xuất hiện hình chữ nhật 100×50 tại gốc tọa độ mà bạn không hề chạm chuột. Nếu hình chưa hiện trong khung nhìn, gõ lệnh ZOOM → E (Extents) trong AutoCAD để xem toàn cảnh. Xin chúc mừng — hệ thống đã thông.
Chương 4
Cơ bản: vẽ hình, layer, di chuyển và copy
Chương này dạy bạn "ngữ pháp" tối thiểu khi ra lệnh cho Claude: nêu rõ đối tượng gì, ở đâu, kích thước bao nhiêu, thuộc tính gì. Câu chat càng đủ bốn yếu tố này, kết quả càng đúng ngay lần đầu.
4.1. Vẽ hình cơ bản
Câu chat mẫu
Vẽ đường tròn tâm (50,50) bán kính 25 màu đỏ
Câu chat mẫu
Vẽ đoạn thẳng từ (0,0) đến (100,0)
Đằng sau hai câu chat này, Claude lần lượt gọi tool tương ứng với lệnh CIRCLE và LINE của AutoCAD, điền tọa độ và bán kính bạn đã nêu. Các hình quen thuộc khác — RECTANGLE, ARC, POLYLINE — cũng ra lệnh theo đúng mẫu câu trên: tên hình + tọa độ + kích thước.
Kết quả mong đợi
Đường tròn đỏ hiện đúng tâm (50,50); đoạn thẳng nằm trên trục X từ 0 đến 100. Gõ LIST trong AutoCAD, chọn đường tròn — bảng thông tin phải ghi radius = 25. Nếu sai tọa độ, thường là do câu chat thiếu dấu ngoặc hoặc lẫn đơn vị: hãy chat lại với tọa độ viết rõ dạng (x,y).
4.2. Quản lý layer
Layer là cách AutoCAD phân loại đối tượng theo chức năng (nét chính, nét đứt, đường tâm, kích thước...). Ra lệnh cho Claude quản lý layer cũng bằng câu chữ thường:
Câu chat mẫu
Tạo layer NET_DUT_MAY màu xanh dương, chuyển các đường tròn sang layer đó
Claude sẽ tạo layer mới với màu chỉ định, rồi quét bản vẽ, chọn mọi đường tròn và đổi thuộc tính layer của chúng. Việc này làm tay rất chán khi bản vẽ có hàng trăm đối tượng — đúng kiểu việc MCP làm tốt nhất.
Kết quả mong đợi
Mở bảng Layer Properties (lệnh LA): thấy layer NET_DUT_MAY màu xanh dương. Tắt layer này (biểu tượng bóng đèn) — mọi đường tròn biến mất khỏi màn hình, các hình khác vẫn còn.
4.3. Di chuyển và copy hàng loạt
Câu chat mẫu
Copy hình chữ nhật thành 3 bản cách nhau 20mm theo trục X
Câu chat mẫu
Di chuyển tất cả sang phải 50
Lưu ý cách diễn đạt: nói rõ số bản copy, khoảng cách và hướng/trục. Với "di chuyển tất cả", Claude hiểu là toàn bộ đối tượng trong bản vẽ — hãy chắc chắn đó đúng là ý bạn trước khi bấm Allow for This Chat.
Kết quả mong đợi
Sau câu copy: có tổng cộng 4 hình chữ nhật (1 gốc + 3 bản) xếp cách đều 20mm dọc trục X. Sau câu di chuyển: toàn bộ hình dịch sang phải đúng 50 đơn vị — kiểm tra bằng cách LIST một đối tượng và so tọa độ trước/sau.
Lưu ý quan trọng
Đơn vị trong AutoCAD mặc định là "đơn vị bản vẽ" — với bản vẽ cơ khí ở Việt Nam, quy ước chung là 1 đơn vị = 1mm. Nhưng khi làm layout nhà máy (Chương 7), khoảng cách có thể tính bằng mét ("cách nhau 15m"). Hãy nói rõ đơn vị trong câu chat mỗi khi con số có thể gây hiểu nhầm.
Chương 5
Trung cấp: block, attribute, dimension và dimstyle
Đây là chương bước ngoặt: từ "vẽ từng nét" lên "lắp ráp từ linh kiện chuẩn". Block là nền tảng của mọi bản vẽ chuyên nghiệp — và là nền tảng cho thư viện riêng ở Chương 7.
5.1. Tạo block từ đối tượng có sẵn
Vẽ một đối tượng mẫu một lần (ví dụ mặt bằng một lò nung), chọn nó trong AutoCAD, rồi ra lệnh:
Câu chat mẫu
Tạo block tên LO_NUNG_01 từ các đối tượng đã chọn, base point tại tâm lò
Đằng sau, Claude chạy quy trình tương đương lệnh BLOCK: gom các đối tượng đã chọn thành một định nghĩa block duy nhất. Base point (điểm gốc chèn) là điểm "tay cầm" của block — khi chèn, block sẽ bám vào con trỏ tại đúng điểm này. Chọn base point tại tâm (với vật tròn/xoay) hoặc tại một góc chuẩn (với vật chữ nhật) sẽ giúp việc đặt block sau này chính xác và dễ đoán.
Kết quả mong đợi
Các đối tượng rời rạc giờ chọn như một đối tượng duy nhất; bấm đúp vào nó, AutoCAD báo đây là block LO_NUNG_01. Kéo thả/chèn thử: block bám chuột tại đúng tâm lò.
5.2. Chèn block hàng loạt bằng lệnh INSERT
Câu chat mẫu
Chèn 3 block LO_NUNG_01 cách nhau 15m theo trục X
Mỗi lần chèn (tương đương lệnh INSERT) chỉ tạo một tham chiếu tới định nghĩa block — bản vẽ không nặng thêm bao nhiêu dù bạn chèn 3 hay 300 block. Đây là khác biệt cốt lõi giữa block và copy: copy nhân bản hình học, block nhân bản tham chiếu.
Kết quả mong đợi
Ba lò nung xuất hiện thẳng hàng, khoảng cách tâm–tâm đúng 15m. Dùng lệnh DIST đo giữa hai tâm liên tiếp để tự kiểm chứng.
5.3. Đọc và ghi block attribute
Attribute là dữ liệu chữ gắn trong block: tên máy, mã thiết bị, công suất... Mỗi lần chèn một block, các giá trị này có thể khác nhau dù hình học giống hệt. Với Claude, việc đọc/ghi attribute là việc giao tiếp hai chiều rất đáng giá:
Câu chat mẫu
Liệt kê các block LO_NUNG_01 trong bản vẽ kèm attribute CONG_SUAT của từng block
Câu chat mẫu
Đặt attribute CONG_SUAT = 90kW cho block lò nung thứ hai
Kết quả mong đợi
Claude trả về danh sách đúng số lượng block đang có trong bản vẽ kèm giá trị attribute hiện tại. Sau lệnh ghi, bấm đúp vào block thứ hai — hộp thoại attribute hiển thị CONG_SUAT = 90kW. Khả năng "đọc lại bản vẽ" này cũng là cách Claude tự kiểm tra việc mình vừa làm.
5.4. Dimension và ghi chú — ghi kích thước, ghi chữ
Câu chat mẫu
Ghi kích thước chiều dài tổng của chi tiết
Câu chat mẫu
Ghi chú 'Vật liệu: thép CT3' tại vị trí phía trên chi tiết, cỡ chữ 3.5
Dimension qua MCP tương ứng với họ lệnh DIMLINEAR, DIMDIAMETER, DIMRADIUS... của AutoCAD: Claude chọn hai điểm đo, đặt đường kích thước và AutoCAD tự tính con số. Ghi chú文字 là đối tượng text thường — dùng cho vật liệu, yêu cầu kỹ thuật, tiêu đề hình vẽ.
5.5. Dimstyle — thiết lập kiểu kích thước một lần, dùng mãi
Dimstyle quy định toàn bộ diện mạo của dimension: kiểu mũi tên, cỡ chữ số, khoảng cách đường dóng, đơn vị (mm), số lẻ thập phân. Nếu không thiết lập, mỗi dimension Claude tạo ra sẽ theo style mặc định — thường sai chuẩn trình bày của bản vẽ kỹ thuật Việt Nam.
Câu chat mẫu
Tạo dimstyle tên CT3_MM: đơn vị mm, chữ số cao 3.5, mũi tên đặc dài 3, và đặt làm dimstyle hiện hành
Kết quả mong đợi
Mở hộp thoại Dimension Style (lệnh DIMSTYLE): thấy style CT3_MM trong danh sách và đang là Current. Mọi dimension tạo sau đó đều đồng nhất về mũi tên và cỡ chữ.
Chương 6
Nâng cao: vẽ chi tiết trục (shaft) hoàn chỉnh
Đây là bài tập xuyên suốt của hướng dẫn: dùng mọi kỹ năng đã học để vẽ một chi tiết trục bậc hoàn chỉnh — đúng việc bạn sẽ làm thật ngoài công việc. Thông số chi tiết mẫu:
| Thông số | Giá trị | Ghi chú |
|---|---|---|
| Chiều dài tổng | 200mm | Ba bậc cộng lại: 60 + 80 + 60 |
| Bậc 1 (trái) | Ø25 × 60mm | Có rãnh then rộng 8mm, sâu 4mm; lỗ tâm ở đầu mút |
| Bậc 2 (giữa) | Ø40 × 80mm | Bậc lớn nhất — lắp vòng bi/bạc đạn |
| Bậc 3 (phải) | Ø32 × 60mm | Lỗ tâm ở đầu mút |
| Vát mép (chamfer) | 1×45° | Ở hai đầu mút trục |
| Bo góc (fillet) | R2 | Tại vai chuyển bậc Ø25→Ø40 và Ø40→Ø32 |
| Vật liệu | Thép CT3 | Ghi trong khung tên và ghi chú |
Vẽ biên dạng 2D — nửa mặt cắt trên bằng polyline
Trục là vật tròn xoay: chỉ cần vẽ biên dạng nửa trên theo đường tâm, gồm các đoạn bậc thang Ø25 → Ø40 → Ø32. Dùng một POLYLINE liên tục để sau này dễ đối xứng (mirror) xuống nửa dưới và dễ sửa.
Câu chat mẫu
Vẽ đường tâm ngang tại y=0 dài 220. Từ điểm (0, 12.5) vẽ polyline biên dạng nửa trên của trục dài tổng 200: bậc Ø25 dài 60, bậc Ø40 dài 80, bậc Ø32 dài 60, khép xuống đường tâm ở hai đầu. Sau đó mirror biên dạng qua đường tâm để được mặt cắt đầy đủ
Kết quả mong đợi
Mặt cắt trục hiện đúng dạng bậc thang đối xứng qua đường tâm: đo chiều cao tại bậc giữa được 40, hai bậc bên lần lượt 25 và 32; tổng chiều dài đúng 200.
Thêm rãnh then và lỗ tâm
Rãnh then trên bậc Ø25: rãnh chữ nhật rộng 8, sâu 4 tính từ mặt ngoài, chạy dọc 40mm ở giữa bậc. Lỗ tâm ở hai đầu mút: biểu diễn bằng hai đoạn chéo dạng côn 60° theo quy ước mặt cắt.
Câu chat mẫu
Trên bậc Ø25, vẽ rãnh then rộng 8 sâu 4, dài 40, nằm giữa bậc. Vẽ lỗ tâm dạng côn ở cả hai đầu mút trục theo mặt cắt
Kết quả mong đợi
Trên mặt cắt thấy rãnh then ăn sâu đúng 4mm vào bậc Ø25 (đáy rãnh cách đường tâm 8.5mm); hai đầu mút có hình côn lỗ tâm đối xứng.
Chamfer 1×45° và fillet R2 tại các vai bậc
Câu chat mẫu
Vát mép 1x45 độ ở hai đầu mút trục. Bo góc R2 tại hai vai chuyển bậc Ø25 lên Ø40 và Ø40 xuống Ø32
Lưu ý quan trọng
Một số thao tác FILLET/CHAMFER chỉ chạy ổn khi điều khiển qua live app (AutoCAD đang mở và tương tác trực tiếp), còn qua đường headless dễ thất bại lặng lẽ. Sau bước này bắt buộc zoom vào từng vai bậc và đầu mút để kiểm tra bằng mắt — đừng tin câu trả lời "đã xong" của chat.
Kết quả mong đợi
Hai đầu mút có cạnh vát chéo rõ ràng; tại vai bậc, góc vuông sắc đã thành cung bo R2 mượt. Nếu vai bậc vẫn vuông góc, fillet đã không chạy — yêu cầu Claude làm lại qua live app.
Ghi kích thước đầy đủ
Nguyên tắc ghi kích thước cho trục: đường kính ghi ở mặt cắt dọc (kèm ký hiệu Ø), chiều dài từng bậc ghi thành chuỗi phía dưới, chiều dài tổng ghi riêng một dòng ngoài cùng, kèm kích thước rãnh then và ghi chú độ nhám nếu bản vẽ yêu cầu.
Câu chat mẫu
Dùng dimstyle CT3_MM. Ghi đường kính Ø25, Ø40, Ø32 cho ba bậc ở phía trên mặt cắt. Phía dưới ghi chuỗi chiều dài 60, 80, 60 và chiều dài tổng 200. Ghi kích thước rãnh then 8x4 và vát mép 1x45 độ
Kết quả mong đợi
Đủ 3 kích thước đường kính, chuỗi 60–80–60 và tổng 200 (60+80+60 khớp nhau — tự kiểm chứng chéo). Mọi con số do AutoCAD đo từ hình học; nếu một con số lệch khỏi bảng thông số đầu chương, sai nằm ở hình vẽ chứ không phải ở dimension — quay lại bước tương ứng sửa hình.
Khung tên (title block)
Khung tên là phần "hồ sơ" của bản vẽ: tên chi tiết, vật liệu, tỷ lệ, người vẽ, ngày vẽ. Vẽ khung bằng các lệnh cơ bản rồi điền text — hoặc chèn một block khung tên có sẵn nếu bạn đã có mẫu công ty.
Câu chat mẫu
Vẽ khung tên ở góc dưới phải bản vẽ và điền: Tên chi tiết: TRUC BAC 3 CAP; Vật liệu: thép CT3; Tỷ lệ: 1:1; Người vẽ: (để trống); Ngày: hôm nay
Kết quả mong đợi
Khung tên xuất hiện đúng vị trí, đủ 5 trường thông tin. Đây là chi tiết nhỏ nhưng là thứ phân biệt "hình vẽ" với "bản vẽ kỹ thuật" khi mang đi duyệt hoặc gia công.
Kiểm tra toàn bộ và xuất PDF bằng PLOT
Câu chat mẫu
Liệt kê lại toàn bộ đối tượng trong bản vẽ theo layer, và kiểm tra có đối tượng nào nằm sai layer 0 không
Câu chat mẫu
Xuất bản vẽ ra PDF khổ A3 bằng lệnh PLOT, lưu vào thư mục bản vẽ với tên TRUC_BAC_3_CAP.pdf
Kết quả mong đợi
File PDF mở được, thấy đủ: mặt cắt trục, rãnh then, lỗ tâm, vát/bo góc, toàn bộ kích thước và khung tên điền đủ. In thử 1 bản giấy nếu sắp mang đi gia công.
Cảnh báo — kiểm tra bằng mắt trước khi tin
MCP cho Claude một kênh lệnh, không cho nó "nhận thức". Claude không nhìn thấy chi tiết thật, không tự biết kích thước nào là đúng — mọi kích thước trên bản vẽ đều xuất phát từ yêu cầu của bạn. Nếu bạn gõ nhầm Ø40 thành Ø400, Claude sẽ vẽ Ø400 một cách hoàn hảo. Người chịu trách nhiệm cuối cùng về bản vẽ luôn là bạn: zoom kiểm tra từng bước, đo lại bằng DIST/LIST, đối chiếu với Hình 6.1 trước khi xuất bản.
Chương 7
Xây dựng thư viện block riêng: tạo một lần, dùng mãi
Vẽ một cái máy mất một buổi; biến nó thành block chuẩn trong thư viện thì lần sau Claude đặt nó vào bất kỳ bản vẽ nào chỉ bằng một câu chat. Chương này là phần "đầu tư" — làm kỹ một lần, hưởng lợi mọi dự án về sau, đặc biệt là các dự án lớn như bố trí dây chuyền sản xuất với hàng chục thiết bị lặp lại.
7.1. Cách tạo một block chuẩn
Một block gọi là "chuẩn" khi nó thỏa bốn tiêu chí:
- Tên theo quy ước — nhìn tên biết ngay loại thiết bị và số thứ tự (xem mục 7.4). Không đặt tên kiểu
Block1,may moi,final2. - Base point hợp lý — đặt tại tâm (thiết bị tròn/xoay) hoặc góc chuẩn dưới–trái (thiết bị chữ nhật). Base point là điểm bạn sẽ dùng để định vị khi chèn; đặt tùy tiện thì mỗi lần chèn là một lần đoán.
- Hình học sạch — vẽ trên layer 0 để block kế thừa màu/layer của nơi nó được chèn vào; không để sót đường thừa, điểm lạc, đối tượng trùng nhau.
- Attribute đầy đủ — tối thiểu có mã, tên và thông số chính (công suất). Attribute là phần "dữ liệu" giúp Claude tìm, lọc và thống kê thiết bị trong bản vẽ.
Quy trình thực tế: vẽ thiết bị mẫu trong một bản vẽ nháp → dọn sạch → ra lệnh cho Claude tạo block theo Chương 5 → kiểm tra base point và attribute → lưu vào thư viện theo mục 7.2.
7.2. Tổ chức thư viện: một folder tập trung, mỗi loại máy một file DWG
Cách tổ chức bền vững nhất: mỗi loại máy là một file DWG riêng (trong file đó vẽ 1 block chuẩn của máy), tất cả nằm trong một folder tập trung duy nhất, chia thư mục con theo nhóm thiết bị:
D:\ThuVienBlock\
└── MayMoc\
├── LO_NUNG_01.dwg
├── MAY_CAN_02.dwg
├── BANG_TAI_03.dwg
└── CAU_TRUC_01.dwg
Cách khác: gom block vào Tool Palette của AutoCAD để kéo–thả bằng chuột. Tool Palette tiện khi bạn tự vẽ tay; còn khi làm việc qua Claude + MCP, thư viện dạng file DWG trong folder rõ ràng sẽ dễ ra lệnh bằng câu chữ hơn ("chèn block từ file MAY_CAN_02.dwg trong thư viện").
7.3. Quản lý hiệu quả, không tốn tài nguyên
- Ưu tiên XREF cho thiết bị lớn/lặp lại nhiều: bản vẽ layout chỉ chứa link tham chiếu tới file thư viện, nên dung lượng nhỏ, mở và lưu nhanh; khi nhà cung cấp đổi model máy, bạn chỉ sửa file trong thư viện.
- Thư viện tập trung một folder duy nhất: dễ backup, dễ chuyển máy, dễ chỉ cho Claude đúng đường dẫn. Tuyệt đối tránh block nằm rải rác trong hàng chục bản vẽ dự án khác nhau — đó là cách thư viện "chết" nhanh nhất.
- Không nhồi nhét chi tiết thừa vào block thư viện: block mặt bằng thiết bị chỉ cần biên dạng, vị trí đấu nối và attribute chính. Chi tiết bu-lông, mối hàn thuộc về bản vẽ chế tạo, không thuộc block layout.
7.4. Gọi Claude dùng block trong thư viện qua MCP
Khi thư viện đã có, câu chat mẫu điển hình:
Câu chat mẫu
Chèn block MAY_CAN_02 tại tọa độ (12000, 4500), đặt attribute CONG_SUAT = 75kW
Câu chat mẫu
Đặt 4 block BANG_TAI_03 nối tiếp nhau theo trục X, mỗi block cách nhau đúng chiều dài băng tải, attribute MA đánh số tăng dần từ BANG_TAI_03 đến BANG_TAI_06
Kết quả mong đợi
Block xuất hiện đúng tọa độ; bấm đúp kiểm tra attribute CONG_SUAT đúng giá trị đã ra lệnh. Với lệnh hàng loạt, yêu cầu Claude liệt kê lại toàn bộ block vừa chèn kèm attribute để đối chiếu — bước tự kiểm tra này bắt được hầu hết lỗi đánh số.
7.5. Quy ước đặt tên cho dự án lớn
Với dự án cỡ dây chuyền sản xuất thép — hàng chục loại thiết bị, nhiều bản vẽ, nhiều người cùng làm — quy ước đặt tên không còn là "nên có" mà là bắt buộc. Mẫu quy ước dùng nhất quán cho cả tên block, tên file DWG và attribute MA:
TIEN_TO_LOAI_MA
Ví dụ: LO_NUNG_01 (lò nung số 1)
MAY_CAN_02 (máy cán số 2)
BANG_TAI_03 (băng tải số 3)
Ba attribute bắt buộc có trong mọi block của dự án:
| Attribute | Ý nghĩa | Ví dụ |
|---|---|---|
MA | Mã thiết bị — trùng tên block/file | MAY_CAN_02 |
TEN | Tên đầy đủ của thiết bị | Máy cán nóng 4 trục |
CONG_SUAT | Công suất kèm đơn vị | 75kW |
Nhờ ba attribute này, Claude có thể trả lời các câu hỏi thống kê ngay trên bản vẽ: "tổng công suất các máy cán", "liệt kê thiết bị chưa có CONG_SUAT" — việc mà đọc bằng mắt trên layout lớn là gần như không thể.
7.6. Backup và quản lý phiên bản
- Backup theo ngày: nén toàn bộ folder
D:\ThuVienBlock\thành file ZIP kèm ngày tháng (ví dụThuVienBlock_2026-10-19.zip) và cất ở một nơi khác — ổ cứng ngoài hoặc cloud. Thư viện tích lũy nhiều tháng công sức, mất là làm lại từ đầu. - Git cho file DWG — dùng được nhưng phải hiểu giới hạn: DWG là file nhị phân, Git không hiển thị được diff nội dung và kho Git sẽ phình nhanh theo số phiên bản. Nếu dùng Git, chỉ commit khi block thay đổi thật, kèm commit message ghi rõ "sửa gì" (ví dụ: "MAY_CAN_02: đổi base point về tâm, thêm attribute CONG_SUAT") — vì bạn không xem lại được diff, message chính là nhật ký thay đổi duy nhất.
- Không bao giờ sửa thẳng file thư viện khi đang vội: mở file, lưu một bản sao có hậu tố ngày, sửa trên bản sao, kiểm tra xong mới thay thế file chuẩn.
Chương 8
Đóng gói thành LISP chạy local: Claude viết một lần, bạn dùng mãi không tốn token
MCP rất mạnh cho việc mới và việc khó — nhưng nếu ngày nào bạn cũng nhờ Claude làm đúng một việc cũ, bạn đang trả tiền token cho cùng một logic hết lần này đến lần khác. Chương này dạy cách thoát khỏi vòng lặp đó: nhờ Claude viết một lần thành file AutoLISP (.lsp), nạp vào AutoCAD, và từ đó chạy local mãi mãi — không cần mở Claude, không cần mạng, 0 token.
8.1. Vấn đề: mỗi lần vẽ qua MCP là một lần tốn token
Mỗi câu chat qua MCP đều tốn token ở cả hai chiều:
- Token chiều vào (input): câu lệnh của bạn cộng với toàn bộ ngữ cảnh hội thoại và danh sách tools của MCP server mà Claude phải "đọc lại" để biết mình có công cụ gì. Hội thoại càng dài, phần này càng phình.
- Token chiều ra (output): chuỗi tool call Claude sinh ra để vẽ — một việc vẽ lặp 50 đối tượng có thể là hàng chục tool call nối tiếp nhau.
Với việc làm một lần (thiết kế mới, xử lý tình huống lạ) thì chi phí đó xứng đáng. Nhưng với việc lặp đi lặp lại y hệt — vẽ dãy lỗ bu-lông, vẽ mặt bích, đánh số thiết bị — thì mỗi lần chạy lại là một lần trả tiền cho cùng một bài toán đã giải xong. Chưa kể tốc độ: mỗi lần phải chờ Claude suy luận và qua lại nhiều vòng chat, trong khi bản chất việc đó chỉ cần vài mili-giây tính toán.
8.2. Vì sao chọn AutoLISP làm đường đóng gói chính
AutoLISP là ngôn ngữ lập trình tích hợp sẵn trong AutoCAD từ hàng chục năm nay. Một chương trình AutoLISP là một file văn bản thuần đuôi .lsp — mở bằng Notepad cũng đọc được. Ba lý do khiến chương này đặt LISP lên hàng đầu, trước mọi lựa chọn khác:
- Chạy được cả trên AutoCAD LT 2024 trở lên (bản Windows). Đây là điểm nhiều người không biết: từ phiên bản 2024, bản LT — vốn bị cắt gần hết khả năng tự động hóa — đã hỗ trợ AutoLISP. Nghĩa là máy chỉ có LT vẫn chạy được mọi ví dụ trong chương này, dù không dùng được MCP server loại .NET như Chương 2–3.
- Không cần compile. Viết xong là chạy: nạp file vào AutoCAD là lệnh có hiệu lực ngay. Không Visual Studio, không build, không phiên bản .NET phải khớp.
- Dễ sửa. Muốn đổi đường kính mặc định, thêm một câu hỏi nhập liệu, sửa một con số — mở file text, sửa đúng dòng đó, nạp lại. Chính vì code ngắn và đọc được, bạn cũng kiểm chứng được Claude đã viết gì trước khi cho nó chạy trên bản vẽ thật.
Nguyên tắc phân vai: Claude là người viết code, AutoCAD là nơi chạy code. Việc của bạn chuyển từ "ra lệnh vẽ từng lần" sang "mô tả quy trình một lần cho rõ" — mục tiếp theo chỉ cách mô tả đó.
8.3. Cách nhờ Claude viết LISP: mô tả một lần cho rõ
Khác với chat vẽ trực tiếp (nơi bạn có thể nói thiếu rồi bổ sung), code LISP sẽ chạy không có Claude bên cạnh để hỏi lại. Vì vậy câu yêu cầu viết code phải đủ năm thứ: tên lệnh, dữ liệu nhập, hình học đầu ra, đơn vị/layer, và yêu cầu code hoàn chỉnh. Mẫu câu chat dùng lại được cho mọi việc:
Câu chat mẫu — nhờ viết LISP
Viết cho tôi một file AutoLISP hoàn chỉnh đặt tên BOLTPAT.lsp. Lệnh tên là BOLTPAT. Khi chạy, lệnh hỏi lần lượt: số lỗ, khoảng cách giữa hai lỗ liên tiếp, đường kính lỗ, và điểm bắt đầu; sau đó vẽ dãy lỗ tròn thẳng hàng theo trục X trên layer hiện hành, đơn vị mm. Code phải chạy độc lập không phụ thuộc thư viện ngoài, có comment ở đầu file ghi tên lệnh và cách dùng, cuối file in dòng thông báo đã nạp lệnh thành công.
- Nói rõ tên lệnh (viết hoa, ngắn, không trùng lệnh gốc của AutoCAD) — đây là từ bạn sẽ gõ mỗi lần chạy.
- Liệt kê từng dữ liệu nhập theo đúng thứ tự bạn muốn bị hỏi. LISP hỏi gì là do bạn định trước, không có chuyện "tự hiểu".
- Yêu cầu "code hoàn chỉnh, chạy độc lập" để Claude không viết tắt kiểu "phần còn lại tương tự" — căn bệnh phổ biến khi nhờ AI viết code dài.
- Bảo Claude viết comment và chuỗi thông báo không dấu (ví dụ "Da nap lenh") nếu bạn lưu file bằng Notepad với encoding mặc định — chữ tiếng Việt có dấu trong file .lsp lưu sai encoding sẽ thành ký tự rác khi AutoCAD đọc.
8.4. Nạp file bằng APPLOAD và gọi lệnh
Nhận code từ Claude xong, quy trình cố định bốn bước — áp dụng giống hệt cho mọi file .lsp về sau:
- Lưu file: dán code vào Notepad hoặc VS Code, lưu với tên đúng như đã thống nhất (ví dụ
BOLTPAT.lsp) vào thư mục thư viện (mục 8.10). Nếu dùng Notepad, ở hộp thoại lưu hãy chọn Save as type: All Files để file không bị thêm đuôi.txtthànhBOLTPAT.lsp.txt. - Nạp vào AutoCAD: gõ lệnh
APPLOAD→ trong hộp thoại Load/Unload Applications, duyệt tới file .lsp → bấm Load → bấm Close. - Kiểm tra dòng thông báo: dòng lệnh (Command line) phải hiện câu thông báo ở cuối file, dạng
Da nap xong BOLTPAT.LSP - go lenh BOLTPAT de chay.Thấy dòng này là nạp thành công; không thấy nghĩa là code có lỗi cú pháp — copy thông báo lỗi ở Command line gửi lại cho Claude sửa. - Gọi lệnh: gõ tên lệnh (
BOLTPAT) → Enter → trả lời lần lượt các câu hỏi trên Command line → xem kết quả.
Muốn lệnh tự có mặt mỗi lần mở AutoCAD: mở APPLOAD → ở mục Startup Suite bấm Contents... → Add... → chọn các file .lsp của bạn. Từ đó mỗi bản vẽ mở lên là các lệnh đã nạp sẵn, không cần APPLOAD lại.
Cảnh báo bảo mật
File .lsp là một chương trình chạy với toàn quyền trong phiên làm việc AutoCAD của bạn — về nguyên tắc nó sửa/xóa bản vẽ được như chính tay bạn. Chỉ nạp file mà bạn đọc hiểu được: code do Claude viết theo yêu cầu cụ thể của bạn (như ba ví dụ dưới đây, mỗi file chỉ vài chục dòng) hoặc code của chính bạn. Đừng tải file .lsp lạ trên mạng về nạp thử — và thói quen này cũng áp dụng ngược lại với MCP server, như Chương 11 đã lưu ý.
8.5. Ví dụ 1 — BOLTPAT: vẽ dãy lỗ bu-lông thẳng hàng
Việc kinh điển nhất của cơ khí và layout: một dãy lỗ cách đều nhau trên thanh giằng, ray đỡ, bản mã. Qua MCP, mỗi lần vẽ là một lần chat và tốn token; đóng gói thành LISP thì gõ một lệnh, trả lời bốn câu hỏi, xong.
;;; ============================================================
;;; BOLTPAT.LSP - Ve day lo bu-long thang hang theo truc X
;;; Lenh: BOLTPAT
;;; Nhap: so lo, khoang cach tam hai lo lien tiep,
;;; duong kinh lo, diem bat dau (tam lo dau tien)
;;; Don vi: mm. Lo duoc ve tren layer hien hanh.
;;; ============================================================
(defun c:BOLTPAT (/ n kc dk p0 i pt)
(setq n (getint "\nSo lo: "))
(setq kc (getdist "\nKhoang cach giua 2 lo lien tiep (mm): "))
(setq dk (getdist "\nDuong kinh lo (mm): "))
(setq p0 (getpoint "\nChon tam lo dau tien: "))
(if (and n kc dk p0 (> n 0))
(progn
(setq i 0)
(repeat n
(setq pt (list (+ (car p0) (* i kc)) (cadr p0) 0.0))
(entmake
(list
'(0 . "CIRCLE")
(cons 10 pt)
(cons 40 (/ dk 2.0))
)
)
(setq i (1+ i))
)
(princ (strcat "\nDa ve " (itoa n) " lo."))
)
(princ "\nChua du thong so - chua ve gi.")
)
(princ)
)
(princ "\nDa nap xong BOLTPAT.LSP - go lenh BOLTPAT de chay.")
(princ)
Đọc nhanh cấu trúc để thấy LISP không hề đáng sợ: defun c:BOLTPAT khai báo lệnh tên BOLTPAT; bốn lệnh getint / getdist / getpoint là bốn câu hỏi hiện trên Command line; vòng repeat lặp đúng số lỗ, mỗi vòng dùng entmake tạo một đối tượng CIRCLE tại tọa độ x tăng dần. Toàn bộ "trí tuệ" của việc vẽ dãy lỗ chỉ có vậy — và nó chạy lại chính xác như thế ở mọi lần sau.
Kết quả mong đợi
Sau câu trả lời cuối cùng, dãy lỗ hiện ra tức thì trên bản vẽ và Command line báo Da ve 6 lo. Nếu số lỗ hiện ra sai hoặc lệch vị trí, gần như chắc chắn do trả lời nhầm một tham số — gõ U (Undo) để hoàn tác cả dãy và chạy lại, thay vì sửa từng lỗ.
8.6. Ví dụ 2 — FLANGE: vẽ mặt bích tròn với vòng lỗ chia đều
Nâng độ khó lên một nấc: lỗ không nằm trên đường thẳng mà chia đều trên một vòng tròn (đường kính vòng chia PCD — Pitch Circle Diameter), cộng thêm vòng ngoài và lỗ trong của mặt bích. Đây là chi tiết xuất hiện khắp nơi trong đường ống và thiết bị của nhà máy. LISP xử lý bằng hàm polar — tính tọa độ điểm theo góc và khoảng cách, việc mà bảo Claude tính tay qua chat là dễ sai nhất.
;;; ============================================================
;;; FLANGE.LSP - Ve mat bich tron + lo bu-long chia deu tren PCD
;;; Lenh: FLANGE
;;; Nhap: tam mat bich, D ngoai, D lo trong, D vong chia (PCD),
;;; so lo, duong kinh 1 lo. Don vi: mm.
;;; ============================================================
(defun c:FLANGE (/ ctr dout din pcd n dl i ang pt)
(setq ctr (getpoint "\nChon tam mat bich: "))
(setq dout (getdist ctr "\nDuong kinh ngoai (mm): "))
(setq din (getdist ctr "\nDuong kinh lo trong (mm): "))
(setq pcd (getdist ctr "\nDuong kinh vong chia PCD (mm): "))
(setq n (getint "\nSo lo bu-long: "))
(setq dl (getdist ctr "\nDuong kinh 1 lo (mm): "))
(if (and ctr dout din pcd n dl (> n 0))
(progn
;; Vong ngoai va lo trong
(entmake (list '(0 . "CIRCLE") (cons 10 ctr) (cons 40 (/ dout 2.0))))
(entmake (list '(0 . "CIRCLE") (cons 10 ctr) (cons 40 (/ din 2.0))))
;; Cac lo bu-long chia deu tren vong PCD
(setq i 0)
(repeat n
(setq ang (* i (/ (* 2.0 pi) n)))
(setq pt (polar ctr ang (/ pcd 2.0)))
(entmake (list '(0 . "CIRCLE") (cons 10 pt) (cons 40 (/ dl 2.0))))
(setq i (1+ i))
)
(princ (strcat "\nDa ve mat bich " (itoa n) " lo."))
)
(princ "\nChua du thong so - chua ve gi.")
)
(princ)
)
(princ "\nDa nap xong FLANGE.LSP - go lenh FLANGE de chay.")
(princ)
Thử ngay với bộ số của một mặt bích quen thuộc: D ngoài 220, lỗ trong 110, PCD 180, 8 lỗ Ø18. Chạy xong, dùng lệnh DIST đo khoảng cách từ tâm tới một tâm lỗ bất kỳ — phải đúng 90 (bán kính PCD) ở mọi lỗ. Đó là độ chính xác mà vẽ tay bằng lệnh ARRAYPOLAR lặp lại nhiều lần khó giữ được đều như vậy.
8.7. Ví dụ 3 — TAGNUM: đánh số nhãn thiết bị tăng dần bằng click
Ví dụ thứ ba thuộc nhóm "việc nhỏ mà ngày nào cũng gặp": gắn nhãn mã thiết bị lên layout. Gõ tay từng nhãn TB-01, TB-02... vừa chậm vừa dễ trùng số. LISP dưới đây hỏi tiền tố và số bắt đầu một lần, sau đó bạn chỉ việc click — mỗi click ra một nhãn, số tự tăng, Enter để dừng. Dùng chung với quy ước attribute MA ở Chương 7 là layout của bạn luôn nhất quán.
;;; ============================================================
;;; TAGNUM.LSP - Danh so nhan thiet bi tang dan tai diem click
;;; Lenh: TAGNUM
;;; Nhap: tien to (vd TB-), so bat dau, chieu cao chu.
;;; Sau do click tung vi tri de dat nhan, Enter de ket thuc.
;;; Nhan duoc can giua tai diem click.
;;; ============================================================
(defun c:TAGNUM (/ prefix start h pt txt)
(setq prefix (getstring T "\nTien to (vd TB-): "))
(setq start (getint "\nSo bat dau: "))
(setq h (getdist "\nChieu cao chu (mm): "))
(if (and prefix start h)
(while
(setq pt
(getpoint
(strcat "\nClick vi tri dat nhan "
prefix (itoa start) " (Enter de dung): ")))
(setq txt (strcat prefix (itoa start)))
(entmake
(list
'(0 . "TEXT")
(cons 10 pt)
(cons 40 h)
(cons 1 txt)
(cons 72 1) ; can giua theo chieu ngang
(cons 73 2) ; can giua theo chieu doc
(cons 11 pt)
)
)
(setq start (1+ start))
)
)
(princ)
)
(princ "\nDa nap xong TAGNUM.LSP - go lenh TAGNUM de chay.")
(princ)
Mẹo tùy biến
Cả ba ví dụ đều cố ý viết ngắn và dùng toàn hàm AutoLISP cơ bản nhất (getint, getpoint, entmake...) — để chạy được trên mọi phiên bản, kể cả LT. Khi cần thêm tính năng (ví dụ BOLTPAT vẽ thêm đường tâm, FLANGE ghi luôn kích thước, TAGNUM tự chèn thêm vòng tròn quanh nhãn), đừng tự đoán cách sửa: cứ gửi lại file .lsp cho Claude kèm yêu cầu thay đổi, nhận bản mới, lưu đè và APPLOAD lại. Vòng "nhờ viết → chạy thử → nhờ sửa" này cũng chỉ tốn token ở những lần sửa — vẫn rẻ hơn gọi MCP vẽ lại mỗi ngày rất nhiều.
8.8. Khi LISP không đủ: .NET add-in (chỉ nhắc qua)
Một số ít việc vượt quá tầm của LISP: cần cửa sổ giao diện riêng với nhiều ô nhập và bảng dữ liệu, xử lý hàng chục nghìn đối tượng đòi tốc độ cao, kết nối cơ sở dữ liệu hoặc phần mềm khác, hay đóng gói phát hành cho người khác mà không muốn lộ mã nguồn. Khi đó mới tới lượt .NET add-in: tạo project trong Visual Studio, tham chiếu các thư viện của AutoCAD (AcMgd.dll, AcDbMgd.dll, AcCoreMgd.dll), viết lệnh, build ra file .dll, nạp bằng lệnh NETLOAD và đóng gói dạng .bundle để AutoCAD tự nạp khi khởi động. Đổi lại: cần AutoCAD bản full (LT không chạy .NET add-in), mọi thay đổi đều phải build lại, quy trình dài hơn hẳn. Kết luận thực dụng: mặc định cứ LISP trước — nó đáp ứng phần lớn nhu cầu thực tế; .NET là phương án dành cho thiểu số trường hợp LISP thật sự không kham nổi.
8.9. So sánh: khi nào MCP trực tiếp, khi nào đóng gói LISP
| Tiêu chí | MCP trực tiếp (Claude vẽ) | LISP chạy local |
|---|---|---|
| Token | Tốn ở mỗi lần chạy: input gồm ngữ cảnh + danh sách tools, output là chuỗi tool call | 0 token ở mọi lần chạy — chỉ tốn một lần duy nhất khi nhờ Claude viết (và khi sửa) code |
| Tần suất phù hợp | Việc làm một lần, hoặc mỗi lần một khác | Việc lặp lại hằng ngày/hằng tuần với cùng một logic |
| Độ phức tạp xử lý được | Cao: hiểu yêu cầu chưa rõ ràng, tự chia bước, hỏi lại khi thiếu dữ kiện | Thấp–trung bình: logic phải cố định, tham số rõ ràng — nhập mơ hồ là chạy sai mà không ai hỏi lại |
| Tốc độ | Chậm: qua lại nhiều vòng chat và tool call | Tức thì, ngay trong AutoCAD |
| Khi yêu cầu thay đổi | Nói lại bằng lời là xong, không cần biết code | Mở file .lsp sửa code, hoặc nhờ Claude viết lại bản mới (lại tốn chút token, nhưng chỉ một lần) |
| Điều kiện để chạy | Claude Desktop + MCP server + mạng + AutoCAD bản full | Chỉ cần AutoCAD — kể cả LT 2024+ — không cần mạng |
Quy tắc ngón tay cái: một việc bạn đã nhờ Claude vẽ qua MCP tới lần thứ ba với cùng một logic, thì đó là ứng viên đóng gói LISP. Ngược lại, việc mới, việc lạ, việc cần suy luận — cứ để MCP lo, đừng cố ép thành code cứng.
8.10. Lưu LISP vào thư viện chung để tái sử dụng
File .lsp cũng là tài sản tích lũy như block ở Chương 7 — đối xử với nó cùng một kỷ luật: một thư mục tập trung duy nhất, đặt ngay cạnh thư viện block để backup một lần được cả hai:
D:\ThuVienLISP\
├── BOLTPAT.lsp
├── FLANGE.lsp
├── TAGNUM.lsp
└── MUCLUC.txt
- Một file = một lệnh chính, tên file trùng tên lệnh (
BOLTPAT.lspchứa lệnhBOLTPAT) — nhìn tên file là biết phải gõ gì. - Luôn có comment đầu file: tên lệnh, chức năng, dữ liệu nhập, lần sửa gần nhất. Ba ví dụ trong chương này đều theo đúng mẫu đó — giữ thói quen này cho mọi file về sau.
- File
MUCLUC.txtlà danh mục một dòng một lệnh (tên lệnh — làm gì — khi nào dùng). Nó cứu bạn khỏi cảnh "nhớ mang máng mình từng có lệnh vẽ cái này" sau vài tháng; và khi nhờ Claude viết lệnh mới, dán luôn mục lục vào câu chat để Claude tránh đặt trùng tên và tái sử dụng phong cách code cũ. - Dùng chung cho cả nhóm: đặt thư mục thư viện trên ổ mạng nội bộ, mỗi máy chỉ cần thêm các file vào Startup Suite một lần (mục 8.4) là cả nhóm có chung một bộ lệnh — sửa một file ở thư viện là mọi người cùng được bản mới ở lần mở AutoCAD kế tiếp.
- Backup chung với thư viện block theo đúng quy trình ở mục 7.6: nén cả hai thư mục kèm ngày tháng. Thư viện LISP còn nhẹ hơn block rất nhiều (toàn file text vài KB) — không có lý do gì để không sao lưu thường xuyên.
Chương 9
Mẹo nâng cao: Shorthand, Dashboard & Export
Ba tính năng dưới đây có sẵn trong multiCAD-mcp — bạn không phải cài thêm bất cứ thứ gì ngoài những gì đã làm ở Chương 3. Chúng giải quyết ba nỗi đau khi làm dự án thật: lệnh vẽ qua JSON tốn quá nhiều token, muốn kiểm tra bản vẽ mà không tiện mở AutoCAD, và cần lấy dữ liệu trong bản vẽ ra bảng tính. Nắm được cả ba, bạn sẽ làm việc nhanh hơn và rẻ hơn đáng kể.
9.1. Shorthand syntax — tiết kiệm 85% token
Mỗi lần Claude gọi tool vẽ, nó phải gửi kèm mô tả của đối tượng. Cách mặc định là một đoạn JSON đầy đủ: tên loại, tọa độ, màu, layer... — đúng và rõ ràng, nhưng dài. Mỗi ký tự trong đoạn JSON đó đều tính vào token bạn phải trả. Khi vẽ vài hình thì không sao; khi vẽ cả mặt bằng dây chuyền với hàng trăm đối tượng, phần "bao bì JSON" này phình lên rất nhanh.
Shorthand là cú pháp rút gọn mà server hiểu được: mỗi entity viết trên một dòng duy nhất theo format:
type|param1|param2|...
Tức là: tên loại entity đứng đầu, các tham số nối tiếp phía sau, ngăn cách bằng dấu gạch đứng |. Server nhận dòng này và tự dịch sang đúng lệnh CAD tương ứng — kết quả trên bản vẽ hoàn toàn giống nhau, chỉ khác ở số token phải gửi đi.
Các entity hỗ trợ shorthand
| Entity | Cú pháp shorthand | Giải thích tham số |
|---|---|---|
line |
line|x1,y1|x2,y2|màu|layer |
Đoạn thẳng từ điểm đầu (x1,y1) tới điểm cuối (x2,y2). |
circle |
circle|cx,cy|bán kính|màu|layer |
Đường tròn có tâm (cx,cy) và bán kính cho trước. |
rect |
rect|x1,y1|x2,y2|màu|layer |
Hình chữ nhật xác định bằng 2 góc đối diện (x1,y1) và (x2,y2). |
text |
text|x,y|chiều cao|nội dung|màu|layer |
Dòng chữ đặt tại điểm chèn (x,y), cao chữ theo đơn vị bản vẽ. |
arc |
arc|cx,cy|bán kính|góc đầu|góc cuối|màu|layer |
Cung tròn tâm (cx,cy); hai góc tính bằng độ, đo từ trục X. |
polyline |
polyline|x1,y1|x2,y2|x3,y3|…|màu|layer |
Đa tuyến nối qua nhiều đỉnh liên tiếp — thêm bao nhiêu điểm cũng được. |
spline |
spline|x1,y1|x2,y2|x3,y3|…|màu|layer |
Đường cong mượt đi qua các điểm kiểm soát, cùng mẫu tham số như polyline. |
Hai tham số cuối — màu và layer — là tùy chọn: bỏ qua thì entity dùng màu và layer hiện hành của bản vẽ. Tọa độ luôn viết dạng x,y liền nhau, không khoảng trắng.
Cách dùng khi chat
Không cần cấu hình gì cả. Chỉ cần nói rõ một lần trong cuộc trò chuyện, Claude sẽ dùng shorthand cho các lệnh vẽ tiếp theo:
Câu chat mẫu
Từ giờ dùng shorthand format cho mọi lệnh vẽ nhé. Vẽ mặt bằng khung xưởng 200x120, thêm một dãy cột tròn Ø0,6 cách đều 20m
Nhiều trường hợp Claude còn tự chuyển sang shorthand khi thấy yêu cầu gồm nhiều entity đơn giản lặp lại — đó là hành vi nên khuyến khích, không phải lỗi. Một mẻ vẽ hoàn chỉnh trông như thế này:
line|0,0|200,0|red|Khung
line|200,0|200,120|red|Khung
circle|100,60|30||ThietBi
text|100,140|6|MAT BANG XUONG LUYEN THEP
Lưu ý khi viết shorthand
- Nhiều entity thì mỗi dòng một entity — hoặc viết liền trên một dòng, ngăn cách nhau bằng dấu chấm phẩy
;. Cả hai cách server đều parse được. - Muốn bỏ qua một tham số ở giữa (ví dụ không chỉ định màu nhưng có chỉ định layer) thì để trống giữa hai dấu gạch:
circle|100,60|30||ThietBi. - Shorthand hợp nhất với entity cơ bản số lượng lớn. Với thao tác phức tạp nhiều tham số đặc biệt, cứ để Claude dùng JSON đầy đủ — rõ ràng quan trọng hơn tiết kiệm vài chục token.
9.2. Web Dashboard tại localhost:8888
Trong lúc MCP server đang chạy, nó đồng thời mở sẵn một trang web quản trị nhỏ ngay trên máy của bạn. Mở trình duyệt (Chrome, Edge...) và vào địa chỉ:
http://localhost:8888
Không cần đăng nhập, không cần cài thêm gì — trang này do chính server đang chạy phục vụ. Các tính năng chính:
- Trạng thái kết nối CAD: server đang nối tới phần mềm CAD nào, bản vẽ nào đang mở — nhìn một cái là biết "đường dây" có thông không.
- Quản lý layer: xem toàn bộ layer của bản vẽ, bật/tắt hiển thị và đổi màu layer ngay trên trình duyệt.
- Xem blocks: danh sách các block có trong bản vẽ kèm số lần mỗi block được chèn.
- Duyệt entities: liệt kê các đối tượng trong bản vẽ theo loại và theo layer, để đối chiếu nhanh với yêu cầu.
Khi nào nên mở Dashboard?
- Kiểm tra nhanh mà không cần mở AutoCAD: máy yếu, hoặc AutoCAD đang bận render/mở file nặng — mở tab trình duyệt xem trạng thái và số liệu là đủ.
- Debug khi Claude vẽ sai: Claude báo "đã vẽ xong" nhưng bạn không thấy hình? Mở Dashboard đối chiếu: số entities có tăng không, entity mới nằm ở layer nào, có phải layer đó đang bị tắt hiển thị không. Ba câu hỏi này xác định được phần lớn trường hợp "vẽ mà không thấy".
- Dọn layer trước khi vẽ tiếp: tắt bớt layer nhiễu, đổi màu cho dễ phân biệt, rồi mới ra lệnh vẽ tiếp — bản vẽ sạch thì Claude cũng ít nhầm layer hơn.
Lưu ý
Dashboard chỉ phục vụ tại localhost — tức chỉ truy cập được từ chính máy đang chạy server, máy khác trong cùng mạng nội bộ cũng không vào được. Và nó chỉ sống khi server còn chạy: tắt Claude Desktop (hoặc tiến trình server) là trang web cũng tắt theo.
9.3. Export ra Excel bằng tool export_data
Bản vẽ chứa rất nhiều dữ liệu có cấu trúc: entity nào nằm ở đâu, block nào được chèn bao nhiêu lần, attribute gì đi kèm. Tool export_data trích xuất những dữ liệu đó thành file .xlsx mở được bằng Excel hoặc Google Sheets — không cần mở AutoCAD lên đếm tay từng đối tượng.
Câu chat mẫu
Dùng export_data xuất danh sách toàn bộ blocks trong bản vẽ ra file bom-day-chuyen.xlsx, kèm số lượng và attributes
Ứng dụng điển hình nhất là làm BOM (bill of materials) — bảng kê vật tư/thiết bị của cả bản vẽ. Từ một mặt bằng dây chuyền đã chèn đầy đủ block thiết bị (theo cách ở Chương 7), một lần export cho ra bảng kê dạng như sau:
| Tên block | Số lượng | Layer | Attribute đi kèm |
|---|---|---|---|
DONGCO-3P | 6 | ThietBi | CONG_SUAT: 15kW |
BANGTAI-600 | 12 | ThietBi | CHIEU_DAI: 8m |
COT-H300 | 24 | KetCau | — |
BOM-THUY-LUC | 4 | ThietBi | LUU_LUONG: 120L/phút |
Bảng ví dụ minh họa cấu trúc file xuất ra — số liệu thật đến từ chính bản vẽ của bạn. Ngoài BOM, export_data còn hữu ích cho:
- Kiểm kê entities theo layer: trước khi bàn giao, rà soát xem có đối tượng nào lạc vào layer sai quy ước không.
- Đếm và đối chiếu số lượng: số block trên bản vẽ so với số lượng đặt hàng — lệch một cái là phát hiện ngay trong Excel thay vì đếm bằng mắt trên bản vẽ.
- Làm đầu vào cho báo giá / dự toán: bảng .xlsx đã có sẵn tên + số lượng + thông số, chuyển thẳng sang khâu tính giá.
Lưu ý
Export là thao tác đọc — nó không sửa gì trong bản vẽ, chạy bao nhiêu lần cũng an toàn. Chất lượng bảng BOM phụ thuộc hoàn toàn vào kỷ luật block và attribute ở Chương 7: block đặt tên nhất quán, attribute điền đầy đủ thì file Excel mới dùng được ngay; block đặt tên tùy tiện thì xuất ra cũng tùy tiện như vậy.
Chương 10
Mẹo vẽ nhanh & chính xác
Các chương trước dạy bạn cách ra lệnh; chương này dạy bạn cách ra lệnh cho ra bản vẽ đúng ngay từ đầu — nhanh hơn, ít vòng sửa hơn và tốn ít token hơn. Sáu mẹo dưới đây là thói quen của người dùng MCP lâu dài: không mẹo nào cần cài thêm gì, tất cả đều là cách viết prompt và cách tổ chức công việc.
10.1. Viết prompt chuẩn kỹ sư
Claude vẽ đúng theo những gì bạn viết — viết mơ hồ thì nó đoán, mà đoán trong bản vẽ kỹ thuật là sai số. Bốn quy tắc khi soạn prompt:
- Giao vai trò ngay từ đầu. Mở đầu bằng một câu kiểu: "Đóng vai người vẽ kỹ thuật cơ khí theo tiêu chuẩn ASME Y14.5". Có vai trò rõ ràng, Claude sẽ tự nhất quán về cách ghi kích thước, dung sai và ký hiệu thay vì mỗi lần một kiểu.
- Liệt kê yêu cầu đánh số thứ tự, mỗi yêu cầu một dòng. Danh sách đánh số giúp Claude không bỏ sót yêu cầu nào, và khi có một yêu cầu sai bạn chỉ cần chỉ đúng số thứ tự đó để sửa.
- Đưa số liệu thật, cụ thể. Đường kính, khoảng cách, tọa độ phải là con số bạn đã tính — đừng viết "vẽ một trục vừa vừa" rồi để Claude tự đoán kích thước. Con số nó đoán ra nghe hợp lý nhưng không có cơ sở kỹ thuật nào.
- Mỗi prompt chỉ làm một việc. Vẽ xong hình học mới sang một prompt riêng để đánh kích thước, rồi mới đến ghi chú và khung tên. Gộp cả ba việc vào một prompt, một lỗi ở bước đầu sẽ kéo sai cả hai bước sau.
Câu chat mẫu
Đóng vai người vẽ kỹ thuật cơ khí theo tiêu chuẩn ASME Y14.5. Vẽ mặt bích như sau: 1) đường tròn ngoài Ø120; 2) đường tròn trong Ø60; 3) 6 lỗ Ø11 phân bố đều trên vòng tròn Ø90. Chưa đánh kích thước.
10.2. Quy trình 2 bước an toàn: đề xuất trước, thực hiện sau
Với những việc lớn hoặc khó đảo ngược (vẽ cả cụm chi tiết, sửa hàng loạt, xóa đối tượng), đừng để Claude lao vào vẽ ngay. Tách thành hai bước:
- Bước 1 — chỉ đề xuất: yêu cầu Claude "liệt kê những gì sẽ vẽ/sửa, chưa thực hiện". Nó sẽ trả về một danh sách các thao tác dự định: vẽ gì, ở đâu, kích thước bao nhiêu — mà chưa chạm vào bản vẽ.
- Bước 2 — duyệt rồi mới chạy: đọc lại danh sách đó, sửa những chỗ chưa đúng (thường là kích thước hoặc layer), rồi mới bảo "thực hiện đi".
- Luôn làm trên bản copy. Dù quy trình 2 bước đã giảm rủi ro rất nhiều, vẫn giữ thói quen nhân bản file trước buổi làm việc — không vẽ trực tiếp lên bản vẽ gốc, đúng như nguyên tắc ở Chương 11.
10.3. Dùng template (.dwt) để không phải setup lại
Mỗi bản vẽ mới đều cần cùng một bộ khung: layer chuẩn, dimstyle, textstyle, khung tên. Nếu để Claude tạo lại bộ khung này mỗi lần, bạn tốn token cho đúng một việc lặp lại — và mỗi lần còn có nguy cơ lệch quy ước một chút. Cách đúng là đóng gói một lần vào template:
- Tạo sẵn một file template (.dwt) chứa: hệ layer chuẩn của bạn (tên, màu, nét), dimstyle và textstyle đúng tiêu chuẩn công ty/dự án, và khung tên đã điền sẵn các trường cố định.
- Mỗi lần vẽ mới: mở bản vẽ từ template đó trước, rồi mới nhờ Claude vẽ. Mọi đối tượng Claude tạo sẽ rơi đúng vào hệ layer và style đã định.
- Claude không phải setup lại từ đầu mỗi lần — prompt của bạn đi thẳng vào nội dung cần vẽ, và kết quả giữa các bản vẽ nhất quán với nhau.
Lưu ý
Template tốt cũng là "hợp đồng" giữa bạn và Claude: khi ra lệnh, chỉ cần nói tên layer và style có sẵn trong template (ví dụ "đặt trên layer DuongTam, ghi kích thước bằng dimstyle DIM-25") thay vì mô tả lại thuộc tính từng lần.
10.4. Kiểm tra sau mỗi bước quan trọng
Đừng vẽ một mạch từ đầu đến cuối rồi mới kiểm tra — lỗi ở cụm đầu sẽ nằm im đó và nhân lên. Sau khi vẽ xong mỗi cụm quan trọng, kiểm tra ngay bằng một trong hai cách:
- Đếm đối tượng để đối chiếu: bảo Claude "đếm xem có bao nhiêu circle, bao nhiêu line trong bản vẽ" và so với con số bạn dự kiến. Thiếu một lỗ khoan hay thừa một đường gióng là phát hiện ngay tại chỗ.
- Xem trực quan trên dashboard: mở
localhost:8888(Chương 9) để nhìn tổng thể entities, layer và block — nhiều lỗi vị trí nhìn một cái là thấy, không cần mở AutoCAD. - Sai thì sửa ngay tại bước đó. Một cụm vừa vẽ sai rất dễ sửa (hoặc Undo rồi làm lại); để dồn tới cuối buổi, bạn sẽ không còn nhớ cụm nào sinh ra đối tượng nào.
10.5. Tận dụng đúng điểm mạnh của Claude
Biết Claude mạnh/yếu ở đâu giúp bạn giao đúng việc — giống như giao việc cho một thợ vẽ thật:
- Mạnh nhất: viết AutoLISP và script tự động hóa việc lặp lại. Một quy trình phải làm đi làm lại (đánh số thiết bị, chèn dãy lỗ đều, đổi tên layer hàng loạt) thì nhờ Claude viết thành script một lần rồi chạy local — đó cũng chính là nội dung Chương 8.
- Mạnh: đọc và giải thích bản vẽ có sẵn, dọn dẹp layer. Đưa bản vẽ người khác vẽ cho Claude, nó đọc được cấu trúc entities/block/attribute, giải thích bản vẽ đang có gì và sắp xếp lại layer lộn xộn về đúng quy ước.
- Yếu: đoán kích thước từ mô tả mơ hồ. "Vẽ cái giá đỡ chắc chắn" không chứa một con số nào — Claude vẫn sẽ vẽ, nhưng bằng kích thước nó tự bịa. Mọi yêu cầu thiếu số đều phải được bạn bổ sung số cụ thể (xem mục 10.1).
10.6. Tiết kiệm token khi làm việc dài
Token là tiền — và cũng là tốc độ, vì prompt càng dài Claude càng xử lý lâu. Ba cách giảm đáng kể:
- Dùng shorthand thay vì mô tả dài. Cú pháp rút gọn ở Chương 9 cắt khoảng 85% token cho phần mô tả entity — đây là khoản tiết kiệm lớn nhất và dễ nhất.
- Gom nhiều lệnh nhỏ thành một prompt lớn. Thay vì mười câu chat lẻ cho mười đối tượng liên quan, viết một prompt có danh sách đánh số (theo đúng mẹo 10.1) — mỗi vòng chat qua lại đều tốn token lặp lại phần ngữ cảnh.
- Việc lặp lại nhiều lần → viết LISP một lần, chạy local. Nếu một thao tác phải làm 50 lần, đừng gọi Claude 50 lần: nhờ nó viết một hàm AutoLISP, nạp vào AutoCAD và tự chạy mỗi khi cần (Chương 8) — từ lần thứ hai trở đi tốn 0 token.
Tóm lại
Nhanh và chính xác không đến từ việc Claude "giỏi hơn", mà từ cách bạn làm việc: prompt có số liệu và danh sách rõ ràng → đề xuất trước, duyệt rồi mới vẽ → kiểm tra sau mỗi cụm → việc lặp lại thì đóng thành script. Bốn thói quen này cộng lại cho ra bản vẽ đúng ngay lần đầu, thay vì đúng sau năm lần sửa.
Chương 11
Mẹo & xử lý lỗi: khi mọi thứ không chạy như ý
Hệ Claude + MCP + AutoCAD có ba mắt xích (Claude Desktop → MCP server → AutoCAD), lỗi có thể nằm ở bất kỳ mắt xích nào. Nguyên tắc gỡ lỗi: xác định đúng mắt xích trước, sửa sau — đừng cài lại tất cả trong hoảng loạn.
11.1. Lỗi 1: MCP server không hiện trong Claude Desktop
Triệu chứng: bấm icon tools trong ô chat mà không thấy server multiCAD. Ba nguyên nhân chiếm gần như toàn bộ các trường hợp:
- JSON sai cú pháp — thừa/thiếu dấu phẩy, thiếu dấu ngoặc đóng, hoặc dấu
\trong đường dẫn chưa viết thành\\. Claude Desktop gặp JSON lỗi sẽ bỏ qua config một cách lặng lẽ. - Đường dẫn tương đối hoặc sai —
commandtrỏ tớipyhệ thống thay vì python trong.venv, hoặc thư mục cài đặt đã bị di chuyển sau khi cấu hình. - Chưa thoát hẳn app — đóng cửa sổ chưa đủ; phải chuột phải icon khay hệ thống → Exit, rồi mở lại.
Nơi tìm bằng chứng: thư mục log %APPDATA%\Claude\logs\ — file log của MCP ghi rõ server nào khởi động thất bại và vì sao (thường là đường dẫn không tồn tại hoặc Python báo lỗi thiếu thư viện).
11.2. Lỗi 2: AutoCAD không phản hồi lệnh
- Chưa mở AutoCAD (hoặc chưa mở bản vẽ nào): server không có đích để gửi lệnh. Mở AutoCAD và một bản vẽ mới trước khi chat.
- Cửa sổ AutoCAD mất focus / bị cửa sổ khác che: một số thao tác cần cửa sổ AutoCAD ở trạng thái hoạt động — đưa nó lên foreground rồi thử lại.
- Dialog modal đang mở: một hộp thoại (ví dụ hộp thoại in, hộp thoại hỏi lưu file) đang treo sẽ chặn mọi lệnh mới. Đóng hoặc hủy dialog đó trước.
- AutoCAD đang chờ bạn hoàn tất một lệnh dở dang: bấm
Escvài lần để hủy lệnh đang treo, rồi ra lệnh lại qua Claude.
11.3. Lỗi 3: Lệnh FILLET/CHAMFER không chạy
Đây là lỗi "đặc sản" đã nhắc ở Chương 6: fillet/chamfer tương tác chọn cạnh phức tạp, một số đường gọi lệnh dạng headless (không giao diện) xử lý không ổn. Cách xử lý: chuyển sang điều khiển qua live app — AutoCAD mở sẵn, cửa sổ đang active — và cho Claude chạy lại riêng bước đó, sau đó zoom kiểm tra kết quả từng vai bậc.
11.4. Best practices — thói quen của người dùng MCP lâu dài
- Luôn test trên bản vẽ nháp trước. Mọi câu lệnh mới, mọi quy trình mới đều chạy thử trên file nháp; chỉ khi kết quả đúng mới áp lên bản vẽ thật.
- Làm việc trên bản copy, không làm trên bản vẽ gốc. Trước buổi làm việc với MCP, nhân bản file gốc (hậu tố ngày hoặc
_MCP). Lệnh hàng loạt sai một câu chat có thể sửa đổi hàng trăm đối tượng trong vài giây. - Xem lại từng tool call trước khi approve. Nút Allow for This Chat tiện thật, nhưng hãy đọc lướt tham số Claude sắp gửi — đặc biệt với lệnh xóa, di chuyển "tất cả", và ghi đè attribute hàng loạt.
- Đọc source của MCP server trước khi cấp quyền ghi. MCP server là chương trình chạy bằng quyền của bạn trên máy của bạn. Với server cộng đồng, hãy đọc qua mã nguồn (hoặc ít nhất kiểm tra repo, số người dùng, lịch sử cập nhật) trước khi cho nó quyền sửa bản vẽ thật.
- Ra lệnh nhỏ, kiểm tra thường xuyên. Năm câu chat ngắn, mỗi câu kiểm tra một lần, an toàn hơn một câu chat "làm hết từ A đến Z" rất nhiều.
11.5. Giới hạn phải chấp nhận
- MCP cho "kênh lệnh", không cho "nhận thức". Claude không nhìn thấy vật thật hay ảnh chụp để tự suy ra kích thước. Mọi con số phải do bạn cung cấp chính xác — nó vẽ đúng những gì bạn nói, kể cả khi bạn nói sai.
- Không deterministic. Cùng một câu hỏi, hai lần chạy có thể cho chuỗi tool call hơi khác nhau (thứ tự lệnh, cách chia bước). Với bản vẽ quan trọng, đừng ngạc nhiên vì sự khác biệt này — hãy dựa vào bước kiểm tra, không dựa vào "lần trước nó làm đúng".
- Bản vẽ phức tạp dễ lỗi thầm lặng. XREF lồng nhau nhiều lớp, ràng buộc (constraint) nặng, block động phức tạp là những nơi tool call có thể "thành công" về mặt kỹ thuật nhưng kết quả hình học không như ý. Càng phức tạp, càng phải kiểm tra bằng mắt kỹ.
Lời kết
Bạn đã đi hết chặng đường: từ khái niệm MCP, cài đặt multiCAD-mcp, vẽ hình cơ bản, block và dimension, tới một chi tiết trục hoàn chỉnh, cách tổ chức thư viện cho dự án lớn, và các mẹo shorthand, dashboard, export để làm việc nhanh và rẻ hơn. Công thức bền vững luôn là: ra lệnh rõ ràng → Claude vẽ → bạn kiểm tra bằng mắt và bằng số đo. Tay vẽ thì ngày càng nhanh, còn trách nhiệm kỹ thuật thì vẫn luôn là của người kỹ sư.