NX Lab

Xuất STEP AP214 từ part bằng Step214Creator: file cấu hình, tên file, kiểm tra kết quả

#Python#STEP#Xuất file1 lượt xem

  1. Quản trị viênQuản trị· 0 điểm

    Câu hỏi ·

    STEP là định dạng trao đổi 3D phổ biến nhất. Step214Creator thực hiện y hệt hộp thoại File > Export > STEP214, và cần một file cấu hình .def của NX.

    Xuất STEP AP214 từ part bằng Step214Creator Xuất STEP AP214 từ part bằng Step214Creator

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

    1. Tìm file cấu hình. Thư mục step214ug trong UGII_BASE_DIR.
    2. Tạo creator. session.DexManager.CreateStep214Creator().
    3. Đặt nguồn và đích. ExportFrom, InputFile, OutputFile.
    4. Gán file cấu hình. SettingsFile.
    5. Commit rồi kiểm tra. File đầu ra tồn tại và có kích thước.

    Code tham khảo (Python)

    import os
    import NXOpen
    
    def file_cau_hinh_step214(session):
        goc = session.GetEnvironmentVariableValue("UGII_BASE_DIR")
        for ten in ("step214ug/ugstep214.def", "step214ug/ugstep214.def".replace("/", os.sep)):
            p = os.path.join(goc, ten)
            if os.path.isfile(p):
                return p
        return ""
    
    def xuat_step(session, duong_dan_prt, duong_dan_stp):
        os.makedirs(os.path.dirname(duong_dan_stp), exist_ok=True)
        cau_hinh = file_cau_hinh_step214(session)
        if not cau_hinh:
            raise RuntimeError("Không thấy file cấu hình STEP214 trong UGII_BASE_DIR")
        c = session.DexManager.CreateStep214Creator()
        try:
            c.ExportFrom = NXOpen.Step214Creator.ExportFromOption.ExistingPart
            c.InputFile = duong_dan_prt
            c.OutputFile = duong_dan_stp
            c.SettingsFile = cau_hinh
            c.FileSaveFlag = False
            c.Commit()
        finally:
            c.Destroy()
        if not os.path.isfile(duong_dan_stp) or os.path.getsize(duong_dan_stp) == 0:
            raise RuntimeError("Xuất xong nhưng không thấy file đầu ra: " + duong_dan_stp)
        return os.path.getsize(duong_dan_stp)
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        part = session.Parts.Work
        if part is None:
            return
        ra = "D:/NXLab_xuat/%s.stp" % part.Leaf
        try:
            kich = xuat_step(session, part.FullPath, ra)
            lw.WriteLine("Đã xuất STEP (%d KB): %s" % (kich // 1024, ra))
        except Exception as ex:
            lw.WriteLine("Lỗi xuất STEP: %s" % ex)
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • Đường dẫn file cấu hình có thể khác theo phiên bản NX; hàm dò tìm trong thư mục cài đặt và báo lỗi rõ ràng nếu không thấy.
    • Kiểm tra kích thước file đầu ra để phát hiện trường hợp lệnh chạy xong nhưng không tạo được file.
    • Với assembly, ExportExtRef và ExportExtRefStructureAs quyết định xuất một file hay nhiều file.

    Lỗi thường gặp

    • Quên SettingsFile thường gây lỗi trống hoặc dùng tùy chọn lạ; luôn gán rõ.
    • Đường dẫn đầu ra chứa dấu cách hoặc tiếng Việt có thể gây lỗi ở một số phiên bản; thử với đường dẫn đơn giản trướ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.