NX Lab

Khởi tạo CAM Session và kiểm tra part đã có CAM Setup chưa; tạo setup mới từ template

#Python#CAM1 lượt xem

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

    Câu hỏi ·

    Mọi script CAM bắt đầu từ chuyện part đã vào môi trường Manufacturing và có CAM Setup chưa. Bài này kiểm tra hai điều kiện đó, và nếu chưa có thì tạo setup từ một template của site.

    Khởi tạo CAM Session và kiểm tra part đã… Khởi tạo CAM Session và kiểm tra part đã…

    Chuẩn bị

    • Có giấy phép Manufacturing và template CAM của site (ví dụ mill_planar, mill_contour).

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

    1. Chuyển sang ứng dụng Manufacturing. session.ApplicationSwitchImmediate("UG_APP_MANUFACTURING").
    2. Khởi tạo CAM Session. session.CreateCamSession() nếu chưa khởi tạo.
    3. Kiểm tra setup. part.CAMSetup là None nếu chưa có.
    4. Tạo setup. part.CreateCamSetup(tên_template).
    5. Xác nhận. In tên setup và thư viện tham chiếu.

    Code tham khảo (Python)

    import NXOpen
    import NXOpen.CAM
    
    def chuan_bi_cam(session):
        session.ApplicationSwitchImmediate("UG_APP_MANUFACTURING")
        if not session.IsCamSessionInitialized():
            session.CreateCamSession()
    
    def lay_hoac_tao_setup(session, part, template="mill_planar"):
        chuan_bi_cam(session)
        setup = part.CAMSetup
        if setup is None:
            setup = part.CreateCamSetup(template)
        return setup
    
    def main():
        session = NXOpen.Session.GetSession()
        lw = session.ListingWindow
        lw.Open()
        part = session.Parts.Work
        if part is None:
            lw.WriteLine("Chưa có Work Part")
            return
        try:
            setup = lay_hoac_tao_setup(session, part)
            lw.WriteLine("CAM Setup sẵn sàng. Thư viện tham chiếu: %s" % setup.LibraryReference)
            lw.WriteLine("Vật liệu part: %s" % setup.GetPartMaterial())
        except NXOpen.NXException as ex:
            lw.WriteLine("Không khởi tạo được CAM: %s (kiểm tra giấy phép và tên template)" % ex.Message)
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • IsCamSessionInitialized tránh khởi tạo CAM Session hai lần.
    • part.CAMSetup trả về None khi part chưa có dữ liệu gia công.
    • Tên template (mill_planar...) phụ thuộc cấu hình CAM của site; xem danh sách bằng session.CAMSession.GetTemplateTypes().

    Lỗi thường gặp

    • Chuyển ứng dụng khi chạy nền có thể không có tác dụng; một số phiên bản yêu cầu giao diện.
    • Tạo setup sai template cho kết quả khó sửa; xác nhận với người lập trình CAM của công ty.

    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.