NX Lab

Ba cách chạy journal và code NX Open: Play, nút lệnh và dòng lệnh run_journal

#Journal#Tự động hóa6 lượt xem

  1. Quản trị viênQuản trị· 0 điểm

    Câu hỏi ·

    Viết xong script thì chạy bằng cách nào? Có ba đường: chạy trực tiếp trong NX, gắn vào nút lệnh, và chạy nền không giao diện bằng run_journal. Mỗi cách hợp một hoàn cảnh.

    Ba cách chạy journal và code NX Open Ba cách chạy journal và code NX Open

    Chuẩn bị

    • File journal .py đã lưu ở thư mục không dấu tiếng Việt, không khoảng trắng nếu có thể.

    Các bước thực hiện

    1. Chạy trong NX (Play). Tab Developer > Play, chọn file .py; kết quả hiện ngay trong phiên NX đang mở.
    2. Gắn vào nút lệnh. Dùng Customize để tạo nút gọi file journal, tiện cho người không biết lập trình.
    3. Chạy bằng run_journal. Dòng lệnh run_journal.exe file.py -args ... chạy nền, hợp để xử lý hàng loạt.
    4. Truyền tham số. Đọc tham số bằng sys.argv hoặc biến môi trường trong script.
    5. Ghi log. Mọi script chạy nền nên ghi log ra file để biết lỗi ở đâu.

    Code tham khảo (Python)

    # chay_nen.py - script có thể chạy cả trong NX lẫn bằng run_journal
    import sys
    import NXOpen
    
    def main(args):
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        lw.WriteLine("Chạy ở chế độ nền: " + str(session.IsBatch))
        lw.WriteLine("Số tham số: " + str(len(args)))
        for i, a in enumerate(args):
            lw.WriteLine("  [%d] %s" % (i, a))
        part = session.Parts.Work
        if part is None:
            lw.WriteLine("Chưa có Work Part - hãy mở chi tiết trước.")
            return 1
        lw.WriteLine("Chi tiết: " + part.Leaf)
        return 0
    
    if __name__ == "__main__":
        # sys.argv[0] là đường dẫn script; phần còn lại là tham số người dùng truyền
        main(sys.argv[1:])
    

    Giải thích code

    • session.IsBatch cho biết đang chạy nền hay có giao diện, để chọn hộp thoại hoặc log.
    • ListingWindow vẫn mở được khi chạy nền; nó ghi ra thiết bị mặc định (thường là file).
    • Quy ước trả mã thoát 0 thành công, khác 0 lỗi giúp script gọi ngoài kiểm soát được kết quả.

    Lỗi thường gặp

    • Dòng lệnh run_journal nằm trong thư mục NXBIN; phải gọi bằng đường dẫn đầy đủ hoặc thêm vào PATH.
    • Tham số có khoảng trắng phải đặt trong dấu nháy kép.
    • Một số hộp thoại (NXMessageBox) không hiện khi chạy nền; đừng để script chờ người bấm.

    Mở rộng

    Khi gắn vào nút lệnh, hãy dùng đường dẫn tuyệt đối trên ổ mạng chung để cả nhóm dùng cùng một bản script.

    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.