{"id":24314,"date":"2026-02-11T07:22:58","date_gmt":"2026-02-11T07:22:58","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24314"},"modified":"2026-02-11T07:23:00","modified_gmt":"2026-02-11T07:23:00","slug":"rpm-to-linear-speed-m-min-sfm-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/ru\/rpm-to-linear-speed-m-min-sfm-calculator\/","title":{"rendered":"RPM to Linear Speed\u00a0(m\/min &amp; SFM)\u00a0Calculator"},"content":{"rendered":"\n<p>The <strong>RPM to Linear Speed (m\/min &amp; SFM) Calculator<\/strong> is a practical engineering tool designed to convert rotational speed (RPM) into linear surface speed, expressed in meters per minute (m\/min) or surface feet per minute (SFM). This RPM to Linear Speed (m\/min &amp; SFM) Calculator is widely used in machining, milling, turning, and cutting applications where selecting the correct cutting speed is critical for tool life, surface finish, and production efficiency. By entering spindle RPM and tool diameter, users can instantly determine the actual surface speed and optimize machining parameters with precision. It is especially valuable for CNC operators, manufacturing engineers, and process planners who need accurate speed conversion for metric and imperial systems.<\/p>\n\n\n\n<!-- RPM to Linear Speed Calculator - WordPress Embeddable -->\n<!-- \u6b64\u4ee3\u7801\u53ef\u76f4\u63a5\u5d4c\u5165WordPress\uff0c\u4e0d\u4f1a\u5f71\u54cd\u9875\u9762\u5176\u4ed6\u533a\u5757\u7684\u6837\u5f0f -->\n\n<style>\n\/* \u6240\u6709\u6837\u5f0f\u90fd\u9650\u5b9a\u5728 .rpm-calculator \u5bb9\u5668\u5185\uff0c\u907f\u514d\u5f71\u54cdWordPress\u5176\u4ed6\u5143\u7d20 *\/\n.rpm-calculator {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n    box-sizing: border-box;\n    width: 100%;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.rpm-calculator *,\n.rpm-calculator *::before,\n.rpm-calculator *::after {\n    box-sizing: border-box;\n}\n\n.rpm-calculator .rpm-calc-title {\n    font-size: 1.875rem;\n    font-weight: 700;\n    color: #1e293b;\n    margin: 0 0 1.5rem 0;\n    padding: 0;\n    line-height: 1.2;\n}\n\n.rpm-calculator .rpm-calc-container {\n    background-color: #ffffff;\n    border-radius: 1rem;\n    padding: 1.5rem;\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n}\n\n.rpm-calculator .rpm-calc-grid {\n    display: grid;\n    grid-template-columns: repeat(1, 1fr);\n    gap: 1.5rem;\n}\n\n@media (min-width: 768px) {\n    .rpm-calculator .rpm-calc-grid {\n        grid-template-columns: repeat(3, 1fr);\n    }\n}\n\n.rpm-calculator .rpm-calc-card {\n    background-color: #ffffff;\n    border-radius: 1rem;\n    padding: 1.5rem;\n    border: 1px solid #e2e8f0;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n    transition: all 0.3s ease;\n}\n\n.rpm-calculator .rpm-calc-card:hover {\n    transform: translateY(-2px);\n    border-color: #60a5fa;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.rpm-calculator .rpm-calc-card-header {\n    margin-bottom: 1rem;\n}\n\n.rpm-calculator .rpm-calc-card-title {\n    font-size: 1.125rem;\n    font-weight: 600;\n    color: #1e293b;\n    margin: 0;\n    padding: 0;\n    line-height: 1.4;\n}\n\n.rpm-calculator .rpm-calc-card-title .rpm-calc-unit {\n    font-weight: 400;\n    color: #64748b;\n}\n\n.rpm-calculator .rpm-calc-input-wrapper {\n    position: relative;\n}\n\n.rpm-calculator .rpm-calc-input {\n    width: 100%;\n    background-color: #f8fafc;\n    border: 1px solid #e2e8f0;\n    border-radius: 0.75rem;\n    padding: 0.75rem 1rem;\n    font-size: 1.125rem;\n    color: #1e293b;\n    transition: border-color 0.2s ease;\n    outline: none;\n    -moz-appearance: textfield;\n}\n\n.rpm-calculator .rpm-calc-input::-webkit-outer-spin-button,\n.rpm-calculator .rpm-calc-input::-webkit-inner-spin-button {\n    -webkit-appearance: none;\n    margin: 0;\n}\n\n.rpm-calculator .rpm-calc-input:focus {\n    border-color: #3b82f6;\n    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);\n}\n\n.rpm-calculator .rpm-calc-input::placeholder {\n    color: #94a3b8;\n}\n\n.rpm-calculator .rpm-calc-card-footer {\n    margin-top: 0.75rem;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n}\n\n.rpm-calculator .rpm-calc-hint {\n    font-size: 0.75rem;\n    color: #94a3b8;\n    margin: 0;\n    padding: 0;\n}\n\n.rpm-calculator .rpm-calc-lock-label {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n    cursor: pointer;\n    user-select: none;\n}\n\n.rpm-calculator .rpm-calc-lock-checkbox {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    padding: 0;\n    margin: -1px;\n    overflow: hidden;\n    clip: rect(0, 0, 0, 0);\n    white-space: nowrap;\n    border: 0;\n}\n\n.rpm-calculator .rpm-calc-lock-toggle {\n    width: 2rem;\n    height: 1.25rem;\n    background-color: #e2e8f0;\n    border-radius: 9999px;\n    position: relative;\n    transition: background-color 0.2s ease;\n}\n\n.rpm-calculator .rpm-calc-lock-toggle::after {\n    content: '';\n    position: absolute;\n    top: 2px;\n    left: 2px;\n    width: 1rem;\n    height: 1rem;\n    background-color: #ffffff;\n    border-radius: 50%;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n    transition: transform 0.2s ease;\n}\n\n.rpm-calculator .rpm-calc-lock-checkbox:checked + .rpm-calc-lock-toggle {\n    background-color: #3b82f6;\n}\n\n.rpm-calculator .rpm-calc-lock-checkbox:checked + .rpm-calc-lock-toggle::after {\n    transform: translateX(0.75rem);\n}\n\n.rpm-calculator .rpm-calc-lock-text {\n    font-size: 0.75rem;\n    color: #64748b;\n}\n\n\/* \u9488\u5bf9\u4e0d\u540c\u5361\u7247\u7684\u7126\u70b9\u989c\u8272 *\/\n.rpm-calculator .rpm-calc-card[data-field=\"diameter\"] .rpm-calc-input:focus {\n    border-color: #f59e0b;\n    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.3);\n}\n\n.rpm-calculator .rpm-calc-card[data-field=\"diameter\"] .rpm-calc-lock-checkbox:checked + .rpm-calc-lock-toggle {\n    background-color: #f59e0b;\n}\n\n.rpm-calculator .rpm-calc-card[data-field=\"rpm\"] .rpm-calc-input:focus {\n    border-color: #3b82f6;\n    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);\n}\n\n.rpm-calculator .rpm-calc-card[data-field=\"rpm\"] .rpm-calc-lock-checkbox:checked + .rpm-calc-lock-toggle {\n    background-color: #3b82f6;\n}\n\n.rpm-calculator .rpm-calc-card[data-field=\"linearSpeed\"] .rpm-calc-input:focus {\n    border-color: #22c55e;\n    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.3);\n}\n\n.rpm-calculator .rpm-calc-card[data-field=\"linearSpeed\"] .rpm-calc-lock-checkbox:checked + .rpm-calc-lock-toggle {\n    background-color: #22c55e;\n}\n<\/style>\n\n<div class=\"rpm-calculator\">\n    <!-- Calculator Title -->\n    <h2 class=\"rpm-calc-title\">Calculator<\/h2>\n    \n    <!-- Calculator Container with Shadow -->\n    <div class=\"rpm-calc-container\">\n        <!-- Input Cards -->\n        <div class=\"rpm-calc-grid\">\n            <!-- Diameter Card -->\n            <div class=\"rpm-calc-card\" data-field=\"diameter\">\n                <div class=\"rpm-calc-card-header\">\n                    <h3 class=\"rpm-calc-card-title\">Diameter <span class=\"rpm-calc-unit\">(mm)<\/span><\/h3>\n                <\/div>\n                <div class=\"rpm-calc-input-wrapper\">\n                    <input type=\"number\" id=\"rpm-calc-diameter\" class=\"rpm-calc-input\" placeholder=\"Enter diameter (mm)\" oninput=\"rpmCalcCalculate('diameter')\">\n                <\/div>\n                <div class=\"rpm-calc-card-footer\">\n                    <span class=\"rpm-calc-hint\">Workpiece\/Roll diameter<\/span>\n                    <label class=\"rpm-calc-lock-label\">\n                        <input type=\"checkbox\" id=\"rpm-calc-lockDiameter\" class=\"rpm-calc-lock-checkbox\" onchange=\"rpmCalcToggleLock('diameter')\">\n                        <div class=\"rpm-calc-lock-toggle\"><\/div>\n                        <span class=\"rpm-calc-lock-text\">Lock<\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n\n            <!-- RPM Card -->\n            <div class=\"rpm-calc-card\" data-field=\"rpm\">\n                <div class=\"rpm-calc-card-header\">\n                    <h3 class=\"rpm-calc-card-title\">RPM <span class=\"rpm-calc-unit\">(r\/min)<\/span><\/h3>\n                <\/div>\n                <div class=\"rpm-calc-input-wrapper\">\n                    <input type=\"number\" id=\"rpm-calc-rpm\" class=\"rpm-calc-input\" placeholder=\"Enter RPM\" oninput=\"rpmCalcCalculate('rpm')\">\n                <\/div>\n                <div class=\"rpm-calc-card-footer\">\n                    <span class=\"rpm-calc-hint\">Spindle\/Motor speed<\/span>\n                    <label class=\"rpm-calc-lock-label\">\n                        <input type=\"checkbox\" id=\"rpm-calc-lockRpm\" class=\"rpm-calc-lock-checkbox\" onchange=\"rpmCalcToggleLock('rpm')\">\n                        <div class=\"rpm-calc-lock-toggle\"><\/div>\n                        <span class=\"rpm-calc-lock-text\">Lock<\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n\n            <!-- Linear Speed Card -->\n            <div class=\"rpm-calc-card\" data-field=\"linearSpeed\">\n                <div class=\"rpm-calc-card-header\">\n                    <h3 class=\"rpm-calc-card-title\">Linear Speed <span class=\"rpm-calc-unit\">(m\/min)<\/span><\/h3>\n                <\/div>\n                <div class=\"rpm-calc-input-wrapper\">\n                    <input type=\"number\" id=\"rpm-calc-linearSpeed\" class=\"rpm-calc-input\" placeholder=\"Enter speed (m\/min)\" oninput=\"rpmCalcCalculate('linearSpeed')\">\n                <\/div>\n                <div class=\"rpm-calc-card-footer\">\n                    <span class=\"rpm-calc-hint\">Surface\/Cutting speed<\/span>\n                    <label class=\"rpm-calc-lock-label\">\n                        <input type=\"checkbox\" id=\"rpm-calc-lockLinearSpeed\" class=\"rpm-calc-lock-checkbox\" onchange=\"rpmCalcToggleLock('linearSpeed')\">\n                        <div class=\"rpm-calc-lock-toggle\"><\/div>\n                        <span class=\"rpm-calc-lock-text\">Lock<\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n(function() {\n    \/\/ \u4f7f\u7528IIFE\u548c\u552f\u4e00\u524d\u7f00\u907f\u514d\u5168\u5c40\u547d\u540d\u51b2\u7a81\n    var rpmCalcState = {\n        lockedField: null,\n        lastEditedField: null\n    };\n\n    \/\/ \u5c06\u51fd\u6570\u6302\u8f7d\u5230window\u5bf9\u8c61\uff0c\u4f7f\u7528\u552f\u4e00\u524d\u7f00\n    window.rpmCalcCalculate = function(editedField) {\n        rpmCalcState.lastEditedField = editedField;\n        \n        var diameterInput = document.getElementById('rpm-calc-diameter');\n        var rpmInput = document.getElementById('rpm-calc-rpm');\n        var linearSpeedInput = document.getElementById('rpm-calc-linearSpeed');\n        \n        var diameter = parseFloat(diameterInput.value);\n        var rpm = parseFloat(rpmInput.value);\n        var linearSpeed = parseFloat(linearSpeedInput.value);\n        \n        var hasD = !isNaN(diameter) && diameter > 0;\n        var hasN = !isNaN(rpm) && rpm > 0;\n        var hasV = !isNaN(linearSpeed) && linearSpeed > 0;\n        \n        if ((hasD && hasN) || (hasD && hasV) || (hasN && hasV)) {\n            var calculatedField = '';\n            var calculatedValue = 0;\n            \n            if (rpmCalcState.lockedField === 'diameter') {\n                if (hasN && hasV) {\n                    calculatedField = 'none';\n                } else if (hasN) {\n                    calculatedField = 'linearSpeed';\n                } else if (hasV) {\n                    calculatedField = 'rpm';\n                }\n            } else if (rpmCalcState.lockedField === 'rpm') {\n                if (hasD && hasV) {\n                    calculatedField = 'none';\n                } else if (hasD) {\n                    calculatedField = 'linearSpeed';\n                } else if (hasV) {\n                    calculatedField = 'diameter';\n                }\n            } else if (rpmCalcState.lockedField === 'linearSpeed') {\n                if (hasD && hasN) {\n                    calculatedField = 'none';\n                } else if (hasD) {\n                    calculatedField = 'rpm';\n                } else if (hasN) {\n                    calculatedField = 'diameter';\n                }\n            } else {\n                if (hasD && hasN && editedField !== 'linearSpeed') {\n                    calculatedField = 'linearSpeed';\n                } else if (hasD && hasV && editedField !== 'rpm') {\n                    calculatedField = 'rpm';\n                } else if (hasN && hasV && editedField !== 'diameter') {\n                    calculatedField = 'diameter';\n                }\n            }\n            \n            var divisor = 1000;\n            \n            if (calculatedField === 'linearSpeed') {\n                calculatedValue = (Math.PI * diameter * rpm) \/ divisor;\n                linearSpeedInput.value = calculatedValue.toFixed(2);\n            } else if (calculatedField === 'rpm') {\n                calculatedValue = (linearSpeed * divisor) \/ (Math.PI * diameter);\n                rpmInput.value = calculatedValue.toFixed(2);\n            } else if (calculatedField === 'diameter') {\n                calculatedValue = (linearSpeed * divisor) \/ (Math.PI * rpm);\n                diameterInput.value = calculatedValue.toFixed(2);\n            }\n        }\n    };\n\n    window.rpmCalcToggleLock = function(field) {\n        var checkbox = document.getElementById('rpm-calc-lock' + field.charAt(0).toUpperCase() + field.slice(1));\n        \n        if (checkbox.checked) {\n            ['diameter', 'rpm', 'linearSpeed'].forEach(function(f) {\n                if (f !== field) {\n                    document.getElementById('rpm-calc-lock' + f.charAt(0).toUpperCase() + f.slice(1)).checked = false;\n                }\n            });\n            rpmCalcState.lockedField = field;\n        } else {\n            rpmCalcState.lockedField = null;\n        }\n    };\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>The RPM to Linear Speed (m\/min &amp; SFM) Calculator is a practical engineering tool designed to convert rotational speed (RPM) into linear surface speed, expressed&#8230;<\/p>","protected":false},"author":2,"featured_media":24315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[8413],"tags":[8470,8469,8471],"class_list":["post-24314","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unit-and-industry-standard-conversion","tag-cutting-speed","tag-machining-calculator","tag-surface-speed","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/02\/RPM-to-Linear-Speed-mmin-SFM-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/comments?post=24314"}],"version-history":[{"count":0,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/posts\/24314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media\/24315"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/media?parent=24314"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/categories?post=24314"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/ru\/wp-json\/wp\/v2\/tags?post=24314"}],"curies":[{"name":"WP","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}