
Xuất STL để in 3D bằng STLCreator: dung sai cung (chordal) và dạng nhị phân/văn bản
#Python#STL#Xuất file1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
In 3D và nhiều máy cắt cần STL. Chất lượng lưới STL quyết định bởi dung sai chordal và angular; dung sai nhỏ cho bề mặt mịn nhưng file lớn.
Xuất STL để in 3D bằng STLCreatorCác bước thực hiện
- Tạo STLCreator. session.DexManager.CreateStlCreator().
- Chọn dạng file. OutputType nhị phân hoặc văn bản.
- Đặt dung sai. ChordalTol và AngularTol.
- Chọn body xuất. ExportSelectionBlock.SelectObjects(bodies).
- Commit và hủy. Commit() rồi Destroy().
Code tham khảo (Python)
import os import NXOpen def xuat_stl(session, bodies, duong_dan, dung_sai_cung=0.02, dung_sai_goc=5.0, nhi_phan=True): os.makedirs(os.path.dirname(duong_dan), exist_ok=True) c = session.DexManager.CreateStlCreator() try: c.OutputFile = duong_dan c.OutputType = (NXOpen.STLCreator.OutputTypeEnum.Binary if nhi_phan else NXOpen.STLCreator.OutputTypeEnum.Text) c.ChordalTol = dung_sai_cung c.AngularTol = dung_sai_goc c.AutoNormalGen = True c.ExportSelectionBlock.SelectObjects(bodies) c.Commit() finally: c.Destroy() def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() part = session.Parts.Work bodies = [b for b in part.Bodies if b.IsSolidBody] if part else [] if not bodies: lw.WriteLine("Không có body đặc để xuất") return ra = "D:/NXLab_xuat/%s.stl" % part.Leaf try: xuat_stl(session, bodies, ra) lw.WriteLine("Đã xuất STL (%d KB): %s" % (os.path.getsize(ra) // 1024, ra)) except Exception as ex: lw.WriteLine("Lỗi xuất STL: %s" % ex) if __name__ == "__main__": main()Giải thích code
ChordalTollà sai lệch tối đa giữa bề mặt thật và tam giác (mm); giảm giá trị để mịn hơn.- STL nhị phân nhỏ gọn hơn STL văn bản nhiều lần nên là mặc định hợp lý.
SelectObjectsnhận danh sách body; đưa nhiều body thì xuất chung một file.
Lỗi thường gặp
- Tên enum
OutputTypeEnumcó thể khác chữ ở vài phiên bản; kiểm tra bằngdir()trên máy bạn. - STL không lưu đơn vị; hãy thống nhất mm khi gửi cho xưởng in.
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.