DEV Community

Cover image for Panels, Sets and Shots: A Small Python Model for Blow Molded Table-Top Capacity
Tongda Machinery
Tongda Machinery

Posted on

Panels, Sets and Shots: A Small Python Model for Blow Molded Table-Top Capacity

Folding tables and camping tables often use a hollow, blow molded HDPE top. When a furniture maker plans one of these lines, the first spreadsheet usually takes a cycle time from a machine brochure, multiplies it by hours in a year, and calls the result "capacity". That number is almost always too high, and it is sometimes counted in the wrong unit.

This post turns the planning logic into a few lines of Python. The reference case comes from a table-top article published by Suzhou Tongda Machinery, a Zhangjiagang-based extrusion blow molding machine maker. Their article on controlling flatness on the TDW-250A covers the process side (wall distribution, cooling and support). Here we focus on the arithmetic.

The reported inputs

The source reports these values for the TDW-250A table-top project:

Item Reported value
Clamping force 1,200 kN
Accumulator 28 L
Maximum shot rate 1.6 kg/s
Cycle 120 s for one two-panel set
Set weight about 5.8 kg in total

Two things are worth noting before writing any code. First, the cycle produces a set of two panels. A quote that says "30 per hour" could mean sets or panels, and the difference is a factor of two. Second, the maximum shot rate describes how fast the accumulator can discharge. It is not an output figure for finished tops.

Step 1: theoretical output, with the unit in the name

def theoretical_output(cycle_s: float, panels_per_cycle: int, hours: float = 1.0):
    cycles = hours * 3600 / cycle_s
    return {"sets": cycles, "panels": cycles * panels_per_cycle}

print(theoretical_output(120, 2))        # {'sets': 30.0, 'panels': 60.0}
print(theoretical_output(120, 2, 24))    # {'sets': 720.0, 'panels': 1440.0}
Enter fullscreen mode Exit fullscreen mode

Returning both units from the same function makes it hard to mix them up later. These are still theoretical numbers: 24 uninterrupted hours with no rejects.

Step 2: accepted output

Real lines stop for mold changes, color changes, material issues and maintenance, and some panels fail inspection. Model those as explicit inputs, not as a single "efficiency" fudge factor that nobody can audit.

def accepted_output(cycle_s, panels_per_cycle, planned_hours,
                    downtime_hours, reject_rate):
    run_hours = planned_hours - downtime_hours
    t = theoretical_output(cycle_s, panels_per_cycle, run_hours)
    good_panels = t["panels"] * (1 - reject_rate)
    return {"run_hours": run_hours,
            "good_panels": good_panels,
            "good_sets": good_panels / panels_per_cycle}
Enter fullscreen mode Exit fullscreen mode

Plug in your own plant's planned hours, recorded downtime and reject history. The function will not invent them for you, and that is intentional. If a supplier gives you an accepted-output figure that already excludes stoppages, do not subtract them twice.

Step 3: a sanity check on resin throughput

The extruder has to plasticize the resin for every shot. A quick check compares the material demanded per hour with what the extrusion system is rated for:

def resin_demand_kg_per_h(set_weight_kg, cycle_s, flash_kg_per_set=0.0):
    return (set_weight_kg + flash_kg_per_set) * 3600 / cycle_s

print(resin_demand_kg_per_h(5.8, 120))  # 174.0 kg/h before flash
Enter fullscreen mode Exit fullscreen mode

Flash weight is left as a parameter because it depends on the tool and trimming design. If the demand is close to the extruder's rated output, the cycle in the brochure may not be achievable with your part, and that is worth raising early.

Step 4: keep flatness out of the capacity model, but not out of the plan

A panel that warps is a reject, so flatness affects reject_rate. However, flatness is a separate acceptance criterion that needs its own definition: which surface, which supports, what temperature and how long after demolding. The source article makes the point that "perfectly flat" is not a production criterion without those conditions. Put the measurement method in the trial agreement, then let the measured reject rate feed the model.

What to ask the equipment supplier for

  • Cycle definition: what is counted, and is it a set or a single panel?
  • Trial duration and the accepted count at a stated line boundary
  • Part and flash weight from the trial, not from the drawing
  • Mold envelope and machine revision used in the trial
  • Take-out, trimming and any cooling fixtures included in scope

Tongda lists its large-part machines, such as the TDW-350F for pallets and table panels, alongside the rest of its blow molding machines from 2 L to 1200 L. If you want to see the source data, the company's official site is tongdamachine.net.


Written by Eileen Yu, Vice General Manager of Suzhou Tongda Machinery, with 20 years in the blow molding industry. Tongda, founded in 1999, makes hydraulic, servo and fully electric extrusion blow molding machines and has delivered more than 10,000 machines to more than 100 countries.

Top comments (0)