NX Lab

Ước tính thời gian và chi phí gia công từ bảng thông số (Python thuần): chiều dài đường chạy, lượng chạy dao

#Python#Chi phí#CAM1 lượt xem

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

    Câu hỏi ·

    Khi chưa có mô phỏng, vẫn có thể ước tính thô thời gian gia công từ chiều dài đường chạy cắt và lượng chạy dao, cộng thời gian chạy không và thay dao. Hàm thuần Python này nhập từ bảng CSV, dùng cho báo giá nhanh.

    Ước tính thời gian và chi phí gia công từ… Ước tính thời gian và chi phí gia công từ…

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

    1. Chuẩn bị bảng. Mỗi dòng một operation: chiều dài cắt, feed, chiều dài chạy không, số lần thay dao.
    2. Tính thời gian cắt. Chiều dài chia feed.
    3. Tính thời gian chạy không. Chiều dài chia tốc độ chạy nhanh.
    4. Cộng thời gian thay dao. Số lần nhân thời gian mỗi lần.
    5. Tính chi phí. Thời gian nhân đơn giá máy.

    Code tham khảo (Python)

    import csv
    
    TOC_DO_CHAY_NHANH = 10000.0     # mm/phút
    THOI_GIAN_THAY_DAO = 0.25       # phút mỗi lần
    DON_GIA_MAY = 450000.0          # đồng / giờ
    
    def doc_bang(duong_dan):
        with open(duong_dan, "r", newline="", encoding="utf-8-sig") as f:
            return [{
                "ten": d["operation"],
                "dai_cat": float(d["dai_cat_mm"]),
                "feed": float(d["feed_mm_phut"]),
                "dai_khong": float(d["dai_chay_khong_mm"]),
                "thay_dao": int(d["so_lan_thay_dao"]),
            } for d in csv.DictReader(f)]
    
    def uoc_tinh(bang):
        dong, tong = [], 0.0
        for d in bang:
            if d["feed"] <= 0:
                raise ValueError("Feed phải > 0 ở operation " + d["ten"])
            t_cat = d["dai_cat"] / d["feed"]
            t_khong = d["dai_khong"] / TOC_DO_CHAY_NHANH
            t_dao = d["thay_dao"] * THOI_GIAN_THAY_DAO
            t = t_cat + t_khong + t_dao
            tong += t
            dong.append((d["ten"], t_cat, t_khong, t_dao, t))
        return dong, tong
    
    def main(duong_dan="D:/NXLab_nhap/thong_so_gia_cong.csv"):
        dong, tong = uoc_tinh(doc_bang(duong_dan))
        print("%-24s %8s %8s %8s %8s" % ("Operation", "Cắt", "Không", "Thay dao", "Tổng"))
        for ten, a, b, c, t in dong:
            print("%-24s %8.2f %8.2f %8.2f %8.2f" % (ten[:24], a, b, c, t))
        print("TỔNG: %.1f phút = %.2f giờ" % (tong, tong / 60.0))
        print("Chi phí máy ước tính: {:,.0f} đồng".format(tong / 60.0 * DON_GIA_MAY))
    
    if __name__ == "__main__":
        main()
    

    Giải thích code

    • Đây là ước tính thô; thời gian thật phụ thuộc gia tốc máy, độ trễ lệnh và chiến lược cắt.
    • Tách các hằng số (tốc độ chạy nhanh, đơn giá) ra đầu file để dễ đổi theo từng máy.
    • Tất cả là Python thuần nên chạy và test được ngoài NX.

    Lỗi thường gặp

    • Đơn giá và tốc độ trong ví dụ chỉ là số minh họa, không phải số liệu của bất kỳ máy nào; dùng số liệu của xưởng bạn.
    • Ước tính sai lệch lớn với đường chạy 3D phức tạp; hiệu chỉnh hệ số bằng dữ liệu thực tế (tỉ lệ thời gian thật / ước tính).

    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.