NX Lab

Chụp ảnh khung nhìn ra file PNG bằng ImageExportBuilder: ảnh minh họa cho báo cáo tự động

#Python#Hình ảnh1 lượt xem

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

    Câu hỏi ·

    Báo cáo kiểm tra thường cần ảnh chi tiết kèm theo. NX có ImageExportBuilder cho phép xuất khung nhìn đồ họa ra file ảnh PNG, nền giữ nguyên hoặc trong suốt.

    Chụp ảnh khung nhìn ra file PNG bằng… Chụp ảnh khung nhìn ra file PNG bằng…

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

    1. Chuẩn bị khung nhìn. Fit và đổi sang hướng nhìn đẳng cự.
    2. Tạo builder. NXOpen.UI.GetUI().CreateImageExportBuilder().
    3. Đặt định dạng và tên file. FileFormat = Png, FileName = đường dẫn.
    4. Chọn nền. BackgroundOption = Original hoặc Transparent.
    5. Commit và hủy. Commit() rồi Destroy().

    Code tham khảo (Python)

    import os
    import NXOpen
    
    def chup_anh(duong_dan, nen_trong_suot=False):
        os.makedirs(os.path.dirname(duong_dan), exist_ok=True)
        b = NXOpen.UI.GetUI().CreateImageExportBuilder()
        try:
            b.FileFormat = NXOpen.Gateway.ImageExportBuilder.FileFormats.Png
            b.FileName = duong_dan
            b.RegionMode = False                     # xuất toàn bộ cửa sổ đồ họa
            b.EnhanceEdges = False
            b.BackgroundOption = (NXOpen.Gateway.ImageExportBuilder.BackgroundOptions.Transparent
                                  if nen_trong_suot
                                  else NXOpen.Gateway.ImageExportBuilder.BackgroundOptions.Original)
            b.Commit()
        finally:
            b.Destroy()
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        part = session.Parts.Work
        if part is None:
            return
        view = part.ModelingViews.WorkView
        view.Orient(NXOpen.View.Canned.Isometric, NXOpen.View.ScaleAdjustment.Fit)
        view.UpdateDisplay()
        duong_dan = "D:/NXLab_xuat/%s.png" % part.Leaf
        chup_anh(duong_dan)
        lw.WriteLine("Đã chụp ảnh: " + duong_dan)
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • CreateImageExportBuilder nằm trên UI vì ảnh chụp lấy từ cửa sổ đồ họa.
    • RegionMode = True kết hợp RegionWidth, RegionHeight dùng để chụp một vùng nhỏ thay vì toàn bộ cửa sổ.
    • Luôn Destroy() builder sau khi xuất để giải phóng tài nguyên.

    Lỗi thường gặp

    • Cần cửa sổ đồ họa đang hiển thị; không dùng được trong chế độ chạy nền.
    • Tên file phải có đuôi .png khớp với định dạng đã chọn.

    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.