
Tạo part mới từ template bằng FileNew builder (đơn vị, tên file, hiển thị)
#Python#Part3 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Tạo file mới bằng script giúp mọi bản vẽ trong công ty có cùng template, cùng đơn vị. Công cụ là FileNew builder với vài thuộc tính cần đặt đúng.
Tạo part mới từ template bằng FileNew…Chuẩn bị
- Biết tên template trong NX của bạn (ví dụ Model, Assembly) và đơn vị mặc định (mm).
Các bước thực hiện
- Tạo builder. session.Parts.FileNew() trả về FileNew.
- Đặt template. Gán TemplateFileName và ApplicationName cho đúng với template.
- Đặt đơn vị và tên. Units, NewFileName; MakeDisplayedPart để hiển thị luôn.
- Commit. Gọi Commit() rồi Destroy().
- Lấy part mới. session.Parts.Work lúc này chính là part vừa tạo.
Code tham khảo (Python)
import os import NXOpen def tao_part_moi(duong_dan, template="Model", don_vi=None): session = NXOpen.Session.GetSession() os.makedirs(os.path.dirname(duong_dan), exist_ok=True) if don_vi is None: don_vi = NXOpen.Part.Units.Millimeters builder = session.Parts.FileNew() try: builder.TemplateFileName = template # tên template, tùy cấu hình site builder.ApplicationName = "ModelTemplate" # ứng dụng gắn với template builder.Units = don_vi builder.NewFileName = duong_dan builder.MakeDisplayedPart = True builder.Commit() finally: builder.Destroy() return session.Parts.Work def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() try: part = tao_part_moi("D:/Du_an/moi/chi_tiet_001.prt") lw.WriteLine("Đã tạo: " + part.FullPath) except NXOpen.NXException as ex: lw.WriteLine("Không tạo được part: " + ex.Message) if __name__ == "__main__": main()Giải thích code
TemplateFileNamevàApplicationNamephải khớp một template có thật trong thư mục template của site; sai là báo lỗi.NXOpen.Part.Units.Millimeters/Incheschọn đơn vị gốc của part.MakeDisplayedPart = Truelàm part mới trở thành Display Part.
Lỗi thường gặp
- Tên template tiếng Việt hoặc đã đổi tên trong site sẽ làm script lỗi; liệt kê template thực tế trong hộp thoại File > New để chép đúng.
- Tên file đã tồn tại sẽ gây lỗi; kiểm tra bằng
os.path.existstrước.
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.