{"id":74845,"date":"2025-12-14T15:44:42","date_gmt":"2025-12-14T15:44:42","guid":{"rendered":"https:\/\/www.harsle.com\/?page_id=74845"},"modified":"2025-12-17T05:24:06","modified_gmt":"2025-12-17T05:24:06","slug":"hydraulic-cylinder-diameter-calculator","status":"publish","type":"page","link":"https:\/\/www.harsle.com\/es\/hydraulic-cylinder-diameter-calculator\/","title":{"rendered":"Calculadora de di\u00e1metro de cilindro hidr\u00e1ulico"},"content":{"rendered":"<style>\n#hc-calculator-wrapper {\n  \/* Use system fonts for cross-platform consistency *\/\n  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  background-color: transparent;\n  color: #334155;\n  line-height: 1.6;\n  width: 100%;\n  max-width: 1100px;\n  margin: 0 auto;\n  box-sizing: border-box;\n}\n#hc-calculator-wrapper * {\n  box-sizing: border-box;\n}\n\/* Define color variables and styles *\/\n#hc-calculator-wrapper {\n  --hc-card-bg: #ffffff;\n  --hc-accent: #0f172a;\n  --hc-text-light: #64748b;\n  --hc-border: #e2e8f0;\n  --hc-primary: #2563eb;\n  --hc-primary-hover: #1d4ed8;\n  --hc-radius: 10px;\n  --hc-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n}\n#hc-calculator-wrapper .hc-header {\n  text-align: center;\n  margin-bottom: 15px;\n  padding-bottom: 10px;\n}\n#hc-calculator-wrapper .hc-intro {\n  color: var(--hc-text-light);\n  font-size: 1.1rem;\n  max-width: 800px;\n  margin: 0 auto;\n}\n#hc-calculator-wrapper .hc-card {\n  background-color: var(--hc-card-bg);\n  border-radius: var(--hc-radius);\n  box-shadow: var(--hc-shadow);\n  border: 1px solid var(--hc-border);\n  overflow: hidden;\n  margin-bottom: 60px;\n}\n#hc-calculator-wrapper .hc-card-body {\n  padding: 30px;\n}\n@media (min-width: 640px) {\n  #hc-calculator-wrapper .hc-card-body {\n    padding: 40px;\n  }\n}\n#hc-calculator-wrapper .hc-form-item {\n  margin-bottom: 24px;\n}\n#hc-calculator-wrapper .hc-label {\n  display: block;\n  font-size: 1rem;\n  font-weight: 700;\n  color: var(--hc-accent);\n  margin-bottom: 6px;\n  line-height: 1.4;\n}\n#hc-calculator-wrapper .hc-help-text {\n  display: block;\n  font-size: 0.875rem;\n  color: var(--hc-text-light);\n  margin-bottom: 10px;\n  font-style: normal;\n}\n#hc-calculator-wrapper input[type=\"number\"],\n#hc-calculator-wrapper select {\n  width: 100%;\n  padding: 14px 16px;\n  font-size: 1rem;\n  border: 2px solid #e2e8f0;\n  border-radius: 8px;\n  transition: all 0.2s ease;\n  background-color: #f8fafc;\n  color: var(--hc-accent);\n  font-weight: 500;\n  height: auto;\n  margin: 0;\n  box-shadow: none;\n}\n#hc-calculator-wrapper input[type=\"number\"]:focus,\n#hc-calculator-wrapper select:focus {\n  border-color: var(--hc-primary);\n  background-color: #ffffff;\n  outline: none;\n  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.15);\n}\n#hc-calculator-wrapper .hc-toggle-container {\n  display: flex !important;\n  flex-direction: row !important;\n  background-color: #f1f5f9;\n  border-radius: 8px;\n  padding: 4px;\n  border: 1px solid #cbd5e1;\n  width: 100%;\n}\n#hc-calculator-wrapper .hc-toggle-option {\n  flex: 1 1 0% !important;\n  position: relative;\n  text-align: center;\n  cursor: pointer;\n  margin: 0 !important;\n  display: block !important;\n}\n#hc-calculator-wrapper .hc-toggle-option input {\n  position: absolute;\n  opacity: 0;\n  width: 0;\n  height: 0;\n}\n#hc-calculator-wrapper .hc-toggle-btn {\n  display: block;\n  width: 100%;\n  padding: 10px 12px;\n  border-radius: 6px;\n  font-size: 0.95rem;\n  font-weight: 600;\n  color: var(--hc-text-light);\n  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n  background-color: transparent;\n  text-align: center;\n}\n#hc-calculator-wrapper .hc-toggle-option input:checked + .hc-toggle-btn {\n  background-color: #ffffff;\n  color: var(--hc-primary);\n  box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n  transform: scale(1.02);\n}\n#hc-calculator-wrapper .hc-toggle-option:hover .hc-toggle-btn {\n  color: var(--hc-accent);\n}\n#hc-calculator-wrapper .hc-btn-row {\n  margin-top: 35px;\n}\n#hc-calculator-wrapper .hc-btn-calc {\n  width: 100%;\n  padding: 16px;\n  font-size: 1.1rem;\n  font-weight: 700;\n  color: #ffffff;\n  border: none;\n  border-radius: 8px;\n  cursor: pointer;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  background: linear-gradient(145deg, #3b82f6, #2563eb);\n  box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.4);\n  transition: all 0.2s ease;\n  margin: 0;\n  position: relative;\n  z-index: 10;\n  pointer-events: auto;\n}\n#hc-calculator-wrapper .hc-btn-calc:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.5);\n  background: linear-gradient(145deg, #60a5fa, #2563eb);\n}\n#hc-calculator-wrapper #hc-results-card {\n  display: none;\n  background-color: #f1f5f9;\n  border-top: 1px solid var(--hc-border);\n  padding: 30px;\n}\n@media (min-width: 640px) {\n  #hc-calculator-wrapper #hc-results-card {\n    padding: 40px;\n  }\n}\n#hc-calculator-wrapper .hc-results-header h3 {\n  margin: 0 0 30px 0;\n  text-align: center;\n  color: var(--hc-accent);\n  font-size: 1.5rem;\n  line-height: 1.2;\n}\n#hc-calculator-wrapper .hc-results-grid {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 20px;\n}\n@media (min-width: 640px) {\n  #hc-calculator-wrapper .hc-results-grid {\n    grid-template-columns: repeat(3, 1fr);\n  }\n}\n#hc-calculator-wrapper .hc-result-box {\n  background: #ffffff;\n  padding: 25px 20px;\n  border-radius: 12px;\n  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);\n  text-align: center;\n  border: 1px solid rgba(0,0,0,0.05);\n  transition: transform 0.2s;\n}\n#hc-calculator-wrapper .hc-result-box:hover {\n  transform: translateY(-3px);\n  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);\n}\n#hc-calculator-wrapper .hc-result-box.highlight {\n  border: 2px solid var(--hc-primary);\n  background-color: #f0f9ff;\n}\n#hc-calculator-wrapper .hc-result-label {\n  font-size: 0.75rem;\n  text-transform: uppercase;\n  letter-spacing: 1px;\n  color: var(--hc-text-light);\n  margin-bottom: 12px;\n  font-weight: 700;\n  display: block;\n}\n#hc-calculator-wrapper .hc-result-value {\n  font-size: 1.5rem;\n  font-weight: 800;\n  color: var(--hc-accent);\n  line-height: 1.2;\n  margin-bottom: 5px;\n  display: block;\n}\n#hc-calculator-wrapper .hc-result-sub {\n  font-size: 0.85rem;\n  color: var(--hc-text-light);\n  display: block;\n}\n#hc-calculator-wrapper .hc-error-msg {\n  background-color: #fee2e2;\n  color: #991b1b;\n  padding: 15px;\n  border-radius: 8px;\n  font-weight: 500;\n  font-size: 0.95rem;\n  display: none;\n  margin-bottom: 25px;\n  border-left: 5px solid #ef4444;\n}\n#hc-calculator-wrapper .hc-info-tip {\n  background-color: #f0fdf4;\n  color: #166534;\n  padding: 15px;\n  border-radius: 8px;\n  font-size: 0.95rem;\n  margin-top: 25px;\n  text-align: center;\n  border: 1px solid #bbf7d0;\n}\n#hc-calculator-wrapper .hc-content-block {\n  background-color: #ffffff;\n  padding: 30px;\n  border-radius: var(--hc-radius);\n  box-shadow: var(--hc-shadow);\n  border: 1px solid var(--hc-border);\n  margin-bottom: 40px;\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n@media (min-width: 640px) {\n  #hc-calculator-wrapper .hc-content-block {\n    padding: 40px;\n  }\n}\n#hc-calculator-wrapper .hc-content-block:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 15px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.01);\n}\n#hc-calculator-wrapper .hc-content-block h2 {\n  font-size: 1.8rem;\n  color: var(--hc-accent);\n  margin-top: 0;\n  margin-bottom: 25px;\n  padding-bottom: 20px;\n  border-bottom: 1px solid #f1f5f9;\n  line-height: 1.3;\n}\n#hc-calculator-wrapper .hc-content-block h3 {\n  font-size: 1.4rem;\n  color: var(--hc-accent);\n  margin-top: 35px;\n  margin-bottom: 15px;\n  font-weight: 700;\n  line-height: 1.3;\n}\n#hc-calculator-wrapper .hc-content-block p {\n  margin-bottom: 1.5em;\n  font-size: 1.05rem;\n}\n#hc-calculator-wrapper .hc-content-block ul {\n  padding-left: 20px;\n  margin-bottom: 2em;\n}\n#hc-calculator-wrapper .hc-content-block li {\n  margin-bottom: 0.8em;\n  font-size: 1.05rem;\n}\n#hc-calculator-wrapper .hc-table-wrapper {\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  margin: 30px 0;\n  border-radius: 8px;\n}\n#hc-calculator-wrapper .hc-tech-table {\n  width: 100%;\n  min-width: 600px;\n  border-collapse: separate;\n  border-spacing: 0;\n  margin: 0;\n  font-size: 0.95rem;\n  border-radius: 8px;\n  overflow: hidden;\n  border: 1px solid var(--hc-border);\n}\n#hc-calculator-wrapper .hc-tech-table th, \n#hc-calculator-wrapper .hc-tech-table td {\n  padding: 12px 15px;\n  text-align: left;\n  border-bottom: 1px solid var(--hc-border);\n  white-space: nowrap;\n}\n@media (min-width: 640px) {\n  #hc-calculator-wrapper .hc-tech-table th, \n  #hc-calculator-wrapper .hc-tech-table td {\n    padding: 16px 20px;\n    white-space: normal;\n  }\n}\n#hc-calculator-wrapper .hc-tech-table th {\n  background-color: #f1f5f9;\n  font-weight: 700;\n  color: var(--hc-accent);\n  text-transform: uppercase;\n  font-size: 0.85rem;\n  letter-spacing: 0.05em;\n  position: sticky;\n  left: 0;\n  z-index: 1;\n}\n#hc-calculator-wrapper .hc-tech-table th:first-child {\n  background-color: #f1f5f9;\n}\n#hc-calculator-wrapper .hc-tech-table td:first-child {\n  position: sticky;\n  left: 0;\n  background-color: #ffffff;\n  z-index: 0;\n}\n#hc-calculator-wrapper .hc-tech-table tr:last-child td {\n  border-bottom: none;\n}\n@media (max-width: 639px) {\n  #hc-calculator-wrapper .hc-tech-table th:first-child,\n  #hc-calculator-wrapper .hc-tech-table td:first-child {\n    white-space: normal;\n    min-width: 120px;\n    max-width: 150px;\n  }\n}\n#hc-calculator-wrapper .hc-faq-item {\n  background-color: #f8fafc;\n  border-radius: 8px;\n  padding: 25px;\n  margin-bottom: 20px;\n  border: 1px solid var(--hc-border);\n  transition: border-color 0.2s;\n}\n#hc-calculator-wrapper .hc-faq-item:hover {\n  border-color: var(--hc-primary);\n}\n#hc-calculator-wrapper .hc-faq-question {\n  font-weight: 7-00;\n  font-size: 1.15rem;\n  color: var(--hc-accent);\n  margin-bottom: 12px;\n}\n#hc-calculator-wrapper .hc-faq-answer {\n  color: var(--hc-text-light);\n  font-size: 1rem;\n}\n#hc-calculator-wrapper p:last-child {\n  margin-bottom: 0;\n}\n<\/style>\n\n<div id=\"hc-calculator-wrapper\">\n    <header class=\"hc-header\">\n        <p class=\"hc-intro\">\n            Enter required force and system pressure to get initial bore and rod diameter suggestions. Results are rounded to catalog-friendly values for quick pre-design estimates.\n        <\/p>\n    <\/header>\n\n    <div class=\"hc-card\">\n        <div class=\"hc-card-body\">\n            \n            <div id=\"hc-errorMsg\" class=\"hc-error-msg\"><\/div>\n\n            <div id=\"hc-calcForm\">\n                \n                <div class=\"hc-form-item\">\n                    <label class=\"hc-label\">Force Unit Preference<\/label>\n                    <span class=\"hc-help-text\">Choose the unit you will use for the input force.<\/span>\n                    <div class=\"hc-toggle-container\">\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"forceUnit\" value=\"ton\" checked> \n                            <span class=\"hc-toggle-btn\">Ton (Metric)<\/span>\n                        <\/label>\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"forceUnit\" value=\"kN\"> \n                            <span class=\"hc-toggle-btn\">kN<\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n                \n                <!-- System Pressure Toggle Buttons -->\n                <div class=\"hc-form-item\">\n                    <label class=\"hc-label\">System Pressure (MPa)<\/label>\n                    <span class=\"hc-help-text\">Select the rated working pressure of your hydraulic pump.<\/span>\n                    <div class=\"hc-toggle-container\" id=\"hc-pressure-toggle\">\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"systemPressure\" value=\"16\"> \n                            <span class=\"hc-toggle-btn\">16 MPa<\/span>\n                        <\/label>\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"systemPressure\" value=\"21\"> \n                            <span class=\"hc-toggle-btn\">21 MPa<\/span>\n                        <\/label>\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"systemPressure\" value=\"25\" checked> \n                            <span class=\"hc-toggle-btn\">25 MPa<\/span>\n                        <\/label>\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"systemPressure\" value=\"31.5\"> \n                            <span class=\"hc-toggle-btn\">31.5 MPa<\/span>\n                        <\/label>\n                        <label class=\"hc-toggle-option\">\n                            <input type=\"radio\" name=\"systemPressure\" value=\"40\"> \n                            <span class=\"hc-toggle-btn\">40 MPa<\/span>\n                        <\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"hc-form-item\">\n                    <label for=\"hc-safetyFactor\" class=\"hc-label\">Safety Factor<\/label>\n                    <span class=\"hc-help-text\">Multiplier for reliability (Design Force \/ Actual Load). Recommended: 1.3 - 1.5.<\/span>\n                    <input type=\"number\" id=\"hc-safetyFactor\" step=\"0.1\" min=\"1\" value=\"1.3\" required>\n                <\/div>\n\n                <div class=\"hc-form-item\">\n                    <label for=\"hc-requiredForce\" class=\"hc-label\">Required Push Force (Extend)<\/label>\n                    <span class=\"hc-help-text\">The actual load force needed for the application in [<span id=\"hc-forceUnitLabel\">Ton<\/span>].<\/span>\n                    <input type=\"number\" id=\"hc-requiredForce\" step=\"any\" min=\"0\" required>\n                <\/div>\n\n                <div class=\"hc-form-item\">\n                    <label for=\"hc-returnForce\" class=\"hc-label\">Desired Return Force (Retract, Optional)<\/label>\n                    <span class=\"hc-help-text\">Required pull\/retraction force in [<span id=\"hc-returnForceUnitLabel\">Ton<\/span>]. Used for rod sizing.<\/span>\n                    <input type=\"number\" id=\"hc-returnForce\" step=\"any\" min=\"0\">\n                <\/div>\n\n                <div class=\"hc-btn-row\">\n                    <!-- Event Listener will be bound in JavaScript using the Capturing phase -->\n                    <button type=\"button\" class=\"hc-btn-calc\" id=\"hc-calc-btn\">Calculate<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div id=\"hc-results-card\">\n            <div class=\"hc-results-header\">\n                <h3>Calculation Results<\/h3>\n            <\/div>\n            \n            <div class=\"hc-results-grid\">\n                <div class=\"hc-result-box highlight\">\n                    <span class=\"hc-result-label\">Recommended Bore (D)<\/span>\n                    <span class=\"hc-result-value\" id=\"hc-res-bore-diam\">-<\/span>\n                    <span class=\"hc-result-sub\">Piston Area: <span id=\"hc-res-piston-area\">-<\/span><\/span>\n                <\/div>\n\n                <div class=\"hc-result-box highlight\">\n                    <span class=\"hc-result-label\">Recommended Rod (d)<\/span>\n                    <span class=\"hc-result-value\" id=\"hc-res-rod-emp\">-<\/span>\n                    <span class=\"hc-result-sub\">Ratio \u03c6 \u2248 1.46<\/span>\n                <\/div>\n\n        <div class=\"hc-result-box\">\n                    <span class=\"hc-result-label\">Design Force Capacity<\/span>\n                    <span class=\"hc-result-value\" id=\"hc-res-design-force\">-<\/span>\n                    <span class=\"hc-result-sub\" id=\"hc-res-design-note\">Including Safety Factor<\/span>\n                <\/div>\n\n                <div class=\"hc-result-box\">\n                    <span class=\"hc-result-label\">Theoretical Push Force<\/span>\n                    <span class=\"hc-result-value\" id=\"hc-res-push-force\">-<\/span>\n                    <span class=\"hc-result-sub\">At Selected Pressure<\/span>\n                <\/div>\n\n                <div class=\"hc-result-box\" id=\"hc-rod-calc-box\" style=\"display:none;\">\n                    <span class=\"hc-result-label\">Rod for Return Load<\/span>\n                    <span class=\"hc-result-value\" id=\"hc-res-rod-calc\">-<\/span>\n                    <span class=\"hc-result-sub\">Min. Required Diameter<\/span>\n                <\/div>\n\n                <div class=\"hc-result-box\" id=\"hc-return-cap-box\" style=\"display:none;\">\n                    <span class=\"hc-result-label\">Return Force Capacity<\/span>\n                    <span class=\"hc-result-value\" id=\"hc-res-return-force-val\">-<\/span>\n                    <span class=\"hc-result-sub\">At Selected Pressure<\/span>\n                <\/div>\n            <\/div>\n\n            <div id=\"hc-rod-error-msg\" class=\"hc-error-msg\" style=\"margin-top: 20px;\"><\/div>\n\n            <div id=\"hc-rod-tip-msg\" class=\"hc-info-tip\">\n                <strong>Pro Tip:<\/strong> Enter a \"Desired Return Force\" above to calculate the precise rod diameter required for pulling loads.\n            <\/div>\n\n        <\/div>\n    <\/div> <!-- Closes hc-card -->\n<\/div> <!-- CLOSES hc-calculator-wrapper -->\n\n<script>\n\/* Define constants: Gravity acceleration (G) for Ton\/kN conversion and \na practical safety factor multiplier to account for system losses. *\/\nvar G = 9.81;\nvar PRACTICAL_SF_FACTOR = 0.77;\nvar initialized = false;\n\n\/* Simplified DOM operations *\/\nfunction getEl(id) { return document.getElementById(id); }\nfunction setText(id, text) { var el = getEl(id); if (el) el.textContent = text; }\nfunction setDisplay(id, display) { var el = getEl(id); if (el) el.style.display = display; }\nfunction rnd(val) { return Math.round(val); }\n\n\/* Update force unit labels (Ton\/kN) *\/\nfunction updateLabels() {\n  var wrapper = getEl('hc-calculator-wrapper');\n  if (!wrapper) return;\n  \/* Find the checked radio button for force unit *\/\n  var unitInput = wrapper.querySelector('input[name=\"forceUnit\"]:checked');\n  if (!unitInput) return;\n  var displayUnit = unitInput.value === 'ton' ? 'Ton' : 'kN';\n  setText('hc-forceUnitLabel', displayUnit);\n  setText('hc-returnForceUnitLabel', displayUnit);\n}\n\n\/* Calculation logic *\/\nfunction calculate(e) {\n  \/\/ --- DEBUGGING STEP 1: Check if this function is reached ---\n  console.log(\"Calculate function executed. Checking inputs...\");\n  \n  if (e && e.preventDefault) e.preventDefault();\n  if (e && e.stopPropagation) e.stopPropagation();\n  \n  try {\n    var errorEl = getEl('hc-errorMsg');\n    var rodErrorEl = getEl('hc-rod-error-msg');\n    if (errorEl) errorEl.style.display = 'none';\n    if (rodErrorEl) rodErrorEl.style.display = 'none';\n\n    var wrapper = getEl('hc-calculator-wrapper');\n    if (!wrapper) {\n      console.error('Calculator wrapper not found.');\n      return false;\n    }\n\n    var requiredForceEl = getEl('hc-requiredForce');\n    \/* Get pressure value from the checked radio toggle button *\/\n    var pressureUnitEl = wrapper.querySelector('input[name=\"systemPressure\"]:checked');\n    var safetyFactorEl = getEl('hc-safetyFactor');\n    var returnForceEl = getEl('hc-returnForce');\n    var forceUnitEl = wrapper.querySelector('input[name=\"forceUnit\"]:checked');\n\n    \/* Check required fields *\/\n    if (!requiredForceEl || !pressureUnitEl || !safetyFactorEl || !forceUnitEl) {\n      if (errorEl) {\n        errorEl.textContent = 'Please fill in all required fields.';\n        errorEl.style.display = 'block';\n      }\n      \/\/ --- DEBUGGING STEP 2: Log if validation fails ---\n      console.log(\"Validation failed: Missing required fields.\");\n      return false;\n    }\n\n    var reqForce = parseFloat(requiredForceEl.value);\n    var unit = forceUnitEl.value;\n    \/* Get pressure value *\/\n    var pressure = parseFloat(pressureUnitEl.value); \n    var sf = parseFloat(safetyFactorEl.value);\n    var retForce = returnForceEl && returnForceEl.value ? parseFloat(returnForceEl.value) : null;\n\n    if (isNaN(reqForce) || reqForce <= 0) {\n      if (errorEl) {\n        errorEl.textContent = 'Please enter a valid positive number for Required Push Force.';\n        errorEl.style.display = 'block';\n      }\n      console.log(\"Validation failed: Required Force is invalid.\");\n      return false;\n    }\n    \n    \/\/ --- DEBUGGING STEP 3: Log input values before calculation ---\n    console.log(\"Inputs valid. Force:\", reqForce, \"Unit:\", unit, \"Pressure:\", pressure, \"SF:\", sf);\n\n    \/* 1. Convert input force to kN *\/\n    var fInputKN = (unit === 'ton') ? reqForce * G : reqForce;\n    \n    \/* 2. Calculate design force (with practical safety factor) *\/\n    var effSF = Math.max(1, sf * PRACTICAL_SF_FACTOR);\n    var fDesignKN = fInputKN * effSF;\n    var fDesignTon = fDesignKN \/ G;\n\n    \/* 3. Calculate Piston Area (mm\u00b2) *\/\n    var aPistonMM2 = (fDesignKN * 1000) \/ pressure;\n    \n    \/* 4. Calculate Bore Diameter (mm) *\/\n    var dBoreMM = Math.sqrt((4 * aPistonMM2) \/ Math.PI);\n    var aPistonCM2 = aPistonMM2 \/ 100; \/* Convert to cm\u00b2 for display *\/\n\n    \/* 5. Theoretical Push Force (for result display) *\/\n    var fPushKN = (aPistonMM2 * pressure) \/ 1000;\n    var fPushTon = fPushKN \/ G;\n    \n    \/* 6. Empirical Rod Diameter (approx 0.6 * Bore) *\/\n    var dRodEmpMM = 0.6 * dBoreMM;\n\n    var showRod = false;\n    var dRodCalcMM = 0;\n    var fRetTon = 0;\n\n    \/* 7. Handle Return Force (Optional) *\/\n    if (retForce !== null && retForce > 0) {\n      var fRetKNInput = (unit === 'ton') ? retForce * G : retForce;\n      var aAnnulusMM2 = (fRetKNInput * 1000) \/ pressure;\n      var aRodMM2 = aPistonMM2 - aAnnulusMM2;\n\n      if (aRodMM2 <= 0) {\n        \/* Annulus area too small\/negative *\/\n        if (rodErrorEl) {\n          rodErrorEl.textContent = 'Error: Desired Return Force is too high, or system pressure is too low, for the required bore size.';\n          errorEl.style.display = 'block'; \/\/ Fixed error var name\n        }\n      } else {\n        \/* Calculate Rod Diameter *\/\n        dRodCalcMM = Math.sqrt((4 * aRodMM2) \/ Math.PI);\n        \/* Calculate theoretical return force for this rod size *\/\n        var fRetKN = ((aPistonMM2 - aRodMM2) * pressure) \/ 1000;\n        fRetTon = fRetKN \/ G;\n        showRod = true;\n      }\n    }\n\n    \/* 8. Update results display *\/\n    setText('hc-res-design-force', rnd(fDesignTon) + ' T \/ ' + rnd(fDesignKN) + ' kN');\n    setText('hc-res-design-note', 'SF: ' + effSF.toFixed(2));\n    setText('hc-res-bore-diam', rnd(dBoreMM) + ' mm');\n    setText('hc-res-piston-area', rnd(aPistonCM2) + ' cm\u00b2');\n    setText('hc-res-push-force', rnd(fPushTon) + ' T');\n    setText('hc-res-rod-emp', rnd(dRodEmpMM) + ' mm');\n\n    \/* Update return force result boxes *\/\n    if (showRod) {\n      setDisplay('hc-rod-calc-box', 'block');\n      setDisplay('hc-return-cap-box', 'block');\n      setDisplay('hc-rod-tip-msg', 'none');\n      setText('hc-res-rod-calc', rnd(dRodCalcMM) + ' mm');\n      setText('hc-res-return-force-val', rnd(fRetTon) + ' T');\n    } else {\n      setDisplay('hc-rod-calc-box', 'none');\n      setDisplay('hc-return-cap-box', 'none');\n      setDisplay('hc-rod-tip-msg', 'block');\n    }\n\n    var resCard = getEl('hc-results-card');\n    if (resCard) {\n      resCard.style.display = 'block';\n      \/* Scroll to results area *\/\n      setTimeout(function() {\n        resCard.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n      }, 100);\n    }\n    \/\/ --- DEBUGGING STEP 4: Log successful completion ---\n    console.log(\"Calculation and result display completed successfully.\");\n    \n  } catch (err) {\n    \/* Log error for debugging *\/\n    console.error('Calculation error: \u8ba1\u7b97\u53d1\u751f\u9519\u8bef: ', err); \n    var errorEl = getEl('hc-errorMsg');\n    if (errorEl) {\n       errorEl.textContent = 'A calculation error occurred. Please check your inputs. Error: ' + err.message;\n       errorEl.style.display = 'block';\n    }\n  }\n  return false;\n}\n\n\/* Event binding function *\/\nfunction bindEvents() {\n  var btn = document.getElementById('hc-calc-btn');\n  \n  if (btn && !btn.getAttribute('data-hc-bound')) {\n    btn.setAttribute('data-hc-bound', 'true');\n    \/* FIX: Use CAPTURING phase (true) to bypass WP event blocking, which is key. *\/\n    btn.addEventListener('click', calculate, true);\n    \n    \/* Stop propagation in the capturing phase to prevent WP theme\/plugin code interference *\/\n    btn.addEventListener('mousedown', function(e) {\n      e.stopPropagation();\n    }, true); \n    \n    console.log(\"Event bound successfully to #hc-calc-btn in Capturing phase.\");\n  } else if (btn) {\n      console.log(\"Button already bound.\");\n  } else {\n      console.log(\"Error: Calculate button not found on bindEvents call.\");\n  }\n  \n  \/* Bind force unit toggle events (standard bubbling is fine here) *\/\n  var forceRadios = document.querySelectorAll('input[name=\"forceUnit\"]');\n  for (var i = 0; i < forceRadios.length; i++) {\n    if (!forceRadios[i].getAttribute('data-hc-bound')) {\n      forceRadios[i].setAttribute('data-hc-bound', 'true');\n      forceRadios[i].addEventListener('change', updateLabels);\n    }\n  }\n}\n\n\/* Initialization function *\/\nfunction init() {\n  if (initialized) return;\n  initialized = true;\n  \n  bindEvents();\n  updateLabels();\n  \n  console.log(\"Hydraulic Calculator Initialization (init) completed.\");\n}\n\n\n\/* FIX: Use the most stable, standard DOMContentLoaded event listener, but wrap init() in a timeout \njust in case the binding takes a moment. *\/\ndocument.addEventListener('DOMContentLoaded', function() {\n    setTimeout(init, 50); \/\/ Small delay for maximum readiness\n});\n; \/\/ <--- FINAL SAFETY SEMICOLON HACK\n<\/script>\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>Hydraulic Cylinder Sizing Documentation<\/title>\n<style>\n\/* \u4ec5\u4fdd\u7559\u6587\u6863\u548c\u8868\u683c\u76f8\u5173\u7684 CSS \u6837\u5f0f *\/\n#hc-documentation-wrapper {\n  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n  color: #334155;\n  line-height: 1.6;\n  width: 100%;\n  max-width: 1100px;\n  margin: 0 auto;\n  box-sizing: border-box;\n  \/* \u786e\u4fdd\u6587\u6863\u533a\u57df\u7684\u80cc\u666f\u4e0d\u4f1a\u548c\u4e3b\u9875\u9762\u51b2\u7a81 *\/\n  background-color: transparent; \n}\n#hc-documentation-wrapper * {\n  box-sizing: border-box;\n}\n\n#hc-documentation-wrapper {\n  --hc-accent: #0f172a;\n  --hc-text-light: #64748b;\n  --hc-border: #e2e8f0;\n  --hc-primary: #2563eb;\n  --hc-radius: 10px;\n  --hc-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n}\n\n#hc-documentation-wrapper .hc-content-block {\n  background-color: #ffffff;\n  padding: 30px;\n  border-radius: var(--hc-radius);\n  box-shadow: var(--hc-shadow);\n  border: 1px solid var(--hc-border);\n  margin-bottom: 40px;\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n@media (min-width: 640px) {\n  #hc-documentation-wrapper .hc-content-block {\n    padding: 40px;\n  }\n}\n#hc-documentation-wrapper .hc-content-block:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 15px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.01);\n}\n#hc-documentation-wrapper .hc-content-block h2 {\n  font-size: 1.8rem;\n  color: var(--hc-accent);\n  margin-top: 0;\n  margin-bottom: 25px;\n  padding-bottom: 20px;\n  border-bottom: 1px solid #f1f5f9;\n  line-height: 1.3;\n}\n#hc-documentation-wrapper .hc-content-block h3 {\n  font-size: 1.4rem;\n  color: var(--hc-accent);\n  margin-top: 35px;\n  margin-bottom: 15px;\n  font-weight: 700;\n  line-height: 1.3;\n}\n#hc-documentation-wrapper .hc-content-block p {\n  margin-bottom: 1.5em;\n  font-size: 1.05rem;\n}\n#hc-documentation-wrapper .hc-content-block ul {\n  padding-left: 20px;\n  margin-bottom: 2em;\n}\n#hc-documentation-wrapper .hc-content-block li {\n  margin-bottom: 0.8em;\n  font-size: 1.05rem;\n}\n#hc-documentation-wrapper .hc-table-wrapper {\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n  margin: 30px 0;\n  border-radius: 8px;\n}\n#hc-documentation-wrapper .hc-tech-table {\n  width: 100%;\n  min-width: 600px;\n  border-collapse: separate;\n  border-spacing: 0;\n  margin: 0;\n  font-size: 0.95rem;\n  border-radius: 8px;\n  overflow: hidden;\n  border: 1px solid var(--hc-border);\n}\n#hc-documentation-wrapper .hc-tech-table th, \n#hc-documentation-wrapper .hc-tech-table td {\n  padding: 12px 15px;\n  text-align: left;\n  border-bottom: 1px solid var(--hc-border);\n  white-space: nowrap;\n}\n@media (min-width: 640px) {\n  #hc-documentation-wrapper .hc-tech-table th, \n  #hc-documentation-wrapper .hc-tech-table td {\n    padding: 16px 20px;\n    white-space: normal;\n  }\n}\n#hc-documentation-wrapper .hc-tech-table th {\n  background-color: #f1f5f9;\n  font-weight: 700;\n  color: var(--hc-accent);\n  text-transform: uppercase;\n  font-size: 0.85rem;\n  letter-spacing: 0.05em;\n  position: sticky;\n  left: 0;\n  z-index: 1;\n}\n#hc-documentation-wrapper .hc-tech-table th:first-child {\n  background-color: #f1f5f9;\n}\n#hc-documentation-wrapper .hc-tech-table td:first-child {\n  position: sticky;\n  left: 0;\n  background-color: #ffffff;\n  z-index: 0;\n}\n#hc-documentation-wrapper .hc-tech-table tr:last-child td {\n  border-bottom: none;\n}\n@media (max-width: 639px) {\n  #hc-documentation-wrapper .hc-tech-table th:first-child,\n  #hc-documentation-wrapper .hc-tech-table td:first-child {\n    white-space: normal;\n    min-width: 120px;\n    max-width: 150px;\n  }\n}\n#hc-documentation-wrapper .hc-faq-item {\n  background-color: #f8fafc;\n  border-radius: 8px;\n  padding: 25px;\n  margin-bottom: 20px;\n  border: 1px solid var(--hc-border);\n  transition: border-color 0.2s;\n}\n#hc-documentation-wrapper .hc-faq-item:hover {\n  border-color: var(--hc-primary);\n}\n#hc-documentation-wrapper .hc-faq-question {\n  font-weight: 700; \/* FIX: Changed 7-00 to 700 *\/\n  font-size: 1.15rem;\n  color: var(--hc-accent);\n  margin-bottom: 12px;\n}\n#hc-documentation-wrapper .hc-faq-answer {\n  color: var(--hc-text-light);\n  font-size: 1rem;\n}\n#hc-documentation-wrapper p:last-child {\n  margin-bottom: 0;\n}\n<\/style>\n<\/head>\n<body>\n\n<div id=\"hc-documentation-wrapper\">\n\n    <div class=\"hc-content-block\">\n        <h2>Comprehensive Guide to Hydraulic Cylinder Sizing<\/h2>\n        <p>\n            Properly sizing a hydraulic cylinder is the foundation of any reliable hydraulic system. It ensures that the machinery can handle the required loads without excessive stress, overheating, or premature failure. This guide breaks down the core concepts behind our calculator to help you make informed engineering decisions.\n        <\/p>\n        \n        <h3>1. The Fundamental Physics (Pascal&#8217;s Law)<\/h3>\n        <p>\n            Hydraulic power relies on Pascal&#8217;s Law, which states that pressure applied to a confined fluid is transmitted undiminished in every direction. In a cylinder, this relationship is defined by the formula: <strong>F = P &times; A<\/strong>.\n        <\/p>\n        <p>Where:<\/p>\n        <ul>\n            <li><strong>F (Force):<\/strong> The force the cylinder must exert (measured in Newtons or kN).<\/li>\n            <li><strong>P (Pressure):<\/strong> The hydraulic system pressure (measured in MPa or bar).<\/li>\n            <li><strong>A (Area):<\/strong> The effective area the pressure acts upon (mm<sup>2<\/sup>).<\/li>\n        <\/ul>\n        <p>\n            To find the required bore diameter, we reverse this formula:\n        <\/p>\n        <ul>\n            <li>First, determine the <strong>Design Force<\/strong> by multiplying your actual load by a safety factor.<\/li>\n            <li>Next, calculate the required <strong>Piston Area<\/strong>: A = Design Force \/ System Pressure (A = F\/P).<\/li>\n            <li>Finally, convert that Area into a <strong>Diameter<\/strong>: D = &radic;(4A \/ &pi;).<\/li>\n        <\/ul>\n\n        <h3>2. Why Safety Factors Matter<\/h3>\n        <p>\n            A &#8220;Safety Factor&#8221; is a multiplier used to account for uncertainties in the design process. In hydraulics, theoretical force is never equal to practical force due to several factors:\n        <\/p>\n        <ul>\n            <li><strong>Seal Friction:<\/strong> Hydraulic seals (piston and rod seals) create friction against the cylinder walls, typically consuming 5-10% of the effective force.<\/li>\n            <li><strong>Back Pressure:<\/strong> Restrictions in the return lines and valves can create back pressure, opposing the piston&#8217;s movement.<\/li>\n            <li><strong>Dynamic Loads:<\/strong> Accelerating a heavy load requires significantly more force than simply holding it static.<\/li>\n        <\/ul>\n        <p>\n            <strong>Recommendation:<\/strong> Use a factor of <strong>1.3<\/strong> for standard smooth applications. For high-speed or shock-load applications (like pile driving or crushing), use <strong>1.5 to 2.0<\/strong>.\n        <\/p>\n    <\/div>\n\n    <div class=\"hc-content-block\">\n        <h2>Understanding Rod Diameter &#038; Buckling Risks<\/h2>\n        <p>\n            The rod is often the most vulnerable part of a hydraulic cylinder. While the bore is determined by the push force, the rod diameter is frequently determined by <strong>Buckling Strength<\/strong> (Euler&#8217;s column load) rather than simple tensile strength, especially in long-stroke cylinders.\n        <\/p>\n        \n        <h3>The Area Ratio (&phi;)<\/h3>\n        <p>\n            The relationship between the Piston Area and the Annulus Area (the ring-shaped area on the rod side) is called the Area Ratio (&phi;). Standard industrial cylinders typically follow specific ratios:\n        <\/p>\n        <ul>\n            <li><strong>&phi; &approx; 1.33:<\/strong> Used for cylinders with small rods, high return speeds, and low return force requirements.<\/li>\n            <li><strong>&phi; &approx; 1.46 (Standard):<\/strong> A balanced design where the rod diameter is approximately 0.6 times the bore diameter. This is the default suggestion in our calculator.<\/li>\n            <li><strong>&phi; &approx; 2.0:<\/strong> Features a thick rod (approx 0.7 &times; Bore). This provides high return force and excellent buckling resistance, but slower retraction speeds.<\/li>\n        <\/ul>\n\n        <h3>Stroke Length and Mounting Styles<\/h3>\n        <p>\n            A cylinder with a long stroke acts like a long column. Under heavy push loads, it wants to bow outwards. The mounting style dramatically affects this stability:\n        <\/p>\n        <div class=\"hc-table-wrapper\">\n            <table class=\"hc-tech-table\">\n                <thead>\n                    <tr>\n                        <th>Mounting Style<\/th>\n                        <th>Stability Factor<\/th>\n                        <th>Risk Level<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td><strong>Flange Mount (Head\/Cap)<\/strong><\/td>\n                        <td>High<\/td>\n                        <td>Low. The cylinder body is rigidly fixed, providing excellent stability.<\/td>\n                    <\/tr>\n                    <tr>\n                        <td><strong>Trunnion \/ Pivot Mount<\/strong><\/td>\n                        <td>Low<\/td>\n                        <td>High. The cylinder can pivot, reducing its effective buckling strength. Requires a thicker rod.<\/td>\n                    <\/tr>\n                    <tr>\n                        <td><strong>Clevis Mount<\/strong><\/td>\n                        <td>Low<\/td>\n                        <td>High. Similar to pivot mounts, susceptible to side-loading and requires careful alignment.<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n    <\/div>\n\n    <div class=\"hc-content-block\">\n        <h2>System Pressure Standards &#038; Industry Use<\/h2>\n        <p>\n            Choosing the right system pressure is a trade-off between compactness and cost. Higher pressures allow for smaller cylinders but require more expensive pumps, hoses, and seals.\n        <\/p>\n        <div class=\"hc-table-wrapper\">\n            <table class=\"hc-tech-table\">\n                <thead>\n                    <tr>\n                        <th>Pressure Level<\/th>\n                        <th>Typical Application<\/th>\n                        <th>Characteristics<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td><strong>16 MPa (160 bar)<\/strong><\/td>\n                        <td>Machine Tools, Light Automation<\/td>\n                        <td>Compact, lower cost pumps, aluminum bodies possible.<\/td>\n                    <\/tr>\n                    <tr>\n                        <td><strong>25 MPa (250 bar)<\/strong><\/td>\n                        <td>General Industrial, Presses<\/td>\n                        <td>The ISO standard for most industrial hydraulic cylinders.<\/td>\n                    <\/tr>\n                    <tr>\n                        <td><strong>31.5 MPa (315 bar)<\/strong><\/td>\n                        <td>Heavy Metallurgy, Marine<\/td>\n                        <td>High power density, robust steel construction.<\/td>\n                    <\/tr>\n                    <tr>\n                        <td><strong>40+ MPa (400+ bar)<\/td>\n                        <td>Mobile Hydraulics, Excavators<\/td>\n                        <td>Extremely high force in small packages, intermittent duty.<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n    <\/div>\n\n    <div class=\"hc-content-block\">\n        <h2>Frequently Asked Questions (FAQ)<\/h2>\n        \n        <div class=\"hc-faq-item\">\n            <div class=\"hc-faq-question\">What fluid should I use?<\/div>\n            <div class=\"hc-faq-answer\">\n                Standard calculation assumes mineral-based hydraulic oil (e.g., ISO VG 46). If using water-glycol or fire-resistant fluids, consult seal manufacturers as they may require different materials (like Viton) and might have lower lubricity, affecting efficiency.\n            <\/div>\n        <\/div>\n\n        <div class=\"hc-faq-item\">\n            <div class=\"hc-faq-question\">What is the difference between &#8220;Push&#8221; and &#8220;Pull&#8221; force?<\/div>\n            <div class=\"hc-faq-answer\">\n                <strong>Push Force (Extend)<\/strong> acts on the full piston area and is always stronger. <strong>Pull\/Return Force (Retract)<\/strong> acts only on the annulus area (Piston Area minus Rod Area). Because the rod takes up space inside the cylinder, the pull force is typically 30% &sim; 50% less than the push force at the same pressure.\n            <\/div>\n        <\/div>\n\n        <div class=\"hc-faq-item\">\n            <div class=\"hc-faq-question\">Does this calculator account for speed?<\/div>\n            <div class=\"hc-faq-answer\">\n                No. This calculator focuses on static force and geometric sizing. Speed depends on the <strong>Flow Rate (L\/min)<\/strong> of your pump. <br><em>Formula: Speed = (Flow Rate) \/ (Area).<\/em> A smaller bore will move faster than a larger bore with the same pump flow.\n            <\/div>\n        <\/div>\n        \n        <div class=\"hc-faq-item\">\n            <div class=\"hc-faq-question\">How do I verify the wall thickness?<\/div>\n            <div class=\"hc-faq-answer\">\n                Once the bore diameter is calculated, you must determine the cylinder barrel wall thickness to withstand the hoop stress. This requires the Lam\u00e9 formula or standard boiler codes (like ASME). Always refer to standard tubing charts from manufacturers for safe wall thicknesses.\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Documentaci\u00f3n sobre el dimensionamiento de cilindros hidr\u00e1ulicos Gu\u00eda completa para el dimensionamiento de cilindros hidr\u00e1ulicos El dimensionamiento adecuado de un cilindro hidr\u00e1ulico es la base de cualquier<\/p>","protected":false},"author":1,"featured_media":74856,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-74845","page","type-page","status-publish","has-post-thumbnail","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/pages\/74845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/comments?post=74845"}],"version-history":[{"count":0,"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/pages\/74845\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/media\/74856"}],"wp:attachment":[{"href":"https:\/\/www.harsle.com\/es\/wp-json\/wp\/v2\/media?parent=74845"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}