{"id":24938,"date":"2026-10-14T08:09:24","date_gmt":"2026-10-14T08:09:24","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24938"},"modified":"2026-10-14T08:09:27","modified_gmt":"2026-10-14T08:09:27","slug":"brinell-hardness-hb-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ar\/brinell-hardness-hb-calculator\/","title":{"rendered":"Brinell Hardness (HB) Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The Brinell Hardness (HB) Calculator is a practical online tool designed to calculate the Brinell hardness of metals and engineering materials quickly and accurately. By entering the applied test force, ball indenter diameter, and indentation diameter, users can instantly determine the Brinell hardness value (HBW). This calculator is ideal for mechanical engineers, material testing professionals, quality control inspectors, and metal fabrication specialists. Whether you are evaluating steel, aluminum, cast iron, or other metallic materials, the Brinell Hardness (HB) Calculator simplifies hardness testing calculations, supports material quality assessment, and helps improve efficiency in manufacturing and engineering applications.<\/p>\n\n\n\n<!-- Brinell Hardness (HB) Calculator - WordPress Custom HTML block snippet. All CSS is scoped to #bhc-calculator. Vanilla JS, no external libraries. -->\n<div id=\"bhc-calculator\" class=\"bhc-root\" data-bhc-widget=\"brinell-hardness\">\n<style>\n#bhc-calculator,#bhc-calculator *,#bhc-calculator *::before,#bhc-calculator *::after{box-sizing:border-box}\n#bhc-calculator{\n  --bhc-bg:#f5f5f7;--bhc-card:#ffffff;--bhc-text:#1d1d1f;--bhc-muted:#5f5f66;--bhc-soft:#76767c;\n  --bhc-line:#d2d2d7;--bhc-line-soft:#e8e8ed;--bhc-accent:#0071e3;--bhc-accent-dark:#0058b0;--bhc-accent-soft:#e8f2fd;\n  --bhc-ok:#0a7c42;--bhc-ok-soft:#e6f4ec;--bhc-warn:#8a5a00;--bhc-warn-soft:#fff6e0;--bhc-err:#c4291c;--bhc-err-soft:#fdecea;\n  width:100%;max-width:1040px;margin:24px auto;padding:32px;background:var(--bhc-bg);color:var(--bhc-text);\n  border-radius:22px;font-family:-apple-system,BlinkMacSystemFont,\"SF Pro Text\",\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;\n  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-align:left\n}\n#bhc-calculator p,#bhc-calculator ul{margin:0;padding:0;border:0;background:none;text-transform:none;letter-spacing:normal;font-family:inherit}\n#bhc-calculator .bhc-card{background:var(--bhc-card);border:1px solid var(--bhc-line-soft);border-radius:18px;padding:24px;box-shadow:0 1px 2px rgba(0,0,0,.04)}\n#bhc-calculator .bhc-card+.bhc-card{margin-top:16px}\n#bhc-calculator .bhc-results .bhc-card-title{margin-bottom:16px}\n#bhc-calculator .bhc-card-title{margin:0 0 4px;color:var(--bhc-text);font-size:1.1rem;font-weight:600;line-height:1.2;display:flex;align-items:center;gap:10px}\n#bhc-calculator .bhc-step{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--bhc-accent-soft);color:var(--bhc-accent);font-size:.8rem;font-weight:700}\n#bhc-calculator .bhc-card-note{color:var(--bhc-muted);font-size:.9rem;margin-bottom:18px}\n#bhc-calculator .bhc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}\n#bhc-calculator .bhc-field{min-width:0}\n#bhc-calculator .bhc-field[hidden]{display:none!important}\n#bhc-calculator .bhc-span{grid-column:1\/-1}\n#bhc-calculator .bhc-label{display:block;font-size:.9rem;font-weight:600;color:var(--bhc-text);margin:0 0 6px}\n#bhc-calculator .bhc-hint{display:block;color:var(--bhc-soft);font-size:.8rem;margin-top:5px}\n#bhc-calculator .bhc-hint:empty{display:none}\n#bhc-calculator .bhc-error{display:block;color:var(--bhc-err);font-size:.82rem;margin-top:4px}\n#bhc-calculator .bhc-error:empty{display:none}\n#bhc-calculator .bhc-row{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:8px}\n#bhc-calculator input[type=number],#bhc-calculator select{\n  -webkit-appearance:none;appearance:none;width:100%;min-height:46px;margin:0;padding:10px 14px;font:inherit;font-size:16px;line-height:1.3;\n  color:var(--bhc-text);background-color:#fff;border:1px solid var(--bhc-line);border-radius:12px;box-shadow:none;outline:none;\n  transition:border-color .15s ease,box-shadow .15s ease;max-width:none;height:auto\n}\n#bhc-calculator select{padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,#6e6e73 50%),linear-gradient(135deg,#6e6e73 50%,transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}\n#bhc-calculator input[type=number]:focus,#bhc-calculator select:focus{border-color:var(--bhc-accent);box-shadow:0 0 0 4px rgba(0,113,227,.18)}\n#bhc-calculator .bhc-invalid{border-color:var(--bhc-err)!important;box-shadow:0 0 0 3px rgba(196,41,28,.12)!important}\n#bhc-calculator .bhc-seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%;gap:4px;padding:4px;background:#ececf0;border-radius:13px;border:0;margin:0 0 18px;position:relative}\n#bhc-calculator .bhc-seg legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}\n#bhc-calculator .bhc-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0}\n#bhc-calculator .bhc-seg label{display:flex;align-items:center;justify-content:center;min-height:40px;padding:6px 8px;border-radius:10px;font-size:.93rem;font-weight:600;color:var(--bhc-muted);cursor:pointer;text-align:center;transition:background .15s,color .15s,box-shadow .15s;margin:0}\n#bhc-calculator .bhc-seg input:checked+label{background:#fff;color:var(--bhc-text);box-shadow:0 1px 3px rgba(0,0,0,.12)}\n#bhc-calculator .bhc-seg input:focus-visible+label{outline:3px solid rgba(0,113,227,.35);outline-offset:1px}\n#bhc-calculator .bhc-avg{grid-column:1\/-1;padding:10px 14px;border-radius:12px;background:#f9f9fb;border:1px solid var(--bhc-line-soft);font-size:.9rem;color:var(--bhc-muted)}\n#bhc-calculator .bhc-avg strong{color:var(--bhc-text);font-variant-numeric:tabular-nums}\n#bhc-calculator .bhc-check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--bhc-text);cursor:pointer;margin:0}\n#bhc-calculator .bhc-check input{width:18px;height:18px;margin:2px 0 0;flex:0 0 18px;accent-color:var(--bhc-accent);cursor:pointer}\n#bhc-calculator .bhc-check span small{display:block;color:var(--bhc-soft);font-size:.8rem;margin-top:2px}\n#bhc-calculator .bhc-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}\n#bhc-calculator .bhc-btn{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;min-width:150px;margin:0;padding:10px 22px;border-radius:999px;border:1px solid transparent;font:inherit;font-size:.98rem;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;text-transform:none;letter-spacing:normal;box-shadow:none;transition:background .15s,border-color .15s,color .15s}\n#bhc-calculator .bhc-btn-primary{background:var(--bhc-accent);color:#fff;min-width:200px;font-size:1.05rem;min-height:52px}\n#bhc-calculator .bhc-btn-primary:hover{background:var(--bhc-accent-dark);color:#fff}\n#bhc-calculator .bhc-btn-ghost{background:#fff;color:var(--bhc-accent-dark);border-color:var(--bhc-line)}\n#bhc-calculator .bhc-btn-ghost:hover{border-color:var(--bhc-accent);background:#fff;color:var(--bhc-accent-dark)}\n#bhc-calculator .bhc-btn-small{min-height:38px;min-width:0;padding:7px 16px;font-size:.88rem}\n#bhc-calculator .bhc-btn:focus-visible{outline:3px solid rgba(0,113,227,.35);outline-offset:2px}\n#bhc-calculator .bhc-form-msg{text-align:center;color:var(--bhc-err);font-size:.88rem;margin-top:10px}\n#bhc-calculator .bhc-form-msg:empty{display:none}\n#bhc-calculator .bhc-results[hidden]{display:none!important}\n#bhc-calculator .bhc-main{background:var(--bhc-accent-soft);border:1px solid #cfe3fa;border-radius:16px;padding:18px 20px}\n#bhc-calculator .bhc-main-label{font-size:.78rem;font-weight:600;color:var(--bhc-accent-dark);text-transform:uppercase;letter-spacing:.05em}\n#bhc-calculator .bhc-main-value{font-size:clamp(2.2rem,5.5vw,3.2rem);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin-top:4px;font-variant-numeric:tabular-nums;color:var(--bhc-text);overflow-wrap:anywhere}\n#bhc-calculator .bhc-main-value span{font-size:.45em;font-weight:600;color:var(--bhc-muted);letter-spacing:0;margin-left:6px}\n#bhc-calculator .bhc-main-sub{font-size:.85rem;color:var(--bhc-muted);margin-top:6px}\n#bhc-calculator .bhc-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}\n#bhc-calculator .bhc-kpi{background:#f9f9fb;border:1px solid var(--bhc-line-soft);border-radius:14px;padding:12px 14px;min-width:0}\n#bhc-calculator .bhc-kpi-label{font-size:.74rem;font-weight:600;color:var(--bhc-muted);text-transform:uppercase;letter-spacing:.04em}\n#bhc-calculator .bhc-kpi-value{font-size:1.12rem;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}\n#bhc-calculator .bhc-kpi-sub{font-size:.78rem;color:var(--bhc-muted);margin-top:1px;overflow-wrap:anywhere}\n#bhc-calculator .bhc-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;vertical-align:middle}\n#bhc-calculator .bhc-badge-ok{background:var(--bhc-ok-soft);color:var(--bhc-ok)}\n#bhc-calculator .bhc-badge-warn{background:var(--bhc-warn-soft);color:var(--bhc-warn)}\n#bhc-calculator table.bhc-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:420px}\n#bhc-calculator .bhc-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}\n@media (max-width:700px){\n  #bhc-calculator{padding:18px 16px;border-radius:16px;margin:12px auto}\n  #bhc-calculator .bhc-card{padding:18px 16px;border-radius:16px}\n  #bhc-calculator .bhc-grid{grid-template-columns:1fr}\n  #bhc-calculator .bhc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}\n    #bhc-calculator .bhc-btn-primary{flex:1 1 100%}\n}\n@media (max-width:380px){#bhc-calculator .bhc-kpis{grid-template-columns:1fr}#bhc-calculator .bhc-row{grid-template-columns:minmax(0,1fr) 84px}}\n@media (prefers-reduced-motion:reduce){#bhc-calculator *{transition:none!important}}\n<\/style>\n<form class=\"bhc-form\" novalidate onsubmit=\"return false;\"><section class=\"bhc-card\" aria-labelledby=\"bhc-h-cond\"><div class=\"bhc-card-title\" id=\"bhc-h-cond\"><span class=\"bhc-step\" aria-hidden=\"true\">1<\/span>Test Conditions<\/div><p class=\"bhc-card-note\">Choose a common Brinell test condition or enter your own force and ball diameter.<\/p><div class=\"bhc-grid\"><div class=\"bhc-field bhc-span\"><label class=\"bhc-label\" for=\"bhc-preset\">Preset test condition (ball diameter \/ force)<\/label><select id=\"bhc-preset\" name=\"preset\" aria-describedby=\"bhc-preset-hint\"><option value=\"\">Custom (enter values below)<\/option><optgroup label=\"10 mm ball\"><option value=\"10|3000\" selected>HBW 10\/3000 &#8212; 3000 kgf (29.42 kN), ratio 30<\/option><option value=\"10|1500\">HBW 10\/1500 &#8212; 1500 kgf (14.71 kN), ratio 15<\/option><option value=\"10|1000\">HBW 10\/1000 &#8212; 1000 kgf (9.807 kN), ratio 10<\/option><option value=\"10|500\">HBW 10\/500 &#8212; 500 kgf (4.903 kN), ratio 5<\/option><option value=\"10|250\">HBW 10\/250 &#8212; 250 kgf (2.452 kN), ratio 2.5<\/option><option value=\"10|100\">HBW 10\/100 &#8212; 100 kgf (980.7 N), ratio 1<\/option><\/optgroup><optgroup label=\"5 mm ball\"><option value=\"5|750\">HBW 5\/750 &#8212; 750 kgf (7.355 kN), ratio 30<\/option><option value=\"5|250\">HBW 5\/250 &#8212; 250 kgf (2.452 kN), ratio 10<\/option><option value=\"5|125\">HBW 5\/125 &#8212; 125 kgf (1.226 kN), ratio 5<\/option><option value=\"5|62.5\">HBW 5\/62.5 &#8212; 62.5 kgf (612.9 N), ratio 2.5<\/option><option value=\"5|25\">HBW 5\/25 &#8212; 25 kgf (245.2 N), ratio 1<\/option><\/optgroup><optgroup label=\"2.5 mm ball\"><option value=\"2.5|187.5\">HBW 2.5\/187.5 &#8212; 187.5 kgf (1.839 kN), ratio 30<\/option><option value=\"2.5|62.5\">HBW 2.5\/62.5 &#8212; 62.5 kgf (612.9 N), ratio 10<\/option><option value=\"2.5|31.25\">HBW 2.5\/31.25 &#8212; 31.25 kgf (306.5 N), ratio 5<\/option><option value=\"2.5|15.625\">HBW 2.5\/15.625 &#8212; 15.625 kgf (153.2 N), ratio 2.5<\/option><option value=\"2.5|6.25\">HBW 2.5\/6.25 &#8212; 6.25 kgf (61.29 N), ratio 1<\/option><\/optgroup><optgroup label=\"1 mm ball\"><option value=\"1|30\">HBW 1\/30 &#8212; 30 kgf (294.2 N), ratio 30<\/option><option value=\"1|10\">HBW 1\/10 &#8212; 10 kgf (98.07 N), ratio 10<\/option><option value=\"1|5\">HBW 1\/5 &#8212; 5 kgf (49.03 N), ratio 5<\/option><option value=\"1|2.5\">HBW 1\/2.5 &#8212; 2.5 kgf (24.52 N), ratio 2.5<\/option><option value=\"1|1\">HBW 1\/1 &#8212; 1 kgf (9.807 N), ratio 1<\/option><\/optgroup><\/select><span class=\"bhc-hint\" id=\"bhc-preset-hint\">Selecting a preset fills in the force and ball diameter. Editing either value switches back to Custom.<\/span><\/div><div class=\"bhc-field\"><label class=\"bhc-label\" for=\"bhc-force\">Applied test force (F)<\/label><div class=\"bhc-row\"><input id=\"bhc-force\" name=\"force\" type=\"number\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"3000\" aria-describedby=\"bhc-force-hint bhc-force-err\" required><select id=\"bhc-force-unit\" name=\"forceUnit\" aria-label=\"Force unit\"><option value=\"kgf\" selected>kgf<\/option><option value=\"N\">N<\/option><option value=\"kN\">kN<\/option><\/select><\/div><span class=\"bhc-hint\" id=\"bhc-force-hint\">1 kgf = 9.80665 N. Changing the unit converts the value.<\/span><span class=\"bhc-error\" id=\"bhc-force-err\" role=\"alert\"><\/span><\/div><div class=\"bhc-field\"><label class=\"bhc-label\" for=\"bhc-ball\">Ball indenter diameter (D)<\/label><select id=\"bhc-ball\" name=\"ball\" aria-describedby=\"bhc-ball-hint\"><option value=\"10\" selected>10 mm<\/option><option value=\"5\">5 mm<\/option><option value=\"2.5\">2.5 mm<\/option><option value=\"1\">1 mm<\/option><option value=\"custom\">Custom diameter&#8230;<\/option><\/select><span class=\"bhc-hint\" id=\"bhc-ball-hint\">Tungsten carbide ball (HBW). Standard sizes: 1, 2.5, 5 and 10 mm.<\/span><\/div><div class=\"bhc-field\" id=\"bhc-ball-custom-wrap\" hidden><label class=\"bhc-label\" for=\"bhc-ball-custom\">Custom ball diameter (mm)<\/label><input id=\"bhc-ball-custom\" name=\"ballCustom\" type=\"number\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 10\" aria-describedby=\"bhc-ball-custom-err\"><span class=\"bhc-error\" id=\"bhc-ball-custom-err\" role=\"alert\"><\/span><\/div><div class=\"bhc-field\"><label class=\"bhc-label\" for=\"bhc-dwell\">Dwell time (s) <span style=\"font-weight:400;color:#76767c\">&#8212; optional<\/span><\/label><input id=\"bhc-dwell\" name=\"dwell\" type=\"number\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"10&#8211;15 s standard\" aria-describedby=\"bhc-dwell-hint bhc-dwell-err\"><span class=\"bhc-hint\" id=\"bhc-dwell-hint\">Used only in the test designation. Leave blank for the standard 10&#8211;15 s.<\/span><span class=\"bhc-error\" id=\"bhc-dwell-err\" role=\"alert\"><\/span><\/div><\/div><\/section><section class=\"bhc-card\" aria-labelledby=\"bhc-h-ind\"><div class=\"bhc-card-title\" id=\"bhc-h-ind\"><span class=\"bhc-step\" aria-hidden=\"true\">2<\/span>Indentation Measurement<\/div><p class=\"bhc-card-note\">Enter the average indentation diameter, or two diameters measured at right angles.<\/p><fieldset class=\"bhc-seg\"><legend>Measurement mode<\/legend><input type=\"radio\" id=\"bhc-m-single\" name=\"bhc-mode\" value=\"single\" checked><label for=\"bhc-m-single\">Average diameter (d)<\/label><input type=\"radio\" id=\"bhc-m-two\" name=\"bhc-mode\" value=\"two\"><label for=\"bhc-m-two\">Two diameters (d&#8321;, d&#8322;)<\/label><\/fieldset><div class=\"bhc-grid\"><div class=\"bhc-field bhc-span\" id=\"bhc-d-wrap\"><label class=\"bhc-label\" for=\"bhc-d\">Average indentation diameter (d), mm<\/label><input id=\"bhc-d\" name=\"d\" type=\"number\" inputmode=\"decimal\" step=\"any\" min=\"0\" value=\"4.0\" aria-describedby=\"bhc-d-hint bhc-d-err\"><span class=\"bhc-hint\" id=\"bhc-d-hint\"><\/span><span class=\"bhc-error\" id=\"bhc-d-err\" role=\"alert\"><\/span><\/div><div class=\"bhc-field\" id=\"bhc-d1-wrap\" hidden><label class=\"bhc-label\" for=\"bhc-d1\">First diameter (d&#8321;), mm<\/label><input id=\"bhc-d1\" name=\"d1\" type=\"number\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 4.02\" aria-describedby=\"bhc-d1-err\"><span class=\"bhc-error\" id=\"bhc-d1-err\" role=\"alert\"><\/span><\/div><div class=\"bhc-field\" id=\"bhc-d2-wrap\" hidden><label class=\"bhc-label\" for=\"bhc-d2\">Second diameter (d&#8322;), mm<\/label><input id=\"bhc-d2\" name=\"d2\" type=\"number\" inputmode=\"decimal\" step=\"any\" min=\"0\" placeholder=\"e.g. 3.98\" aria-describedby=\"bhc-d2-err\"><span class=\"bhc-error\" id=\"bhc-d2-err\" role=\"alert\"><\/span><\/div><div class=\"bhc-avg\" id=\"bhc-avg\" hidden aria-live=\"polite\">Average d = (d&#8321; + d&#8322;) \/ 2 = <strong id=\"bhc-avg-val\">&#8212;<\/strong><\/div><div class=\"bhc-field\"><label class=\"bhc-label\" for=\"bhc-prec\">Displayed precision<\/label><select id=\"bhc-prec\" name=\"precision\"><option value=\"2\" selected>2 decimal places<\/option><option value=\"3\">3 decimal places<\/option><option value=\"4\">4 decimal places<\/option><\/select><\/div><div class=\"bhc-field\" style=\"align-self:center\"><label class=\"bhc-check\" for=\"bhc-confirm\"><input type=\"checkbox\" id=\"bhc-confirm\" name=\"confirm\"><span>Test conditions confirmed<small>Tick only if the test was run with this ball, force and dwell time. Needed to show a test designation.<\/small><\/span><\/label><\/div><\/div><div class=\"bhc-actions\"><button type=\"button\" class=\"bhc-btn bhc-btn-primary\" id=\"bhc-calc\">Calculate<\/button><\/div><p class=\"bhc-form-msg\" id=\"bhc-form-msg\" role=\"alert\" aria-live=\"polite\"><\/p><\/section><section class=\"bhc-card bhc-results\" id=\"bhc-results\" hidden aria-labelledby=\"bhc-h-res\" tabindex=\"-1\"><div class=\"bhc-results-head\"><div class=\"bhc-card-title\" id=\"bhc-h-res\"><span class=\"bhc-step\" aria-hidden=\"true\">3<\/span>Results<\/div><\/div><div class=\"bhc-main\" aria-live=\"polite\"><div class=\"bhc-main-label\">Brinell hardness<\/div><div class=\"bhc-main-value\" id=\"bhc-r-hb\">&#8212;<\/div><div class=\"bhc-main-sub\" id=\"bhc-r-hb-sub\"><\/div><\/div><div class=\"bhc-kpis\"><div class=\"bhc-kpi\"><div class=\"bhc-kpi-label\">Test force<\/div><div class=\"bhc-kpi-value\" id=\"bhc-r-f\">&#8212;<\/div><div class=\"bhc-kpi-sub\" id=\"bhc-r-f-sub\"><\/div><\/div><div class=\"bhc-kpi\"><div class=\"bhc-kpi-label\">Ball diameter D<\/div><div class=\"bhc-kpi-value\" id=\"bhc-r-ball\">&#8212;<\/div><div class=\"bhc-kpi-sub\" id=\"bhc-r-ball-sub\"><\/div><\/div><div class=\"bhc-kpi\"><div class=\"bhc-kpi-label\">Indentation d<\/div><div class=\"bhc-kpi-value\" id=\"bhc-r-ind\">&#8212;<\/div><div class=\"bhc-kpi-sub\" id=\"bhc-r-ind-sub\"><\/div><\/div><div class=\"bhc-kpi\"><div class=\"bhc-kpi-label\">Surface area A<\/div><div class=\"bhc-kpi-value\" id=\"bhc-r-a\">&#8212;<\/div><div class=\"bhc-kpi-sub\">Curved cap area<\/div><\/div><div class=\"bhc-kpi\"><div class=\"bhc-kpi-label\">Depth h<\/div><div class=\"bhc-kpi-value\" id=\"bhc-r-h\">&#8212;<\/div><div class=\"bhc-kpi-sub\" id=\"bhc-r-h-sub\"><\/div><\/div><div class=\"bhc-kpi\"><div class=\"bhc-kpi-label\">Force-diameter ratio<\/div><div class=\"bhc-kpi-value\" id=\"bhc-r-ratio\">&#8212;<\/div><div class=\"bhc-kpi-sub\" id=\"bhc-r-ratio-sub\"><\/div><\/div><\/div><\/section><\/form><script>\n(function () {\n  \"use strict\";\n  var root = document.getElementById(\"bhc-calculator\");\n  if (!root || root.getAttribute(\"data-bhc-init\") === \"1\") { return; }\n  root.setAttribute(\"data-bhc-init\", \"1\");\n  \/* ===================== CONSTANTS ===================== *\/\n  var KGF = 9.80665;          \/* 1 kgf = 9.80665 N (exact) *\/\n  var COEF = 0.102;           \/* conventional coefficient, ISO 6506-1 \/ ASTM E10 *\/\n  var STD_D = [10, 5, 2.5, 1];\n  var STD_RATIOS = [30, 15, 10, 5, 2.5, 1];\n  var D_MIN = 0.24, D_MAX = 0.6, HBW_MAX = 650;\n  \/* ===================== ENGINE (pure) ===================== *\/\n  function toNewton(F, unit) { return unit === \"N\" ? F : unit === \"kN\" ? F * 1000 : F * KGF; }\n  function toKgf(F, unit) { return unit === \"kgf\" ? F : toNewton(F, unit) \/ KGF; }\n  function hbw(F, unit, D, d) {\n    var gap = D - Math.sqrt(D * D - d * d);\n    return unit === \"kgf\" ? (2 * F) \/ (Math.PI * D * gap) : (COEF * 2 * toNewton(F, unit)) \/ (Math.PI * D * gap);\n  }\n  function calculate(F, unit, D, d) {\n    var r = {};\n    r.FN = toNewton(F, unit);\n    r.Fkgf = toKgf(F, unit);\n    r.D2 = D * D; r.d2 = d * d;\n    r.root = Math.sqrt(r.D2 - r.d2);\n    r.gap = D - r.root;\n    r.depth = r.gap \/ 2;\n    r.area = Math.PI * D * r.gap \/ 2;\n    r.denom = Math.PI * D * r.gap;\n    r.hbw = hbw(F, unit, D, d);\n    r.ratio = unit === \"kgf\" ? F \/ r.D2 : COEF * r.FN \/ r.D2;\n    r.dD = d \/ D;\n    var step = 0.01;\n    r.sensUp = (d + step < D) ? hbw(F, unit, D, d + step) - r.hbw : null;\n    r.sensDown = (d - step > 0) ? hbw(F, unit, D, d - step) - r.hbw : null;\n    return r;\n  }\n  function matchStdD(D) { for (var i = 0; i < STD_D.length; i++) { if (Math.abs(D - STD_D[i]) < 1e-9) { return STD_D[i]; } } return null; }\n  function matchStdRatio(ratio) { for (var i = 0; i < STD_RATIOS.length; i++) { if (Math.abs(ratio - STD_RATIOS[i]) <= STD_RATIOS[i] * 0.01) { return STD_RATIOS[i]; } } return null; }\n  \/* Three significant figures for reporting the hardness number *\/\n  function sig3(v) { return v >= 100 ? Math.round(v).toString() : v >= 10 ? v.toFixed(1) : v.toFixed(2); }\n  function trimNum(v) { return String(Number(v.toFixed(4))); }\n  root.bhcEngine = { calculate: calculate, hbw: hbw, toNewton: toNewton, toKgf: toKgf };\n  \/* ===================== HELPERS ===================== *\/\n  function $(s) { return root.querySelector(s); }\n  function fmt(v, dec) {\n    if (v === null || v === undefined || !isFinite(v)) { return \"\u2014\"; }\n    var r = Number(v.toFixed(dec)); if (r === 0) { r = 0; }\n    return r.toLocaleString(\"en-US\", { minimumFractionDigits: dec, maximumFractionDigits: dec });\n  }\n  function fmtAuto(v) {\n    var a = Math.abs(v);\n    var dec = a >= 1000 ? 2 : a >= 1 ? 3 : 4;\n    return Number(v.toFixed(dec)).toLocaleString(\"en-US\", { maximumFractionDigits: dec });\n  }\n  function signed(v) { return (v > 0 ? \"+\" : v < 0 ? \"\u2212\" : \"\") + fmt(Math.abs(v), 2); }\n  function mk(tag, cls, text) { var n = document.createElement(tag); if (cls) { n.className = cls; } if (text !== undefined) { n.textContent = text; } return n; }\n  function clear(n) { while (n.firstChild) { n.removeChild(n.firstChild); } }\n  function num(input) {\n    var s = String(input.value).trim();\n    if (s === \"\") { return null; }\n    var v = Number(s);\n    return isFinite(v) ? v : NaN;\n  }\n  var el = {\n    preset: $(\"#bhc-preset\"), force: $(\"#bhc-force\"), unit: $(\"#bhc-force-unit\"), forceErr: $(\"#bhc-force-err\"),\n    ball: $(\"#bhc-ball\"), ballCustomWrap: $(\"#bhc-ball-custom-wrap\"), ballCustom: $(\"#bhc-ball-custom\"), ballCustomErr: $(\"#bhc-ball-custom-err\"),\n    dwell: $(\"#bhc-dwell\"), dwellErr: $(\"#bhc-dwell-err\"),\n    dWrap: $(\"#bhc-d-wrap\"), d: $(\"#bhc-d\"), dHint: $(\"#bhc-d-hint\"), dErr: $(\"#bhc-d-err\"),\n    d1Wrap: $(\"#bhc-d1-wrap\"), d1: $(\"#bhc-d1\"), d1Err: $(\"#bhc-d1-err\"), d2Wrap: $(\"#bhc-d2-wrap\"), d2: $(\"#bhc-d2\"), d2Err: $(\"#bhc-d2-err\"),\n    avg: $(\"#bhc-avg\"), avgVal: $(\"#bhc-avg-val\"), prec: $(\"#bhc-prec\"), confirm: $(\"#bhc-confirm\"),\n    calc: $(\"#bhc-calc\"), formMsg: $(\"#bhc-form-msg\"),\n    results: $(\"#bhc-results\"), rHb: $(\"#bhc-r-hb\"), rHbSub: $(\"#bhc-r-hb-sub\"), rF: $(\"#bhc-r-f\"), rFSub: $(\"#bhc-r-f-sub\"),\n    rD: $(\"#bhc-r-ball\"), rDSub: $(\"#bhc-r-ball-sub\"), rd: $(\"#bhc-r-ind\"), rdSub: $(\"#bhc-r-ind-sub\"), rA: $(\"#bhc-r-a\"),\n    rH: $(\"#bhc-r-h\"), rHSub: $(\"#bhc-r-h-sub\"), rRatio: $(\"#bhc-r-ratio\"), rRatioSub: $(\"#bhc-r-ratio-sub\"),\n    calcBtn: null\n  };\n  var state = { shown: false };\n  function mode() { var r = root.querySelector('input[name=\"bhc-mode\"]:checked'); return r ? r.value : \"single\"; }\n  function setErr(input, errEl, msg) {\n    errEl.textContent = msg || \"\";\n    if (msg) { input.classList.add(\"bhc-invalid\"); input.setAttribute(\"aria-invalid\", \"true\"); }\n    else { input.classList.remove(\"bhc-invalid\"); input.removeAttribute(\"aria-invalid\"); }\n    return !msg;\n  }\n  function positiveMsg(v, name) {\n    if (v === null) { return \"Enter the \" + name + \".\"; }\n    if (isNaN(v)) { return \"Enter a valid number.\"; }\n    if (v <= 0) { return \"The \" + name + \" must be greater than zero.\"; }\n    return \"\";\n  }\n  \/* ===================== READ + VALIDATE ===================== *\/\n  function getD() {\n    if (el.ball.value === \"custom\") { return num(el.ballCustom); }\n    return Number(el.ball.value);\n  }\n  function validDValue() { var D = getD(); return (D === null || isNaN(D) || D <= 0) ? null : D; }\n  function validateForce() { return setErr(el.force, el.forceErr, positiveMsg(num(el.force), \"test force\")); }\n  function validateBall() {\n    if (el.ball.value !== \"custom\") { return setErr(el.ballCustom, el.ballCustomErr, \"\"); }\n    var v = num(el.ballCustom), m = positiveMsg(v, \"ball diameter\");\n    if (!m) { if (v > 20) { m = \"Ball diameter above 20 mm is outside the scope of this tool.\"; } }\n    return setErr(el.ballCustom, el.ballCustomErr, m);\n  }\n  function validateDwell() {\n    var v = num(el.dwell);\n    if (v === null) { return setErr(el.dwell, el.dwellErr, \"\"); }\n    if (isNaN(v)) { return setErr(el.dwell, el.dwellErr, \"Enter a valid number, or leave blank.\"); }\n    if (v <= 0) { return setErr(el.dwell, el.dwellErr, \"Dwell time must be greater than zero, or leave blank.\"); }\n    return setErr(el.dwell, el.dwellErr, \"\");\n  }\n  function validateDia(input, errEl, name) {\n    var v = num(input), m = positiveMsg(v, name);\n    if (!m) {\n      var D = validDValue();\n      if (D !== null) { if (v >= D) { m = \"Must be smaller than the ball diameter D (\" + trimNum(D) + \" mm).\"; } }\n    }\n    return setErr(input, errEl, m);\n  }\n  function validateIndent() {\n    if (mode() === \"single\") {\n      setErr(el.d1, el.d1Err, \"\"); setErr(el.d2, el.d2Err, \"\");\n      return validateDia(el.d, el.dErr, \"indentation diameter\");\n    }\n    setErr(el.d, el.dErr, \"\");\n    var a = validateDia(el.d1, el.d1Err, \"first diameter d\u2081\");\n    var b = validateDia(el.d2, el.d2Err, \"second diameter d\u2082\");\n    return a ? b : false;\n  }\n  function updateAvg() {\n    var a = num(el.d1), b = num(el.d2);\n    var ok = (a !== null ? (b !== null ? (isFinite(a) ? (isFinite(b) ? (a > 0 ? b > 0 : false) : false) : false) : false) : false);\n    el.avgVal.textContent = ok ? fmt((a + b) \/ 2, 4) + \" mm\" : \"\u2014\";\n  }\n  function updateDHint() {\n    var D = validDValue();\n    el.dHint.textContent = D === null ? \"Must be greater than 0 and smaller than D.\" : \"Valid test range: \" + fmtAuto(D * D_MIN) + \"\u2013\" + fmtAuto(D * D_MAX) + \" mm (0.24D\u20130.6D). Must be smaller than D = \" + trimNum(D) + \" mm.\";\n  }\n  function validateAll() {\n    var ok = [validateForce(), validateBall(), validateDwell(), validateIndent()];\n    for (var i = 0; i < ok.length; i++) { if (!ok[i]) { return false; } }\n    return true;\n  }\n  function readInput() {\n    var m = mode(), d, d1 = null, d2 = null;\n    if (m === \"single\") { d = num(el.d); } else { d1 = num(el.d1); d2 = num(el.d2); d = (d1 + d2) \/ 2; }\n    return { F: num(el.force), unit: el.unit.value, D: getD(), d: d, d1: d1, d2: d2, mode: m, dwell: num(el.dwell), prec: Number(el.prec.value), confirmed: el.confirm.checked, preset: el.preset.value };\n  }\n  \/* ===================== RENDER ===================== *\/\n  function render(inp, r) {\n    var p = inp.prec, D = inp.D, d = inp.d, u = inp.unit;\n    el.results.hidden = false;\n    el.rHb.textContent = fmt(r.hbw, p);\n    el.rHb.appendChild(mk(\"span\", \"\", \"HBW\"));\n    var sensTxt = \"\";\n    if (r.sensUp !== null) { if (r.sensDown !== null) { sensTxt = \"Sensitivity: d \u2212 0.01 mm \u2192 \" + signed(r.sensDown) + \" HBW, d + 0.01 mm \u2192 \" + signed(r.sensUp) + \" HBW.\"; } }\n    el.rHbSub.textContent = \"Reported to 3 significant figures: \" + sig3(r.hbw) + \" HBW. \" + sensTxt;\n    el.rF.textContent = fmtAuto(inp.F) + \" \" + u;\n    el.rFSub.textContent = u === \"kgf\" ? \"= \" + fmtAuto(r.FN) + \" N\" : \"= \" + fmtAuto(r.Fkgf) + \" kgf\";\n    el.rD.textContent = trimNum(D) + \" mm\";\n    el.rDSub.textContent = matchStdD(D) !== null ? \"Standard size\" : \"Non-standard size\";\n    el.rd.textContent = fmt(d, 4) + \" mm\";\n    el.rdSub.textContent = (inp.mode === \"two\" ? \"Mean of \" + trimNum(inp.d1) + \" and \" + trimNum(inp.d2) + \" \u00b7 \" : \"\") + \"d\/D = \" + fmt(r.dD, 3);\n    el.rA.textContent = fmt(r.area, 4) + \" mm\u00b2\";\n    el.rH.textContent = fmt(r.depth, 4) + \" mm\";\n    el.rHSub.textContent = \"Min. thickness \u2248 \" + fmt(8 * r.depth, 2) + \" mm (8h, ISO)\";\n    var sR = matchStdRatio(r.ratio);\n    el.rRatio.textContent = fmt(r.ratio, 3);\n    el.rRatioSub.textContent = sR !== null ? \"Matches standard ratio \" + sR : \"Non-standard ratio\";\n    var inRange = (r.dD >= D_MIN ? r.dD <= D_MAX : false);\n    clear(el.rHbSub.parentNode.querySelector(\".bhc-main-label\"));\n    var lab = el.rHbSub.parentNode.querySelector(\".bhc-main-label\");\n    lab.appendChild(document.createTextNode(\"Brinell hardness \"));\n    lab.appendChild(mk(\"span\", \"bhc-badge \" + (inRange ? \"bhc-badge-ok\" : \"bhc-badge-warn\"), inRange ? \"d within 0.24D\u20130.6D\" : \"d outside 0.24D\u20130.6D\"));\n  }\n  function onCalculate(silent) {\n    el.formMsg.textContent = \"\";\n    if (!validateAll()) {\n      if (silent) { el.results.hidden = true; return; }\n      el.formMsg.textContent = \"Please correct the highlighted fields.\";\n      el.results.hidden = true;\n      var first = root.querySelector(\".bhc-invalid\"); if (first) { first.focus(); }\n      return;\n    }\n    var inp = readInput();\n    var r = calculate(inp.F, inp.unit, inp.D, inp.d);\n    if (!isFinite(r.hbw) || r.gap <= 0) { el.formMsg.textContent = \"These values cannot produce a valid result. Check that d is greater than 0 and smaller than D.\"; el.results.hidden = true; return; }\n    render(inp, r);\n    state.shown = true;\n    if (!silent) {\n      try { el.results.focus({ preventScroll: true }); } catch (e) { \/* ignore *\/ }\n      if (el.results.scrollIntoView) { el.results.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" }); }\n    }\n  }\n  function liveUpdate() { if (state.shown) { onCalculate(true); } }\n  \/* ===================== INPUT BEHAVIOUR ===================== *\/\n  function syncPreset() {\n    var D = validDValue(), F = num(el.force);\n    var val = \"\";\n    if (D !== null) { if (F !== null) { if (isFinite(F)) {\n      var Fk = toKgf(F, el.unit.value), opts = el.preset.options;\n      for (var i = 0; i < opts.length; i++) {\n        var p = opts[i].value.split(\"|\");\n        if (p.length === 2) { if (Math.abs(Number(p[0]) - D) < 1e-9) { if (Math.abs(Number(p[1]) - Fk) <= Number(p[1]) * 0.001) { val = opts[i].value; } } }\n      }\n    } } }\n    el.preset.value = val;\n  }\n  function onPreset() {\n    var v = el.preset.value; if (!v) { return; }\n    var p = v.split(\"|\");\n    el.ball.value = p[0]; el.ballCustomWrap.hidden = true;\n    el.unit.value = \"kgf\"; el.unit.setAttribute(\"data-prev\", \"kgf\");\n    el.force.value = p[1];\n    validateForce(); validateBall(); updateDHint();\n    if (state.shown) { validateIndent(); }\n    liveUpdate();\n  }\n  function onBall() {\n    el.ballCustomWrap.hidden = el.ball.value !== \"custom\";\n    if (el.ball.value === \"custom\") { if (num(el.ballCustom) === null) { el.ballCustom.value = \"\"; } el.ballCustom.focus(); }\n    validateBall(); updateDHint(); syncPreset();\n    if (state.shown) { validateIndent(); }\n    liveUpdate();\n  }\n  function onUnit() {\n    var prev = el.unit.getAttribute(\"data-prev\") || \"kgf\", v = num(el.force);\n    if (v !== null) { if (isFinite(v)) {\n      var n = toNewton(v, prev), out = el.unit.value === \"N\" ? n : el.unit.value === \"kN\" ? n \/ 1000 : n \/ KGF;\n      el.force.value = String(Number(out.toPrecision(10)));\n    } }\n    el.unit.setAttribute(\"data-prev\", el.unit.value);\n    validateForce(); syncPreset(); liveUpdate();\n  }\n  function onMode() {\n    var two = mode() === \"two\";\n    el.dWrap.hidden = two; el.d1Wrap.hidden = !two; el.d2Wrap.hidden = !two; el.avg.hidden = !two;\n    if (two) {\n      if (num(el.d1) === null) { if (num(el.d2) === null) { var dv = num(el.d); if (dv !== null) { if (isFinite(dv)) { el.d1.value = String(dv); el.d2.value = String(dv); } } } }\n    } else {\n      var a = num(el.d1), b = num(el.d2);\n      if (a !== null) { if (b !== null) { if (isFinite(a + b)) { el.d.value = String(Number(((a + b) \/ 2).toFixed(6))); } } }\n    }\n    updateAvg();\n    if (state.shown) { validateIndent(); }\n    liveUpdate();\n  }\n  el.preset.addEventListener(\"change\", onPreset);\n  el.ball.addEventListener(\"change\", onBall);\n  el.unit.addEventListener(\"change\", onUnit);\n  el.unit.setAttribute(\"data-prev\", el.unit.value);\n  el.force.addEventListener(\"input\", function () { validateForce(); syncPreset(); liveUpdate(); });\n  el.ballCustom.addEventListener(\"input\", function () { validateBall(); updateDHint(); syncPreset(); if (state.shown) { validateIndent(); } liveUpdate(); });\n  el.dwell.addEventListener(\"input\", function () { validateDwell(); liveUpdate(); });\n  el.d.addEventListener(\"input\", function () { validateDia(el.d, el.dErr, \"indentation diameter\"); liveUpdate(); });\n  el.d1.addEventListener(\"input\", function () { validateDia(el.d1, el.d1Err, \"first diameter d\u2081\"); updateAvg(); liveUpdate(); });\n  el.d2.addEventListener(\"input\", function () { validateDia(el.d2, el.d2Err, \"second diameter d\u2082\"); updateAvg(); liveUpdate(); });\n  el.prec.addEventListener(\"change\", liveUpdate);\n  var radios = root.querySelectorAll('input[name=\"bhc-mode\"]');\n  for (var i = 0; i < radios.length; i++) { radios[i].addEventListener(\"change\", onMode); }\n  el.calc.addEventListener(\"click\", function () { onCalculate(false); });\n  root.querySelector(\".bhc-form\").addEventListener(\"keydown\", function (e) {\n    if (e.key === \"Enter\" ? (e.target ? e.target.tagName === \"INPUT\" : false) : false) { e.preventDefault(); onCalculate(false); }\n  });\n  updateDHint();\n})();\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Brinell Hardness (HB) Calculator is a practical online tool designed to calculate the Brinell hardness of metals and engineering materials quickly and accurately. By&#8230;<\/p>","protected":false},"author":2,"featured_media":24939,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8647],"tags":[8737,8736,8735,4614],"class_list":["post-24938","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-materials-science-and-properties","tag-brinell-hardness","tag-hardness-testing","tag-hb-calculator","tag-material-testing","pmpro-has-access"],"acf":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/10\/Brinell-Hardness-HB-Calculator.png","_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/24938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/comments?post=24938"}],"version-history":[{"count":1,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/24938\/revisions"}],"predecessor-version":[{"id":24940,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/24938\/revisions\/24940"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/media\/24939"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/media?parent=24938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/categories?post=24938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/tags?post=24938"}],"curies":[{"name":"\u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}