{"id":2168,"date":"2026-09-30T06:09:54","date_gmt":"2026-09-30T06:09:54","guid":{"rendered":"https:\/\/kingndmagnet.com\/?page_id=2168"},"modified":"2026-10-30T03:32:01","modified_gmt":"2026-10-30T03:32:01","slug":"%e3%83%87%e3%83%9e%e3%82%b0%e3%83%8d%e3%82%bf%e3%82%a4%e3%82%ba%e3%81%ae%e3%83%aa%e3%82%b9%e3%82%af%e8%a8%88%e7%ae%97%e3%83%84%e3%83%bc%e3%83%ab","status":"publish","type":"page","link":"https:\/\/kingndmagnet.com\/ja\/tools\/demagnetization-risk-calculator\/","title":{"rendered":"\u30c7\u30de\u30b0\u30cd\u30bf\u30a4\u30ba\u306e\u30ea\u30b9\u30af\u8a08\u7b97\u30c4\u30fc\u30eb"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2168\" class=\"elementor elementor-2168\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e959dbf e-flex e-con-boxed e-con e-parent\" data-id=\"e959dbf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b88bc86 logo-watermark logo-watermark-scatter elementor-widget elementor-widget-html\" data-id=\"b88bc86\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Demagnetization Risk Calculator | King-Nd Magnet<\/title>\r\n<style>\r\n    :root { --primary-blue: #002ea7; --primary-hover: #001f7a; --bg-light: #e6e8f5; --card-bg: #ffffff; --text-dark: #172b4d; --text-muted: #5e6c84; --border-color: #dfe1e6; --accent-red: #e61373; }\r\n    * { box-sizing: border-box; margin: 0; padding: 0; }\r\n    body { font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; background-color: var(--bg-light); color: var(--text-dark); line-height: 1.6; padding: 30px 15px; }\r\n    .calc-container { max-width: 1000px; margin: 0 auto; }\r\n    .page-header { text-align: center; margin-bottom: 30px; }\r\n    .page-header h1 { font-size: 30px; font-weight: 700; color: var(--text-dark); margin-bottom: 10px; }\r\n    .page-header p { font-size: 15px; color: var(--text-muted); max-width: 700px; margin: 0 auto; }\r\n    .calc-card, .method-card { background: var(--card-bg); border-radius: 12px; box-shadow: 0 4px 16px rgba(9,30,66,0.08); padding: 30px; margin-bottom: 30px; }\r\n    .section-title { font-size: 19px; font-weight: 700; color: var(--text-dark); margin-bottom: 6px; }\r\n    h3.sub-title { font-size: 15px; font-weight: 700; color: var(--primary-blue); margin: 22px 0 6px; }\r\n    p.body-text { font-size: 13px; color: var(--text-dark); margin-bottom: 10px; max-width: 760px; }\r\n    .section-intro { font-size: 13px; color: var(--text-muted); margin-bottom: 18px; max-width: 700px; }\r\n    .inputs-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 15px; margin-bottom: 10px; }\r\n    .form-group label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }\r\n    .form-control { width: 100%; padding: 10px 12px; font-size: 14px; border: 1px solid var(--border-color); border-radius: 6px; outline: none; background: #fff; font-family: inherit; }\r\n    .form-control:focus { border-color: var(--primary-blue); }\r\n    .pc-hint { font-size: 12px; color: var(--text-muted); margin-top: -4px; margin-bottom: 16px; }\r\n    .pc-hint a { color: var(--primary-blue); font-weight: 600; text-decoration: none; }\r\n    .temp-toggle-group { display: flex; background: #e5e5ea; padding: 3px; border-radius: 9px; flex-wrap: wrap; gap: 2px; margin-bottom: 20px; }\r\n    .temp-btn { border: none; background: transparent; padding: 6px 14px; font-size: 13px; font-weight: 600; color: #86868b; border-radius: 7px; cursor: pointer; }\r\n    .temp-btn.active { background: #ffffff; color: var(--text-dark); box-shadow: 0 2px 6px rgba(0,0,0,0.1); }\r\n    .risk-banner { border-radius: 10px; padding: 20px 22px; margin: 18px 0; }\r\n    .risk-banner.low { background: #e8f5e9; border-left: 4px solid #2e7d32; }\r\n    .risk-banner.caution { background: #fff7e6; border-left: 4px solid #d97706; }\r\n    .risk-banner.high { background: #ffebee; border-left: 4px solid #c62828; }\r\n    .risk-banner .risk-title { font-size: 16px; font-weight: 700; margin-bottom: 6px; }\r\n    .risk-banner.low .risk-title { color: #2e7d32; }\r\n    .risk-banner.caution .risk-title { color: #d97706; }\r\n    .risk-banner.high .risk-title { color: #c62828; }\r\n    .risk-banner p { font-size: 13px; color: #42526e; }\r\n    .results-panel { background: var(--primary-blue); color: #ffffff; border-radius: 8px; padding: 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 20px; margin-bottom: 20px; }\r\n    .result-item { display: flex; flex-direction: column; }\r\n    .result-item .label { font-size: 12px; color: #ffffff !important; opacity: 0.85; margin-bottom: 4px; }\r\n    .result-item .value { font-size: 19px; font-weight: 700; color: #ffffff !important; }\r\n    .svg-container { width: 100%; height: 380px; }\r\n    svg#riskSvg { width: 100%; height: 100%; overflow: visible; }\r\n    .legend-bar { display: flex; justify-content: center; gap: 22px; margin-top: 10px; font-size: 13px; font-weight: 600; flex-wrap: wrap; }\r\n    .legend-item { display: flex; align-items: center; gap: 6px; }\r\n    .legend-line { width: 22px; height: 3px; }\r\n    .method-list { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 14px 0; }\r\n    .method-list li { font-size: 13px; color: var(--text-dark); padding-left: 18px; position: relative; }\r\n    .method-list li::before { content: \"\u2014\"; position: absolute; left: 0; color: var(--primary-blue); }\r\n    .disclaimer-card { margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--border-color); }\r\n    .disclaimer-card h3 { color: var(--accent-red); font-size: 15px; font-weight: 700; margin-bottom: 6px; }\r\n    .disclaimer-card p { font-size: 13px; color: #42526e; }\r\n    .cta-box { background: linear-gradient(135deg, #002ea7 0%, #001f7a 100%); color: #ffffff; border-radius: 12px; padding: 28px 32px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; }\r\n    .cta-content h3 { font-size: 20px; margin-bottom: 6px; color: #ffffff !important; }\r\n    .cta-content p { font-size: 14px; color: #ffffff !important; opacity: 0.9; }\r\n    .btn-cta { background-color: #ffffff; color: var(--primary-blue) !important; padding: 12px 28px; font-size: 15px; font-weight: 700; border-radius: 6px; text-decoration: none; display: inline-block; transition: transform 0.2s, box-shadow 0.2s; }\r\n    .btn-cta:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.2); }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"calc-container\">\r\n\r\n    <div class=\"page-header\">\r\n        <h1>Demagnetization Risk Calculator<\/h1>\r\n        <p>This calculator finds your magnet's working point. It combines a grade's demagnetization curve with the permeance coefficient (Pc) and the operating temperature. Then it shows whether that point sits safely below the knee or risks irreversible flux loss.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"calc-card\">\r\n        <h2 class=\"section-title\">Enter Grade, Temperature and Pc<\/h2>\r\n        <p class=\"section-intro\">First, pick a grade and choose the operating temperature. Then enter the permeance coefficient (Pc) of your magnet.<\/p>\r\n\r\n        <div class=\"inputs-row\">\r\n            <div class=\"form-group\">\r\n                <label for=\"riskGrade\">Grade<\/label>\r\n                <select id=\"riskGrade\" class=\"form-control\">\r\n                    <option value=\"50SH\">50SH<\/option><option value=\"48SH\">48SH<\/option><option value=\"52H\">52H<\/option>\r\n                    <option value=\"48UH\">48UH<\/option><option value=\"48H\">48H<\/option><option value=\"45SH\" selected>45SH<\/option>\r\n                    <option value=\"40SH\">40SH<\/option><option value=\"38UH\">38UH<\/option><option value=\"35SH\">35SH<\/option>\r\n                <\/select>\r\n            <\/div>\r\n            <div class=\"form-group\">\r\n                <label for=\"riskPc\">Permeance Coefficient (Pc)<\/label>\r\n                <input type=\"number\" id=\"riskPc\" class=\"form-control\" step=\"0.05\" min=\"0.05\" value=\"1.0\">\r\n            <\/div>\r\n        <\/div>\r\n        <p class=\"pc-hint\">Don't know your Pc? Calculate it from your magnet's shape with the <a href=\"\/tools\/permeance-coefficient-calculator\/\">Permeance Coefficient Calculator<\/a>.<\/p>\r\n\r\n        <label style=\"display:block;font-size:14px;font-weight:600;margin-bottom:8px;\">Operating Temperature<\/label>\r\n        <div class=\"temp-toggle-group\" id=\"riskTempGroup\"><\/div>\r\n\r\n        <div id=\"riskOutput\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"method-card\">\r\n        <h2 class=\"section-title\">How This Is Calculated<\/h2>\r\n        <p class=\"section-intro\">The tool finds the working point where the magnet's load line crosses its demagnetization curve. In fact, circuit designers use the same method to check demagnetization risk.<\/p>\r\n\r\n        <h3 class=\"sub-title\">Step 1: Build the Demagnetization Curve<\/h3>\r\n        <p class=\"body-text\">First, the tool builds the grade's curve at your chosen temperature. It uses the same four-point model as our Demagnetization Curve Tool, so the two tools always agree. These points are Br, HcB, HcJ and the knee field Hk. In addition, we follow the test convention in <strong>GB\/T 3217<\/strong> for the magnetic properties of permanent magnet materials.<\/p>\r\n\r\n        <h3 class=\"sub-title\">Step 2: Draw the Load Line<\/h3>\r\n        <p class=\"body-text\">Next, the tool draws the load line from your Pc. The line follows <strong>B = Pc \u00d7 \u03bc\u2080 \u00d7 H<\/strong>. In the units used here, this becomes B = Pc \u00d7 0.1 \u00d7 H. H is in kOe, and B is in Tesla. This is the standard link between the permeance coefficient and the operating line.<\/p>\r\n\r\n        <h3 class=\"sub-title\">Step 3: Find the Working Point<\/h3>\r\n        <p class=\"body-text\">Then, the tool finds where the load line crosses the B-H curve. This crossing is the working point (Bd, Hd). As a result, you see both the flux density and the reverse field at that point. The tool locates it by stepping along the tabulated curve.<\/p>\r\n\r\n        <h3 class=\"sub-title\">Step 4: Rate the Risk<\/h3>\r\n        <p class=\"body-text\">Finally, the tool compares the working field Hd with the knee field Hk at that temperature. If Hd is below 80% of Hk, the risk is low. If Hd lies between 80% and 100% of Hk, use caution. If Hd passes Hk, expect partial, irreversible loss of magnetization. Note that the 80% line is an engineering rule of thumb, not a published standard.<\/p>\r\n\r\n        <h3 class=\"sub-title\">What This Model Leaves Out<\/h3>\r\n        <p class=\"body-text\">First, this model assumes a steady, uniform working point. Also, it assumes no extra demagnetizing field, such as a fault current in a motor winding. However, any extra field pushes the working point further along the reverse-field axis. Therefore, treat the margin shown here as the margin under normal operating conditions only.<\/p>\r\n\r\n        <div class=\"disclaimer-card\">\r\n            <h3>Engineering Reference<\/h3>\r\n            <p>In short, use this tool for early screening only. It does not replace full hysteresis data or FEA simulation. For safety-critical designs, motor fault analysis, or operation near a grade's rated maximum temperature, request full curve data. Our engineers can then review your case directly.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"cta-box\">\r\n        <div class=\"cta-content\">\r\n            <h3>Working point too close to the knee?<\/h3>\r\n            <p>Our engineers can recommend a higher-Hcj grade. They can also suggest a geometry that raises Pc, or a design change that lowers demagnetization risk at your temperature.<\/p>\r\n        <\/div>\r\n        <a href=\"\/contact-us\" class=\"btn-cta\">Consult Our Engineer &rarr;<\/a>\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n    function gp(Br, HcB, HcJ, Hk) {\r\n        var pointsB = [], pointsJ = [], maxH = 28;\r\n        for (var H = 0; H <= maxH; H += 0.1) {\r\n            var B = 0, J = 0;\r\n            if (H <= Hk) J = Br * (1 - 0.05 * Math.pow(H \/ Hk, 4));\r\n            else if (H <= HcJ) { var ratio = (H - Hk) \/ (HcJ - Hk || 0.1); J = Br * 0.95 * (1 - 0.95 * Math.pow(ratio, 2)); }\r\n            else { var dropRate = Br * 0.8; J = Math.max(0, Br * 0.05 - dropRate * (H - HcJ)); }\r\n            B = J - 0.100 * H;\r\n            pointsB.push({ H: H, val: B });\r\n            pointsJ.push({ H: H, val: J });\r\n        }\r\n        return { B: pointsB, J: pointsJ, Br: Br, HcB: HcB, HcJ: HcJ, Hk: Hk };\r\n    }\r\n\r\n    var curveDatabase = {\r\n        \"50SH\": { 20: gp(1.402,13.58,20.70,20.03), 100: gp(1.290,9.866,9.997,9.743), 120: gp(1.250,7.834,7.889,7.678), 150: gp(1.183,5.312,5.354,5.134) },\r\n        \"48SH\": { 20: gp(1.388,13.38,20.34,19.63), 80: gp(1.305,11.82,12.16,11.83), 100: gp(1.264,9.562,9.727,9.438), 120: gp(1.228,7.598,7.700,7.449), 150: gp(1.161,5.177,5.231,5.001) },\r\n        \"52H\":  { 20: gp(1.437,13.73,17.81,17.13), 80: gp(1.351,10.77,11.00,10.62), 100: gp(1.320,8.944,9.086,8.753), 120: gp(1.279,7.338,7.428,7.146) },\r\n        \"48UH\": { 20: gp(1.383,13.41,25.71,23.96), 100: gp(1.280,12.17,14.87,14.10), 150: gp(1.181,9.151,9.450,8.933) },\r\n        \"48H\":  { 20: gp(1.389,13.45,17.34,16.70), 100: gp(1.291,8.259,8.326,8.081), 120: gp(1.254,6.669,6.705,6.499), 150: gp(1.194,4.740,4.757,4.578) },\r\n        \"45SH\": { 20: gp(1.344,13.05,20.23,19.46), 100: gp(1.231,9.899,10.12,9.767), 120: gp(1.193,8.090,8.226,7.913), 150: gp(1.132,5.827,5.882,5.627), 180: gp(1.062,4.029,4.058,3.836) },\r\n        \"40SH\": { 20: gp(1.274,12.420,20.260,19.670), 60: gp(1.2317,11.860,15.200,14.720), 80: gp(1.201,11.520,12.770,12.390), 100: gp(1.1701,10.240,10.540,10.210), 120: gp(1.1378,8.471,8.619,8.355), 150: gp(1.077,6.125,6.229,6.000) },\r\n        \"38UH\": { 20: gp(1.251,12.21,25.95,24.45), 60: gp(1.207,11.61,20.33,19.62), 100: gp(1.148,10.79,15.15,14.71), 120: gp(1.115,10.34,12.76,12.36), 150: gp(1.059,9.324,9.595,9.263), 180: gp(0.996,6.769,6.847,6.585) },\r\n        \"35SH\": { 20: gp(1.204,11.70,20.42,19.90), 100: gp(1.106,10.00,10.28,10.01), 120: gp(1.072,8.203,8.314,8.096), 150: gp(1.019,5.928,5.986,5.798) }\r\n    };\r\n\r\n    var $ = function (id) { return document.getElementById(id); };\r\n    var currentTemp = 20;\r\n\r\n    function updateTempButtons() {\r\n        var grade = $('riskGrade').value, group = $('riskTempGroup');\r\n        var temps = Object.keys(curveDatabase[grade]).map(Number).sort(function (a, b) { return a - b; });\r\n        group.innerHTML = '';\r\n        if (temps.indexOf(currentTemp) === -1) currentTemp = temps[0];\r\n        temps.forEach(function (t) {\r\n            var btn = document.createElement('button');\r\n            btn.className = 'temp-btn' + (t === currentTemp ? ' active' : '');\r\n            btn.textContent = t === 20 ? '20\u00b0C (RT)' : t + '\u00b0C';\r\n            btn.onclick = function () {\r\n                currentTemp = t;\r\n                Array.prototype.forEach.call(group.children, function (b) { b.classList.remove('active'); });\r\n                btn.classList.add('active');\r\n                calc();\r\n            };\r\n            group.appendChild(btn);\r\n        });\r\n    }\r\n\r\n    function findWorkingPoint(curve, Pc) {\r\n        var pts = curve.B, prevDiff = null, cross = null;\r\n        for (var i = 0; i < pts.length; i++) {\r\n            var H = pts[i].H, lineB = Pc * 0.1 * H, diff = pts[i].val - lineB;\r\n            if (prevDiff !== null && ((prevDiff > 0 && diff <= 0) || (prevDiff < 0 && diff >= 0))) {\r\n                var H0 = pts[i - 1].H, H1 = H, d0 = prevDiff, d1 = diff;\r\n                var t = d0 \/ (d0 - d1);\r\n                cross = { H: H0 + t * (H1 - H0) };\r\n                break;\r\n            }\r\n            prevDiff = diff;\r\n        }\r\n        if (!cross) return null;\r\n        cross.B = Pc * 0.1 * cross.H;\r\n        return cross;\r\n    }\r\n\r\n    function calc() {\r\n        var grade = $('riskGrade').value, Pc = parseFloat($('riskPc').value);\r\n        var curve = curveDatabase[grade][currentTemp];\r\n        var out = $('riskOutput');\r\n        if (!curve || isNaN(Pc) || Pc <= 0) { out.innerHTML = ''; return; }\r\n\r\n        var wp = findWorkingPoint(curve, Pc);\r\n        if (!wp) { out.innerHTML = '<div class=\"risk-banner high\"><div class=\"risk-title\">Could not find a working point<\/div><p>No intersection found in the 0\u201328 kOe range for this Pc. Try a higher Pc value.<\/p><\/div>'; return; }\r\n\r\n        var margin = (curve.Hk - wp.H) \/ curve.Hk * 100;\r\n        var level = wp.H <= 0.8 * curve.Hk ? 'low' : (wp.H <= curve.Hk ? 'caution' : 'high');\r\n        var titles = { low: 'Low Risk \u2014 Working Point Below the Knee', caution: 'Caution \u2014 Working Point Close to the Knee', high: 'High Risk \u2014 Working Point Beyond the Knee' };\r\n        var texts = {\r\n            low: 'The working point sits comfortably below the curve\\'s knee field, with ' + margin.toFixed(0) + '% margin. Under normal operating conditions, this grade at this temperature and Pc should hold its magnetization without irreversible loss.',\r\n            caution: 'The working point is close to the knee, with only ' + margin.toFixed(0) + '% margin. There is limited headroom against further demagnetizing influences \u2014 a small increase in temperature, an external opposing field, or a slightly lower Pc could push the point past the knee.',\r\n            high: 'The working point has passed the knee field (margin ' + margin.toFixed(0) + '%). At this temperature, Pc and grade combination, expect some irreversible loss of magnetization \u2014 consider a higher-Hcj grade, a higher-Pc geometry, or a lower operating temperature.'\r\n        };\r\n\r\n        var html = '<div class=\"risk-banner ' + level + '\"><div class=\"risk-title\">' + titles[level] + '<\/div><p>' + texts[level] + '<\/p><\/div>';\r\n        html += '<div class=\"results-panel\">' +\r\n            '<div class=\"result-item\"><span class=\"label\">Working point (Hd, Bd)<\/span><span class=\"value\">' + wp.H.toFixed(2) + ' kOe, ' + wp.B.toFixed(3) + ' T<\/span><\/div>' +\r\n            '<div class=\"result-item\"><span class=\"label\">Knee field (Hk) at ' + currentTemp + '\u00b0C<\/span><span class=\"value\">' + curve.Hk.toFixed(2) + ' kOe<\/span><\/div>' +\r\n            '<div class=\"result-item\"><span class=\"label\">Margin to knee<\/span><span class=\"value\">' + margin.toFixed(0) + '%<\/span><\/div>' +\r\n            '<div class=\"result-item\"><span class=\"label\">Br at ' + currentTemp + '\u00b0C<\/span><span class=\"value\">' + curve.Br.toFixed(3) + ' T<\/span><\/div>' +\r\n            '<\/div>';\r\n        html += '<div class=\"svg-container\"><svg id=\"riskSvg\" viewBox=\"0 0 700 380\"><\/svg><\/div>' +\r\n            '<div class=\"legend-bar\">' +\r\n            '<div class=\"legend-item\"><div class=\"legend-line\" style=\"background:#002ea7;\"><\/div><span>B-H curve<\/span><\/div>' +\r\n            '<div class=\"legend-item\"><div class=\"legend-line\" style=\"background:#e61373;border-top:2px dashed #e61373;height:0;\"><\/div><span>Load line (Pc)<\/span><\/div>' +\r\n            '<div class=\"legend-item\"><div class=\"legend-line\" style=\"background:#d97706;border-top:2px dashed #d97706;height:0;\"><\/div><span>Knee field (Hk)<\/span><\/div>' +\r\n            '<\/div>';\r\n        out.innerHTML = html;\r\n        drawChart(curve, wp);\r\n    }\r\n\r\n    function drawChart(curve, wp) {\r\n        var svg = $('riskSvg');\r\n        var m = { top: 20, right: 20, bottom: 40, left: 55 }, W = 700, H = 380;\r\n        var w = W - m.left - m.right, h = H - m.top - m.bottom;\r\n        var maxH = 28, maxB = Math.max(curve.Br * 1.05, 1.6);\r\n        function mapX(hv) { return m.left + w - (hv \/ maxH) * w; }\r\n        function mapY(bv) { return m.top + h - (bv \/ maxB) * h; }\r\n        var g = '';\r\n        for (var b = 0; b <= maxB; b += 0.2) { var y = mapY(b); g += '<line x1=\"' + m.left + '\" x2=\"' + (W - m.right) + '\" y1=\"' + y + '\" y2=\"' + y + '\" stroke=\"#e5e5e7\"\/><text x=\"' + (m.left - 8) + '\" y=\"' + (y + 4) + '\" text-anchor=\"end\" font-size=\"11\" fill=\"#5e6c84\">' + b.toFixed(1) + '<\/text>'; }\r\n        for (var hh = 0; hh <= maxH; hh += 4) { var x = mapX(hh); g += '<line x1=\"' + x + '\" y1=\"' + m.top + '\" x2=\"' + x + '\" y2=\"' + (m.top + h) + '\" stroke=\"#e5e5e7\"\/><text x=\"' + x + '\" y=\"' + (m.top + h + 18) + '\" text-anchor=\"middle\" font-size=\"11\" fill=\"#5e6c84\">' + hh + '<\/text>'; }\r\n        var bhPath = curve.B.filter(function (p) { return p.val >= -0.05; }).map(function (p, i) { return (i === 0 ? 'M' : 'L') + ' ' + mapX(p.H) + ' ' + mapY(Math.max(p.val, 0)); }).join(' ');\r\n        g += '<path d=\"' + bhPath + '\" fill=\"none\" stroke=\"#002ea7\" stroke-width=\"2.5\"\/>';\r\n        var lineEndH = Math.min(maxH, wp.H * 1.4 + 2), lineEndB = wp.B \/ wp.H * lineEndH;\r\n        g += '<line x1=\"' + mapX(0) + '\" y1=\"' + mapY(0) + '\" x2=\"' + mapX(lineEndH) + '\" y2=\"' + mapY(Math.min(lineEndB, maxB)) + '\" stroke=\"#e61373\" stroke-width=\"2\" stroke-dasharray=\"6,4\"\/>';\r\n        g += '<line x1=\"' + mapX(curve.Hk) + '\" y1=\"' + m.top + '\" x2=\"' + mapX(curve.Hk) + '\" y2=\"' + (m.top + h) + '\" stroke=\"#d97706\" stroke-width=\"2\" stroke-dasharray=\"5,5\"\/>';\r\n        g += '<circle cx=\"' + mapX(wp.H) + '\" cy=\"' + mapY(wp.B) + '\" r=\"6\" fill=\"#1d1d1f\"\/>';\r\n        g += '<text x=\"' + m.left + '\" y=\"' + (m.top - 4) + '\" font-size=\"11\" fill=\"#5e6c84\">B (T)<\/text>';\r\n        g += '<text x=\"' + (W - m.right - 40) + '\" y=\"' + (m.top + h + 34) + '\" font-size=\"11\" fill=\"#5e6c84\">-H (kOe)<\/text>';\r\n        svg.innerHTML = g;\r\n    }\r\n\r\n    $('riskGrade').addEventListener('change', function () { updateTempButtons(); calc(); });\r\n    $('riskPc').addEventListener('input', calc);\r\n    updateTempButtons();\r\n    calc();\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\r\n\r\n<!-- King-Nd free sample card. Paste at the very end of this tool's code. -->\r\n<style>\r\n.kndtc { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 18px 0 0; padding: 18px 22px; border-radius: 10px; background: linear-gradient(135deg, #e61373 0%, #b30e58 100%); box-sizing: border-box; }\r\n.kndtc *, .kndtc *::before, .kndtc *::after { box-sizing: border-box; }\r\n.kndtc-text { flex: 1 1 260px; min-width: 0; }\r\n.kndtc-kicker { display: block; margin: 0 0 6px; font-size: 21px; font-weight: 800; line-height: 1.25; color: #ffffff !important; }\r\n.kndtc-spec { display: block; margin: 0 0 8px; font-size: 14px; font-weight: 600; line-height: 1.35; color: #ffffff !important; opacity: 0.95; }\r\n.kndtc-spec:empty { display: none; }\r\n.kndtc-sub { display: block; font-size: 14px; line-height: 1.5; color: #ffffff !important; }\r\n.kndtc-pill { display: inline-block; margin-right: 8px; padding: 2px 10px; background: #ffffff; border-radius: 999px; color: #b30e58 !important; font-size: 12px; font-weight: 800; vertical-align: 1px; }\r\n.kndtc-btn { flex: none; display: inline-block; padding: 13px 26px; background: #ffffff !important; border-radius: 8px; color: #b30e58 !important; font-size: 15px; font-weight: 700; text-align: center; text-decoration: none !important; animation: kndtcPulse 2.2s ease-out infinite; transition: transform 0.2s; }\r\n.kndtc-btn:hover { transform: translateY(-2px); animation: none; }\r\n@keyframes kndtcPulse {\r\n    0%   { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.65); }\r\n    70%  { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); }\r\n    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }\r\n}\r\n@media (prefers-reduced-motion: reduce) { .kndtc-btn { animation: none; } }\r\n@media (max-width: 600px) { .kndtc-btn { width: 100%; } }\r\n<\/style>\r\n<div class=\"kndtc\" id=\"kndtc\" style=\"margin: 0 0 20px;\">\r\n    <div class=\"kndtc-text\">\r\n        <span class=\"kndtc-kicker\">Want a free sample?<\/span>\r\n        <span class=\"kndtc-spec\" id=\"kndtcSpec\"><\/span>\r\n        <span class=\"kndtc-sub\"><b class=\"kndtc-pill\">Under 1 minute<\/b>Your grade and working temperature are filled in. Just choose a shape and coating, then add your email.<\/span>\r\n    <\/div>\r\n    <a class=\"kndtc-btn\" id=\"kndtcBtn\" href=\"\/custom-ndfeb-magnets\/\">Get My Free Sample &rarr;<\/a>\r\n<\/div>\r\n<script>\r\n(function () {\r\n    var card = document.getElementById('kndtc');\r\n    var btn = document.getElementById('kndtcBtn');\r\n    var specEl = document.getElementById('kndtcSpec');\r\n    if (!card || !btn || !specEl) { return; }\r\n\r\n    var TOOL = 'Demagnetization Risk Calculator';\r\n    var $ = function (id) { return document.getElementById(id); };\r\n    var qs1 = function (sel) { return document.querySelector(sel); };\r\n    var val = function (id) { var e = $(id); return e ? parseFloat(e.value) : NaN; };\r\n\r\n    \/* What this tool hands over to the custom form *\/\r\n    function collect() {\r\n        var g = $('riskGrade').value;\r\n        var tb = qs1('#riskTempGroup .temp-btn.active');\r\n        var temp = tb ? parseInt(tb.textContent, 10) : NaN;\r\n        var pc = val('riskPc');\r\n        var vals = document.querySelectorAll('#riskOutput .results-panel .result-item .value');\r\n        var mg = vals.length > 2 ? vals[2].textContent.trim() : '';\r\n        var banner = qs1('#riskOutput .risk-banner');\r\n        var lvl = '';\r\n        if (banner) { lvl = banner.classList.contains('low') ? 'low risk' : (banner.classList.contains('caution') ? 'caution' : 'high risk'); }\r\n        var q = { grade: 'N' + g }, n = 1, parts = [g];\r\n        if (isFinite(temp)) { q['tk' + n] = 'Operating temperature'; q['tv' + n] = temp + ' \\u00b0C'; n++; parts.push(temp + '\\u00b0C'); }\r\n        if (isFinite(pc)) { q['tk' + n] = 'Permeance coefficient (Pc)'; q['tv' + n] = String(pc); n++; parts.push('Pc ' + pc); }\r\n        if (mg) { q['tk' + n] = 'Margin to knee'; q['tv' + n] = mg + (lvl ? ' (' + lvl + ')' : ''); parts.push(mg + ' margin'); }\r\n        return { spec: parts.join(' \/ '), q: q };\r\n    }\r\n\r\n    \/* The card is moved to sit right under the results *\/\r\n    function anchor() {\r\n        return qs1('#riskOutput .results-panel');\r\n    }\r\n\r\n    function place() {\r\n        var t = anchor();\r\n        if (t && t.parentNode && t.nextElementSibling !== card) { t.parentNode.insertBefore(card, t.nextSibling); }\r\n    }\r\n\r\n    function toQuery(q) {\r\n        return Object.keys(q).filter(function (k) {\r\n            var v = q[k];\r\n            return typeof v === 'string' ? v !== '' : (typeof v === 'number' && isFinite(v) && v > 0);\r\n        }).map(function (k) {\r\n            var v = q[k];\r\n            return k + '=' + encodeURIComponent(typeof v === 'number' ? String(parseFloat(v.toFixed(3))) : v);\r\n        }).join('&');\r\n    }\r\n\r\n    function setHref(a, qs) {\r\n        var base = (a.getAttribute('href') || '').split('?')[0];\r\n        a.setAttribute('href', base + '?' + qs);\r\n    }\r\n\r\n    function update() {\r\n        var d = null;\r\n        try { d = collect(); } catch (e) { d = null; }\r\n        d = d || { spec: '', q: {} };\r\n        specEl.textContent = d.spec || '';\r\n        var q = { from: 'tool', tool: TOOL };\r\n        Object.keys(d.q).forEach(function (k) { q[k] = d.q[k]; });\r\n        var qs = toQuery(q);\r\n        setHref(btn, qs);\r\n\r\n    }\r\n\r\n    function later() { window.setTimeout(function () { place(); update(); }, 0); }\r\n    ['input', 'change', 'click', 'keyup'].forEach(function (ev) { document.addEventListener(ev, later, true); });\r\n\r\n    btn.addEventListener('click', function () {\r\n        window.dataLayer = window.dataLayer || [];\r\n        window.dataLayer.push({ event: 'tool_entry_click', tool_name: TOOL });\r\n    });\r\n\r\n    var out = $('riskOutput');\r\n    if (out && window.MutationObserver) {\r\n        new MutationObserver(function () { place(); update(); }).observe(out, { childList: true });\r\n    }\r\n\r\n    place();\r\n    update();\r\n    window.setTimeout(function () { place(); update(); }, 300);\r\n    window.setTimeout(function () { place(); update(); }, 1200);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Demagnetization Risk Calculator | King-Nd Magnet Demagnetization Risk Calculator This calculator finds your magnet&#8217;s working point. It combines a grade&#8217;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1553,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2168","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/pages\/2168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/comments?post=2168"}],"version-history":[{"count":20,"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/pages\/2168\/revisions"}],"predecessor-version":[{"id":3172,"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/pages\/2168\/revisions\/3172"}],"up":[{"embeddable":true,"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/pages\/1553"}],"wp:attachment":[{"href":"https:\/\/kingndmagnet.com\/ja\/wp-json\/wp\/v2\/media?parent=2168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}