NX Lab

Đọc mọi Note và Dimension của part: nội dung, giá trị, vị trí để kiểm tra bản vẽ

#Python#Drafting#Kiểm tra1 lượt xem

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

    Câu hỏi ·

    Kiểm tra bản vẽ tự động bắt đầu từ việc đọc được các ghi chú và kích thước đang có. Bài này liệt kê Note và Dimension, in text và giá trị để so với tiêu chuẩn.

    Đọc mọi Note và Dimension của part Đọc mọi Note và Dimension của part

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

    1. Duyệt part.Notes. Mỗi phần tử là ghi chú.
    2. Đọc nội dung. GetText() trả về danh sách dòng.
    3. Duyệt part.Dimensions. Mỗi phần tử là kích thước.
    4. Đọc giá trị. ComputedSize và đơn vị.
    5. Tổng kết. Số ghi chú, số kích thước.

    Code tham khảo (Python)

    import NXOpen
    
    def noi_dung_note(note):
        try:
            return " / ".join(note.GetText())
        except Exception:
            return "(không đọc được)"
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        part = session.Parts.Work
        if part is None:
            return
        notes = [n for n in part.Notes]
        dims = [d for d in part.Dimensions]
        lw.WriteLine("== %d ghi chú ==" % len(notes))
        for n in notes:
            lw.WriteLine("  %-20s : %s" % (str(n.Name or n.JournalIdentifier)[:20], noi_dung_note(n)))
        lw.WriteLine("== %d kích thước ==" % len(dims))
        for d in dims:
            try:
                kich = d.ComputedSize
            except Exception:
                kich = float("nan")
            lw.WriteLine("  %-20s : %.4f" % (str(d.Name or d.JournalIdentifier)[:20], kich))
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • n.Name or n.JournalIdentifier dùng tên nếu có, nếu không thì dùng mã nhận diện.
    • ComputedSize là giá trị kích thước tính từ hình học (không phải text hiển thị).
    • Bọc try/except vì mỗi loại kích thước có thuộc tính khác nhau.

    Lỗi thường gặp

    • Kích thước dạng góc, bán kính, đường kính có thuộc tính riêng; ComputedSize có thể không có trên mọi loại.
    • Text trong note có thể chứa mã định dạng riêng của NX đặt trong cặp ngoặc nhọn; cần loại bỏ khi so sánh chuỗi.

    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.