
Đổi Reference Set hàng loạt cho component: chuyển sang MODEL hoặc BODY để nhẹ assembly
#Python#Assembly#Reference Set1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Assembly nặng thường vì mọi component đều hiện toàn bộ hình học. Đổi reference set sang tập chỉ gồm thân (BODY) hay một tập nhẹ khác giúp giảm tải đáng kể.
Đổi Reference Set hàng loạt cho componentCác bước thực hiện
- Chọn component. Theo tên hoặc theo loại part.
- Chọn reference set. Tên phải tồn tại trong part của component.
- Gọi ReplaceReferenceSet. Từng component hoặc ReplaceReferenceSetInOwners cho danh sách.
- Xử lý lỗi. Bỏ qua component không có tập đó.
- Báo cáo. Số đổi được và số bỏ qua.
Code tham khảo (Python)
import NXOpen def tat_ca_la(root): la, ngan_xep = [], list(root.GetChildren()) while ngan_xep: c = ngan_xep.pop() con = c.GetChildren() if con: ngan_xep.extend(con) else: la.append(c) return la def doi_reference_set(part, danh_sach, ten_moi): da_doi, bo_qua = [], [] for c in danh_sach: if c.ReferenceSet == ten_moi: continue try: part.ComponentAssembly.ReplaceReferenceSet(c, ten_moi) da_doi.append(c) except NXOpen.NXException as ex: bo_qua.append((c.DisplayName, ex.Message)) return da_doi, bo_qua def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work root = part.ComponentAssembly.RootComponent if part else None if root is None: return session.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Doi reference set") la = tat_ca_la(root) da_doi, bo_qua = doi_reference_set(part, la, "BODY") lw.WriteLine("Đổi %d / %d component sang reference set BODY" % (len(da_doi), len(la))) for ten, msg in bo_qua: lw.WriteLine(" Bỏ qua %s: %s" % (ten, msg)) if __name__ == "__main__": main()Giải thích code
- Tên reference set là chuỗi, phải khớp chính xác (kể cả chữ hoa/thường) với tên trong part của component.
- Component đã đúng reference set thì bỏ qua, tránh thao tác thừa.
- Khi không có tập
BODY, NX báo lỗi; bắt từng component để kết quả báo cáo đầy đủ.
Lỗi thường gặp
- Reference set
Emptylàm component biến mất khỏi hiển thị nhưng vẫn nằm trong cây; đừng nhầm với xóa. - Thay đổi reference set ảnh hưởng đo đạc và khối lượng của assembly; cân nhắc trước khi tính toá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.