
Đọc biến môi trường và thư mục cài đặt NX từ Session (UGII_BASE_DIR, UGII_ROOT_DIR)
#Python#Môi trường2 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Script triển khai nhiều máy cần biết NX cài ở đâu, dùng phiên bản nào. Session có sẵn hàm đọc biến môi trường của NX, đáng tin hơn đọc thẳng biến hệ thống.
Đọc biến môi trường và thư mục cài đặt NX…Các bước thực hiện
- Chọn biến cần đọc. UGII_BASE_DIR, UGII_ROOT_DIR, UGII_CUSTOM_DIRECTORY_FILE, UGII_TMP_DIR.
- Gọi GetEnvironmentVariableValue. Hàm của Session trả về chuỗi, rỗng nếu chưa đặt.
- Ghép đường dẫn. Dùng os.path.join để tạo đường dẫn tới thư mục con.
- Kiểm tra tồn tại. Với đường dẫn quan trọng, kiểm tra os.path.isdir.
- In báo cáo môi trường. Hữu ích khi hỗ trợ người dùng từ xa.
Code tham khảo (Python)
import os import NXOpen BIEN_CAN_DOC = [ "UGII_BASE_DIR", "UGII_ROOT_DIR", "UGII_TMP_DIR", "UGII_CUSTOM_DIRECTORY_FILE", "UGII_USER_DIR", ] def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() lw.WriteLine("Ứng dụng hiện tại: " + session.ApplicationName) lw.WriteLine("Chế độ nền: " + str(session.IsBatch)) lw.WriteLine("Journal đang chạy: " + session.ExecutingJournal) lw.WriteLine("-- Biến môi trường NX --") for ten in BIEN_CAN_DOC: gia_tri = session.GetEnvironmentVariableValue(ten) co_ton_tai = "" if gia_tri and os.path.sep in gia_tri: co_ton_tai = " (tồn tại)" if os.path.exists(gia_tri) else " (KHÔNG tồn tại)" lw.WriteLine("%-28s = %s%s" % (ten, gia_tri or "(chưa đặt)", co_ton_tai)) if __name__ == "__main__": main()Giải thích code
session.ExecutingJournalcho biết đường dẫn file script đang chạy, hữu ích để tìm file cấu hình cạnh script.session.ApplicationNamelà ứng dụng NX đang bật (Modeling, Manufacturing, Drafting...).- Định dạng
%-28scăn lề trái để bảng dễ nhìn.
Lỗi thường gặp
- Một số biến chỉ có trong NX bản có ngôn ngữ/thư mục tùy chỉnh; giá trị rỗng không phải lỗi.
- Không ghi hay thay đổi biến môi trường hệ thống từ script; chỉ đọc.
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.