{"id":24621,"date":"2026-08-12T08:04:46","date_gmt":"2026-08-12T08:04:46","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24621"},"modified":"2026-08-12T08:04:49","modified_gmt":"2026-08-12T08:04:49","slug":"bearing-preload-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/fr\/bearing-preload-calculator\/","title":{"rendered":"Bearing Preload Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Bearing Preload Calculator<\/strong> is a practical engineering tool designed to help determine the appropriate preload for bearing systems under different operating conditions. By entering key parameters such as bearing type, applied load, stiffness, and installation conditions, users can evaluate preload requirements for improved bearing performance. The <strong>Bearing Preload Calculator<\/strong> helps engineers and designers reduce bearing clearance, improve rotational accuracy and rigidity, minimize vibration, and support longer service life. It is especially useful for machine tool spindles, gearboxes, motors, precision machinery, and other high-speed or high-accuracy rotating systems. Whether you are designing a new bearing arrangement or optimizing an existing assembly, this calculator provides a convenient solution for bearing preload analysis and reliable mechanical design.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Bearing Preload Calculator | Matched Pair Analysis<\/title>\n  <style>\n    \/* All styles scoped to #bearing-preload-calculator \u2014 safe for WordPress embed *\/\n    #bearing-preload-calculator {\n      --bpc-bg-primary: #ffffff;\n      --bpc-bg-secondary: #f8fafc;\n      --bpc-bg-card: #ffffff;\n      --bpc-bg-input: #f1f5f9;\n      --bpc-border: #e2e8f0;\n      --bpc-border-focus: #3b82f6;\n      --bpc-text-primary: #1e293b;\n      --bpc-text-secondary: #475569;\n      --bpc-text-muted: #94a3b8;\n      --bpc-accent: #3b82f6;\n      --bpc-accent-hover: #2563eb;\n      --bpc-success: #16a34a;\n      --bpc-warning: #d97706;\n      --bpc-danger: #dc2626;\n      --bpc-info: #0891b2;\n      --bpc-radius: 8px;\n      --bpc-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 4px 12px rgba(0, 0, 0, 0.04);\n      --bpc-font-mono: 'Consolas', 'Monaco', 'Courier New', monospace;\n\n      box-sizing: border-box;\n      font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;\n      font-size: 16px;\n      line-height: 1.6;\n      color: var(--bpc-text-primary);\n      background: var(--bpc-bg-primary);\n      isolation: isolate;\n      contain: layout style;\n      width: 100%;\n      max-width: 1280px;\n      margin: 0 auto;\n      padding: 1.5rem 1rem 3rem;\n    }\n\n    #bearing-preload-calculator *,\n    #bearing-preload-calculator *::before,\n    #bearing-preload-calculator *::after {\n      box-sizing: border-box;\n    }\n\n    #bearing-preload-calculator .bpc-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1.5rem;\n    }\n\n    @media (max-width: 960px) {\n      #bearing-preload-calculator .bpc-grid { grid-template-columns: 1fr; }\n    }\n\n    #bearing-preload-calculator .bpc-card {\n      background: var(--bpc-bg-card);\n      border: 1px solid var(--bpc-border);\n      border-radius: var(--bpc-radius);\n      padding: 1.25rem;\n      box-shadow: var(--bpc-shadow);\n    }\n\n    #bearing-preload-calculator .bpc-card-title {\n      font-size: 0.75rem;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n      color: var(--bpc-text-secondary);\n      margin: 0 0 1rem;\n      padding-bottom: 0.5rem;\n      border-bottom: 1px solid var(--bpc-border);\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n\n    #bearing-preload-calculator .bpc-card-title .bpc-icon { font-size: 1rem; }\n\n    #bearing-preload-calculator .bpc-inputs-panel {\n      grid-column: 1 \/ -1;\n    }\n\n    #bearing-preload-calculator .bpc-section-title {\n      font-size: 0.8125rem;\n      font-weight: 700;\n      color: var(--bpc-text-primary);\n      margin: 1.25rem 0 0.75rem;\n      padding-bottom: 0.35rem;\n      border-bottom: 1px dashed var(--bpc-border);\n      display: flex;\n      align-items: center;\n      gap: 0.4rem;\n    }\n\n    #bearing-preload-calculator .bpc-section-title:first-of-type {\n      margin-top: 0;\n    }\n\n    #bearing-preload-calculator .bpc-section-title .bpc-icon { font-size: 0.9rem; }\n\n    #bearing-preload-calculator .bpc-inputs-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 0 1rem;\n    }\n\n    @media (max-width: 960px) {\n      #bearing-preload-calculator .bpc-inputs-grid { grid-template-columns: repeat(2, 1fr); }\n    }\n\n    @media (max-width: 600px) {\n      #bearing-preload-calculator .bpc-inputs-grid { grid-template-columns: 1fr; }\n    }\n\n    #bearing-preload-calculator .bpc-inputs-grid .bpc-form-group.bpc-full-width {\n      grid-column: 1 \/ -1;\n    }\n\n    #bearing-preload-calculator .bpc-btn-calculate {\n      display: block;\n      width: 33.333%;\n      min-width: 120px;\n      margin: 1.5rem auto 0;\n      padding: 0.95rem 1.5rem;\n      background: var(--bpc-accent);\n      color: #fff;\n      border: none;\n      border-radius: var(--bpc-radius);\n      font-size: 1.125rem;\n      font-weight: 600;\n      font-family: inherit;\n      cursor: pointer;\n      transition: background 0.15s, transform 0.1s;\n    }\n\n    #bearing-preload-calculator .bpc-btn-calculate:hover {\n      background: var(--bpc-accent-hover);\n    }\n\n    #bearing-preload-calculator .bpc-btn-calculate:active {\n      transform: scale(0.99);\n    }\n\n    #bearing-preload-calculator .bpc-form-group {\n      margin-bottom: 1rem;\n    }\n\n    #bearing-preload-calculator .bpc-form-group:last-child { margin-bottom: 0; }\n\n    #bearing-preload-calculator label {\n      display: block;\n      font-size: 0.8125rem;\n      font-weight: 600;\n      color: var(--bpc-text-secondary);\n      margin-bottom: 0.35rem;\n    }\n\n    #bearing-preload-calculator label .bpc-unit {\n      font-weight: 400;\n      color: var(--bpc-text-muted);\n      font-family: var(--bpc-font-mono);\n      font-size: 0.75rem;\n    }\n\n    #bearing-preload-calculator input[type=\"number\"],\n    #bearing-preload-calculator input[type=\"checkbox\"],\n    #bearing-preload-calculator select {\n      width: 100%;\n      padding: 0.55rem 0.75rem;\n      background: var(--bpc-bg-input);\n      border: 1px solid var(--bpc-border);\n      border-radius: 6px;\n      color: var(--bpc-text-primary);\n      font-size: 0.9375rem;\n      font-family: var(--bpc-font-mono);\n      transition: border-color 0.15s, box-shadow 0.15s;\n    }\n\n    #bearing-preload-calculator input[type=\"checkbox\"] {\n      width: auto;\n      margin-right: 4px;\n      vertical-align: middle;\n    }\n\n    #bearing-preload-calculator input[type=\"number\"]:focus,\n    #bearing-preload-calculator select:focus {\n      outline: none;\n      border-color: var(--bpc-border-focus);\n      box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);\n    }\n\n    #bearing-preload-calculator input.bpc-invalid {\n      border-color: var(--bpc-danger);\n      box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);\n    }\n\n    #bearing-preload-calculator .bpc-error-msg {\n      font-size: 0.75rem;\n      color: var(--bpc-danger);\n      margin-top: 0.25rem;\n      display: none;\n    }\n\n    #bearing-preload-calculator .bpc-error-msg.bpc-visible { display: block; }\n\n    #bearing-preload-calculator .bpc-method-selector {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 0.5rem;\n    }\n\n    #bearing-preload-calculator .bpc-method-option {\n      position: relative;\n    }\n\n    #bearing-preload-calculator .bpc-method-option input[type=\"radio\"] {\n      position: absolute;\n      opacity: 0;\n      width: 0;\n      height: 0;\n    }\n\n    #bearing-preload-calculator .bpc-method-option label {\n      display: block;\n      padding: 0.75rem;\n      background: var(--bpc-bg-input);\n      border: 2px solid var(--bpc-border);\n      border-radius: var(--bpc-radius);\n      cursor: pointer;\n      text-align: center;\n      font-size: 0.8125rem;\n      transition: all 0.15s;\n      margin-bottom: 0;\n    }\n\n    #bearing-preload-calculator .bpc-method-option label strong {\n      display: block;\n      color: var(--bpc-text-primary);\n      margin-bottom: 0.15rem;\n    }\n\n    #bearing-preload-calculator .bpc-method-option label span {\n      font-weight: 400;\n      color: var(--bpc-text-muted);\n      font-size: 0.7rem;\n    }\n\n    #bearing-preload-calculator .bpc-method-option input:checked + label {\n      border-color: var(--bpc-accent);\n      background: rgba(59, 130, 246, 0.1);\n    }\n\n    #bearing-preload-calculator .bpc-toggle-group {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    #bearing-preload-calculator .bpc-toggle-btn {\n      flex: 1;\n      padding: 0.5rem;\n      background: var(--bpc-bg-input);\n      border: 1px solid var(--bpc-border);\n      border-radius: 6px;\n      color: var(--bpc-text-secondary);\n      font-size: 0.8125rem;\n      font-family: inherit;\n      cursor: pointer;\n      transition: all 0.15s;\n    }\n\n    #bearing-preload-calculator .bpc-toggle-btn.bpc-active {\n      background: var(--bpc-accent);\n      border-color: var(--bpc-accent);\n      color: #fff;\n      font-weight: 600;\n    }\n\n    #bearing-preload-calculator .bpc-results-panel {\n      grid-column: 1 \/ -1;\n    }\n\n    #bearing-preload-calculator .bpc-alert-banner {\n      display: none;\n      padding: 0.875rem 1rem;\n      border-radius: var(--bpc-radius);\n      margin-bottom: 1rem;\n      font-size: 0.875rem;\n      font-weight: 600;\n      align-items: center;\n      gap: 0.75rem;\n    }\n\n    #bearing-preload-calculator .bpc-alert-banner.bpc-visible {\n      display: flex;\n    }\n\n    #bearing-preload-calculator .bpc-alert-banner.bpc-danger {\n      background: #fef2f2;\n      border: 1px solid var(--bpc-danger);\n      color: #b91c1c;\n    }\n\n    #bearing-preload-calculator .bpc-alert-banner.bpc-warning {\n      background: #fffbeb;\n      border: 1px solid var(--bpc-warning);\n      color: #b45309;\n    }\n\n    #bearing-preload-calculator .bpc-alert-banner.bpc-safe {\n      background: #f0fdf4;\n      border: 1px solid var(--bpc-success);\n      color: #15803d;\n    }\n\n    #bearing-preload-calculator .bpc-metrics-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n      gap: 1rem;\n      margin-bottom: 1.5rem;\n    }\n\n    #bearing-preload-calculator .bpc-metric-card {\n      background: var(--bpc-bg-secondary);\n      border: 1px solid var(--bpc-border);\n      border-radius: var(--bpc-radius);\n      padding: 1rem;\n      text-align: center;\n    }\n\n    #bearing-preload-calculator .bpc-metric-card.bpc-highlight {\n      border-color: var(--bpc-accent);\n      background: rgba(59, 130, 246, 0.08);\n    }\n\n    #bearing-preload-calculator .bpc-metric-label {\n      font-size: 0.7rem;\n      text-transform: uppercase;\n      letter-spacing: 0.06em;\n      color: var(--bpc-text-muted);\n      margin-bottom: 0.35rem;\n    }\n\n    #bearing-preload-calculator .bpc-metric-value {\n      font-size: 1.5rem;\n      font-weight: 700;\n      font-family: var(--bpc-font-mono);\n      color: var(--bpc-text-primary);\n    }\n\n    #bearing-preload-calculator .bpc-metric-unit {\n      font-size: 0.75rem;\n      color: var(--bpc-text-secondary);\n      font-family: var(--bpc-font-mono);\n    }\n\n    #bearing-preload-calculator .bpc-force-diagram {\n      display: grid;\n      grid-template-columns: 1fr auto 1fr;\n      gap: 1rem;\n      align-items: center;\n      margin: 1rem 0;\n    }\n\n    @media (max-width: 600px) {\n      #bearing-preload-calculator .bpc-force-diagram {\n        grid-template-columns: 1fr;\n        text-align: center;\n      }\n    }\n\n    #bearing-preload-calculator .bpc-bearing-block {\n      background: var(--bpc-bg-secondary);\n      border: 1px solid var(--bpc-border);\n      border-radius: var(--bpc-radius);\n      padding: 1rem;\n    }\n\n    #bearing-preload-calculator .bpc-bearing-block.bpc-loaded {\n      border-color: var(--bpc-accent);\n    }\n\n    #bearing-preload-calculator .bpc-bearing-block.bpc-unloaded {\n      border-color: var(--bpc-text-muted);\n    }\n\n    #bearing-preload-calculator .bpc-bearing-block.bpc-liftoff {\n      border-color: var(--bpc-danger);\n      background: #fef2f2;\n    }\n\n    #bearing-preload-calculator .bpc-bearing-label {\n      font-size: 0.7rem;\n      text-transform: uppercase;\n      letter-spacing: 0.06em;\n      color: var(--bpc-text-muted);\n      margin-bottom: 0.25rem;\n    }\n\n    #bearing-preload-calculator .bpc-bearing-force {\n      font-size: 1.25rem;\n      font-weight: 700;\n      font-family: var(--bpc-font-mono);\n    }\n\n    #bearing-preload-calculator .bpc-force-bar-wrap {\n      margin-top: 0.5rem;\n      height: 8px;\n      background: var(--bpc-bg-input);\n      border-radius: 4px;\n      overflow: hidden;\n    }\n\n    #bearing-preload-calculator .bpc-force-bar {\n      height: 100%;\n      border-radius: 4px;\n      transition: width 0.3s ease;\n    }\n\n    #bearing-preload-calculator .bpc-force-bar.bpc-b1 { background: var(--bpc-accent); }\n    #bearing-preload-calculator .bpc-force-bar.bpc-b2 { background: var(--bpc-info); }\n\n    #bearing-preload-calculator .bpc-load-arrow {\n      text-align: center;\n      color: var(--bpc-text-secondary);\n      font-size: 0.8125rem;\n    }\n\n    #bearing-preload-calculator .bpc-load-arrow .bpc-arrow {\n      font-size: 1.5rem;\n      color: var(--bpc-warning);\n    }\n\n    #bearing-preload-calculator .bpc-hidden { display: none !important; }\n\n    #bearing-preload-calculator .bpc-hint {\n      font-size: 0.7rem;\n      color: var(--bpc-text-muted);\n      margin-top: 0.25rem;\n    }\n\n    #bearing-preload-calculator .bpc-badge {\n      display: inline-block;\n      padding: 0.15rem 0.5rem;\n      border-radius: 999px;\n      font-size: 0.65rem;\n      font-weight: 700;\n      text-transform: uppercase;\n      letter-spacing: 0.04em;\n    }\n\n    #bearing-preload-calculator .bpc-badge-danger { background: var(--bpc-danger); color: #fff; }\n    #bearing-preload-calculator .bpc-badge-warning { background: var(--bpc-warning); color: #000; }\n    #bearing-preload-calculator .bpc-badge-success { background: var(--bpc-success); color: #000; }\n  <\/style>\n<\/head>\n<body>\n\n<!-- WordPress: copy from this div through the closing script tag -->\n<div id=\"bearing-preload-calculator\">\n  <div class=\"bpc-grid\">\n\n    <section class=\"bpc-card bpc-inputs-panel\">\n      <h2 class=\"bpc-card-title\"><span class=\"bpc-icon\">\ud83d\udcdd<\/span> Input Parameters<\/h2>\n\n      <h3 class=\"bpc-section-title\"><span class=\"bpc-icon\">\ud83d\udd27<\/span> Preload Method<\/h3>\n      <div class=\"bpc-inputs-grid\">\n        <div class=\"bpc-form-group bpc-full-width\">\n          <div class=\"bpc-method-selector\">\n            <div class=\"bpc-method-option\">\n              <input type=\"radio\" name=\"bpc-preloadMethod\" id=\"bpc-methodPosition\" value=\"position\" checked>\n              <label for=\"bpc-methodPosition\">\n                <strong>Rigid \/ Position<\/strong>\n                <span>Shim \u00b7 Locknut \u00b7 Spacer<\/span>\n              <\/label>\n            <\/div>\n            <div class=\"bpc-method-option\">\n              <input type=\"radio\" name=\"bpc-preloadMethod\" id=\"bpc-methodSpring\" value=\"spring\">\n              <label for=\"bpc-methodSpring\">\n                <strong>Constant Pressure<\/strong>\n                <span>Spring \u00b7 Hydraulic<\/span>\n              <\/label>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"bpc-form-group bpc-full-width\">\n          <label>Bearing Element Type<\/label>\n          <div class=\"bpc-toggle-group\" id=\"bpc-bearingTypeToggle\">\n            <button type=\"button\" class=\"bpc-toggle-btn bpc-active\" data-type=\"ball\">Ball (n = 1.5)<\/button>\n            <button type=\"button\" class=\"bpc-toggle-btn\" data-type=\"roller\">Roller (n = 1.11)<\/button>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <h3 class=\"bpc-section-title\"><span class=\"bpc-icon\">\ud83d\udcd0<\/span> Bearing Specifications<\/h3>\n      <div class=\"bpc-inputs-grid\">\n        <div class=\"bpc-form-group\">\n          <label>Contact Angle <span class=\"bpc-unit\">\u03b1 (\u00b0)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-contactAngle\" value=\"25\" min=\"0.1\" max=\"60\" step=\"0.1\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errAngle\">Must be &gt; 0\u00b0 and \u2264 60\u00b0<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>Bore Diameter <span class=\"bpc-unit\">d (mm)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-boreDiameter\" value=\"40\" min=\"1\" step=\"0.1\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errBore\">Must be &gt; 0 mm<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>Pitch Diameter <span class=\"bpc-unit\">d_m (mm)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-pitchDiameter\" value=\"54\" min=\"1\" step=\"0.1\">\n          <div class=\"bpc-hint\">Auto-estimated from bore if linked<\/div>\n          <div class=\"bpc-error-msg\" id=\"bpc-errPitch\">Must be &gt; 0 mm<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>\n            <input type=\"checkbox\" id=\"bpc-linkPitch\" checked>\n            Link d_m to bore (d_m \u2248 1.35 \u00d7 d)\n          <\/label>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>Rolling Elements <span class=\"bpc-unit\">Z<\/span><\/label>\n          <input type=\"number\" id=\"bpc-numElements\" value=\"14\" min=\"1\" step=\"1\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errZ\">Must be \u2265 1<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>Ball\/Roller Diameter <span class=\"bpc-unit\">D_w (mm)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-elementDiameter\" value=\"8.731\" min=\"0.1\" step=\"0.001\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errDw\">Must be &gt; 0 mm<\/div>\n        <\/div>\n      <\/div>\n\n      <h3 class=\"bpc-section-title\"><span class=\"bpc-icon\">\u26a1<\/span> Load &amp; Speed<\/h3>\n      <div class=\"bpc-inputs-grid\">\n        <div class=\"bpc-form-group\">\n          <label>Preload Input Mode<\/label>\n          <select id=\"bpc-preloadMode\">\n            <option value=\"class\">Preload Class (Light \/ Medium \/ Heavy)<\/option>\n            <option value=\"manual\">Manual Preload Force F_p<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"bpc-form-group\" id=\"bpc-preloadClassGroup\">\n          <label>Preload Class<\/label>\n          <select id=\"bpc-preloadClass\">\n            <option value=\"light\">Light \u2014 High-speed, low heat<\/option>\n            <option value=\"medium\" selected>Medium \u2014 General purpose<\/option>\n            <option value=\"heavy\">Heavy \u2014 Maximum stiffness<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"bpc-form-group bpc-hidden\" id=\"bpc-preloadForceGroup\">\n          <label>Initial Preload Force <span class=\"bpc-unit\">F_p (N)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-preloadForce\" value=\"560\" min=\"0\" step=\"1\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errFp\">Must be \u2265 0 N<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>External Axial Load <span class=\"bpc-unit\">F_a (N)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-axialLoad\" value=\"0\" min=\"0\" step=\"1\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errFa\">Must be \u2265 0 N<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>Operating Speed <span class=\"bpc-unit\">n (RPM)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-speed\" value=\"3000\" min=\"0\" step=\"1\">\n          <div class=\"bpc-error-msg\" id=\"bpc-errSpeed\">Must be \u2265 0 RPM<\/div>\n        <\/div>\n        <div class=\"bpc-form-group\">\n          <label>Friction Factor <span class=\"bpc-unit\">f\u2080 (\u2014)<\/span><\/label>\n          <input type=\"number\" id=\"bpc-frictionFactor\" value=\"2\" min=\"0.1\" max=\"10\" step=\"0.1\">\n          <div class=\"bpc-hint\">1\u20132 oil bath \u00b7 2\u20134 grease \u00b7 depends on lubrication<\/div>\n        <\/div>\n      <\/div>\n\n      <button type=\"button\" class=\"bpc-btn-calculate\" id=\"bpc-calculateBtn\">Calculate<\/button>\n    <\/section>\n\n    <section class=\"bpc-card bpc-results-panel bpc-hidden\" id=\"bpc-resultsPanel\">\n      <h2 class=\"bpc-card-title\"><span class=\"bpc-icon\">\ud83d\udcc8<\/span> Live Results Dashboard<\/h2>\n\n      <div class=\"bpc-alert-banner bpc-safe\" id=\"bpc-alertBanner\">\n        <span id=\"bpc-alertIcon\">\u2713<\/span>\n        <span id=\"bpc-alertText\">System within safe operating range.<\/span>\n      <\/div>\n\n      <div class=\"bpc-force-diagram\">\n        <div class=\"bpc-bearing-block\" id=\"bpc-bearing1\">\n          <div class=\"bpc-bearing-label\">Bearing 1 (Loaded Side)<\/div>\n          <div class=\"bpc-bearing-force\" id=\"bpc-forceB1\">\u2014 N<\/div>\n          <div class=\"bpc-force-bar-wrap\"><div class=\"bpc-force-bar bpc-b1\" id=\"bpc-barB1\" style=\"width:50%\"><\/div><\/div>\n        <\/div>\n        <div class=\"bpc-load-arrow\">\n          <div class=\"bpc-arrow\">\u2192<\/div>\n          <div>F_a = <span id=\"bpc-displayFa\">0<\/span> N<\/div>\n        <\/div>\n        <div class=\"bpc-bearing-block\" id=\"bpc-bearing2\">\n          <div class=\"bpc-bearing-label\">Bearing 2 (Unloaded Side)<\/div>\n          <div class=\"bpc-bearing-force\" id=\"bpc-forceB2\">\u2014 N<\/div>\n          <div class=\"bpc-force-bar-wrap\"><div class=\"bpc-force-bar bpc-b2\" id=\"bpc-barB2\" style=\"width:50%\"><\/div><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"bpc-metrics-grid\">\n        <div class=\"bpc-metric-card bpc-highlight\">\n          <div class=\"bpc-metric-label\">Axial Stiffness K_a<\/div>\n          <div class=\"bpc-metric-value\" id=\"bpc-outStiffness\">\u2014<\/div>\n          <div class=\"bpc-metric-unit\">N\/\u03bcm<\/div>\n        <\/div>\n        <div class=\"bpc-metric-card bpc-highlight\">\n          <div class=\"bpc-metric-label\">Preload Friction Torque M_p<\/div>\n          <div class=\"bpc-metric-value\" id=\"bpc-outTorque\">\u2014<\/div>\n          <div class=\"bpc-metric-unit\">N\u00b7m<\/div>\n        <\/div>\n        <div class=\"bpc-metric-card bpc-highlight\">\n          <div class=\"bpc-metric-label\">Power Loss<\/div>\n          <div class=\"bpc-metric-value\" id=\"bpc-outPower\">\u2014<\/div>\n          <div class=\"bpc-metric-unit\">W<\/div>\n        <\/div>\n        <div class=\"bpc-metric-card\">\n          <div class=\"bpc-metric-label\">Liftoff Margin<\/div>\n          <div class=\"bpc-metric-value\" id=\"bpc-outMargin\">\u2014<\/div>\n          <div class=\"bpc-metric-unit\">%<\/div>\n        <\/div>\n        <div class=\"bpc-metric-card\">\n          <div class=\"bpc-metric-label\">System Stiffness Ratio<\/div>\n          <div class=\"bpc-metric-value\" id=\"bpc-outStiffRatio\">\u2014<\/div>\n          <div class=\"bpc-metric-unit\">vs. zero load<\/div>\n        <\/div>\n        <div class=\"bpc-metric-card\">\n          <div class=\"bpc-metric-label\">Preload Status<\/div>\n          <div class=\"bpc-metric-value\" id=\"bpc-outStatus\" style=\"font-size:1rem;\">\u2014<\/div>\n          <div class=\"bpc-metric-unit\" id=\"bpc-outStatusSub\"><\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  'use strict';\n\n  var root = document.getElementById('bearing-preload-calculator');\n  if (!root) return;\n\n  var state = {\n    bearingType: 'ball',\n    preloadMethod: 'position'\n  };\n\n  var EXPONENT = { ball: 1.5, roller: 1.11 };\n  var PRELOAD_BASE = { light: 280, medium: 560, heavy: 1100 };\n  var REF_BORE = 40;\n\n  function $(id) {\n    return root.querySelector('#' + id);\n  }\n\n  var inputs = {\n    contactAngle:    $('bpc-contactAngle'),\n    boreDiameter:    $('bpc-boreDiameter'),\n    pitchDiameter:   $('bpc-pitchDiameter'),\n    linkPitch:       $('bpc-linkPitch'),\n    numElements:     $('bpc-numElements'),\n    elementDiameter: $('bpc-elementDiameter'),\n    preloadMode:     $('bpc-preloadMode'),\n    preloadClass:    $('bpc-preloadClass'),\n    preloadForce:    $('bpc-preloadForce'),\n    axialLoad:       $('bpc-axialLoad'),\n    speed:           $('bpc-speed'),\n    frictionFactor:  $('bpc-frictionFactor')\n  };\n\n  function fmt(val, decimals) {\n    decimals = decimals === undefined ? 1 : decimals;\n    if (!isFinite(val)) return '\u2014';\n    if (Math.abs(val) >= 10000) return val.toExponential(2);\n    return val.toFixed(decimals);\n  }\n\n  function estimatePitchDiameter(d) {\n    return d * 1.35;\n  }\n\n  function estimateElementDiameter(d) {\n    return 0.218 * d + 0.5;\n  }\n\n  function preloadFromClass(className, bore) {\n    var base = PRELOAD_BASE[className] || PRELOAD_BASE.medium;\n    return base * Math.pow(bore \/ REF_BORE, 1.5);\n  }\n\n  function stiffnessCoeff(alphaDeg, Z, Dw, dm) {\n    var alpha = alphaDeg * Math.PI \/ 180;\n    var gamma = (Dw * Math.cos(alpha)) \/ dm;\n    var denom = Math.pow(Math.max(1 - gamma * Math.cos(alpha), 0.01), 1.5);\n    var Kn = 1.72e5 * Math.pow(Z, 2 \/ 3) * Math.pow(Dw, 1 \/ 3) * Math.sin(alpha) \/ denom;\n    return Math.max(Kn, 1);\n  }\n\n  function deflectionFromForce(F, Kn, n) {\n    if (F <= 0) return 0;\n    return Math.pow(F \/ Kn, 1 \/ n);\n  }\n\n  function solveLoadRatio(Fa, Fp, n) {\n    if (Fa <= 0) return 0;\n    var target = Fa \/ Fp;\n    var f = function (x) {\n      return Math.pow(1 + x, n) - Math.pow(Math.max(1 - x, 0), n) - target;\n    };\n    var maxVal = Math.pow(2, n);\n    if (target >= maxVal - 1e-9) return 1;\n    var lo = 0, hi = 0.9999, i, mid;\n    for (i = 0; i < 60; i++) {\n      mid = (lo + hi) \/ 2;\n      if (f(mid) > 0) hi = mid;\n      else lo = mid;\n    }\n    return (lo + hi) \/ 2;\n  }\n\n  function positionPreloadSharing(Fp, Fa, n) {\n    var FaCrit = Math.pow(2, n) * Fp;\n    var x = solveLoadRatio(Fa, Fp, n);\n    var liftoff = x >= 1 - 1e-6;\n    var Fa1, Fa2;\n    if (liftoff) {\n      Fa1 = Math.pow(2, n) * Fp;\n      Fa2 = 0;\n    } else {\n      Fa1 = Fp * Math.pow(1 + x, n);\n      Fa2 = Fp * Math.pow(1 - x, n);\n    }\n    return { Fa1: Fa1, Fa2: Fa2, FaCrit: FaCrit, liftoff: liftoff, x: x };\n  }\n\n  function springPreloadSharing(Fp, Fa) {\n    var FaCrit = Fp;\n    var liftoff = Fa >= Fp;\n    return {\n      Fa1: Fp + Fa,\n      Fa2: liftoff ? 0 : Fp,\n      FaCrit: FaCrit,\n      liftoff: liftoff,\n      x: liftoff ? 1 : 0\n    };\n  }\n\n  function calcStiffness(Fa1, Fa2, delta1, delta2, Kn, n, method) {\n    if (method === 'spring') {\n      var activeF = Fa1;\n      var activeD = delta1 > 0 ? delta1 : deflectionFromForce(activeF, Kn, n);\n      return Math.max(n * activeF \/ Math.max(activeD, 1e-6), 0);\n    }\n    var k1 = Fa1 > 0 ? n * Fa1 \/ Math.max(delta1, 1e-6) : 0;\n    var k2 = Fa2 > 0 ? n * Fa2 \/ Math.max(delta2, 1e-6) : 0;\n    return k1 + k2;\n  }\n\n  function calcFrictionTorque(f0, Fp, dm, alphaDeg) {\n    var alpha = alphaDeg * Math.PI \/ 180;\n    return 0.5 * f0 * Fp * dm * 1e-3 * Math.tan(alpha);\n  }\n\n  function calcPowerLoss(Mp, rpm) {\n    return Mp * 2 * Math.PI * rpm \/ 60;\n  }\n\n  function validate() {\n    var valid = true;\n    var checks = [\n      { el: inputs.contactAngle, err: $('bpc-errAngle'), test: function (v) { return v > 0 && v <= 60; } },\n      { el: inputs.boreDiameter, err: $('bpc-errBore'), test: function (v) { return v > 0; } },\n      { el: inputs.pitchDiameter, err: $('bpc-errPitch'), test: function (v) { return v > 0; } },\n      { el: inputs.numElements, err: $('bpc-errZ'), test: function (v) { return v >= 1 && Number.isInteger(v); } },\n      { el: inputs.elementDiameter, err: $('bpc-errDw'), test: function (v) { return v > 0; } },\n      { el: inputs.axialLoad, err: $('bpc-errFa'), test: function (v) { return v >= 0; } },\n      { el: inputs.speed, err: $('bpc-errSpeed'), test: function (v) { return v >= 0; } }\n    ];\n\n    if (inputs.preloadMode.value === 'manual') {\n      checks.push({ el: inputs.preloadForce, err: $('bpc-errFp'), test: function (v) { return v >= 0; } });\n    }\n\n    checks.forEach(function (item) {\n      var v = parseFloat(item.el.value);\n      var ok = item.test(v);\n      item.el.classList.toggle('bpc-invalid', !ok);\n      item.err.classList.toggle('bpc-visible', !ok);\n      if (!ok) valid = false;\n    });\n\n    return valid;\n  }\n\n  function calculate() {\n    if (!validate()) return;\n\n    $('bpc-resultsPanel').classList.remove('bpc-hidden');\n\n    var alpha = parseFloat(inputs.contactAngle.value);\n    var bore = parseFloat(inputs.boreDiameter.value);\n    var dm = parseFloat(inputs.pitchDiameter.value);\n    var linkPitch = inputs.linkPitch.checked;\n    var Z = parseInt(inputs.numElements.value, 10);\n    var Dw = parseFloat(inputs.elementDiameter.value);\n    var Fa = parseFloat(inputs.axialLoad.value);\n    var rpm = parseFloat(inputs.speed.value);\n    var f0 = parseFloat(inputs.frictionFactor.value);\n\n    if (linkPitch) {\n      dm = estimatePitchDiameter(bore);\n      inputs.pitchDiameter.value = fmt(dm, 2);\n    }\n\n    var n = EXPONENT[state.bearingType];\n    var method = state.preloadMethod;\n    var Fp = inputs.preloadMode.value === 'class'\n      ? preloadFromClass(inputs.preloadClass.value, bore)\n      : parseFloat(inputs.preloadForce.value);\n\n    var Kn = stiffnessCoeff(alpha, Z, Dw, dm);\n    var deltaP = deflectionFromForce(Fp, Kn, n);\n    var sharing = method === 'position'\n      ? positionPreloadSharing(Fp, Fa, n)\n      : springPreloadSharing(Fp, Fa);\n\n    var Fa1 = sharing.Fa1;\n    var Fa2 = sharing.Fa2;\n    var FaCrit = sharing.FaCrit;\n    var liftoff = sharing.liftoff;\n\n    var delta1 = deflectionFromForce(Fa1, Kn, n);\n    var delta2 = deflectionFromForce(Fa2, Kn, n);\n    var Ka = calcStiffness(Fa1, Fa2, delta1, delta2, Kn, n, method);\n    var Ka0 = 2 * n * Fp \/ Math.max(deltaP, 1e-6);\n    var stiffRatio = Ka \/ Math.max(Ka0, 1e-6);\n    var Mp = calcFrictionTorque(f0, Fp, dm, alpha);\n    var power = calcPowerLoss(Mp, rpm);\n    var margin = FaCrit > 0 ? ((FaCrit - Fa) \/ FaCrit) * 100 : 100;\n\n    $('bpc-forceB1').textContent = fmt(Fa1, 0) + ' N';\n    $('bpc-forceB2').textContent = liftoff && Fa2 === 0 ? '0 N \u26a0' : fmt(Fa2, 0) + ' N';\n    $('bpc-displayFa').textContent = fmt(Fa, 0);\n\n    var maxForce = Math.max(Fa1, FaCrit, Fp, 1);\n    $('bpc-barB1').style.width = Math.min(100, (Fa1 \/ maxForce) * 100) + '%';\n    $('bpc-barB2').style.width = Math.min(100, (Fa2 \/ maxForce) * 100) + '%';\n\n    var b1 = $('bpc-bearing1');\n    var b2 = $('bpc-bearing2');\n    b1.className = 'bpc-bearing-block bpc-loaded';\n    if (liftoff) {\n      b2.className = 'bpc-bearing-block bpc-liftoff';\n    } else if (Fa2 < Fp * 0.8) {\n      b2.className = 'bpc-bearing-block bpc-unloaded';\n    } else {\n      b2.className = 'bpc-bearing-block';\n    }\n\n    $('bpc-outStiffness').textContent = fmt(Ka, 1);\n    $('bpc-outTorque').textContent = fmt(Mp, 4);\n    $('bpc-outPower').textContent = fmt(power, 2);\n    $('bpc-outMargin').textContent = fmt(margin, 1);\n    $('bpc-outStiffRatio').textContent = fmt(stiffRatio, 2);\n\n    var statusEl = $('bpc-outStatus');\n    var statusSub = $('bpc-outStatusSub');\n    if (liftoff) {\n      statusEl.innerHTML = '<span class=\"bpc-badge bpc-badge-danger\">Liftoff<\/span>';\n      statusSub.textContent = 'Bearing 2 unloaded \u2014 contact lost';\n    } else if (margin < 20) {\n      statusEl.innerHTML = '<span class=\"bpc-badge bpc-badge-warning\">Critical<\/span>';\n      statusSub.textContent = 'Approaching liftoff threshold';\n    } else {\n      statusEl.innerHTML = '<span class=\"bpc-badge bpc-badge-success\">Normal<\/span>';\n      statusSub.textContent = 'Both bearings loaded';\n    }\n\n    var banner = $('bpc-alertBanner');\n    banner.classList.add('bpc-visible');\n    if (liftoff) {\n      banner.className = 'bpc-alert-banner bpc-visible bpc-danger';\n      $('bpc-alertIcon').textContent = '\u26a0';\n      $('bpc-alertText').textContent =\n        'LIFTOFF DETECTED: F_a (' + fmt(Fa, 0) + ' N) \u2265 F_a,crit (' + fmt(FaCrit, 0) + ' N). ' +\n        'Unloaded bearing has lost raceway contact \u2014 risk of skidding, wear, and catastrophic failure.';\n    } else if (margin < 20) {\n      banner.className = 'bpc-alert-banner bpc-visible bpc-warning';\n      $('bpc-alertIcon').textContent = '\u26a1';\n      $('bpc-alertText').textContent =\n        'Warning: External load is ' + fmt(100 - margin, 0) + '% of critical liftoff load. ' +\n        'Consider increasing preload or reducing applied axial load.';\n    } else {\n      banner.className = 'bpc-alert-banner bpc-visible bpc-safe';\n      $('bpc-alertIcon').textContent = '\u2713';\n      $('bpc-alertText').textContent =\n        'System within safe range. Liftoff margin: ' + fmt(margin, 1) + '% ' +\n        '(F_a,crit = ' + fmt(FaCrit, 0) + ' N).';\n    }\n  }\n\n  function updateLinkedGeometry() {\n    if (!inputs.linkPitch.checked) return;\n    var d = parseFloat(inputs.boreDiameter.value);\n    if (d > 0) {\n      inputs.pitchDiameter.value = fmt(estimatePitchDiameter(d), 2);\n      inputs.elementDiameter.value = fmt(estimateElementDiameter(d), 3);\n    }\n  }\n\n  function bindEvents() {\n    $('bpc-calculateBtn').addEventListener('click', calculate);\n\n    root.querySelectorAll('input[name=\"bpc-preloadMethod\"]').forEach(function (radio) {\n      radio.addEventListener('change', function (e) {\n        state.preloadMethod = e.target.value;\n      });\n    });\n\n    root.querySelectorAll('#bpc-bearingTypeToggle .bpc-toggle-btn').forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        root.querySelectorAll('#bpc-bearingTypeToggle .bpc-toggle-btn').forEach(function (b) {\n          b.classList.remove('bpc-active');\n        });\n        btn.classList.add('bpc-active');\n        state.bearingType = btn.dataset.type;\n      });\n    });\n\n    inputs.preloadMode.addEventListener('change', function () {\n      var isClass = inputs.preloadMode.value === 'class';\n      $('bpc-preloadClassGroup').classList.toggle('bpc-hidden', !isClass);\n      $('bpc-preloadForceGroup').classList.toggle('bpc-hidden', isClass);\n    });\n\n    inputs.boreDiameter.addEventListener('input', updateLinkedGeometry);\n\n    inputs.linkPitch.addEventListener('change', function () {\n      inputs.pitchDiameter.readOnly = inputs.linkPitch.checked;\n      updateLinkedGeometry();\n    });\n  }\n\n  function init() {\n    inputs.pitchDiameter.readOnly = inputs.linkPitch.checked;\n    bindEvents();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>The Bearing Preload Calculator is a practical engineering tool designed to help determine the appropriate preload for bearing systems under different operating conditions. By entering&#8230;<\/p>","protected":false},"author":2,"featured_media":24622,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8520],"tags":[8567,2904,8570,8571],"class_list":["post-24621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mechanical-basic-component-design","tag-bearing-calculator","tag-bearing-design","tag-bearing-preload","tag-preload-analysis","pmpro-has-access"],"acf":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/08\/Bearing-Preload-Calculator.png","_links":{"self":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/comments?post=24621"}],"version-history":[{"count":2,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24621\/revisions"}],"predecessor-version":[{"id":24624,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24621\/revisions\/24624"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media\/24622"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media?parent=24621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/categories?post=24621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/tags?post=24621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}