
C#: khai báo add-in tải tự động bằng ugexe: chọn UnloadOption và cấu trúc thư mục application
#C##Add-in1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Journal DLL phải nhắc người dùng chạy tay mỗi lần. Add-in được NX nạp tự động khi khởi động nhờ đặt DLL trong thư mục application của thư mục tùy biến và khai báo qua cơ chế khởi động của site.
C#: khai báo add-in tải tự động bằng…Chuẩn bị
- DLL đã dịch xong, có hàm Startup và Shutdown (hoặc Main/GetUnloadOption).
- Thư mục tùy biến của công ty, ví dụ D:/NXLab/NXCustom/.
Các bước thực hiện
- Chuẩn bị DLL. Đặt vào NXCustom/application/.
- Viết hàm Startup. Đăng ký handler, khai báo menu.
- Viết hàm Shutdown. Hủy đăng ký handler.
- Thêm đường dẫn. UGII_CUSTOM_DIRECTORY_FILE trỏ tới thư mục tùy biến.
- Kiểm tra khi NX khởi động. Đọc syslog tìm dòng thông báo của add-in.
Code tham khảo (C#)
using System; using NXOpen; public class NXLabAddin { private static Session theSession; private static int idMo = -1; // NX gọi hàm này khi nạp DLL lúc khởi động (Startup) nếu DLL nằm trong thư mục application public static int Startup() { theSession = Session.GetSession(); theSession.LogFile.WriteLine("[NXLAB] Add-in đã nạp"); idMo = theSession.Parts.AddPartOpenedHandler(new PartCollection.PartOpenedHandler(KhiMoPart)); return 0; } private static void KhiMoPart(BasePart part) { theSession.LogFile.WriteLine("[NXLAB] Đã mở: " + part.Leaf); } // NX gọi hàm này khi gỡ DLL public static int Shutdown() { if (theSession != null && idMo >= 0) { theSession.Parts.RemovePartOpenedHandler(idMo); } return 0; } public static int GetUnloadOption(string dummy) { return (int)Session.LibraryUnloadOption.AtTermination; } }Giải thích code
StartupvàShutdownlà tên hàm quy ước cho add-in nạp tự động; cách NX tìm chúng khác nhau giữa các phiên bản, hãy xem tài liệu NX Open của bản bạn dùng.- Thư mục
applicationtrong thư mục tùy biến là nơi NX quét tìm DLL và file giao diện của add-in. - Ghi syslog khi nạp là cách đơn giản nhất để xác nhận add-in thật sự được tải.
Lỗi thường gặp
- Add-in nạp tự động chạy trong mọi phiên NX của mọi người dùng; lỗi ở đây ảnh hưởng toàn công ty, nên thử kỹ ở môi trường riêng.
- Cơ chế nạp tự động phụ thuộc cấu hình quản trị; xác nhận với người quản trị NX trước khi triển khai.
Code mang tính tham khảo, viết cho NX 12 trở lên (Python journal). Tên menu và một số lớp có thể khác theo phiên bản NX; hãy chạy thử trên bản sao của chi tiết trước khi dùng cho dữ liệu thật.
Điểm: 0
Trả lời
Đăng nhập để tham gia thảo luận.