
Session, Parts.Work và Parts.Display: khác nhau thế nào khi làm việc với assembly
#Python#Part2 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Rất nhiều lỗi 'tạo feature nhầm chi tiết' xuất phát từ việc không phân biệt Display Part và Work Part. Bài này giải thích hai khái niệm và đưa code in ra trạng thái hiện tại.
Session, Parts.Work và Parts.DisplayCác bước thực hiện
- Hiểu Display Part. Là chi tiết đang được hiển thị trong cửa sổ đồ họa (thường là assembly cấp cao nhất).
- Hiểu Work Part. Là chi tiết nhận các thay đổi; khi Make Work Part trên một component thì Work Part khác Display Part.
- Đọc cả hai. So sánh đường dẫn của Parts.Work và Parts.Display.
- Liệt kê mọi part đang nạp. Duyệt session.Parts để thấy tất cả chi tiết trong bộ nhớ.
- Đặt Work Part. Dùng Parts.SetWork(part) để chuyển hướng thao tác sang part khác.
Code tham khảo (Python)
import NXOpen def mo_ta(part): if part is None: return "(không có)" return "%s [%s]" % (part.Leaf, part.FullPath) def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() lw.WriteLine("Display Part : " + mo_ta(session.Parts.Display)) lw.WriteLine("Work Part : " + mo_ta(session.Parts.Work)) if session.Parts.Work is not session.Parts.Display: lw.WriteLine(">> Đang làm việc trên một component, KHÔNG phải assembly gốc.") lw.WriteLine("-- Tất cả part đang nạp --") for p in session.Parts: co_work = " (Work)" if p is session.Parts.Work else "" lw.WriteLine(" %s%s đã sửa: %s" % (p.Leaf, co_work, p.IsModified)) if __name__ == "__main__": main()Giải thích code
session.Partsduyệt được như danh sách; mỗi phần tử làNXOpen.BasePart(thường làPart).p.IsModifiedcho biết part có thay đổi chưa lưu.- So sánh bằng
isvì NX trả về cùng một đối tượng cho cùng một part.
Lỗi thường gặp
- Tạo feature bằng
Parts.Display.Featureskhi Work Part là component sẽ tạo nhầm vào assembly. - Part ở chế độ nạp một phần (partially loaded) có thể chưa có đủ dữ liệu; gọi
LoadFully()nếu cầ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.