NX Lab

Kiểm tra điều kiện đầu vào: part rỗng, part chỉ đọc, part chưa nạp đủ

#Python#Part3 lượt xem

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

    Câu hỏi ·

    Script đáng tin cậy bắt đầu bằng phần kiểm tra điều kiện. Ba tình huống hay gặp nhất là chưa mở part, part chỉ đọc và part nạp một phần; bài này gói chúng vào một hàm dùng lại.

    Kiểm tra điều kiện đầu vào Kiểm tra điều kiện đầu vào

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

    1. Kiểm tra None. Parts.Work là None khi chưa mở file nào.
    2. Kiểm tra quyền ghi. Thuộc tính HasWriteAccess và IsReadOnly cho biết có sửa/lưu được không.
    3. Kiểm tra nạp đủ. IsFullyLoaded false nghĩa là cần LoadFully() trước khi đọc feature.
    4. Trả về lý do. Hàm trả về thông báo lỗi thay vì chỉ True/False.
    5. Dừng sớm. Nếu không đạt thì thoát, không làm dở dang.

    Code tham khảo (Python)

    import NXOpen
    
    def kiem_tra_part(part, can_ghi=True):
        """Trả về (hop_le, ly_do)."""
        if part is None:
            return False, "Chưa có Work Part. Hãy mở chi tiết trước."
        if not part.IsFullyLoaded:
            try:
                part.LoadFully().Dispose()
            except NXOpen.NXException as ex:
                return False, "Không nạp đủ được part: " + ex.Message
        if can_ghi and (part.IsReadOnly or not part.HasWriteAccess):
            return False, "Part chỉ đọc hoặc không có quyền ghi: " + part.FullPath
        return True, ""
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        ok, ly_do = kiem_tra_part(session.Parts.Work)
        if not ok:
            lw.WriteLine("DỪNG: " + ly_do)
            return
        lw.WriteLine("Part hợp lệ: " + session.Parts.Work.Leaf)
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • LoadFully() trả về PartLoadStatus; gọi Dispose() để giải phóng đối tượng trạng thái.
    • Bắt NXOpen.NXException để lấy thông báo lỗi do NX trả về thay vì để script đổ vỡ.
    • Tham số can_ghi=False dùng cho script chỉ đọc (ví dụ xuất báo cáo).

    Lỗi thường gặp

    • File từ Teamcenter hoặc đang được người khác mở thường ở trạng thái chỉ đọc.
    • Quên kiểm tra khiến lỗi xuất hiện sâu bên trong builder, rất khó đoán nguyên nhân.

    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.