diff --git a/README.md b/README.md index 3b56cfd..c4dcef5 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,9 @@ The detail lives in dedicated documents: BIM model in FreeCAD 26.3 (`docs/cnx_vinyl_parametric_payap.FCStd`, [isometric](docs/cnx_vinyl_parametric_payap-iso.png)) of the whole plant on a square placeholder plot of Payap land: a 128 x 25 m production-only - factory with the five-press fleet, room for ten more Classics, one + factory with the five-press fleet, room for ten more Classics (drawn + before the October 2026 decision to lay the hall out 60/40 for Duplex + systems: four Duplex bays and six Classic positions), one shared hydraulic and air plant, a colour store with outdoor silos and a two-storey finishing and print block ([plans](docs/cnx_vinyl_parametric_payap-block.png)), a separate diff --git a/docs/business-plan/CNX-Vinyl-Business-Plan.docx b/docs/business-plan/CNX-Vinyl-Business-Plan.docx index 67e7965..1e7b5e9 100644 Binary files a/docs/business-plan/CNX-Vinyl-Business-Plan.docx and b/docs/business-plan/CNX-Vinyl-Business-Plan.docx differ diff --git a/docs/business-plan/CNX-Vinyl-Business-Plan.pdf b/docs/business-plan/CNX-Vinyl-Business-Plan.pdf index 191fd05..8e77ae3 100644 Binary files a/docs/business-plan/CNX-Vinyl-Business-Plan.pdf and b/docs/business-plan/CNX-Vinyl-Business-Plan.pdf differ diff --git a/docs/business-plan/build/content_a.py b/docs/business-plan/build/content_a.py index aba81de..7f72441 100644 --- a/docs/business-plan/build/content_a.py +++ b/docs/business-plan/build/content_a.py @@ -548,8 +548,8 @@ def blocks(): "~0.71 to 0.97 million records"], ["Growth option: second Duplex", "4 semi-automatic + 1 Classic, 2 shifts; room reserved, not in " "the investment", "~1.0 to 1.5 million records"], - ["Expansion option", "The five-press fleet plus up to ten more Classics; a utility phase of its " - "own", "~4.7 to 5.8 million records (estimate)"], + ["Full hall (option)", "4 Duplex systems + 6 Classics, the press hall laid out 60/40 for Duplex " + "(special pressings first); a utility phase of its own", "~3.6 to 4.7 million records (estimate)"], ], widths_mm=[40, 80, 50], caption="Basis: semi-automatic 60 to 80 records/h assumed; Classic ~128/h (vendor flyer); 16 h/day, " "300 days/yr, 60 to 70% overall equipment effectiveness. The launch plant is 248 to 288 " diff --git a/docs/business-plan/build/content_b.py b/docs/business-plan/build/content_b.py index d71aa4f..8e39f4f 100644 --- a/docs/business-plan/build/content_b.py +++ b/docs/business-plan/build/content_b.py @@ -487,7 +487,7 @@ def blocks(): "**Flooding:** Payap describes the land as low-lying when bought; check the plot against the " "2024 flood extents.", "**Plot fit:** the building, the detached utility yard and a second building need 6 to 8 rai; " - "the Payap scenario model draws a 150 m square (14.1 rai) with room for ten more Classics.", + "the Payap scenario model draws a 150 m square (14.1 rai) with room for the full press hall.", "**Galvanics on a campus:** the lessor's written consent; zero discharge becomes a lease " "condition, not only a commitment.", ]), @@ -628,7 +628,8 @@ def blocks(): "It is where finished goods move to free production floor, where pressing capacity can double, " "or where a CD replication line would go if that option is chosen (section 4.9). Where the " "second Duplex system stands on the Mueang Chi footprint is not drawn yet; the Payap scenario " - "model draws the whole five-press fleet with room for ten more Classics."), + "model draws the five-press fleet; its press hall is now planned 60/40 for Duplex systems (four " + "Duplex bays and six Classic positions), because the plant focuses on special pressings."), H3("What the construction RFQ asks"), P("The budget-level construction RFQ, with quantities from the parametric model, asks contractors " "for: the shell rate per m² at the insulated-panel specification (not a bare shed); heavy-duty " diff --git a/docs/crane-workshop-tours.md b/docs/crane-workshop-tours.md index 0a9581e..edbe97d 100644 --- a/docs/crane-workshop-tours.md +++ b/docs/crane-workshop-tours.md @@ -321,8 +321,8 @@ into a separate office building, so only production sits under the crane. The tour then starts in the office building, at the cutting-room window and the listening room, and crosses a covered link into a 98 m corridor. That is longer than the 45 to 55 m assumed below, because the -press hall keeps room for ten more Classics and a colour store sits -before it. In that model the crane runway ends at the press hall: +press hall keeps room for four Duplex systems and six Classics and a +colour store sits before it. In that model the crane runway ends at the press hall: finishing and packaging sit beyond it in a two-storey block with the print room and stocks upstairs, which the crane cannot serve, so loads there move by forklift and goods lift. The model also draws the diff --git a/docs/equipment/pressing-line.md b/docs/equipment/pressing-line.md index 87fa0f3..471e1b7 100644 --- a/docs/equipment/pressing-line.md +++ b/docs/equipment/pressing-line.md @@ -96,14 +96,25 @@ automated candidate). What it means: between machines. The EX 35 and trimmer footprints are not published, so those are estimates. The [Payap scenario model](../site-candidates.md#payap-scenario-model-october-2026) draws both systems this way. -- **Room to grow: possibly ten more Classics.** The plant may add up to - ten more Newbilt Classics at some point. This is an option, not part of - the plan or the investment: the layout keeps floor for it (ten Classic - positions in the Payap scenario model), and the central hydraulic and +- **Room to grow: a hall laid out 60/40 for Duplex systems (October + 2026).** The plant will mainly press special editions (splatter, colour + effects, small runs), not mono colours, so the press hall keeps more + floor for Duplex systems than for Classics: 60/40 by floor, four Duplex + bays (the launch system and three more) and six Classic positions (the + launch Classic and five more). At the calculator's floor figures (110 m² + per Duplex bay, 50 m² per Classic) that is 440 + 300 = ~740 m² of the + ~870 m² hall; the rest stays open for mould carts and staging. Growth + adds Duplex systems first. The full hall is eight semi-automatic presses + and six Classics, 57/43 by press count; by hourly output the six + automatic Classics still press more (~770 against 480 to 640 records an + hour, estimate). This is an option, not part of the plan or the + investment: the layout keeps the floor, and the central hydraulic and air plant should be sized or extendable for it. At Newbilt's per-press - figures, fifteen presses would draw ~2.3 to 2.7 t/h of steam and up to - ~1.9 MW of cooling, so boiler, chiller and grid connection would be a - phase of their own ([scale](../scale.md)). + figures, the fourteen presses would draw ~2.1 to 2.5 t/h of steam and up + to ~1.8 MW of cooling, so boiler, chiller and grid connection would be a + phase of their own ([scale](../scale.md)). The Payap scenario model in + FreeCAD still draws the earlier layout (two Duplex bays and eleven + Classic positions). - **Capacity** at maturity stays at ~1.0 to 1.5 million records a year on two shifts, the range the [revenue model](../finance/revenue-model.md) uses: four semi-automatic presses at 60 to 80 records an hour (estimate) @@ -132,7 +143,8 @@ automated candidate). What it means: flyer's Duplex main configuration runs two presses on one extruder); the Classic's price, weight, power, steam and cooling figures; and the central hydraulic supply (an option the flyer offers) for the whole - fleet, extendable to ten more Classics, including whether the Classic + fleet, extendable to the full hall (four Duplex systems, six Classics), + including whether the Classic can run from it, whether the presses hold their pressure from it over the ring-main lengths of the hall, the filtration and isolation each branch needs, and whether the Single 2.1's aggregate can be its first diff --git a/docs/fleet-calculator.html b/docs/fleet-calculator.html index f655b62..e05c849 100644 --- a/docs/fleet-calculator.html +++ b/docs/fleet-calculator.html @@ -612,7 +612,7 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; } - + @@ -813,9 +813,10 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }

From small to fully equipped

-

Fleets from the launch plant to a full Payap press hall (about 870 m²: - the two Duplex bays plus the Classic and ten more Classic positions, or the same floor - with more Duplex systems), at the current settings and plant configuration. Click a row to load it.

+

Fleets from the launch plant to a full Payap press hall (about 870 m², + laid out 60/40 by floor for Duplex systems because the plant focuses on special pressings: four + Duplex bays and six Classic positions, ~740 m²), then the same floor filled Classic-led or with + Duplex systems only, for comparison, at the current settings and plant configuration. Click a row to load it.

@@ -1238,7 +1239,9 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; } function X(fx) { return FX + fx; } function Y(fy) { return FY + fy; } // Press hall: 2 rows, 8 m deep. Slot lengths follow the calculator's floor - // figures (110 m2 per Duplex bay, 50 m2 per Classic, 870 m2 hall). + // figures (110 m2 per Duplex bay, 50 m2 per Classic, 870 m2 hall). Laid out 60/40 by floor + // for Duplex systems (special pressings first, October 2026): 4 Duplex bays + 6 Classic positions. + var HALL_D = 4, HALL_C = 6; var HALL = { cap: 870, aD: 110, aC: 50 }; var HROWS = [{ x: X(40), y0: Y(3.6), y1: Y(11.6), len: 52 }, { x: X(47.8), y0: Y(12.4), y1: Y(20.4), len: 44.2 }]; var LTOT = 52 + 44.2, WD = HALL.aD / HALL.cap * LTOT, WC = HALL.aC / HALL.cap * LTOT; @@ -1279,8 +1282,8 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; } var D = cfg.duplex, Cn = cfg.classic, A = 0, Dh = 0, Ch = 0, i, items = []; while (Dh < D && A + HALL.aD <= HALL.cap + 1e-9) { Dh++; A += HALL.aD; } while (Ch < Cn && A + HALL.aC <= HALL.cap + 1e-9) { Ch++; A += HALL.aC; } - var eD = Math.max(0, 2 - Dh); while (eD > 0 && A + eD * HALL.aD > HALL.cap) eD--; - var eC = Math.max(0, 11 - Ch); while (eC > 0 && A + eD * HALL.aD + eC * HALL.aC > HALL.cap) eC--; + var eD = Math.max(0, HALL_D - Dh); while (eD > 0 && A + eD * HALL.aD > HALL.cap) eD--; + var eC = Math.max(0, HALL_C - Ch); while (eC > 0 && A + eD * HALL.aD + eC * HALL.aC > HALL.cap) eC--; for (i = 0; i < Dh; i++) items.push({ t: "D", n: i + 1 }); for (i = 0; i < eD; i++) items.push({ t: "D", e: 1 }); for (i = 0; i < Ch; i++) items.push({ t: "C", n: i + 1 }); @@ -1562,7 +1565,7 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; } sc.inf("factory", "Factory, 128 x 25 m", "Production floor only (Payap scenario model): workshop, galvanics, stamper prep, PVC lab, colour store, press hall, finishing block; warehouse and dispatch behind the fire wall. Monopitch roof, low eave 7.0 m, high side 11.4 m."); sc.inf("presshall", "Press hall, ~870 m2", - al.Dh + " Duplex system" + (al.Dh === 1 ? "" : "s") + " and " + al.Ch + " Classic" + (al.Ch === 1 ? "" : "s") + " in the hall; laid out for 2 Duplex bays + 11 Classic positions (Payap scenario model)" + + al.Dh + " Duplex system" + (al.Dh === 1 ? "" : "s") + " and " + al.Ch + " Classic" + (al.Ch === 1 ? "" : "s") + " in the hall; laid out 60/40 by floor for special pressings: 4 Duplex bays and 6 Classic positions, ~740 m2 (pressing-line.md)" + (al.p2need ? "; " + (al.ovD + al.ovC) + " more in the phase 2 building" : "")); sc.inf("galvanics", cfg.galvanics ? "Galvanics clean room (Pheenix Alpha line)" : "Galvanics room: stampers bought in", cfg.galvanics ? "PASU, PPPU, PDPU, PMPB; one PDPU covers full-capacity demand, a second is redundancy (galvanics.md). Room-in-room under the crane, open to stamper prep." : @@ -1680,7 +1683,7 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; } fl.flat(pts, z + 0.015, "iso-slot iso-empty", id); sc.inf(id, sl.t === "D" ? "Duplex bay (room reserved)" : "Classic position (reserved)", sl.t === "D" ? "Growth option: room, utility modules and ring-main tees reserved, not in the investment (pressing-line.md)" : - "Floor kept for up to ten more Classics (option, not in the plan)"); + "Classic position kept for growth (option, not in the investment); the hall is laid out 60/40 for Duplex systems (pressing-line.md)"); } else fl.flat(pts, z + 0.015, "iso-slot", sl.t === "D" ? "duplex-" + sl.n : "classic-" + sl.n); if (!sl.e && sl.t === "D") { var cx = (sl.x0 + sl.x1) / 2, cy = (sl.y0 + sl.y1) / 2; @@ -3076,8 +3079,9 @@ function caseNow() { return ""; } const LADDER = [ - ["Launch plant", 1, 1], ["Second Duplex", 2, 1], ["Step 1", 2, 3], ["Step 2", 2, 5], ["Step 3", 2, 8], - ["Full hall, Classic-led", 2, 11], ["Full hall, mixed", 4, 7], ["Full hall, specials-led", 6, 3], + // Duplex systems first: the hall is laid out 60/40 by floor for them (special pressings, October 2026) + ["Launch plant", 1, 1], ["Second Duplex", 2, 1], ["Step 1", 3, 2], ["Step 2", 4, 3], + ["Full hall 60/40", 4, 6], ["Same floor, Classic-led", 2, 11], ["Same floor, Duplex only", 7, 0], ]; // presets: fleet plus plant configuration; prices, case and assumptions stay as they are const CFG0 = Object.fromEntries(CFGK.map(k => [k, S0[k]])); @@ -3087,7 +3091,7 @@ const PRESETS = { levers: { ...LAUNCH, solar: "ppa", metro: "launch", galvPrice: "oms", corridor: "later" }, lean: { ...LAUNCH, galv: "bought", cut: "out" }, five: { mode: "fleet", dFleet: 2, cFleet: 1, ...CFG0 }, - full: { mode: "fleet", dFleet: 2, cFleet: 11, ...CFG0 }, + full: { mode: "fleet", dFleet: 4, cFleet: 6, ...CFG0 }, }; let S = { ...S0 }, A = { ...A0 }; diff --git a/docs/roadmap.md b/docs/roadmap.md index e244003..a1e8fd8 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -173,4 +173,5 @@ Since October 2026 the plant launches with everything in one capital round (~161M to 292M THB, target ~216M with the levers in [total investment](finance/total-investment.md#launch-plant-october-2026)); the gates still come before the round is spent, and the growth options -(second Duplex, more Classics) are funded from revenue. +(more Duplex systems first, then Classics, in a press hall laid out 60/40 +for Duplex) are funded from revenue. diff --git a/docs/scale.md b/docs/scale.md index 552b750..fe83ce0 100644 --- a/docs/scale.md +++ b/docs/scale.md @@ -11,7 +11,7 @@ page as real quotes and the site decision land. |---|---|---| | Launch plant (decided October 2026) | 2 semi-auto (Duplex system 1: EX 50 main + EX 35 colour extruder) + 1 automated (Newbilt Classic), commissioned in sequence, 2 shifts at volume | ~0.71 to 0.97 million records/yr | | Growth option: second Duplex | 4 semi-auto (two Duplex systems) + 1 Classic, 2 shifts; room reserved, not in the investment | ~1.0 to 1.5 million records/yr | -| Expansion (option) | the five-press fleet + up to 10 more Newbilt Classics, 2 shifts | ~4.7 to 5.8 million records/yr (estimate) | +| Full hall (option) | 4 Duplex systems + 6 Classics, the hall laid out 60/40 for Duplex, 2 shifts | ~3.6 to 4.7 million records/yr (estimate) | The [press fleet calculator](fleet-calculator.html) sizes the fleet for any yearly output and specials share, with the people and utilities it @@ -44,10 +44,14 @@ effectiveness of 60 to 70% applied: 368 to 448 records/hour, ~1.06 to 1.5 million a year. The theoretical ceiling of the mature fleet at 100% uptime is roughly 1.8 to 2.2 million records per year. (The earlier 50/50 fleet, two semi-automatic presses and two Pheenix AD12s, landed in the same -range.) The expansion row is an option the plant keeps room for, not a -plan: ten more Classics add ~1,280 records/hour on the same basis, and -neither the [revenue model](finance/revenue-model.md) nor the investment -includes them. +range.) The full-hall row is an option the plant keeps room for, not a +plan: the press hall is laid out 60/40 by floor for Duplex systems, since +the plant focuses on special pressings +([pressing line](equipment/pressing-line.md)). Eight semi-automatic +presses and six Classics give 1,250 to 1,410 records/hour gross, ~3.6 to +4.7 million a year on the same basis, and neither the +[revenue model](finance/revenue-model.md) nor the investment includes +them. **The 60–70% effectiveness assumption is worth challenging, but not yet changing.** Newbilt publishes ≥95% yield and ≥95% uptime for the Classic @@ -254,8 +258,9 @@ kW hydraulic oil cooler) at 305 to 540 l/min of circulating water. The peak rows assume all five presses cooling hard on a hot afternoon; the Classic counts as one HRP 12 press plus one extruder until Newbilt states its figures. The presses share one central hydraulic plant and one -compressed-air plant. The optional ten more Classics would need up to ~1.9 -MW of cooling and ~2.3 to 2.7 t/h of steam: a utility phase of its own. +compressed-air plant. The optional full hall (four Duplex systems and six +Classics, fourteen presses) would need up to ~1.8 MW of cooling and ~2.1 +to 2.5 t/h of steam: a utility phase of its own. Tariff: PEA Schedule 3.2.2, Medium General Service on time of use at 22 kV (the flat rate is closed to new customers): 132.93 THB/kW demand diff --git a/docs/site-candidates.md b/docs/site-candidates.md index 96d8fb6..b464c62 100644 --- a/docs/site-candidates.md +++ b/docs/site-candidates.md @@ -122,7 +122,8 @@ dropped. Source record with the zone's full rules and annex: 5. **Plot fit.** Shape and size against the 60 × 25 m building, the detached utility yard and the phase 2 footprint (6 to 8 rai). The Payap scenario model below needs a 150 m square (14.1 rai) as drawn, - with room for ten more Classics, a colour store and a reserve. + with a press hall laid out 60/40 for Duplex systems, a colour store and + a reserve. 6. **Galvanics on a campus.** Phase 5 electroplating needs the lessor's written consent; the zero-discharge design ([sustainability](sustainability.md)) becomes a lease condition, not @@ -155,7 +156,7 @@ and every equipment envelope is an estimate. - **Plot**: 150 × 150 m (22,500 m², 14.1 rai), road assumed on the south side, 6 m setbacks (placeholder). That is about twice the 6 to 8 rai of - [scale](scale.md): the factory keeps room for ten more Classics and a + [scale](scale.md): the factory keeps room for the full press hall and a colour store, and the plot keeps a reserve in front for a second hall or a PV field. - **Factory, production floor only**: 128 × 25 m at floor level +1.2 m, @@ -179,9 +180,14 @@ and every equipment envelope is an estimate. that special designs need, about 100 positions on four levels (estimate), with weighing and mixing and a vacuum conveying station ([pressing line](equipment/pressing-line.md)). - - **Press hall** (~870 m²): two Duplex systems, each two HRP 12 presses - with an EX 50 and an EX 35, the Classic, and ten more Classic - positions in two rows. Each Duplex is one operator's cell of about + - **Press hall** (~870 m²), laid out 60/40 by floor for Duplex systems + because the plant focuses on special pressings (October 2026, + [pressing line](equipment/pressing-line.md)): four Duplex bays, each + for two HRP 12 presses with an EX 50 and an EX 35, along the visitor + corridor, and six Classic positions in the second row; the launch + plant fills one of each. The FreeCAD model still draws the earlier + layout (two Duplex systems, the Classic and ten more Classic + positions). Each Duplex is one operator's cell of about 5 × 3 m at Newbilt's machine sizes: presses either side turned towards the operator, the extruders behind him, one trimmer in front ([pressing line](equipment/pressing-line.md)).