Select diameter, class and schedule to display welding neck flange data, blind flange data, stud bolts and nuts. All values are shown in mm and kg.
Pipe Dimensions Catalogue
ASME B36.10 style pipe dimensions from 2″ to 48″ for oil & gas applications
Note: This widget is a dimensional catalogue for carbon/alloy steel pipe.
OD stays constant for each NPS, while wall thickness, inside diameter and weight vary by schedule.
Note: This widget reproduces the internal pressure wall-thickness check from the reference calculation sheet. Final engineering approval should confirm all code-specific factors, material allowables and project requirements.
setTimeout(function () {
var root = document.getElementById("propipe-pressure-widget-v2");
if (!root) return;
var materials = {
"ASTM A105": { yieldStrength: 250, note: "Forged carbon steel" },
"ASTM A234 WPB": { yieldStrength: 240, note: "Wrought carbon steel fitting" },
"API 5L Gr. B": { yieldStrength: 245, note: "Line pipe" },
"API 5L X42": { yieldStrength: 290, note: "Line pipe" },
"API 5L X52": { yieldStrength: 360, note: "Line pipe" },
"Custom": { yieldStrength: 250, note: "User defined" }
};
var codeDefaults = {
"ASME B31.8": { designFactor: 0.72, jointEfficiencyFactor: 1, temperatureFactor: 1 },
"ASME B31.4": { designFactor: 0.72, jointEfficiencyFactor: 1, temperatureFactor: 1 },
"ASME B31.3": { designFactor: 1, jointEfficiencyFactor: 1, temperatureFactor: 1 },
"Custom": { designFactor: 0.72, jointEfficiencyFactor: 1, temperatureFactor: 1 }
};
function el(id) { return document.getElementById(id); }
function value(id) { return el(id).value; }
function num(id) { return Number(value(id)); }
function fmt(number, digits) { return Number.isFinite(number) ? number.toFixed(digits) : "—"; }
function setText(id, text) { if (el(id)) el(id).textContent = text; }
function getTemperatureFactor(tempC) {
var t = Number(tempC);
if (!Number.isFinite(t)) return 1;
if (t <= 120) return 1;
if (t <= 150) return 0.967;
if (t <= 180) return 0.933;
if (t 0 ? (pressureNmm2 * outsideDiameter) / denominator : NaN;
var requiredWithAllowance = minimumWall + corrosionAllowance;
var margin = availableWall - requiredWithAllowance;
var utilization = availableWall > 0 ? (requiredWithAllowance / availableWall) * 100 : NaN;
var maopNmm2 = outsideDiameter > 0 ? (2 * strength * designFactor * jointEfficiency * tempFactor * Math.max(availableWall - corrosionAllowance, 0)) / outsideDiameter : NaN;
var maopBar = maopNmm2 / 0.1;
var isVerified = availableWall >= requiredWithAllowance;
var diameterRatio = outsideDiameter > 0 ? internalDiameter / outsideDiameter : NaN;
setText("pp2-current-temp-factor", fmt(tempFactor, 3));
setText("pp2-result-code", value("pp2-design-code"));
setText("pp2-result-fitting", value("pp2-fitting-type"));
setText("pp2-min-wall", fmt(minimumWall, 2));
setText("pp2-required-wall", fmt(requiredWithAllowance, 2));
setText("pp2-margin", fmt(margin, 2) + " mm");
setText("pp2-utilization", fmt(utilization, 1) + "%");
setText("pp2-maop", fmt(maopBar, 2) + " bar");
setText("pp2-ratio", fmt(diameterRatio, 3));
setText("pp2-pressure-converted", fmt(pressureNmm2, 3) + " N/mm²");
setText("pp2-temp-factor-result", fmt(tempFactor, 3));
setText("pp2-summary-client", value("pp2-client"));
setText("pp2-summary-ref", value("pp2-propipe-reference"));
setText("pp2-summary-drawing", value("pp2-drawing-number"));
setText("pp2-summary-rev", value("pp2-revision"));
setText("pp2-summary-description", value("pp2-description"));
setText("pp2-summary-material", value("pp2-material"));
var status = el("pp2-status");
status.textContent = isVerified ? "VERIFIED" : "NOT VERIFIED";
status.className = "pp-status " + (isVerified ? "ok" : "fail");
el("pp2-margin").className = "pp-metric-value " + (margin >= 0 ? "pp-positive" : "pp-negative");
el("pp2-utilization").className = "pp-metric-value " + (utilization <= 100 ? "pp-positive" : "pp-negative");
var warnings = [];
if (pressureNmm2 <= 0) warnings.push("Design pressure must be greater than zero.");
if (outsideDiameter <= 0) warnings.push("Main pipe outside diameter must be greater than zero.");
if (strength <= 0) warnings.push("Specified yield strength must be greater than zero.");
if (designFactor <= 0 || jointEfficiency <= 0 || tempFactor <= 0) warnings.push("F, E and T factors must be greater than zero.");
if (availableWall outsideDiameter) warnings.push("Branch/internal diameter is larger than the main pipe outside diameter. Please verify inputs.");
var warningBox = el("pp2-warning-box");
var warningList = el("pp2-warning-list");
warningList.innerHTML = "";
warnings.forEach(function (warning) {
var li = document.createElement("li");
li.textContent = warning;
warningList.appendChild(li);
});
warningBox.style.display = warnings.length ? "block" : "none";
}
el("pp2-design-code").onchange = function () {
var defaults = codeDefaults[value("pp2-design-code")] || codeDefaults.Custom;
el("pp2-design-factor").value = defaults.designFactor;
el("pp2-joint-efficiency").value = defaults.jointEfficiencyFactor;
el("pp2-temperature-factor").value = defaults.temperatureFactor;
calculate();
};
el("pp2-material").onchange = function () {
var selected = value("pp2-material");
var data = materials[selected] || materials.Custom;
setText("pp2-material-note", data.note);
if (selected !== "Custom") el("pp2-strength").value = data.yieldStrength;
calculate();
};
el("pp2-toggle-advanced").onclick = function () {
var panel = el("pp2-advanced-panel");
var isHidden = panel.style.display === "none";
panel.style.display = isHidden ? "block" : "none";
this.textContent = isHidden ? "Hide advanced" : "Show advanced";
};
el("pp2-print-report").onclick = function () { window.print(); };
var controls = root.querySelectorAll("input, select");
for (var i = 0; i < controls.length; i++) {
controls[i].oninput = calculate;
controls[i].onchange = calculate;
}
calculate();
}, 500);