Thiết kế công cụ NX Open xuất hàng loạt PDF và STEP không bỏ sót file
Cách tổ chức hàng đợi, mở–đóng part, xuất PDF/STEP, ghi log và xác minh đầu ra để công cụ NX Open chạy ổn định trên nhiều file.
Quản trị viên 6 phút đọc

Xuất vài bản vẽ PDF hoặc model STEP bằng tay không khó, nhưng khi số lượng lên đến hàng trăm file, lỗi thường không nằm ở lệnh export mà ở cách quản lý phiên NX, dữ liệu đầu vào và trạng thái sau mỗi file. Một công cụ NX Open đáng tin cậy phải coi từng part là một giao dịch độc lập: kiểm tra, mở, xuất, xác minh, ghi log và đóng sạch trước khi chuyển sang mục tiếp theo.
Bắt đầu bằng đặc tả đầu ra rõ ràng
Trước khi viết code, cần chốt công cụ sẽ xuất gì. PDF lấy toàn bộ drawing sheet hay chỉ sheet đầu tiên? STEP lấy display part, work part hay toàn bộ assembly? Assembly cần một file duy nhất hay tách từng component thành external reference? Quy tắc đặt tên, thư mục đích, xử lý file trùng và phiên bản STEP cũng phải được xác định.
Các thảo luận trên UG/NX 技术论坛 cho thấy công cụ thực tế thường có giới hạn như chỉ lấy sheet đầu hoặc top-level model. Nếu không công bố rõ, người dùng dễ hiểu nhầm rằng mọi sheet và mọi component đã được xử lý.
Tạo manifest thay vì quét và xuất ngay
Hãy quét thư mục đầu vào trước, chuẩn hóa đường dẫn rồi tạo một danh sách công việc cố định. Mỗi mục nên chứa đường dẫn nguồn, loại đầu ra, tên file đích và trạng thái. Loại bỏ file tạm, file backup và output nằm trong chính thư mục nguồn để tránh vòng lặp.
Kiểm tra tên trùng trước khi chạy. Hai part cùng tên ở hai thư mục khác nhau có thể ghi đè lên cùng một file STEP. Giải pháp có thể là giữ cấu trúc thư mục tương đối, thêm mã dự án hoặc dùng một quy tắc đổi tên xác định được.
Xử lý từng part như một giao dịch
Với mỗi mục trong manifest, quy trình nên gồm:
1. Kiểm tra file tồn tại, có quyền đọc và không bị khóa bất thường.
2. Mở part theo chế độ phù hợp và thu thập cảnh báo load.
3. Xác định work part, display part và loại tài liệu thực tế.
4. Kiểm tra điều kiện tiền đề cho PDF hoặc STEP.
5. Gọi exporter với cấu hình đã kiểm soát.
6. Xác minh file đầu ra tồn tại, kích thước lớn hơn 0 và thời gian sửa đổi vừa được cập nhật.
7. Ghi kết quả vào log rồi đóng part theo chính sách save/close đã định.
Không nên để một exception làm dừng toàn bộ batch. Bắt lỗi tại phạm vi từng file, ghi đầy đủ thông tin và tiếp tục với mục kế tiếp. Tuy nhiên, lỗi hệ thống như hết dung lượng hoặc không ghi được thư mục đích phải dừng batch vì các file sau gần như chắc chắn cũng thất bại.
Xuất PDF: đừng giả định mọi part đều có drawing
Trước khi tạo PDF, hãy đếm drawing sheets và loại những model không có sheet. Nếu yêu cầu là toàn bộ sheet, duyệt collection theo thứ tự ổn định và tạo tên phân biệt hoặc một PDF nhiều trang tùy API và cấu hình exporter. Kiểm tra sheet bị blank, view chưa cập nhật và font thay thế trước khi chấp nhận kết quả.
Không nên dùng khái niệm “tỷ lệ sheet” như một giá trị duy nhất nếu logic thực tế phụ thuộc vào từng drawing view. Một thảo luận NX Open trên diễn đàn lưu ý rằng tỷ lệ nằm ở view; chức năng đổi tỷ lệ toàn sheet thực chất tác động đến các view. Công cụ xuất DWG hoặc PDF có yêu cầu 1:1 cần đọc đúng đối tượng.
Xuất STEP: xác định đúng phạm vi và cấu trúc assembly
Nếu chỉ cần top-level geometry, xuất display part có thể đủ. Nếu cần giữ cây assembly, phải chọn chế độ xuất entire part và cấu hình external references hoặc component export theo phiên bản translator. Một lựa chọn sai có thể tạo file mở được nhưng thiếu component.
Đường dẫn và tên file cũng cần được chuẩn hóa. Diễn đàn ghi nhận các trường hợp export lỗi liên quan đến tên hoặc đường dẫn, nhưng đôi khi file đã được tạo dù NX báo lỗi. Vì vậy, không nên tin duy nhất vào return code hoặc hộp thoại; phải xác minh file đầu ra và ghi cả cảnh báo translator.
Quản lý phiên NX để batch không suy giảm theo thời gian
Công cụ cần đóng đúng part đã mở, giải phóng builder và đối tượng tạm, tránh để hàng trăm part nằm trong session. Nếu có undo mark, hãy xóa hoặc thu gọn sau mỗi giao dịch. Với API yêu cầu Dispose hoặc Destroy, luôn đặt cleanup trong khối finally để chạy cả khi export thất bại.
Không nên dùng thời gian chờ cố định để đoán exporter đã hoàn tất. Hãy dựa vào trạng thái API, sự xuất hiện của file và kiểm tra khả năng truy cập file. Nếu translator chạy ngoài tiến trình, cần timeout có giới hạn và thông báo rõ file nào chưa hoàn tất.
Ghi log đủ để chạy lại có chọn lọc
Mỗi dòng log nên có thời gian, file nguồn, output dự kiến, loại export, kết quả, mã lỗi và thông điệp ngắn. Tạo thêm báo cáo tổng hợp: thành công, bỏ qua, cảnh báo và thất bại. Một file CSV hoặc JSON giúp người dùng lọc danh sách lỗi và chạy lại chỉ các mục thất bại.
Không ghi dữ liệu nhạy cảm hoặc toàn bộ stack trace vào giao diện người dùng. Log kỹ thuật chi tiết có thể đặt trong file riêng; Listing Window chỉ nên hiển thị tiến độ và tóm tắt.
Kiểm thử trước khi giao cho người dùng
Bộ test tối thiểu nên có part chỉ chứa model, part có một sheet, part nhiều sheet, assembly nhiều cấp, component thiếu, đường dẫn dài, ký tự Unicode, file read-only, output đã tồn tại và translator cố tình thất bại. Kiểm tra cả trường hợp chạy lại batch để chắc chắn chính sách overwrite hoặc skip hoạt động đúng.
Sau đó thử một tập dữ liệu lớn và theo dõi bộ nhớ, số part còn mở và thời gian trung bình mỗi file. Một công cụ chạy tốt với 10 file chưa chắc ổn định với 1.000 file.
Checklist triển khai
- Manifest đầu vào cố định và không chứa output.
- Quy tắc PDF sheet và STEP assembly được mô tả rõ.
- Mỗi file có try/catch/finally và cleanup độc lập.
- Output được xác minh bằng tồn tại, kích thước và timestamp.
- Có log chi tiết cùng báo cáo tổng hợp.
- Có thể chạy lại riêng các mục thất bại.
- Không lưu ngầm thay đổi vào part nguồn.
- Đã kiểm tra bộ nhớ và part còn mở sau batch lớn.
Batch automation tốt không chỉ nhấn nút export nhiều lần. Nó tạo một quy trình có thể kiểm chứng, phục hồi và chạy lại, nhờ đó người dùng biết chính xác file nào đã thành công và file nào cần xử lý thủ công.
Nguồn tham khảo
- UG/NX 技术论坛: công cụ xuất hàng loạt PDF/STEP và các giới hạn về sheet, top-level model — https://www.ugsnx.com/thread-343645-1-1.html
- UG/NX 技术论坛: trao đổi về export STEP, đường dẫn và việc kiểm tra file đầu ra — https://www.ugsnx.com/thread-351167-1-1.html
- UG/NX 技术论坛: thảo luận về tỷ lệ drawing view khi xuất hàng loạt — https://www.ugsnx.com/thread-346497-1-1.html
- UG/NX 技术论坛: tùy chọn STEP AP214 và external references cho assembly — https://www.ugsnx.com/thread-53351-2-1.html
Bài viết được tổng hợp và biên soạn lại theo hướng kiến trúc NX Open, không dịch hoặc sao chép nguyên văn nội dung diễn đàn.
Bình luận (0)
Chưa có bình luận. Hãy là người đầu tiên chia sẻ ý kiến.
Đăng nhập để bình luận.


