
Liệt kê toàn bộ sheet bản vẽ: khổ giấy, tỉ lệ, góc chiếu, số view và cờ lỗi thời
#Python#Drafting1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Kiểm kê bản vẽ của một chi tiết hay cả thư mục là bước đầu của mọi quy trình kiểm tra: có mấy sheet, khổ nào, view có lỗi thời (out of date) không.
Liệt kê toàn bộ sheet bản vẽCác bước thực hiện
- Lấy tập sheet. part.DrawingSheets.ToArray() hoặc duyệt trực tiếp.
- Đọc kích thước. Length, Height, đơn vị.
- Đọc tỉ lệ. sheet.GetScale() trả về (tử số, mẫu số).
- Đếm view. len(sheet.GetDraftingViews()).
- Phát hiện lỗi thời. IsOutOfDate cho sheet và cho từng view.
Code tham khảo (Python)
import NXOpen def thong_tin_sheet(sheet): tu, mau = sheet.GetScale() views = sheet.GetDraftingViews() return { "ten": sheet.Name, "rong": sheet.Length, "cao": sheet.Height, "ti_le": "%g:%g" % (tu, mau), "goc": str(sheet.ProjectionAngle).split(".")[-1], "so_view": len(views), "loi_thoi": sheet.IsOutOfDate or any(v.IsOutOfDate for v in views), } def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work if part is None: return sheets = part.DrawingSheets.ToArray() if not sheets: lw.WriteLine("Part chưa có sheet bản vẽ") return lw.WriteLine("%-16s %-12s %-8s %-12s %-6s %s" % ("Sheet", "Khổ (mm)", "Tỉ lệ", "Góc", "View", "Lỗi thời")) for s in sheets: d = thong_tin_sheet(s) lw.WriteLine("%-16s %-12s %-8s %-12s %-6d %s" % ( d["ten"][:16], "%.0fx%.0f" % (d["rong"], d["cao"]), d["ti_le"], d["goc"], d["so_view"], "CÓ" if d["loi_thoi"] else "không")) if __name__ == "__main__": main()Giải thích code
GetScale()có hai tham số ra (tử số, mẫu số) nên Python trả về tuple.IsOutOfDatecho biết view cần cập nhật lại sau khi mô hình thay đổi.- Định dạng
%ghiển thị số gọn (1 thay vì 1.0).
Lỗi thường gặp
- Part chỉ chứa mô hình mà không có bản vẽ trả danh sách rỗng; không phải lỗi.
- Đơn vị của sheet có thể là inch ở bản vẽ cũ; đọc
sheet.Unitsnếu cần quy đổ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.