Press hall: five Duplex bays and four Classic positions (balanced at 60 % specials)
Deploy test site / deploy (push) Successful in 44s
Deploy test site / deploy (push) Successful in 44s
User (October 2026): "change the hall layout" after the finding that the 60/40 floor split leaves the Classics about half loaded at 60 %+ specials (specials run only on the Duplex systems). - Press hall now keeps five Duplex bays (four along the visitor corridor, the fifth at the head of the second row) and four Classic positions: 550 + 200 = ~750 m2 of ~870 m2, ~73/27 by floor, 10 to 4 by presses; launch plant fills one of each, growth adds Duplex first. - Full hall: ~2.9 to 4.4M records a year at 60 % specials, Classics ~80 to 100 % loaded (60/40 gave ~2.3 to 3.6M); ~3.2 to 4.4M at ~20 %; fourteen presses as before: ~2.1 to 2.5 t/h steam, up to ~1.8 MW cooling, a utility phase of its own. - pressing-line.md, scale.md, site-candidates.md, crane-workshop-tours.md, roadmap.md, README (FreeCAD model still the earlier layout, not redrawn); calculator preset "Full hall (5 D + 4 C)" and ladder; plant view reserves 5 Duplex bays and 4 Classic positions; business plan draft 0.2 rebuilt. Checks: renderer 720 checks and functional checks pass, calculator regression 0 fails, level checks clean; PDF 47 pages, TOC filled.
This commit is contained in:
1 parent
b3e8e4272b
commit
3f1e4452b8
11 files changed
+69
-66
No files matched your search
+11
-11
@@ -612,7 +612,7 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }
|
||||
<button type="button" data-p="levers">Investor levers (216M)</button>
|
||||
<button type="button" data-p="lean">Lean: bought stampers, outsourced cutting</button>
|
||||
<button type="button" data-p="five">Five-press fleet (second Duplex)</button>
|
||||
<button type="button" data-p="full">Full hall 60/40 (4 D + 6 C)</button>
|
||||
<button type="button" data-p="full">Full hall (5 D + 4 C)</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -814,8 +814,8 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }
|
||||
<section class="card">
|
||||
<h2>From small to fully equipped</h2>
|
||||
<p class="note" style="margin-top:0">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
|
||||
laid out for Duplex systems because the plant focuses on special pressings: five Duplex bays
|
||||
and four Classic positions, ~750 m², balanced by output at 60 % specials), 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.</p>
|
||||
<div class="tscroll"><table id="ladT"></table></div>
|
||||
</section>
|
||||
@@ -1239,9 +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). 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;
|
||||
// figures (110 m2 per Duplex bay, 50 m2 per Classic, 870 m2 hall). Laid out for Duplex
|
||||
// systems (60 %+ specials, October 2026): 5 Duplex bays + 4 Classic positions, ~73/27 by floor.
|
||||
var HALL_D = 5, HALL_C = 4;
|
||||
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;
|
||||
@@ -1565,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 60/40 by floor for special pressings: 4 Duplex bays and 6 Classic positions, ~740 m2 (pressing-line.md)" +
|
||||
al.Dh + " Duplex system" + (al.Dh === 1 ? "" : "s") + " and " + al.Ch + " Classic" + (al.Ch === 1 ? "" : "s") + " in the hall; laid out for special pressings: 5 Duplex bays and 4 Classic positions, ~750 m2, balanced by output at 60 % specials (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." :
|
||||
@@ -1683,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)" :
|
||||
"Classic position kept for growth (option, not in the investment); the hall is laid out 60/40 for Duplex systems (pressing-line.md)");
|
||||
"Classic position kept for growth (option, not in the investment); the hall is laid out mainly 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;
|
||||
@@ -3080,9 +3080,9 @@ function caseNow() {
|
||||
return "";
|
||||
}
|
||||
const LADDER = [
|
||||
// Duplex systems first: the hall is laid out 60/40 by floor for them (special pressings, October 2026)
|
||||
// Duplex systems first: the hall is laid out for 5 Duplex + 4 Classics (60 %+ specials, 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],
|
||||
["Full hall", 5, 4], ["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]]));
|
||||
@@ -3092,7 +3092,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: 4, cFleet: 6, ...CFG0 },
|
||||
full: { mode: "fleet", dFleet: 5, cFleet: 4, ...CFG0 },
|
||||
};
|
||||
|
||||
let S = { ...S0 }, A = { ...A0 };
|
||||
|
||||
Reference in new issue
Block a user