
Thêm component vào assembly bằng AddComponent: file, vị trí, ma trận và reference set
#Python#Assembly1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Dựng assembly từ danh sách file là yêu cầu thường gặp. AddComponent nhận đường dẫn part, tên reference set, tên component, điểm đặt và ma trận định hướng, rồi trả về component mới.
Thêm component vào assembly bằng…Các bước thực hiện
- Chuẩn bị assembly đích. Part đang là Work Part, đã lưu.
- Chuẩn bị điểm và ma trận. Point3d và Matrix3x3 đơn vị.
- Gọi AddComponent. Trả về tuple (component, load_status).
- Kiểm tra trạng thái nạp. load_status.NumberUnloadedParts.
- Báo kết quả. Tên component vừa thêm.
Code tham khảo (Python)
import os import NXOpen def ma_tran_don_vi(): m = NXOpen.Matrix3x3() m.Xx, m.Xy, m.Xz = 1.0, 0.0, 0.0 m.Yx, m.Yy, m.Yz = 0.0, 1.0, 0.0 m.Zx, m.Zy, m.Zz = 0.0, 0.0, 1.0 return m def them_component(assembly_part, duong_dan, ten, x, y, z, ref_set="Entire Part"): if not os.path.isfile(duong_dan): raise FileNotFoundError(duong_dan) comp, status = assembly_part.ComponentAssembly.AddComponent( duong_dan, ref_set, ten, NXOpen.Point3d(x, y, z), ma_tran_don_vi(), 1) try: if status.NumberUnloadedParts > 0: raise RuntimeError("Có %d part không nạp được khi thêm %s" % (status.NumberUnloadedParts, ten)) finally: status.Dispose() return comp def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work if part is None: return session.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Them component") try: c = them_component(part, "D:/Du_an/chi_tiet/bu_long_m8.prt", "BU_LONG_1", 0.0, 0.0, 0.0) lw.WriteLine("Đã thêm component: " + c.DisplayName) except Exception as ex: lw.WriteLine("Không thêm được: %s" % ex) if __name__ == "__main__": main()Giải thích code
- Tham số cuối
1là layer; hàm trả(Component, PartLoadStatus)do tham sốloadStatuslà tham số ra. - Tên reference set mặc định
Entire Parthiển thị toàn bộ chi tiết; các reference set tùy chỉnh dùng tên của riêng site. - Ma trận đơn vị đặt component theo hướng của assembly; thay ma trận để xoay.
Lỗi thường gặp
- Component thêm bằng cách này chưa có ràng buộc, chỉ nằm ở vị trí đặt; thêm constraint nếu cần chuyển động.
- Đường dẫn hoặc tên file chứa dấu cách và tiếng Việt cần kiểm tra mã hóa; tránh khi triển khai máy chủ.
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.