
Đọ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
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 partCác bước thực hiện
- Duyệt part.Notes. Mỗi phần tử là ghi chú.
- Đọc nội dung. GetText() trả về danh sách dòng.
- Duyệt part.Dimensions. Mỗi phần tử là kích thước.
- Đọc giá trị. ComputedSize và đơn vị.
- 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.JournalIdentifierdùng tên nếu có, nếu không thì dùng mã nhận diện.ComputedSizelà giá trị kích thước tính từ hình học (không phải text hiển thị).- Bọc
try/exceptvì 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;
ComputedSizecó 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.