
Nhập bản vẽ DXF/DWG vào NX bằng DxfdwgImporter và chuyển layer theo quy tắc
#Python#DXF#Nhập file1 lượt xem
Quản trị viênQuản trị· 0 điểm
Câu hỏi ·
Bản vẽ 2D cũ thường ở dạng DXF/DWG. DxfdwgImporter nhập chúng vào part NX, tạo part mới hoặc thêm vào part đang mở, kèm tùy chọn chuyển đổi bố cục và kích thước.
Nhập bản vẽ DXF/DWG vào NX bằng…Các bước thực hiện
- Tạo importer. session.DexManager.CreateDxfdwgImporter().
- Đặt nguồn, đích. InputFile, OutputFile.
- Chọn dữ liệu. ConvModelData, ConvLayoutData.
- Tắt mở lại. FileOpenFlag False.
- Commit và kiểm tra. Kiểm tra file .prt đã được tạo.
Code tham khảo (Python)
import os import NXOpen def nhap_dxf(session, nguon, dich, mo_hinh=True, bo_cuc=False): if not os.path.isfile(nguon): raise FileNotFoundError(nguon) os.makedirs(os.path.dirname(dich), exist_ok=True) im = session.DexManager.CreateDxfdwgImporter() try: im.InputFile = nguon im.OutputFile = dich im.ConvModelData = mo_hinh im.ConvLayoutData = bo_cuc im.FileOpenFlag = False im.Commit() finally: im.Destroy() return os.path.isfile(dich) def main(): session = NXOpen.Session.GetSession() lw = session.ListingWindow lw.Open() nguon = "D:/Nhan_ve/mat_bang.dxf" dich = "D:/Du_an/nhap/mat_bang.prt" try: ok = nhap_dxf(session, nguon, dich) lw.WriteLine("Nhập " + ("thành công: " + dich if ok else "xong nhưng không thấy file .prt")) except Exception as ex: lw.WriteLine("Lỗi nhập DXF: %s" % ex) if __name__ == "__main__": main()Giải thích code
ConvModelDatanhập hình học từ không gian mô hình (model space) của DXF.ConvLayoutDatanhập thêm các layout (paper space) thành sheet bản vẽ.- File
.defcấu hình (ánh xạ layer, font, kiểu đường) nên dùng để kết quả đồng nhất giữa các lần nhập.
Lỗi thường gặp
- DXF dùng đơn vị khác part NX có thể làm bản vẽ sai tỉ lệ; kiểm tra bằng cách đo một kích thước đã biết.
- Font tiếng Việt trong DXF cũ thường bị lỗi (TCVN3); cần chuyển mã trước khi nhập.
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.