{"id":25074,"date":"2026-11-06T06:54:00","date_gmt":"2026-11-06T06:54:00","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=25074"},"modified":"2026-11-06T06:54:03","modified_gmt":"2026-11-06T06:54:03","slug":"laser-cutting-speed-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ar\/laser-cutting-speed-calculator\/","title":{"rendered":"Laser Cutting Speed Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Laser Cutting Speed Calculator<\/strong> estimates a starting cutting speed based on material type, thickness, laser source, power, and assist gas. Use it to plan laser cutting parameters and guide initial test cuts. Actual results depend on the machine, optics, focus position, gas settings, and required edge quality, so verify the estimate against your machine manufacturer\u2019s parameter charts.<\/p>\n\n\n\n<div class=\"lcsx-host\">\n<style>:host{all:initial;display:block;contain:layout style}\n.lcs-root{--c-blue:#1e3a8a;--c-blue-2:#1d4ed8;--c-blue-soft:#e8eefb;--c-blue-line:#c7d4f0;--c-bg:#f3f5f8;--c-card:#ffffff;--c-text:#1f2937;--c-heading:#111827;--c-muted:#525c6b;--c-border:#d6dce5;--c-field:#fbfcfe;--c-danger:#b42318;--c-danger-bg:#fef3f2;--c-warn:#8a4b00;--c-warn-bg:#fff7e6;--c-warn-line:#f5c97a;--c-radius:12px;--c-shadow:0 1px 2px rgba(16,24,40,.06),0 6px 16px rgba(16,24,40,.06);font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif;font-size:16px;line-height:1.55;color:var(--c-text);background:var(--c-bg);max-width:1000px;margin:0 auto;padding:28px 16px 36px;text-align:left;border-radius:16px;-webkit-text-size-adjust:100%}\n.lcs-root *,.lcs-root *::before,.lcs-root *::after{box-sizing:border-box}\n.lcs-root [hidden]{display:none !important}\n.lcs-root h2,.lcs-root h3{font-family:inherit;color:var(--c-heading);line-height:1.25;margin:0 0 .5em;padding:0;letter-spacing:normal;text-transform:none;font-weight:700;border:0;background:none}\n.lcs-root h2.lcs-h{font-size:clamp(1.1rem,2vw,1.3rem);margin:0 0 14px}\n.lcs-root p{margin:0 0 .85em;padding:0}\n.lcs-root ul{margin:0;padding-left:1.2em}\n.lcs-root li{margin:0 0 .3em}\n.lcs-root .lcs-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}\n.lcs-root .lcs-card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--c-radius);box-shadow:var(--c-shadow);padding:22px}\n.lcs-root .lcs-group{border:0;margin:0 0 6px;padding:0;min-width:0}\n.lcs-root .lcs-group + .lcs-group{border-top:1px solid var(--c-border);padding-top:16px;margin-top:4px}\n.lcs-root .lcs-legend{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c-blue);margin:0 0 10px;padding:0}\n.lcs-root .lcs-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}\n.lcs-root .lcs-field{margin:0 0 16px;min-width:0}\n.lcs-root .lcs-field > label{display:block;font-size:.88rem;font-weight:600;color:var(--c-text);margin:0 0 5px;line-height:1.3}\n.lcs-root .lcs-req{color:var(--c-danger);font-weight:700;margin-left:2px}\n.lcs-root .lcs-opt{color:var(--c-muted);font-weight:500;font-size:.82rem;margin-left:4px}\n.lcs-root .lcs-inline{display:flex;gap:8px;align-items:stretch}\n.lcs-root .lcs-inline .lcs-input{flex:1 1 auto;min-width:0}\n.lcs-root .lcs-inline .lcs-unit{flex:0 0 auto;width:auto;min-width:96px;max-width:45%}\n.lcs-root .lcs-input,.lcs-root .lcs-select{display:block;width:100%;height:42px;margin:0;padding:8px 12px;font:inherit;font-size:15px;line-height:1.3;color:var(--c-text);background-color:var(--c-field);border:1px solid #b9c2cf;border-radius:8px;box-shadow:none;outline:none;transition:border-color .15s,box-shadow .15s;max-width:none;min-height:0;text-transform:none;letter-spacing:normal}\n.lcs-root .lcs-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;cursor:pointer;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%231e3a8a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 11px center;background-size:12px 8px}\n.lcs-root .lcs-input:hover,.lcs-root .lcs-select:hover{border-color:#8f9bab}\n.lcs-root .lcs-input:focus,.lcs-root .lcs-select:focus{border-color:var(--c-blue-2);box-shadow:0 0 0 3px rgba(29,78,216,.25);background-color:#fff}\n.lcs-root .lcs-input.lcs-invalid{border-color:var(--c-danger);background-color:var(--c-danger-bg)}\n.lcs-root .lcs-input.lcs-invalid:focus{box-shadow:0 0 0 3px rgba(180,35,24,.2)}\n.lcs-root .lcs-err{color:var(--c-danger);font-size:.83rem;margin:5px 0 0;line-height:1.35;font-weight:500}\n.lcs-root .lcs-help{color:var(--c-muted);font-size:.82rem;margin:5px 0 0;line-height:1.4}\n.lcs-root .lcs-support{font-size:.85rem;line-height:1.45;border-radius:8px;padding:9px 12px;margin:0 0 16px;border:1px solid var(--c-blue-line);background:var(--c-blue-soft);color:var(--c-heading)}\n.lcs-root .lcs-support.lcs-none{border-color:var(--c-warn-line);background:var(--c-warn-bg);color:var(--c-warn)}\n.lcs-root .lcs-check{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;font-size:.9rem;font-weight:600;cursor:pointer}\n.lcs-root .lcs-check input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--c-blue);cursor:pointer}\n.lcs-root .lcs-own{border:1px dashed #9fb1db;border-radius:10px;padding:14px 14px 2px;margin:0 0 14px;background:#fafbff}\n.lcs-root .lcs-own-h{font-size:.92rem;font-weight:700;color:var(--c-heading);margin:0 0 4px}\n.lcs-root .lcs-own-p{font-size:.84rem;color:var(--c-muted);margin:0 0 12px}\n.lcs-root .lcs-actions{display:flex !important;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;margin:8px 0 0 !important;padding:0 !important;float:none !important;clear:both}\n.lcs-root .lcs-btn{display:inline-flex !important;align-items:center;justify-content:center;float:none !important;width:auto !important;min-width:130px;height:42px;padding:0 20px;margin:0 !important;position:static !important;font:inherit;font-size:.95rem;font-weight:650;line-height:1;border-radius:8px;border:1px solid var(--c-blue);background:var(--c-blue);color:#fff;cursor:pointer;text-decoration:none;text-transform:none;letter-spacing:normal;box-shadow:none;transition:background .15s,border-color .15s,color .15s}\n.lcs-root .lcs-btn:hover{background:#172f73;border-color:#172f73;color:#fff}\n.lcs-root .lcs-btn.lcs-btn-2{background:#fff;color:var(--c-blue);border-color:#9fb1db}\n.lcs-root .lcs-btn.lcs-btn-2:hover{background:var(--c-blue-soft);color:var(--c-blue);border-color:var(--c-blue)}\n.lcs-root .lcs-btn:focus-visible,.lcs-root .lcs-check input:focus-visible{outline:3px solid var(--c-blue-2);outline-offset:2px}\n.lcs-root .lcs-results:focus{outline:none}\n.lcs-root .lcs-alert{border:1px solid #fecdca;background:var(--c-danger-bg);color:var(--c-danger);border-radius:10px;padding:12px 14px;margin:0;font-size:.9rem}\n.lcs-root .lcs-alert ul{margin:6px 0 0;padding-left:1.2em}\n.lcs-root .lcs-alert.lcs-alert-warn{border-color:var(--c-warn-line);background:var(--c-warn-bg);color:var(--c-warn)}\n.lcs-root .lcs-alert p{margin:6px 0 0}\n.lcs-root .lcs-sub-h{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c-blue);margin:0 0 8px}\n.lcs-root .lcs-main{border-radius:12px;padding:18px;background:linear-gradient(135deg,#1e3a8a 0%,#1d4ed8 100%);color:#fff;margin:0 0 12px}\n.lcs-root .lcs-main .lcs-rcard-label{color:#dbe5ff}\n.lcs-root .lcs-main-val{font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}\n.lcs-root .lcs-main-val .lcs-rcard-unit{color:#dbe5ff}\n.lcs-root .lcs-main-note{margin-top:8px;font-size:.86rem;color:#e9efff;font-variant-numeric:tabular-nums}\n.lcs-root .lcs-rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}\n.lcs-root .lcs-rcard{border:1px solid var(--c-blue-line);background:var(--c-blue-soft);border-radius:12px;padding:16px 16px 14px;min-width:0}\n.lcs-root .lcs-rcard-label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--c-blue);margin-bottom:6px}\n.lcs-root .lcs-rcard-value{font-size:clamp(1.4rem,3vw,1.8rem);font-weight:800;line-height:1.15;color:var(--c-heading);word-break:break-word;font-variant-numeric:tabular-nums}\n.lcs-root .lcs-rcard-unit{font-size:.5em;font-weight:700;margin-left:5px;color:var(--c-muted)}\n.lcs-root .lcs-rcard-sub{font-size:.82rem;color:var(--c-muted);margin-top:6px;font-variant-numeric:tabular-nums}\n.lcs-root .lcs-table{width:100%;border-collapse:collapse;margin:16px 0 0;font-size:.9rem;font-variant-numeric:tabular-nums}\n.lcs-root .lcs-table caption{text-align:left;caption-side:top;padding:0 0 4px}\n.lcs-root .lcs-table th,.lcs-root .lcs-table td{text-align:left;padding:9px 10px;border:0;border-bottom:1px solid var(--c-border);vertical-align:top;background:none}\n.lcs-root .lcs-table th{font-weight:600;color:var(--c-muted);width:42%}\n.lcs-root .lcs-table td{color:var(--c-heading);font-weight:600}\n.lcs-root .lcs-table tr:last-child th,.lcs-root .lcs-table tr:last-child td{border-bottom:0}\n.lcs-root .lcs-method{background:#0f1f45;color:#e6edff;padding:14px 16px;border-radius:10px;margin:16px 0 0}\n.lcs-root .lcs-method-label{display:block;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#b4c4ec;margin-bottom:4px}\n.lcs-root .lcs-method-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;color:#e6edff;word-break:break-word;margin:0;line-height:1.6}\n.lcs-root .lcs-source{font-size:.85rem;color:var(--c-text);margin:14px 0 0}\n.lcs-root .lcs-disclaimer{font-size:.85rem;color:var(--c-muted);background:#f6f8fb;border-left:3px solid var(--c-blue-line);padding:10px 12px;border-radius:0 8px 8px 0;margin:14px 0 0}\n.lcs-root .lcs-disclaimer strong{color:var(--c-heading)}\n.lcs-root .lcs-verify{border-left-color:#f5a524;background:var(--c-warn-bg);color:var(--c-warn)}\n.lcs-root .lcs-verify strong{color:var(--c-warn)}\n.lcs-root .lcs-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n@media (max-width:600px){.lcs-root{padding:20px 12px 28px;border-radius:0}.lcs-root .lcs-card{padding:16px}.lcs-root .lcs-row{grid-template-columns:minmax(0,1fr)}.lcs-root .lcs-btn{flex:1 1 100%}.lcs-root .lcs-table th{width:50%}}\n@media (prefers-reduced-motion:reduce){.lcs-root *{transition:none !important}}<\/style>\n<div class=\"lcs-root\" id=\"lcs-app\">\n<div class=\"lcs-stack\">\n<section class=\"lcs-card\" aria-labelledby=\"lcs-inputs-title\">\n<h2 class=\"lcs-h\" id=\"lcs-inputs-title\">Laser Cutting Inputs<\/h2>\n<div id=\"lcs-form\">\n<fieldset class=\"lcs-group\">\n<legend class=\"lcs-legend\">Material and machine<\/legend>\n<div class=\"lcs-row\">\n<div class=\"lcs-field\">\n<label for=\"lcs-mat\">Material Type<\/label>\n<select id=\"lcs-mat\" class=\"lcs-select\">\n<option value=\"mild\">Mild steel (carbon steel)<\/option>\n<option value=\"stainless\">Stainless steel<\/option>\n<option value=\"aluminum\">Aluminum alloy<\/option>\n<option value=\"brass\">Brass<\/option>\n<option value=\"custom\">Custom material<\/option>\n<\/select>\n<\/div>\n<div class=\"lcs-field\" id=\"lcs-matname-wrap\" hidden>\n<label for=\"lcs-matname\">Custom Material Name<span class=\"lcs-opt\">(optional)<\/span><\/label>\n<input id=\"lcs-matname\" class=\"lcs-input\" type=\"text\" maxlength=\"60\" autocomplete=\"off\">\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-t\">Material Thickness<span class=\"lcs-req\" aria-hidden=\"true\">*<\/span><\/label>\n<div class=\"lcs-inline\">\n<input id=\"lcs-t\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-required=\"true\" aria-describedby=\"lcs-t-err\">\n<select id=\"lcs-t-unit\" class=\"lcs-select lcs-unit\" aria-label=\"Thickness unit\" data-kind=\"len\" data-for=\"lcs-t lcs-b1t lcs-b2t\">\n<option value=\"mm\">mm<\/option>\n<option value=\"in\">in<\/option>\n<\/select>\n<\/div>\n<p class=\"lcs-err\" id=\"lcs-t-err\" hidden><\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-src\">Laser Source Type<\/label>\n<select id=\"lcs-src\" class=\"lcs-select\">\n<option value=\"fiber\">Fiber laser<\/option>\n<option value=\"co2\">CO\u2082 laser<\/option>\n<\/select>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-p\">Rated Laser Power<span class=\"lcs-req\" aria-hidden=\"true\">*<\/span><\/label>\n<div class=\"lcs-inline\">\n<input id=\"lcs-p\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-required=\"true\" aria-describedby=\"lcs-p-err\">\n<select id=\"lcs-p-unit\" class=\"lcs-select lcs-unit\" aria-label=\"Laser power unit\" data-kind=\"pow\" data-for=\"lcs-p\">\n<option value=\"kw\">kW<\/option>\n<option value=\"w\">W<\/option>\n<\/select>\n<\/div>\n<p class=\"lcs-err\" id=\"lcs-p-err\" hidden><\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-gas\">Assist Gas<\/label>\n<select id=\"lcs-gas\" class=\"lcs-select\">\n<option value=\"o2\">Oxygen (O\u2082)<\/option>\n<option value=\"n2\">Nitrogen (N\u2082)<\/option>\n<option value=\"air\">Compressed air<\/option>\n<option value=\"other\">Other \/ custom gas<\/option>\n<\/select>\n<\/div>\n<div class=\"lcs-field\" id=\"lcs-gasname-wrap\" hidden>\n<label for=\"lcs-gasname\">Custom Gas Name<span class=\"lcs-opt\">(optional)<\/span><\/label>\n<input id=\"lcs-gasname\" class=\"lcs-input\" type=\"text\" maxlength=\"60\" autocomplete=\"off\">\n<\/div>\n<\/div>\n<p class=\"lcs-support\" id=\"lcs-support\" aria-live=\"polite\"><\/p>\n<\/fieldset>\n<fieldset class=\"lcs-group\">\n<legend class=\"lcs-legend\">Optional process details<\/legend>\n<div class=\"lcs-row\">\n<div class=\"lcs-field\">\n<label for=\"lcs-q\">Cutting Quality Priority<\/label>\n<select id=\"lcs-q\" class=\"lcs-select\" aria-describedby=\"lcs-q-help\">\n<option value=\"balanced\">Balanced<\/option>\n<option value=\"speed\">Speed<\/option>\n<option value=\"quality\">Edge quality<\/option>\n<\/select>\n<p class=\"lcs-help\" id=\"lcs-q-help\">Picks a point inside the reference speed range: Speed = upper end, Balanced = midpoint, Edge quality = lower end.<\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-out\">Result Units<\/label>\n<select id=\"lcs-out\" class=\"lcs-select\">\n<option value=\"metric\">mm\/min and m\/min<\/option>\n<option value=\"imperial\">mm\/min, m\/min and in\/min<\/option>\n<\/select>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-nz\">Nozzle Diameter<span class=\"lcs-opt\">(optional, mm)<\/span><\/label>\n<input id=\"lcs-nz\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-describedby=\"lcs-nz-err lcs-nz-help\">\n<p class=\"lcs-err\" id=\"lcs-nz-err\" hidden><\/p>\n<p class=\"lcs-help\" id=\"lcs-nz-help\">Recorded with the result. The reference table has no nozzle data, so it does not change the estimate.<\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-fp\">Focal Position<span class=\"lcs-opt\">(optional, mm)<\/span><\/label>\n<input id=\"lcs-fp\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-describedby=\"lcs-fp-err lcs-fp-help\">\n<p class=\"lcs-err\" id=\"lcs-fp-err\" hidden><\/p>\n<p class=\"lcs-help\" id=\"lcs-fp-help\">Positive or negative, using your machine&#8217;s sign convention. Recorded only; it does not change the estimate.<\/p>\n<\/div>\n<\/div>\n<\/fieldset>\n<fieldset class=\"lcs-group\">\n<legend class=\"lcs-legend\">Your machine&#8217;s reference data<\/legend>\n<label class=\"lcs-check\" id=\"lcs-useown-wrap\"><input type=\"checkbox\" id=\"lcs-useown\"><span>Use my own machine data instead of the built-in table<\/span><\/label>\n<div class=\"lcs-own\" id=\"lcs-own\" hidden>\n<p class=\"lcs-own-h\">Known baseline speed<\/p>\n<p class=\"lcs-own-p\" id=\"lcs-own-p\">Enter speeds from your machine manufacturer&#8217;s chart or your own proven test cuts, for the same material, laser power and assist gas. With one point, the target thickness must match it. With two points, the calculator interpolates between them. It does not extrapolate.<\/p>\n<div class=\"lcs-row\">\n<div class=\"lcs-field\">\n<label for=\"lcs-b1t\">Point 1 Thickness<span class=\"lcs-req\" aria-hidden=\"true\">*<\/span> <span class=\"lcs-opt\" id=\"lcs-b1t-u\">(mm)<\/span><\/label>\n<input id=\"lcs-b1t\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-describedby=\"lcs-b1t-err\">\n<p class=\"lcs-err\" id=\"lcs-b1t-err\" hidden><\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-b1v\">Point 1 Known Speed<span class=\"lcs-req\" aria-hidden=\"true\">*<\/span><\/label>\n<div class=\"lcs-inline\">\n<input id=\"lcs-b1v\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-describedby=\"lcs-b1v-err\">\n<select id=\"lcs-bv-unit\" class=\"lcs-select lcs-unit\" aria-label=\"Known speed unit\" data-kind=\"spd\" data-for=\"lcs-b1v lcs-b2v\">\n<option value=\"mpm\">m\/min<\/option>\n<option value=\"mmpm\">mm\/min<\/option>\n<option value=\"ipm\">in\/min<\/option>\n<\/select>\n<\/div>\n<p class=\"lcs-err\" id=\"lcs-b1v-err\" hidden><\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-b2t\">Point 2 Thickness<span class=\"lcs-opt\" id=\"lcs-b2t-u\">(optional, mm)<\/span><\/label>\n<input id=\"lcs-b2t\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-describedby=\"lcs-b2t-err\">\n<p class=\"lcs-err\" id=\"lcs-b2t-err\" hidden><\/p>\n<\/div>\n<div class=\"lcs-field\">\n<label for=\"lcs-b2v\">Point 2 Known Speed<span class=\"lcs-opt\" id=\"lcs-b2v-u\">(optional, m\/min)<\/span><\/label>\n<input id=\"lcs-b2v\" class=\"lcs-input\" type=\"text\" inputmode=\"decimal\" aria-describedby=\"lcs-b2v-err\">\n<p class=\"lcs-err\" id=\"lcs-b2v-err\" hidden><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/fieldset>\n<div class=\"lcs-actions\">\n<button type=\"button\" class=\"lcs-btn\" id=\"lcs-calc\">Calculate<\/button>\n<\/div>\n<p class=\"lcs-sr\" id=\"lcs-status\" role=\"status\" aria-live=\"polite\"><\/p>\n<\/div>\n<\/section>\n<section class=\"lcs-card lcs-results\" aria-labelledby=\"lcs-results-title\" id=\"lcs-results\" tabindex=\"-1\" hidden>\n<h2 class=\"lcs-h\" id=\"lcs-results-title\">Results<\/h2>\n<div class=\"lcs-alert\" id=\"lcs-error\" role=\"alert\" hidden><\/div>\n<div id=\"lcs-body\">\n<div class=\"lcs-main\">\n<span class=\"lcs-rcard-label\">Estimated starting cutting speed<\/span>\n<div class=\"lcs-main-val\"><span id=\"lcs-r-main\"><\/span><span class=\"lcs-rcard-unit\">mm\/min<\/span><\/div>\n<div class=\"lcs-main-note\" id=\"lcs-r-range\"><\/div>\n<\/div>\n<div class=\"lcs-rgrid\">\n<div class=\"lcs-rcard\">\n<span class=\"lcs-rcard-label\">Metres per minute<\/span>\n<div class=\"lcs-rcard-value\"><span id=\"lcs-r-mpm\"><\/span><span class=\"lcs-rcard-unit\">m\/min<\/span><\/div>\n<\/div>\n<div class=\"lcs-rcard\">\n<span class=\"lcs-rcard-label\">Millimetres per minute<\/span>\n<div class=\"lcs-rcard-value\"><span id=\"lcs-r-mmpm\"><\/span><span class=\"lcs-rcard-unit\">mm\/min<\/span><\/div>\n<\/div>\n<div class=\"lcs-rcard\" id=\"lcs-r-ipm-card\">\n<span class=\"lcs-rcard-label\">Inches per minute<\/span>\n<div class=\"lcs-rcard-value\"><span id=\"lcs-r-ipm\"><\/span><span class=\"lcs-rcard-unit\">in\/min<\/span><\/div>\n<\/div>\n<\/div>\n<table class=\"lcs-table\">\n<caption class=\"lcs-sub-h\">Conditions used for the estimate<\/caption>\n<tbody>\n<tr><th scope=\"row\">Material<\/th><td id=\"lcs-s-mat\"><\/td><\/tr>\n<tr><th scope=\"row\">Thickness<\/th><td id=\"lcs-s-t\"><\/td><\/tr>\n<tr><th scope=\"row\">Laser source<\/th><td id=\"lcs-s-src\"><\/td><\/tr>\n<tr><th scope=\"row\">Rated laser power<\/th><td id=\"lcs-s-p\"><\/td><\/tr>\n<tr><th scope=\"row\">Assist gas<\/th><td id=\"lcs-s-gas\"><\/td><\/tr>\n<tr><th scope=\"row\">Quality priority<\/th><td id=\"lcs-s-q\"><\/td><\/tr>\n<tr><th scope=\"row\">Nozzle diameter<\/th><td id=\"lcs-s-nz\"><\/td><\/tr>\n<tr><th scope=\"row\">Focal position<\/th><td id=\"lcs-s-fp\"><\/td><\/tr>\n<\/tbody>\n<\/table>\n<div class=\"lcs-method\">\n<span class=\"lcs-method-label\" id=\"lcs-m-label\">Reference data and interpolation<\/span>\n<p class=\"lcs-method-body\" id=\"lcs-m-body\"><\/p>\n<\/div>\n<p class=\"lcs-source\" id=\"lcs-src-note\"><\/p>\n<\/div>\n<p class=\"lcs-disclaimer lcs-verify\"><strong>Verify before production:<\/strong> treat this as a starting point for parameter trials. Run test cuts, then inspect the kerf, dross, burr, striation and edge squareness, and adjust speed in small steps.<\/p>\n<p class=\"lcs-disclaimer\"><strong>Important:<\/strong> Actual cutting speed depends on the laser machine, beam quality, optics, nozzle condition, focus position, gas pressure and purity, material grade and surface condition, and the edge quality you need. Consult your machine manufacturer&#8217;s parameter charts and validate settings through controlled test cuts.<\/p>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<!--noptimize--><script data-no-optimize=\"1\" data-no-defer=\"1\" data-no-minify=\"1\" data-cfasync=\"false\" data-pagespeed-no-defer nowprocket data-noptimize=\"1\">(function () { 'use strict'; function lt(a, b) { return a !== b ? Math.max(a, b) === b : false; } function gt(a, b) { return lt(b, a); } function ge(a, b) { return Math.max(a, b) === a; } function le(a, b) { return Math.min(a, b) === a; } var RAYCUS = { name: 'Raycus fiber laser source cutting speed chart (750 W to 6000 W)', cite: 'Raycus fiber laser source cutting chart as published by MachineMFG, \"Fiber Laser Cutting Speed (Raycus Laser Source)\", machinemfg.com.', notes: 'Values are the chart\\'s speed ranges in m\/min. Where a thickness row lists fewer values than power columns, the values were assigned to the highest-power columns, following the chart layout in which lower-power sources cannot cut the thicker plate.' }; var REF = [ { source: 'fiber', material: 'mild', gas: 'o2', ref: RAYCUS, powers: [750, 1000, 1500, 2200, 3300, 6000], rows: [ [1,  [[10, 16], [10, 16], [10, 16], [10, 16], [10, 16], [10, 16]]], [2,  [[3, 4], [5, 6], [5, 8], [5, 8], [5, 8], [5, 8]]], [3,  [[2, 2.5], [2.5, 3.5], [3.5, 4.5], [3.5, 4], [4, 4.5], [3, 5]]], [5,  [[1, 1.5], [1.2, 1.8], [1.5, 1.8], [2, 3], [3, 3.5], [3, 4]]], [6,  [[0.5, 1], [1, 1.5], [1.3, 1.5], [1.8, 2.2], [1.8, 2.2], [2.5, 3.5]]], [8,  [[0.5, 0.8], [0.8, 1], [1, 1.2], [1.2, 1.8], [1.8, 2.2], [2, 2.8]]], [10, [null, [0.5, 0.7], [0.7, 1], [1.2, 1.5], [1.1, 1.3], [1, 2.1]]], [12, [null, [0.4, 0.6], [0.6, 0.8], [0.7, 1], [0.8, 1], [1, 2]]], [14, [null, null, [0.5, 0.7], [0.6, 0.9], [0.6, 0.8], [0.8, 1]]], [16, [null, null, [0.5, 0.7], [0.5, 0.8], [0.5, 0.8], [0.7, 0.9]]], [18, [null, null, null, [0.4, 0.6], [0.5, 0.7], [0.7, 0.8]]], [20, [null, null, null, null, [0.4, 0.6], [0.6, 0.8]]], [22, [null, null, null, null, [0.3, 0.5], [0.5, 0.7]]], [25, [null, null, null, null, null, [0.4, 0.6]]] ] }, { source: 'fiber', material: 'stainless', gas: 'n2', ref: RAYCUS, powers: [750, 1000, 1500, 2200, 3300, 6000], rows: [ [1,  [[16, 20], [20, 24], [25, 30], [25, 35], [35, 45], [50, 70]]], [2,  [[3.5, 4.5], [6, 7], [9, 10], [10, 11], [12, 14], [30, 40]]], [3,  [[1.5, 2], [2, 3], [4, 5], [5, 6], [8, 9], [14, 20]]], [4,  [[0.8, 1.2], [1, 1.5], [2, 3], [3, 4], [4, 5], [6, 12]]], [5,  [null, [0.5, 0.8], [1, 1.5], [1.5, 2], [2.5, 3.3], [5, 10]]], [6,  [null, null, [0.7, 1], [1.2, 1.5], [1.6, 2.1], [4, 7]]], [8,  [null, null, null, [0.6, 0.8], [0.9, 1.2], [3, 5]]], [10, [null, null, null, null, [0.6, 0.8], [1.5, 2.5]]], [12, [null, null, null, null, null, [1, 2]]], [14, [null, null, null, null, null, [0.8, 1]]], [16, [null, null, null, null, null, [0.5, 0.8]]] ] }, { source: 'fiber', material: 'aluminum', gas: 'n2', ref: RAYCUS, powers: [750, 1000, 1500, 2200, 3300, 6000], rows: [ [1,  [[8, 10], [10, 12], [14, 16], [18, 24], [25, 33], [50, 70]]], [2,  [[0.8, 1.5], [2, 3.5], [4.5, 5.5], [7, 12], [10, 14], [25, 35]]], [3,  [null, [0.5, 1], [2, 3], [3, 5], [5, 7], [15, 25]]], [4,  [null, null, [1.2, 1.8], [2, 3], [3, 4.5], [13, 18]]], [5,  [null, null, [0.5, 1], [1, 2], [2, 3.5], [6, 10]]], [6,  [null, null, null, [0.6, 0.8], [1.5, 2.5], [4, 6]]], [8,  [null, null, null, null, [0.5, 1], [2, 3]]], [10, [null, null, null, null, null, [1, 2]]], [12, [null, null, null, null, null, [0.8, 1.5]]], [16, [null, null, null, null, null, [0.5, 0.8]]] ] } ]; var MM_PER_IN = 25.4; var MATERIALS = { mild: 'Mild steel (carbon steel)', stainless: 'Stainless steel', aluminum: 'Aluminum alloy', brass: 'Brass', custom: 'Custom material' }; var SOURCES = { fiber: 'Fiber laser', co2: 'CO\u2082 laser' }; var GASES = { o2: 'Oxygen (O\u2082)', n2: 'Nitrogen (N\u2082)', air: 'Compressed air', other: 'Other \/ custom gas' }; var MAT_SHORT = { mild: 'mild steel', stainless: 'stainless steel', aluminum: 'aluminum alloy', brass: 'brass', custom: 'a custom material' }; var GAS_SHORT = { o2: 'oxygen', n2: 'nitrogen', air: 'compressed air', other: 'a custom gas' }; var QUALITY = { speed: 'Speed (upper end of range)', balanced: 'Balanced (midpoint of range)', quality: 'Edge quality (lower end of range)' }; var SPD_TO_MMPM = { mmpm: 1, mpm: 1000, ipm: MM_PER_IN }; var SPD_LABEL = { mmpm: 'mm\/min', mpm: 'm\/min', ipm: 'in\/min' }; function setup(host) { if (host.getAttribute('data-lcsx-ready') === '1') return; if (!host.querySelector('.lcs-root')) return; host.setAttribute('data-lcsx-ready', '1'); var scope = host; if (host.attachShadow) { scope = host.attachShadow({ mode: 'open' }); while (host.firstChild) scope.appendChild(host.firstChild); } function $(id) { return scope.getElementById ? scope.getElementById(id) : scope.querySelector('#' + id); } var root = $('lcs-app'); if (!root) return; function parseNum(raw) { var s = String(raw == null ? '' : raw).trim().replace(\/\\s+\/g, '').replace(\/^\u2212\/, '-'); if (s === '') return { empty: true, ok: false }; if (\/^[+-]?\\d{1,3}(,\\d{3})+(\\.\\d+)?$\/.test(s)) { s = s.replace(\/,\/g, ''); } else if (\/^[+-]?\\d*,\\d+$\/.test(s)) { s = s.replace(',', '.'); } if (!\/^[+-]?(\\d+\\.?\\d*|\\.\\d+)(e[+-]?\\d+)?$\/i.test(s)) return { empty: false, ok: false }; var n = Number(s); if (!isFinite(n)) return { empty: false, ok: false }; return { empty: false, ok: true, n: n }; } function roundSig(n, p) { if (n === 0) return 0; return Number(n.toPrecision(p)); } function practical(n) { return roundSig(n, 2); } function num(n, maxDec) { return n.toLocaleString('en-US', { maximumFractionDigits: maxDec == null ? 2 : maxDec }); } function g(n, p) { if (typeof n !== 'number') return '\u2014'; if (!isFinite(n)) return '\u2014'; return Number(n.toPrecision(p || 4)).toLocaleString('en-US', { maximumFractionDigits: 8 }); } function plain(n, p) { return String(Number(n.toPrecision(p || 6))); } function mk(tag, text) { var e = document.createElement(tag); if (text != null) e.textContent = text; return e; } function kw(w) { return g(w \/ 1000, 4) + ' kW'; } function findSet(src, mat, gas) { for (var i = 0; i !== REF.length; i++) { var s = REF[i]; if (s.source === src) { if (s.material === mat) { if (s.gas === gas) return s; } } } return null; } function column(set, ci) { var pts = []; for (var i = 0; i !== set.rows.length; i++) { var v = set.rows[i][1][ci]; if (v) pts.push({ t: set.rows[i][0], lo: v[0], hi: v[1] }); } return pts; } function setRange(set) { var tmin = Infinity, tmax = 0; for (var ci = 0; ci !== set.powers.length; ci++) { var pts = column(set, ci); if (pts.length) { tmin = Math.min(tmin, pts[0].t); tmax = Math.max(tmax, pts[pts.length - 1].t); } } return { pmin: set.powers[0], pmax: set.powers[set.powers.length - 1], tmin: tmin, tmax: tmax }; } function logInterp(a, b, f) { return Math.exp(Math.log(a) + f * (Math.log(b) - Math.log(a))); } function near(a, b) { return le(Math.abs(a - b), 1e-9 * Math.max(1, Math.abs(a), Math.abs(b))); } function atThickness(pts, t) { if (!pts.length) return { err: 'none' }; var first = pts[0], last = pts[pts.length - 1]; if (near(t, first.t)) return { lo: first.lo, hi: first.hi, a: first, b: null }; if (near(t, last.t)) return { lo: last.lo, hi: last.hi, a: last, b: null }; if (lt(t, first.t)) return { err: 'thin', min: first.t, max: last.t }; if (gt(t, last.t)) return { err: 'thick', min: first.t, max: last.t }; for (var i = 0; i !== pts.length - 1; i++) { var a = pts[i], b = pts[i + 1]; if (near(t, b.t)) return { lo: b.lo, hi: b.hi, a: b, b: null }; if (gt(t, a.t)) { if (lt(t, b.t)) { var f = (t - a.t) \/ (b.t - a.t); return { lo: logInterp(a.lo, b.lo, f), hi: logInterp(a.hi, b.hi, f), a: a, b: b, f: f }; } } } return { err: 'none' }; } function estimateFromTable(set, t, P) { var R = setRange(set), pw = set.powers; if (lt(P, R.pmin)) return { err: 'The reference chart starts at ' + kw(R.pmin) + '. ' + kw(P) + ' is below that, and the calculator does not extrapolate below the chart.' }; if (gt(P, R.pmax)) return { err: 'The reference chart ends at ' + kw(R.pmax) + '. ' + kw(P) + ' is above that, and the calculator does not extrapolate beyond the chart. A higher-power source is usually faster, but by how much depends on the machine.' }; var i1 = -1, i2 = -1; for (var i = 0; i !== pw.length; i++) { if (near(P, pw[i])) { i1 = i; i2 = i; break; } if (i !== pw.length - 1) { if (gt(P, pw[i])) { if (lt(P, pw[i + 1])) { i1 = i; i2 = i + 1; break; } } } } if (i1 === -1) return { err: 'Laser power could not be matched to the chart.' }; var cols = i1 === i2 ? [i1] : [i1, i2]; var res = []; for (var k = 0; k !== cols.length; k++) { var ci = cols[k]; var r = atThickness(column(set, ci), t); if (r.err) { var at = kw(pw[ci]); var span = r.min != null ? ' At ' + at + ' the chart covers ' + g(r.min) + '\u2013' + g(r.max) + ' mm.' : ''; var why = r.err === 'thick' ? 'is thicker than the chart lists at ' + at : (r.err === 'thin' ? 'is thinner than the chart lists at ' + at : 'has no chart data at ' + at); var tail = cols.length === 2 ? ' Both bracketing power levels (' + kw(pw[i1]) + ' and ' + kw(pw[i2]) + ') need data for this thickness to interpolate reliably.' : ''; return { err: g(t) + ' mm ' + why + '.' + span + tail }; } r.power = pw[ci]; res.push(r); } var lo, hi, gp = null; if (res.length === 1) { lo = res[0].lo; hi = res[0].hi; } else { gp = (P - res[0].power) \/ (res[1].power - res[0].power); lo = res[0].lo + gp * (res[1].lo - res[0].lo); hi = res[0].hi + gp * (res[1].hi - res[0].hi); } return { lo: Math.min(lo, hi), hi: Math.max(lo, hi), cols: res, gp: gp }; } function pick(lo, hi, q) { if (q === 'speed') return hi; if (q === 'quality') return lo; return (lo + hi) \/ 2; } var LABEL = { t: 'Material thickness', p: 'Rated laser power', nz: 'Nozzle diameter', fp: 'Focal position', b1t: 'Point 1 thickness', b1v: 'Point 1 known speed', b2t: 'Point 2 thickness', b2v: 'Point 2 known speed' }; var KEYS = ['t', 'p', 'nz', 'fp', 'b1t', 'b1v', 'b2t', 'b2v']; function setErr(key, msg) { var el = $('lcs-' + key), er = $('lcs-' + key + '-err'); if (msg) { el.classList.add('lcs-invalid'); el.setAttribute('aria-invalid', 'true'); er.textContent = msg; er.hidden = false; } else { el.classList.remove('lcs-invalid'); el.removeAttribute('aria-invalid'); er.textContent = ''; er.hidden = true; } } function clearAllErrors() { KEYS.forEach(function (k) { setErr(k, null); }); } function positive(key, required) { var p = parseNum($('lcs-' + key).value); if (p.empty) return required ? LABEL[key] + ' is required.' : null; if (!p.ok) return LABEL[key] + ' must be a valid number.'; if (le(p.n, 0)) return LABEL[key] + ' must be greater than zero.'; return null; } function ownMode() { if (!findCurrentSet()) return true; return $('lcs-useown').checked; } function check(key) { if (key === 't') return positive('t', true); if (key === 'p') return positive('p', true); if (key === 'nz') return positive('nz', false); if (key === 'fp') { var f = parseNum($('lcs-fp').value); if (f.empty) return null; return f.ok ? null : 'Focal position must be a valid number (negative values are allowed).'; } if (!ownMode()) return null; if (key === 'b1t') return positive('b1t', true); if (key === 'b1v') return positive('b1v', true); var e2t = parseNum($('lcs-b2t').value).empty, e2v = parseNum($('lcs-b2v').value).empty; var need = !(e2t ? e2v : false); if (key === 'b2t') { var m = positive('b2t', need); if (m) return m; if (!e2t) { var a = parseNum($('lcs-b1t').value), b = parseNum($('lcs-b2t').value); if (a.ok) { if (near(a.n, b.n)) return 'Point 2 thickness must differ from point 1.'; } } return null; } if (key === 'b2v') return positive('b2v', need); return null; } function findCurrentSet() { return findSet($('lcs-src').value, $('lcs-mat').value, $('lcs-gas').value); } function lenU() { return $('lcs-t-unit').value; } function refreshSupport() { var set = findCurrentSet(), box = $('lcs-support'); $('lcs-matname-wrap').hidden = $('lcs-mat').value !== 'custom'; $('lcs-gasname-wrap').hidden = $('lcs-gas').value !== 'other'; if (set) { var R = setRange(set); box.classList.remove('lcs-none'); box.textContent = 'Built-in reference data available: ' + set.ref.name + ', ' + kw(R.pmin) + ' to ' + kw(R.pmax) + ', ' + g(R.tmin) + ' to ' + g(R.tmax) + ' mm (the thickness range narrows at lower power).'; $('lcs-useown-wrap').hidden = false; $('lcs-own').hidden = !$('lcs-useown').checked; $('lcs-own-p').firstChild.nodeValue = 'Enter speeds from your machine manufacturer\\'s chart or your own proven test cuts, for the same material, laser power and assist gas. With one point, the target thickness must match it. With two points, the calculator interpolates between them. It does not extrapolate.'; } else { box.classList.add('lcs-none'); box.textContent = 'No built-in reference data for ' + SOURCES[$('lcs-src').value] + ' + ' + MAT_SHORT[$('lcs-mat').value] + ' + ' + GAS_SHORT[$('lcs-gas').value] + '. The calculator cannot give a reliable estimate from the table, so enter a known baseline speed from your machine below.'; $('lcs-useown-wrap').hidden = true; $('lcs-own').hidden = false; $('lcs-own-p').firstChild.nodeValue = 'Required for this combination. Enter speeds from your machine manufacturer\\'s chart or your own proven test cuts, for the same material, laser power and assist gas. With one point, the target thickness must match it. With two points, the calculator interpolates between them. It does not extrapolate.'; } var u = lenU(); $('lcs-b1t-u').textContent = '(' + u + ')'; $('lcs-b2t-u').textContent = '(optional, ' + u + ')'; $('lcs-b2v-u').textContent = '(optional, ' + SPD_LABEL[$('lcs-bv-unit').value] + ')'; } function showAlert(title, items, warn, extra) { var box = $('lcs-error'); box.textContent = ''; box.className = warn ? 'lcs-alert lcs-alert-warn' : 'lcs-alert'; box.appendChild(mk('strong', title)); if (items.length) { var ul = mk('ul'); items.forEach(function (e) { ul.appendChild(mk('li', e)); }); box.appendChild(ul); } if (extra) box.appendChild(mk('p', extra)); box.hidden = false; $('lcs-body').hidden = true; } function setLines(el, lines) { el.textContent = ''; lines.forEach(function (t, i) { if (i) el.appendChild(document.createElement('br')); el.appendChild(document.createTextNode(t)); }); } function render(R) { $('lcs-error').hidden = true; $('lcs-body').hidden = false; var mpm = practical(R.v); var mmpm = Math.round(mpm * 1000); $('lcs-r-main').textContent = num(mmpm, 0); $('lcs-r-mpm').textContent = num(mpm, 3); $('lcs-r-mmpm').textContent = num(mmpm, 0); var imp = $('lcs-out').value === 'imperial'; $('lcs-r-ipm-card').hidden = !imp; var ipm = practical(mmpm \/ MM_PER_IN); $('lcs-r-ipm').textContent = num(ipm, 1); var rangeTxt; if (R.mode === 'table') { var lo = practical(R.lo), hi = practical(R.hi); rangeTxt = 'Reference range at these conditions: ' + num(lo, 3) + '\u2013' + num(hi, 3) + ' m\/min. ' + QUALITY[R.q] + ' selected.'; } else { rangeTxt = 'Based on your own machine data. Quality priority is not applied because your data gives a single speed per thickness.'; } $('lcs-r-range').textContent = rangeTxt + ' Rounded to 2 significant figures.'; var matName = MATERIALS[R.mat]; if (R.mat === 'custom') { if (R.matName) matName = 'Custom: ' + R.matName; } var gasName = GASES[R.gas]; if (R.gas === 'other') { if (R.gasName) gasName = 'Other: ' + R.gasName; } $('lcs-s-mat').textContent = matName; $('lcs-s-t').textContent = g(R.t, 5) + ' mm' + (R.tu === 'in' ? ' (from ' + g(R.tIn, 5) + ' in)' : ''); $('lcs-s-src').textContent = SOURCES[R.src]; $('lcs-s-p').textContent = g(R.P, 6) + ' W (' + kw(R.P) + ')'; $('lcs-s-gas').textContent = gasName; $('lcs-s-q').textContent = R.mode === 'table' ? QUALITY[R.q] : 'Not applied (own data)'; $('lcs-s-nz').textContent = R.nz != null ? g(R.nz) + ' mm (recorded, not used in the estimate)' : 'Not entered'; $('lcs-s-fp').textContent = R.fp != null ? g(R.fp) + ' mm (recorded, not used in the estimate)' : 'Not entered'; var lines = []; if (R.tu === 'in') lines.push('Thickness: ' + g(R.tIn, 5) + ' in \u00d7 25.4 = ' + g(R.t, 5) + ' mm'); if (R.mode === 'table') { $('lcs-m-label').textContent = 'Reference data and interpolation'; R.cols.forEach(function (c) { var head = 'At ' + kw(c.power) + ': '; if (!c.b) lines.push(head + 'chart row ' + g(c.a.t) + ' mm = ' + g(c.lo) + '\u2013' + g(c.hi) + ' m\/min (exact thickness match)'); else lines.push(head + 'rows ' + g(c.a.t) + ' mm (' + g(c.a.lo) + '\u2013' + g(c.a.hi) + ') and ' + g(c.b.t) + ' mm (' + g(c.b.lo) + '\u2013' + g(c.b.hi) + ') m\/min, log-scale interpolation \u2192 ' + g(c.lo, 3) + '\u2013' + g(c.hi, 3) + ' m\/min'); }); if (R.cols.length === 2) lines.push('Power: linear interpolation between ' + kw(R.cols[0].power) + ' and ' + kw(R.cols[1].power) + ' (fraction ' + g(R.gp, 3) + ') \u2192 ' + g(R.lo, 3) + '\u2013' + g(R.hi, 3) + ' m\/min'); else lines.push('Power: exact match to the ' + kw(R.cols[0].power) + ' chart column'); lines.push(QUALITY[R.q] + ' \u2192 ' + g(R.v, 3) + ' m\/min \u2192 rounded ' + num(mpm, 3) + ' m\/min = ' + num(mmpm, 0) + ' mm\/min' + (imp ? ' \u2248 ' + num(ipm, 1) + ' in\/min' : '')); $('lcs-src-note').textContent = 'Data source: ' + R.set.ref.cite + ' ' + R.set.ref.notes + ' Assumptions: the chart was produced on a specific machine, optics and gas setup, so it shows typical capability rather than settings for your machine. Nozzle diameter and focal position are not modelled.'; } else { $('lcs-m-label').textContent = 'Your reference data and interpolation'; if (R.bu !== 'mmpm') lines.push('Speeds converted from ' + SPD_LABEL[R.bu] + ' to mm\/min (\u00d7 ' + g(SPD_TO_MMPM[R.bu], 5) + ')'); if (!R.pb) lines.push('Point 1: ' + g(R.pa.t, 5) + ' mm at ' + g(R.pa.v \/ 1000, 4) + ' m\/min, which matches the target thickness, used directly'); else lines.push('Points: ' + g(R.pa.t, 5) + ' mm at ' + g(R.pa.v \/ 1000, 4) + ' m\/min and ' + g(R.pb.t, 5) + ' mm at ' + g(R.pb.v \/ 1000, 4) + ' m\/min, log-scale interpolation at ' + g(R.t, 5) + ' mm \u2192 ' + g(R.v, 3) + ' m\/min'); lines.push('Rounded: ' + num(mpm, 3) + ' m\/min = ' + num(mmpm, 0) + ' mm\/min' + (imp ? ' \u2248 ' + num(ipm, 1) + ' in\/min' : '')); $('lcs-src-note').textContent = 'Data source: the reference speeds you entered for your own machine. The calculator only interpolates between them and does not check them against any other data. Nozzle diameter and focal position are not modelled.'; } setLines($('lcs-m-body'), lines); $('lcs-status').textContent = 'Calculated. Estimated starting cutting speed ' + num(mmpm, 0) + ' millimetres per minute, ' + num(mpm, 3) + ' metres per minute' + (imp ? ', about ' + num(ipm, 1) + ' inches per minute.' : '.'); } function compute() { clearAllErrors(); var errs = []; KEYS.forEach(function (k) { var m = check(k); if (m) { setErr(k, m); errs.push(m); } }); if (errs.length) { showAlert('Please correct the following input' + (errs.length === 1 ? '' : 's') + ':', errs, false); return false; } var tu = lenU(); var tIn = parseNum($('lcs-t').value).n; var t = tu === 'in' ? tIn * MM_PER_IN : tIn; var pRaw = parseNum($('lcs-p').value).n; var P = $('lcs-p-unit').value === 'kw' ? pRaw * 1000 : pRaw; var nzP = parseNum($('lcs-nz').value), fpP = parseNum($('lcs-fp').value); var base = { mat: $('lcs-mat').value, src: $('lcs-src').value, gas: $('lcs-gas').value, q: $('lcs-q').value, matName: $('lcs-matname').value.trim(), gasName: $('lcs-gasname').value.trim(), t: t, tIn: tIn, tu: tu, P: P, nz: nzP.ok ? nzP.n : null, fp: fpP.ok ? fpP.n : null }; var set = findCurrentSet(); if (ownMode()) { var bu = $('lcs-bv-unit').value, fac = SPD_TO_MMPM[bu]; var toMm = function (v) { return tu === 'in' ? v * MM_PER_IN : v; }; var pa = { t: toMm(parseNum($('lcs-b1t').value).n), v: parseNum($('lcs-b1v').value).n * fac }; var b2 = parseNum($('lcs-b2t').value), pb = null; if (b2.ok) pb = { t: toMm(b2.n), v: parseNum($('lcs-b2v').value).n * fac }; var v; if (!pb) { if (!le(Math.abs(pa.t - t), 0.005 * pa.t)) { showAlert('Cannot estimate from one reference point at a different thickness.', [], true, 'Point 1 is ' + g(pa.t, 5) + ' mm but the target is ' + g(t, 5) + ' mm. Add a second reference point so the target thickness lies between the two points, or enter the known speed for exactly ' + g(t, 5) + ' mm.'); setErr('b2t', 'Add a second point so the target thickness lies between the two.'); return false; } v = pa.v; } else { if (gt(pa.t, pb.t)) { var tmp = pa; pa = pb; pb = tmp; } if (lt(t, pa.t) || gt(t, pb.t)) { showAlert('Target thickness is outside your reference points.', [], true, 'Your points cover ' + g(pa.t, 5) + '\u2013' + g(pb.t, 5) + ' mm and the target is ' + g(t, 5) + ' mm. The calculator does not extrapolate; enter reference points on both sides of the target thickness.'); return false; } var f = (t - pa.t) \/ (pb.t - pa.t); v = logInterp(pa.v, pb.v, f); } base.mode = 'own'; base.v = v \/ 1000; base.pa = pa; base.pb = pb; base.bu = bu; render(base); return true; } var est = estimateFromTable(set, t, P); if (est.err) { showAlert('No reliable estimate from the reference table for these inputs.', [est.err], true, 'To continue, tick \"Use my own machine data\" and enter a known baseline speed from your machine\\'s chart or proven test cuts.'); return false; } base.mode = 'table'; base.set = set; base.lo = est.lo; base.hi = est.hi; base.cols = est.cols; base.gp = est.gp; base.v = pick(est.lo, est.hi, base.q); render(base); return true; } function run() { var res = $('lcs-results'), first = res.hidden; res.hidden = false; if (!compute()) { $('lcs-status').textContent = 'No estimate. ' + ($('lcs-error').textContent || 'Some inputs need attention.'); var bad = root.querySelector('.lcs-invalid'); if (bad) bad.focus(); else if (res.focus) res.focus(); } else if (first) { if (res.scrollIntoView) res.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); } } function setSel(id, val) { var s = $(id); s.value = val; s.setAttribute('data-prev', val); } function init() { $('lcs-mat').value = 'mild'; $('lcs-src').value = 'fiber'; $('lcs-gas').value = 'o2'; $('lcs-q').value = 'balanced'; $('lcs-out').value = 'metric'; setSel('lcs-t-unit', 'mm'); setSel('lcs-p-unit', 'kw'); setSel('lcs-bv-unit', 'mpm'); ['lcs-t', 'lcs-p', 'lcs-nz', 'lcs-fp', 'lcs-b1t', 'lcs-b1v', 'lcs-b2t', 'lcs-b2v', 'lcs-matname', 'lcs-gasname'].forEach(function (id) { $(id).value = ''; }); $('lcs-useown').checked = false; clearAllErrors(); refreshSupport(); $('lcs-results').hidden = true; $('lcs-status').textContent = ''; } function convert(kind, v, from, to) { if (kind === 'len') { var mm = from === 'in' ? v * MM_PER_IN : v; return to === 'in' ? mm \/ MM_PER_IN : mm; } if (kind === 'pow') { var w = from === 'kw' ? v * 1000 : v; return to === 'kw' ? w \/ 1000 : w; } var mmpm = v * SPD_TO_MMPM[from]; return mmpm \/ SPD_TO_MMPM[to]; } root.addEventListener('change', function (e) { var el = e.target; if (el.id === 'lcs-mat' || el.id === 'lcs-src' || el.id === 'lcs-gas' || el.id === 'lcs-useown') { refreshSupport(); if (el.id === 'lcs-useown') { if (el.checked) $('lcs-b1t').focus(); } return; } if (!el.classList.contains('lcs-unit')) return; var prev = el.getAttribute('data-prev'), next = el.value, kind = el.getAttribute('data-kind'); if (prev) { if (prev !== next) { el.getAttribute('data-for').split(' ').forEach(function (id) { var input = $(id), p = parseNum(input.value); if (p.ok) input.value = plain(convert(kind, p.n, prev, next), 6); }); } } el.setAttribute('data-prev', next); if (el.id === 'lcs-t-unit') { if (next === 'in') $('lcs-out').value = 'imperial'; } refreshSupport(); }); root.addEventListener('input', function (e) { var el = e.target; if (!el.classList) return; if (!el.classList.contains('lcs-invalid')) return; var key = el.id.replace('lcs-', ''); if (!check(key)) setErr(key, null); }); root.addEventListener('keydown', function (e) { if (e.key !== 'Enter') return; var el = e.target; if (!el.classList) return; if (!el.classList.contains('lcs-input')) return; e.preventDefault(); run(); }); $('lcs-calc').addEventListener('click', run); init(); } function boot() { var hosts = document.querySelectorAll('.lcsx-host'); for (var i = 0; i !== hosts.length; i++) setup(hosts[i]); } boot(); if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot); })();<\/script><!--\/noptimize-->\n","protected":false},"excerpt":{"rendered":"<p>The Laser Cutting Speed Calculator estimates a starting cutting speed based on material type, thickness, laser source, power, and assist gas. Use it to plan&#8230;<\/p>","protected":false},"author":2,"featured_media":25075,"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_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8808],"tags":[8470,8843,1552,2396],"class_list":["post-25074","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manufacturing-and-processes","tag-cutting-speed","tag-fiber-laser","tag-laser-cutting","tag-sheet-metal","pmpro-has-access"],"acf":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/11\/Laser-Cutting-Speed-Calculator.png","_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/25074","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=25074"}],"version-history":[{"count":1,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/25074\/revisions"}],"predecessor-version":[{"id":25076,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/posts\/25074\/revisions\/25076"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/media\/25075"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/media?parent=25074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/categories?post=25074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ar\/wp-json\/wp\/v2\/tags?post=25074"}],"curies":[{"name":"\u0648\u0648\u0631\u062f\u0628\u0631\u064a\u0633","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}