NX Lab

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

  1. 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… Nhập bản vẽ DXF/DWG vào NX bằng…

    Các bước thực hiện

    1. Tạo importer. session.DexManager.CreateDxfdwgImporter().
    2. Đặt nguồn, đích. InputFile, OutputFile.
    3. Chọn dữ liệu. ConvModelData, ConvLayoutData.
    4. Tắt mở lại. FileOpenFlag False.
    5. 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

    • ConvModelData nhập hình học từ không gian mô hình (model space) của DXF.
    • ConvLayoutData nhập thêm các layout (paper space) thành sheet bản vẽ.
    • File .def cấ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.