{"id":17375,"date":"2026-09-20T07:01:59","date_gmt":"2026-09-20T07:01:59","guid":{"rendered":"https:\/\/www.dgcrane.com\/?p=17375"},"modified":"2026-09-20T07:02:02","modified_gmt":"2026-09-20T07:02:02","slug":"crane-travelling-static-resistance-calculator","status":"publish","type":"post","link":"https:\/\/www.dgcrane.com\/fil\/crane-travelling-static-resistance-calculator\/","title":{"rendered":"Kalkulador ng Static Resistance ng Paglalakbay ng Crane"},"content":{"rendered":"<div id=\"calculator\">\n  <div class=\"calculator-shell\">\n    <form id=\"calculator-form\" novalidate action=\"\">\n      <span class=\"calculator-sr-only\">Batayan ng pagkalkula: EN 13135:2026. Saklaw: mga gulong na bakal na may mga roller bearings sa mga riles na bakal. Hindi ginagamit ang ISO 8686-1:2012 para sa ekwasyong ito. Petsa ng beripikasyon: 2026-09-17.<\/span>\n\n      <section class=\"calculator-section\">\n        <div class=\"calculator-grid\">\n          <div class=\"calculator-field\">\n            <label for=\"calculator-loadMass\">Na-rate na karga, G<sub>n<\/sub> (kg)<\/label>\n            <input id=\"calculator-loadMass\" name=\"loadMass\" type=\"number\" inputmode=\"decimal\" min=\"0\" max=\"1000000000\" step=\"any\" value=\"10000\" aria-describedby=\"calculator-loadMass-error\">\n            <span id=\"calculator-loadMass-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-gravity\">Grabidad, g (N\/kg)<\/label>\n            <input id=\"calculator-gravity\" name=\"gravity\" type=\"number\" inputmode=\"decimal\" min=\"1\" max=\"20\" step=\"any\" value=\"10\" aria-describedby=\"calculator-gravity-error\">\n            <span id=\"calculator-gravity-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-gradient\">Paakyat na gradient, i (\u2030)<\/label>\n            <input id=\"calculator-gradient\" name=\"gradient\" type=\"number\" inputmode=\"decimal\" min=\"0\" max=\"100\" step=\"any\" value=\"1\" aria-describedby=\"calculator-gradient-error\">\n            <span id=\"calculator-gradient-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-wheelType\">Konstruksyon ng gulong<\/label>\n            <select id=\"calculator-wheelType\" name=\"wheelType\">\n              <option value=\"flanged\" selected>Mga gulong na may flange<\/option>\n              <option value=\"flangeless\">Mga gulong na walang flange<\/option>\n            <\/select>\n            <span id=\"calculator-wheelType-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-craneMass\">Sariling masa ng kreyn, G (kg)<\/label>\n            <input id=\"calculator-craneMass\" name=\"craneMass\" type=\"number\" inputmode=\"decimal\" min=\"0.000001\" max=\"1000000000\" step=\"any\" value=\"20000\" aria-describedby=\"calculator-craneMass-error\">\n            <span id=\"calculator-craneMass-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-trolleyMass\">Sariling masa ng trolley, G<sub>1<\/sub> (kg)<\/label>\n            <input id=\"calculator-trolleyMass\" name=\"trolleyMass\" type=\"number\" inputmode=\"decimal\" min=\"0.000001\" max=\"1000000000\" step=\"any\" value=\"2000\" aria-describedby=\"calculator-trolleyMass-error\">\n            <span id=\"calculator-trolleyMass-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-craneDiameter\">Gulong ng kreyn D<sub>w<\/sub> (mm)<\/label>\n            <select id=\"calculator-craneDiameter\" name=\"craneDiameter\">\n              <option value=\"50\">50<\/option>\n              <option value=\"80\">80<\/option>\n              <option value=\"100\">100<\/option>\n              <option value=\"125\">125<\/option>\n              <option value=\"160\">160<\/option>\n              <option value=\"250\">250<\/option>\n              <option value=\"320\">320<\/option>\n              <option value=\"400\" selected>400<\/option>\n              <option value=\"630\">630 at mas malaki pa<\/option>\n            <\/select>\n            <span id=\"calculator-craneDiameter-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-craneFactor\">Salik ng kreyn, F<sub>r<\/sub><\/label>\n            <select id=\"calculator-craneFactor\" name=\"craneFactor\" aria-describedby=\"calculator-craneFactor-error\"><\/select>\n            <span id=\"calculator-craneFactor-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-trolleyDiameter\">Gulong ng trolley D<sub>w<\/sub> (mm)<\/label>\n            <select id=\"calculator-trolleyDiameter\" name=\"trolleyDiameter\">\n              <option value=\"50\">50<\/option>\n              <option value=\"80\">80<\/option>\n              <option value=\"100\">100<\/option>\n              <option value=\"125\">125<\/option>\n              <option value=\"160\" selected>160<\/option>\n              <option value=\"250\">250<\/option>\n              <option value=\"320\">320<\/option>\n              <option value=\"400\">400<\/option>\n              <option value=\"630\">630 at mas malaki pa<\/option>\n            <\/select>\n            <span id=\"calculator-trolleyDiameter-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n\n          <div class=\"calculator-field\">\n            <label for=\"calculator-trolleyFactor\">Salik ng trolley, F<sub>r<\/sub><\/label>\n            <select id=\"calculator-trolleyFactor\" name=\"trolleyFactor\" aria-describedby=\"calculator-trolleyFactor-error\"><\/select>\n            <span id=\"calculator-trolleyFactor-error\" class=\"error-msg\" aria-live=\"polite\"><\/span>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <div id=\"calculator-error-summary\" class=\"calculator-error-summary\" role=\"alert\" tabindex=\"-1\"><\/div>\n\n      <div class=\"calculator-actions\">\n        <button type=\"submit\">Kalkulahin<\/button>\n        <button type=\"reset\" class=\"calculator-reset\">I-reset<\/button>\n      <\/div>\n    <input type=\"hidden\" name=\"trp-form-language\" value=\"fil\"\/><\/form>\n\n    <section class=\"calculator-results\" aria-live=\"polite\" aria-atomic=\"true\">\n      <div class=\"calculator-result-card calculator-result-main\">\n        <span>Estatikong resistensya sa paglalakbay ng kreyn, F<sub>st,max<\/sub><\/span>\n        <strong id=\"calculator-craneTotal\">\u2014<\/strong>\n      <\/div>\n\n      <div class=\"calculator-result-card\">\n        <span>Estatikong resistensya sa paglalakbay ng trolley, F<sub>st,max<\/sub><\/span>\n        <strong id=\"calculator-trolleyTotal\">\u2014<\/strong>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <style>\n    #calculator {\n      --primary-color: #0a3487;\n      --primary-hover: #F58423;\n      --error-color: #e53935;\n      --bg-color: #EAEEF7;\n      --text-color: #4a4a4a;\n      --surface-color: #ffffff;\n      --border-color: #cccccc;\n      --soft-primary: #edf2ff;\n      --soft-error: #fff3f2;\n      --focus-shadow: rgba(10, 52, 135, 0.18);\n\n      max-width: 545px;\n      margin: 0 auto;\n      padding: 30px;\n      color: var(--text-color);\n      background: var(--bg-color);\n      font-family: Arial, Helvetica, sans-serif;\n      line-height: 1.5;\n      box-sizing: border-box;\n    }\n\n    #calculator *,\n    #calculator *::before,\n    #calculator *::after {\n      box-sizing: border-box;\n    }\n\n    #calculator .calculator-shell {\n      padding: 24px;\n      border-top: 5px solid var(--primary-color);\n      background: var(--surface-color);\n    }\n\n    #calculator .calculator-sr-only {\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    #calculator .calculator-section {\n      margin: 0 0 16px;\n      padding: 16px;\n      background: var(--bg-color);\n    }\n\n    #calculator .calculator-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 12px 14px;\n      align-items: start;\n    }\n\n    #calculator .calculator-field {\n      min-width: 0;\n    }\n\n    #calculator label,\n    #calculator button,\n    #calculator select {\n      font-size: 14px;\n    }\n\n    #calculator label {\n      display: flex;\n      min-height: 38px;\n      margin-bottom: 5px;\n      align-items: flex-end;\n      font-weight: 700;\n    }\n\n    #calculator input,\n    #calculator select,\n    #calculator button {\n      width: 100%;\n      border-radius: 0;\n      transition: 0.2s ease;\n    }\n\n    #calculator input,\n    #calculator select {\n      height: 36px;\n      padding: 5px 9px;\n      border: 1px solid var(--border-color);\n      color: var(--text-color);\n      background: var(--surface-color);\n      font-size: 16px;\n    }\n\n    #calculator input:focus,\n    #calculator select:focus {\n      border: 2px solid var(--primary-color);\n      outline: 0;\n      box-shadow: 0 0 0 3px var(--focus-shadow);\n    }\n\n    #calculator input.error,\n    #calculator select.error,\n    #calculator input.error:focus,\n    #calculator select.error:focus {\n      border: 2px solid var(--error-color);\n      box-shadow: none;\n    }\n\n    #calculator .error-msg {\n      display: none;\n      margin-top: 5px;\n      color: var(--error-color);\n      font-size: 12px;\n      font-weight: 700;\n    }\n\n    #calculator .error-msg.visible {\n      display: block;\n    }\n\n    #calculator .calculator-error-summary {\n      display: none;\n      margin-bottom: 14px;\n      padding: 10px;\n      border-left: 4px solid var(--error-color);\n      color: var(--error-color);\n      background: var(--soft-error);\n      font-weight: 700;\n    }\n\n    #calculator .calculator-error-summary.visible {\n      display: block;\n    }\n\n    #calculator .calculator-actions {\n      display: flex;\n      gap: 12px;\n      margin-top: 4px;\n    }\n\n    #calculator button {\n      height: 34px;\n      padding: 0 16px;\n      border: 0;\n      color: var(--surface-color);\n      background: var(--primary-color);\n      font-weight: 700;\n      line-height: 34px;\n      cursor: pointer;\n    }\n\n    #calculator button:hover,\n    #calculator button:focus-visible {\n      background: var(--primary-hover);\n      outline: 2px solid var(--primary-color);\n      outline-offset: 2px;\n    }\n\n    #calculator button.calculator-reset {\n      color: var(--primary-color);\n      background: var(--surface-color);\n      border: 1px solid var(--primary-color);\n    }\n\n    #calculator button.calculator-reset:hover,\n    #calculator button.calculator-reset:focus-visible {\n      color: var(--surface-color);\n      background: var(--primary-hover);\n    }\n\n    #calculator .calculator-results {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 12px;\n      margin-top: 18px;\n    }\n\n    #calculator .calculator-result-card {\n      margin: 0;\n      padding: 14px;\n      border-left: 4px solid var(--primary-color);\n      background: var(--soft-primary);\n    }\n\n    #calculator .calculator-result-card > span {\n      display: block;\n      font-size: 13px;\n      font-weight: 700;\n    }\n\n    #calculator .calculator-result-card strong {\n      display: block;\n      margin: 4px 0 10px;\n      color: var(--primary-color);\n      font-size: 32px;\n      line-height: 1.15;\n      overflow-wrap: anywhere;\n    }\n\n    @media (max-width: 768px) {\n      #calculator {\n        padding: 0.3rem;\n      }\n\n      #calculator .calculator-shell {\n        padding: 0.3rem;\n      }\n\n      #calculator label,\n      #calculator input,\n      #calculator select,\n      #calculator button {\n        font-size: 0.28rem;\n      }\n\n      #calculator input,\n      #calculator select,\n      #calculator button {\n        min-height: 0.7rem;\n        height: 0.7rem;\n      }\n\n      #calculator button {\n        line-height: 0.7rem;\n      }\n\n      #calculator .calculator-actions {\n        flex-direction: column;\n      }\n\n      #calculator .calculator-actions button {\n        width: 100%;\n      }\n\n      #calculator .calculator-grid {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n        gap: 0.24rem;\n      }\n\n      #calculator label {\n        min-height: 0.7rem;\n      }\n\n      #calculator .calculator-results {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media (prefers-reduced-motion: reduce) {\n      #calculator *,\n      #calculator *::before,\n      #calculator *::after {\n        transition: none;\n      }\n    }\n  <\/style>\n\n  <script>\n    (() => {\n      \"use strict\";\n\n      const root = document.getElementById(\"calculator\");\n      if (!root) return;\n\n      const form = root.querySelector(\"#calculator-form\");\n      const summary = root.querySelector(\"#calculator-error-summary\");\n\n      const diameterPoints = [\n        50, 80, 100, 125, 160, 250, 320, 400, 630\n      ];\n\n      const factorSets = {\n        flanged: [\n          0.013, 0.011, 0.010, 0.009, 0.008,\n          0.0065, 0.006, 0.0055, 0.005\n        ],\n        flangeless: [\n          0.011, 0.0095, 0.0085, 0.0075, 0.007,\n          0.0055, 0.0052, 0.005, 0.0045\n        ]\n      };\n\n      const fields = {\n        loadMass: root.querySelector(\"#calculator-loadMass\"),\n        gravity: root.querySelector(\"#calculator-gravity\"),\n        gradient: root.querySelector(\"#calculator-gradient\"),\n        wheelType: root.querySelector(\"#calculator-wheelType\"),\n        craneMass: root.querySelector(\"#calculator-craneMass\"),\n        craneDiameter: root.querySelector(\"#calculator-craneDiameter\"),\n        craneFactor: root.querySelector(\"#calculator-craneFactor\"),\n        trolleyMass: root.querySelector(\"#calculator-trolleyMass\"),\n        trolleyDiameter: root.querySelector(\"#calculator-trolleyDiameter\"),\n        trolleyFactor: root.querySelector(\"#calculator-trolleyFactor\")\n      };\n\n      const outputs = {\n        craneTotal: root.querySelector(\"#calculator-craneTotal\"),\n        trolleyTotal: root.querySelector(\"#calculator-trolleyTotal\")\n      };\n\n      function setError(fieldName, message) {\n        const input = fields[fieldName];\n        const error = root.querySelector(\n          `#calculator-${fieldName}-error`\n        );\n\n        input.classList.add(\"error\");\n        input.setAttribute(\"aria-invalid\", \"true\");\n\n        if (error) {\n          error.textContent = message;\n          error.classList.add(\"visible\");\n        }\n      }\n\n      function clearError(fieldName) {\n        const input = fields[fieldName];\n        const error = root.querySelector(\n          `#calculator-${fieldName}-error`\n        );\n\n        input.classList.remove(\"error\");\n        input.removeAttribute(\"aria-invalid\");\n\n        if (error) {\n          error.textContent = \"\";\n          error.classList.remove(\"visible\");\n        }\n      }\n\n      function validateInput(\n        fieldName,\n        label,\n        minimum,\n        maximum,\n        allowZero\n      ) {\n        const input = fields[fieldName];\n        const value = Number.parseFloat(input.value);\n\n        clearError(fieldName);\n\n        if (\n          input.value.trim() === \"\" ||\n          !Number.isFinite(value)\n        ) {\n          setError(\n            fieldName,\n            `${label} is required and must be a finite number.`\n          );\n          return null;\n        }\n\n        if (\n          (!allowZero && value <= minimum) ||\n          (allowZero &#038;&#038; value < minimum) ||\n          value > maximum\n        ) {\n          const relation = allowZero\n            ? `from ${minimum}`\n            : `greater than ${minimum}`;\n\n          setError(\n            fieldName,\n            `${label} must be ${relation} and no more than ${maximum}.`\n          );\n          return null;\n        }\n\n        return value;\n      }\n\n      function rollingFactor(wheelType, diameter) {\n        const factors = factorSets[wheelType];\n\n        if (!factors) {\n          throw new Error(\"Unsupported wheel construction.\");\n        }\n\n        const index = diameterPoints.indexOf(Number(diameter));\n\n        if (index === -1) {\n          throw new Error(\n            \"Unsupported wheel diameter selection.\"\n          );\n        }\n\n        return factors[index];\n      }\n\n      function calculateTravelResistance(\n        loadMass,\n        selfMass,\n        gravity,\n        gradientPerMille,\n        factor\n      ) {\n        const normalForce =\n          (loadMass + selfMass) * gravity;\n\n        const rolling =\n          normalForce * factor;\n\n        const grade =\n          normalForce * gradientPerMille \/ 1000;\n\n        return {\n          total: rolling + grade\n        };\n      }\n\n      function clearResults() {\n        outputs.craneTotal.textContent = \"\u2014\";\n        outputs.trolleyTotal.textContent = \"\u2014\";\n      }\n\n      function formatForce(value) {\n        return `${value.toLocaleString(\"en-US\", {\n          minimumFractionDigits: 2,\n          maximumFractionDigits: 2\n        })} N`;\n      }\n\n      function formatFactor(value) {\n        return value\n          .toFixed(6)\n          .replace(\/0+$\/, \"\")\n          .replace(\/\\.$\/, \"\");\n      }\n\n      function populateFactorOptions(prefix) {\n        const wheelType = fields.wheelType.value;\n        const diameter =\n          Number(fields[`${prefix}Diameter`].value);\n\n        const factorSelect =\n          fields[`${prefix}Factor`];\n\n        const factors = factorSets[wheelType];\n\n        const options = factors.map((factor) => {\n          const option =\n            document.createElement(\"option\");\n\n          option.value = String(factor);\n          option.textContent =\n            formatFactor(factor);\n\n          return option;\n        });\n\n        factorSelect.replaceChildren(...options);\n\n        factorSelect.value = String(\n          rollingFactor(wheelType, diameter)\n        );\n      }\n\n      function syncWheelSelectors(\n        prefix,\n        changedField\n      ) {\n        const wheelType =\n          fields.wheelType.value;\n\n        const diameterSelect =\n          fields[`${prefix}Diameter`];\n\n        const factorSelect =\n          fields[`${prefix}Factor`];\n\n        if (changedField === \"type\") {\n          populateFactorOptions(prefix);\n          return;\n        }\n\n        if (changedField === \"factor\") {\n          const factor =\n            Number(factorSelect.value);\n\n          const index =\n            factorSets[wheelType].findIndex(\n              (candidate) => candidate === factor\n            );\n\n          if (index !== -1) {\n            diameterSelect.value =\n              String(diameterPoints[index]);\n          }\n\n          return;\n        }\n\n        factorSelect.value = String(\n          rollingFactor(\n            wheelType,\n            Number(diameterSelect.value)\n          )\n        );\n      }\n\n      function readAndValidate() {\n        const values = {\n          loadMass: validateInput(\n            \"loadMass\",\n            \"Rated load\",\n            0,\n            1000000000,\n            true\n          ),\n\n          gravity: validateInput(\n            \"gravity\",\n            \"Gravity\",\n            1,\n            20,\n            false\n          ),\n\n          gradient: validateInput(\n            \"gradient\",\n            \"Uphill gradient\",\n            0,\n            100,\n            true\n          ),\n\n          craneMass: validateInput(\n            \"craneMass\",\n            \"Crane self mass\",\n            0,\n            1000000000,\n            false\n          ),\n\n          craneDiameter:\n            Number(fields.craneDiameter.value),\n\n          craneFactor:\n            Number(fields.craneFactor.value),\n\n          trolleyMass: validateInput(\n            \"trolleyMass\",\n            \"Trolley self mass\",\n            0,\n            1000000000,\n            false\n          ),\n\n          trolleyDiameter:\n            Number(fields.trolleyDiameter.value),\n\n          trolleyFactor:\n            Number(fields.trolleyFactor.value),\n\n          wheelType:\n            fields.wheelType.value\n        };\n\n        const linkedSelectionsValid =\n          values.craneFactor === rollingFactor(\n            values.wheelType,\n            values.craneDiameter\n          ) &&\n          values.trolleyFactor === rollingFactor(\n            values.wheelType,\n            values.trolleyDiameter\n          );\n\n        const invalid =\n          Object.entries(values).filter(\n            ([name, value]) =>\n              name !== \"wheelType\" &&\n              (\n                value === null ||\n                !Number.isFinite(value)\n              )\n          );\n\n        if (!linkedSelectionsValid) {\n          setError(\n            \"craneFactor\",\n            \"Wheel construction, diameter and factor must match.\"\n          );\n\n          setError(\n            \"trolleyFactor\",\n            \"Wheel construction, diameter and factor must match.\"\n          );\n\n          return null;\n        }\n\n        return invalid.length ? null : values;\n      }\n\n      function showResults(crane, trolley) {\n        outputs.craneTotal.textContent =\n          formatForce(crane.total);\n\n        outputs.trolleyTotal.textContent =\n          formatForce(trolley.total);\n      }\n\n      populateFactorOptions(\"crane\");\n      populateFactorOptions(\"trolley\");\n\n      fields.wheelType.addEventListener(\n        \"change\",\n        () => {\n          syncWheelSelectors(\"crane\", \"type\");\n          syncWheelSelectors(\"trolley\", \"type\");\n        }\n      );\n\n      fields.craneDiameter.addEventListener(\n        \"change\",\n        () => syncWheelSelectors(\n          \"crane\",\n          \"diameter\"\n        )\n      );\n\n      fields.craneFactor.addEventListener(\n        \"change\",\n        () => syncWheelSelectors(\n          \"crane\",\n          \"factor\"\n        )\n      );\n\n      fields.trolleyDiameter.addEventListener(\n        \"change\",\n        () => syncWheelSelectors(\n          \"trolley\",\n          \"diameter\"\n        )\n      );\n\n      fields.trolleyFactor.addEventListener(\n        \"change\",\n        () => syncWheelSelectors(\n          \"trolley\",\n          \"factor\"\n        )\n      );\n\n      Object.keys(fields).forEach(\n        (fieldName) => {\n          fields[fieldName].addEventListener(\n            \"input\",\n            () => clearError(fieldName)\n          );\n\n          fields[fieldName].addEventListener(\n            \"change\",\n            () => clearError(fieldName)\n          );\n        }\n      );\n\n      form.addEventListener(\n        \"submit\",\n        (event) => {\n          event.preventDefault();\n\n          summary.textContent = \"\";\n          summary.classList.remove(\"visible\");\n\n          const values = readAndValidate();\n\n          if (!values) {\n            clearResults();\n\n            summary.textContent =\n              \"Please correct the highlighted fields.\";\n\n            summary.classList.add(\"visible\");\n            summary.focus();\n            return;\n          }\n\n          const crane =\n            calculateTravelResistance(\n              values.loadMass,\n              values.craneMass,\n              values.gravity,\n              values.gradient,\n              values.craneFactor\n            );\n\n          const trolley =\n            calculateTravelResistance(\n              values.loadMass,\n              values.trolleyMass,\n              values.gravity,\n              values.gradient,\n              values.trolleyFactor\n            );\n\n          showResults(crane, trolley);\n        }\n      );\n\n      form.addEventListener(\n        \"reset\",\n        () => {\n          window.setTimeout(() => {\n            Object.keys(fields).forEach(\n              clearError\n            );\n\n            summary.textContent = \"\";\n            summary.classList.remove(\"visible\");\n\n            populateFactorOptions(\"crane\");\n            populateFactorOptions(\"trolley\");\n            clearResults();\n          }, 0);\n        }\n      );\n    })();\n  <\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pormula ng Kalkulador ng Static Resistance ng Crane na Naglalakbay<\/h2>\n\n\n\n<div id=\"travel-resistance-formulas\">\n  <div class=\"formula\">\n    F<sub>f<\/sub>\n    = (G<sub>n<\/sub> + G) \u00d7 g \u00d7 f<sub>r<\/sub>\n  <\/div>\n\n  <div class=\"formula\">\n    F<sub>s<\/sub>\n    = (G<sub>n<\/sub> + G) \u00d7 g \u00d7 i\n    <span class=\"formula-condition\">\n    <\/span>\n  <\/div>\n\n  <div class=\"formula formula-total\">\n    F<sub>st,max<\/sub>\n    = F<sub>f<\/sub>\n    + F<sub>s<\/sub>\n  <\/div>\n\n  <style>\n    #travel-resistance-formulas {\n      --text-color: #4a4a4a;\n\n      width: 100%;\n      margin: 0;\n      padding: 0;\n      color: var(--text-color);\n      box-sizing: border-box;\n    }\n\n    #travel-resistance-formulas *,\n    #travel-resistance-formulas *::before,\n    #travel-resistance-formulas *::after {\n      box-sizing: border-box;\n    }\n\n    #travel-resistance-formulas .formula {\n      padding: 7px 0;\n      color: var(--text-color);\n      font-family: \"Segoe UI\", Arial, Helvetica, sans-serif;\n      font-size: 20px;\n      font-style: normal;\n      font-weight: 400;\n      line-height: 1.55;\n      text-align: left;\n      white-space: nowrap;\n    }\n\n    #travel-resistance-formulas .formula sub {\n      font-size: 65%;\n      font-style: normal;\n      vertical-align: -0.3em;\n    }\n\n    #travel-resistance-formulas .formula-condition {\n      margin-left: 8px;\n      font-size: 16px;\n      font-style: normal;\n      font-weight: 400;\n    }\n\n    #travel-resistance-formulas .formula-total {\n      color: var(--text-color);\n      font-size: 20px;\n      font-style: normal;\n      font-weight: 600;\n    }\n\n    @media (max-width: 520px) {\n      #travel-resistance-formulas {\n        overflow-x: auto;\n      }\n\n      #travel-resistance-formulas .formula {\n        font-size: 18px;\n      }\n\n      #travel-resistance-formulas .formula-condition {\n        font-size: 14px;\n      }\n\n      #travel-resistance-formulas .formula-total {\n        font-size: 18px;\n      }\n    }\n  <\/style>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>G<sub>n<\/sub>: Na-rate na karga ng kreyn, yunit: kg<\/li>\n\n\n\n<li>G: Timbang ng kreyn, yunit: kg<\/li>\n\n\n\n<li>G<sub>1<\/sub>: Timbang ng trolley, yunit: kg<\/li>\n\n\n\n<li>g: Grabidad (ang halaga ay kinukuha bilang 10 N\/kg)<\/li>\n\n\n\n<li>f<sub>r<\/sub>: Salik ng paggulong ng friction<\/li>\n\n\n\n<li>i: Ipinapalagay na dalisdis<\/li>\n\n\n\n<li>F<sub>f<\/sub>: Pagtutol sa friction, yunit: N<\/li>\n\n\n\n<li>Fs: Paglaban sa gradient, yunit: N<\/li>\n\n\n\n<li>F<sub>st, max<\/sub>: Istatikong resistensya sa paglalakbay ng kreyn, yunit: N<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Mga Tala<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ito f<sub>r<\/sub> Ang koepisyent ay aktwal na kumakatawan sa rolling resistance ng gulong kasama ang friction ng wheel bearing, kasama ang mga karagdagang epekto na nauugnay sa wheel flange.<\/li>\n\n\n\n<li>Kadalasan, ang mga diyametro ng gulong ng mekanismo ng paggalaw ng crane ay mas malaki kaysa sa mekanismo ng paggalaw ng trolley. Samakatuwid, pinapayagan ng calculator na ito ang magkakahiwalay na kalkulasyon batay sa kani-kanilang mga parameter.<\/li>\n\n\n\n<li>Para sa mga mekanismong pangbiyahe at mga de-kuryenteng motor, ang mga kinakailangan sa kuryente ay medyo sensitibo. Kahit ang gradient na 1\u2030 lamang ay nakakabuo ng aktwal na resistensya sa pagtakbo. Samakatuwid, sa kawalan ng nasukat na datos mula sa pasilidad, isang ipinapalagay na gradient ang isinasama upang maiwasan ang isang maliit na motor.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Mga Naaangkop na Crane<\/h2>\n\n\n\n<p>Ang mga produktong nakalista sa ibaba ay pangunahing angkop para sa paggamit sa mga nakapaloob na kapaligiran ng pabrika.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Single-girder Overhead Crane<\/li>\n\n\n\n<li>Dobleng girder Overhead Crane<\/li>\n\n\n\n<li>Single-girder Gantry Crane (Para sa panloob na paggamit)<\/li>\n\n\n\n<li>Dobleng girder Gantry Crane (Para sa panloob na gamit)<\/li>\n\n\n\n<li>Trolley ng Overhead Crane<\/li>\n\n\n\n<li>Trolley ng Gantry Crane<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Tinatantya ng crane travelling static resistance calculator ang puwersang kinakailangan upang malampasan ang friction at riles ng track para sa normal na paglalakbay. Gamit ang rated load at crane dead weight, sinusuri nito kung kayang igalaw ng mga motor at drive ang crane. Sinusuportahan ng mga resulta ang pagpili ng mga magkatugmang motor, gearbox, at gulong. Nakakatulong din ang crane travelling static resistance calculator na masuri ang panganib ng pagkadulas ng gulong. Para sa mga sloped track, sinusuri ng kalkulasyon ang posibleng pag-slide ng crane pagkatapos huminto, na pumipigil sa pinsala sa bearing, pagkagat ng riles, at mga isyu na may kaugnayan sa pag-install.","protected":false},"author":8,"featured_media":17373,"parent":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"single-onlinetools.php","format":"standard","meta":{"_acf_changed":false,"rank_math_lock_modified_date":false,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[1059],"tags":[],"class_list":["post-17375","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-online-tools"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/posts\/17375"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/comments?post=17375"}],"version-history":[{"count":5,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/posts\/17375\/revisions"}],"predecessor-version":[{"id":17380,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/posts\/17375\/revisions\/17380"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/media\/17373"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/media?parent=17375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/categories?post=17375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/fil\/wp-json\/wp\/v2\/tags?post=17375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}