{"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\/be\/crane-travelling-static-resistance-calculator\/","title":{"rendered":"\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u0430\u0440 \u0441\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0433\u0430 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u0432\u0443 \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u044f \u043a\u0440\u0430\u043d\u0430"},"content":{"rendered":"<div id=\"calculator\">\n  <div class=\"calculator-shell\">\n    <form id=\"calculator-form\" novalidate action=\"\">\n      <span class=\"calculator-sr-only\">\u0410\u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0437\u043b\u0456\u043a\u0443: EN 13135:2026. \u0421\u0444\u0435\u0440\u0430 \u043f\u0440\u044b\u043c\u044f\u043d\u0435\u043d\u043d\u044f: \u0441\u0442\u0430\u043b\u0451\u0432\u044b\u044f \u043a\u043e\u043b\u044b \u0437 \u0440\u043e\u043b\u0456\u043a\u0430\u0432\u044b\u043c\u0456 \u043f\u0430\u0434\u0448\u044b\u043f\u043d\u0456\u043a\u0430\u043c\u0456 \u043d\u0430 \u0441\u0442\u0430\u043b\u0451\u0432\u044b\u0445 \u0440\u044d\u0439\u043a\u0430\u0445. ISO 8686-1:2012 \u0434\u043b\u044f \u0433\u044d\u0442\u0430\u0433\u0430 \u045e\u0440\u0430\u045e\u043d\u0435\u043d\u043d\u044f \u043d\u0435 \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u043e\u045e\u0432\u0430\u0435\u0446\u0446\u0430. \u0414\u0430\u0442\u0430 \u043f\u0440\u0430\u0432\u0435\u0440\u043a\u0456: 17.09.2026.<\/span>\n\n      <section class=\"calculator-section\">\n        <div class=\"calculator-grid\">\n          <div class=\"calculator-field\">\n            <label for=\"calculator-loadMass\">\u041d\u0430\u043c\u0456\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430, G<sub>\u043d<\/sub> (\u043a\u0433)<\/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\">\u0413\u0440\u0430\u0432\u0456\u0442\u0430\u0446\u044b\u044f, \u0433 (\u041d\/\u043a\u0433)<\/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\">\u0413\u0440\u0430\u0434\u044b\u0435\u043d\u0442 \u0443\u0437\u0434\u044b\u043c\u0443, 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\">\u041a\u0430\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u044b\u044f \u043a\u043e\u043b\u0430\u045e<\/label>\n            <select id=\"calculator-wheelType\" name=\"wheelType\">\n              <option value=\"flanged\" selected>\u0424\u043b\u0430\u043d\u0446\u0430\u0432\u044b\u044f \u043a\u043e\u043b\u044b<\/option>\n              <option value=\"flangeless\">\u0411\u0435\u0441\u0444\u043b\u0430\u043d\u0446\u0430\u0432\u044b\u044f \u043a\u043e\u043b\u044b<\/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\">\u0423\u043b\u0430\u0441\u043d\u0430\u044f \u043c\u0430\u0441\u0430 \u043a\u0440\u0430\u043d\u0430, G (\u043a\u0433)<\/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\">\u0423\u043b\u0430\u0441\u043d\u0430\u044f \u043c\u0430\u0441\u0430 \u043a\u0430\u043b\u044f\u0441\u043a\u0456, G<sub>1<\/sub> (\u043a\u0433)<\/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\">\u041a\u043e\u043b\u0430 \u043a\u0440\u0430\u043d\u0430 D<sub>w<\/sub> (\u043c\u043c)<\/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 \u0456 \u0431\u043e\u043b\u044c\u0448<\/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\">\u041a\u0430\u044d\u0444\u0456\u0446\u044b\u0435\u043d\u0442 \u043a\u0440\u0430\u043d\u0430, F<sub>\u0440<\/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\">\u041a\u043e\u043b\u0430 \u043a\u0430\u043b\u044f\u0441\u043a\u0456 D<sub>w<\/sub> (\u043c\u043c)<\/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 \u0456 \u0431\u043e\u043b\u044c\u0448<\/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\">\u041a\u0430\u044d\u0444\u0456\u0446\u044b\u0435\u043d\u0442 \u0442\u0440\u0430\u043b\u0435\u0439\u0431\u0443\u0441\u0430, F<sub>\u0440<\/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\">\u0420\u0430\u0437\u043b\u0456\u0447\u044b\u0446\u044c<\/button>\n        <button type=\"reset\" class=\"calculator-reset\">\u0421\u043a\u0456\u043d\u0443\u0446\u044c<\/button>\n      <\/div>\n    <input type=\"hidden\" name=\"trp-form-language\" value=\"be\"\/><\/form>\n\n    <section class=\"calculator-results\" aria-live=\"polite\" aria-atomic=\"true\">\n      <div class=\"calculator-result-card calculator-result-main\">\n        <span>\u0421\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0435 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u045e\u043b\u0435\u043d\u043d\u0435 \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u044e \u043a\u0440\u0430\u043d\u0430, F<sub>\u0441\u0442, \u043c\u0430\u043a\u0441<\/sub><\/span>\n        <strong id=\"calculator-craneTotal\">\u2014<\/strong>\n      <\/div>\n\n      <div class=\"calculator-result-card\">\n        <span>\u0421\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0435 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u045e\u043b\u0435\u043d\u043d\u0435 \u0440\u0443\u0445\u0443 \u043a\u0430\u043b\u044f\u0441\u043a\u0456, F<sub>\u0441\u0442, \u043c\u0430\u043a\u0441<\/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\">\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0440\u0430\u0437\u043b\u0456\u043a\u0443 \u0441\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0433\u0430 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u0432\u0443 \u043a\u0440\u0430\u043d\u0430<\/h2>\n\n\n\n<div id=\"travel-resistance-formulas\">\n  <div class=\"formula\">\n    \u0424<sub>\u0444<\/sub>\n    = (\u0413<sub>\u043d<\/sub> + G) \u00d7 g \u00d7 f<sub>\u0440<\/sub>\n  <\/div>\n\n  <div class=\"formula\">\n    \u0424<sub>\u0441<\/sub>\n    = (\u0413<sub>\u043d<\/sub> + G) \u00d7 g \u00d7 i\n    <span class=\"formula-condition\">\n    <\/span>\n  <\/div>\n\n  <div class=\"formula formula-total\">\n    \u0424<sub>\u0441\u0442, \u043c\u0430\u043a\u0441<\/sub>\n    = \u0424<sub>\u0444<\/sub>\n    + \u0424<sub>\u0441<\/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>\u0413<sub>\u043d<\/sub>\u041d\u0430\u043c\u0456\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u0440\u0430\u043d\u0430, \u0430\u0434\u0437\u0456\u043d\u043a\u0430: \u043a\u0433<\/li>\n\n\n\n<li>G: \u0423\u043b\u0430\u0441\u043d\u0430\u044f \u0432\u0430\u0433\u0430 \u043a\u0440\u0430\u043d\u0430, \u0430\u0434\u0437\u0456\u043d\u043a\u0430 \u0432\u044b\u043c\u044f\u0440\u044d\u043d\u043d\u044f: \u043a\u0433<\/li>\n\n\n\n<li>\u0413<sub>1<\/sub>\u0423\u043b\u0430\u0441\u043d\u0430\u044f \u0432\u0430\u0433\u0430 \u043a\u0430\u043b\u044f\u0441\u043a\u0456, \u0430\u0434\u0437\u0456\u043d\u043a\u0430 \u0432\u044b\u043c\u044f\u0440\u044d\u043d\u043d\u044f: \u043a\u0433<\/li>\n\n\n\n<li>g: \u0421\u0456\u043b\u0430 \u0446\u044f\u0436\u0430\u0440\u0443 (\u0437\u043d\u0430\u0447\u044d\u043d\u043d\u0435 \u043f\u0440\u044b\u043c\u0430\u0435\u0446\u0446\u0430 \u0437\u0430 10 \u041d\/\u043a\u0433)<\/li>\n\n\n\n<li>\u0444<sub>\u0440<\/sub>\u041a\u0430\u044d\u0444\u0456\u0446\u044b\u0435\u043d\u0442 \u0442\u0440\u044d\u043d\u043d\u044f \u043a\u0430\u0447\u044d\u043d\u043d\u044f<\/li>\n\n\n\n<li>i: \u041c\u0435\u0440\u043a\u0430\u0432\u0430\u043d\u044b \u043d\u0430\u0445\u0456\u043b<\/li>\n\n\n\n<li>\u0424<sub>\u0444<\/sub>\u0421\u0443\u043f\u0440\u0430\u0446\u0456\u045e \u0442\u0440\u044d\u043d\u043d\u044f, \u0430\u0434\u0437\u0456\u043d\u043a\u0430 \u0432\u044b\u043c\u044f\u0440\u044d\u043d\u043d\u044f: \u041d<\/li>\n\n\n\n<li>Fs: \u0413\u0440\u0430\u0434\u044b\u0435\u043d\u0442\u043d\u0430\u0435 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u045e\u043b\u0435\u043d\u043d\u0435, \u0430\u0434\u0437\u0456\u043d\u043a\u0430 \u0432\u044b\u043c\u044f\u0440\u044d\u043d\u043d\u044f: \u041d<\/li>\n\n\n\n<li>\u0424<sub>\u0441\u0442., \u043c\u0430\u043a\u0441.<\/sub>\u0421\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0435 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u045e\u043b\u0435\u043d\u043d\u0435 \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u044e \u043a\u0440\u0430\u043d\u0430, \u0430\u0434\u0437\u0456\u043d\u043a\u0430: \u041d<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u0417\u0430\u045e\u0432\u0430\u0433\u0456<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0413\u044d\u0442\u0430 f<sub>\u0440<\/sub> \u041a\u0430\u044d\u0444\u0456\u0446\u044b\u0435\u043d\u0442 \u043d\u0430\u0441\u0430\u043c\u0440\u044d\u0447 \u0430\u0434\u043b\u044e\u0441\u0442\u0440\u043e\u045e\u0432\u0430\u0435 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u045e\u043b\u0435\u043d\u043d\u0435 \u043a\u043e\u0447\u044d\u043d\u043d\u044f \u043a\u043e\u043b\u044b \u043f\u043b\u044e\u0441 \u0442\u0440\u044d\u043d\u043d\u0435 \u043f\u0430\u0434\u0448\u044b\u043f\u043d\u0456\u043a\u0430 \u043a\u043e\u043b\u044b, \u0430 \u0442\u0430\u043a\u0441\u0430\u043c\u0430 \u0434\u0430\u0434\u0430\u0442\u043a\u043e\u0432\u044b\u044f \u044d\u0444\u0435\u043a\u0442\u044b, \u0437\u0432\u044f\u0437\u0430\u043d\u044b\u044f \u0437 \u0444\u043b\u0430\u043d\u0446\u0430\u043c \u043a\u043e\u043b\u0430.<\/li>\n\n\n\n<li>\u0417\u0432\u044b\u0447\u0430\u0439\u043d\u0430 \u0434\u044b\u044f\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043b\u0430\u045e \u043c\u0435\u0445\u0430\u043d\u0456\u0437\u043c\u0443 \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u044f \u043a\u0440\u0430\u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u044b\u044f, \u0447\u044b\u043c \u0434\u044b\u044f\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043b\u0430\u045e \u043c\u0435\u0445\u0430\u043d\u0456\u0437\u043c\u0443 \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u044f \u043a\u0430\u043b\u044f\u0441\u043a\u0456. \u0422\u0430\u043c\u0443 \u0433\u044d\u0442\u044b \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u0430\u0440 \u0434\u0430\u0437\u0432\u0430\u043b\u044f\u0435 \u043f\u0440\u0430\u0432\u043e\u0434\u0437\u0456\u0446\u044c \u0430\u0441\u043e\u0431\u043d\u044b\u044f \u0440\u0430\u0437\u043b\u0456\u043a\u0456 \u043d\u0430 \u0430\u0441\u043d\u043e\u0432\u0435 \u0430\u0434\u043f\u0430\u0432\u0435\u0434\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u045e.<\/li>\n\n\n\n<li>\u0414\u043b\u044f \u043f\u0435\u0440\u0430\u0441\u043e\u045e\u043d\u044b\u0445 \u043c\u0435\u0445\u0430\u043d\u0456\u0437\u043c\u0430\u045e \u0456 \u044d\u043b\u0435\u043a\u0442\u0440\u0430\u0440\u0443\u0445\u0430\u0432\u0456\u043a\u043e\u045e \u043f\u0430\u0442\u0440\u0430\u0431\u0430\u0432\u0430\u043d\u043d\u0456 \u0434\u0430 \u043c\u0430\u0433\u0443\u0442\u043d\u0430\u0441\u0446\u0456 \u0430\u0434\u043d\u043e\u0441\u043d\u0430 \u0430\u0434\u0447\u0443\u0432\u0430\u043b\u044c\u043d\u044b\u044f. \u041d\u0430\u0432\u0430\u0442 \u0433\u0440\u0430\u0434\u044b\u0435\u043d\u0442 \u0443\u0441\u044f\u0433\u043e \u045e 1\u2030 \u0441\u0442\u0432\u0430\u0440\u0430\u0435 \u0444\u0430\u043a\u0442\u044b\u0447\u043d\u044b \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u045e \u0445\u043e\u0434\u0443. \u0422\u0430\u043c\u0443, \u043f\u0440\u044b \u0430\u0434\u0441\u0443\u0442\u043d\u0430\u0441\u0446\u0456 \u0432\u044b\u043c\u0435\u0440\u0430\u043d\u044b\u0445 \u0434\u0430\u0434\u0437\u0435\u043d\u044b\u0445 \u0437 \u0430\u0431&#39;\u0435\u043a\u0442\u0430, \u0443\u043b\u0456\u0447\u0432\u0430\u0435\u0446\u0446\u0430 \u043c\u0435\u0440\u043a\u0430\u0432\u0430\u043d\u044b \u0433\u0440\u0430\u0434\u044b\u0435\u043d\u0442, \u043a\u0430\u0431 \u043f\u0440\u0430\u0434\u0443\u0445\u0456\u043b\u0456\u0446\u044c \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043d\u043d\u0435 \u0440\u0443\u0445\u0430\u0432\u0456\u043a\u0430 \u0437 \u0437\u0430\u043d\u0456\u0436\u0430\u043d\u0430\u0439 \u043c\u0430\u0433\u0443\u0442\u043d\u0430\u0441\u0446\u044e.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u041f\u0440\u044b\u0434\u0430\u0442\u043d\u044b\u044f \u043a\u0440\u0430\u043d\u044b<\/h2>\n\n\n\n<p>\u041f\u0435\u0440\u0430\u043b\u0456\u0447\u0430\u043d\u044b\u044f \u043d\u0456\u0436\u044d\u0439 \u043f\u0440\u0430\u0434\u0443\u043a\u0442\u044b \u045e \u043f\u0435\u0440\u0448\u0443\u044e \u0447\u0430\u0440\u0433\u0443 \u043f\u0430\u0434\u044b\u0445\u043e\u0434\u0437\u044f\u0446\u044c \u0434\u043b\u044f \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043d\u043d\u044f \u045e \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u043f\u0430\u043c\u044f\u0448\u043a\u0430\u043d\u043d\u044f\u0445 \u0432\u044b\u0442\u0432\u043e\u0440\u0447\u044b\u0445 \u043f\u0430\u043c\u044f\u0448\u043a\u0430\u043d\u043d\u044f\u045e.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0410\u0434\u043d\u0430\u0431\u0430\u043b\u043a\u0430\u0432\u044b \u043c\u0430\u0441\u0442\u0430\u0432\u044b \u043a\u0440\u0430\u043d<\/li>\n\n\n\n<li>\u0414\u0432\u0443\u0445\u0431\u0430\u043b\u043a\u0430\u0432\u044b \u043c\u0430\u0441\u0442\u0430\u0432\u044b \u043a\u0440\u0430\u043d<\/li>\n\n\n\n<li>\u0410\u0434\u043d\u0430\u0431\u0430\u043b\u043a\u0430\u0432\u044b \u043f\u0430\u0440\u0442\u0430\u043b\u044c\u043d\u044b \u043a\u0440\u0430\u043d (\u0434\u043b\u044f \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043d\u043d\u044f \u045e \u043f\u0430\u043c\u044f\u0448\u043a\u0430\u043d\u043d\u044f\u0445)<\/li>\n\n\n\n<li>\u0414\u0432\u0443\u0445\u0431\u0430\u043b\u043a\u0430\u0432\u044b \u043f\u0430\u0440\u0442\u0430\u043b\u044c\u043d\u044b \u043a\u0440\u0430\u043d (\u0434\u043b\u044f \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043d\u043d\u044f \u045e \u043f\u0430\u043c\u044f\u0448\u043a\u0430\u043d\u043d\u044f\u0445)<\/li>\n\n\n\n<li>\u041a\u0430\u043b\u044f\u0441\u043a\u0430 \u043c\u0430\u0441\u0442\u0430\u0432\u043e\u0433\u0430 \u043a\u0440\u0430\u043d\u0430<\/li>\n\n\n\n<li>\u041a\u0430\u043b\u044f\u0441\u043a\u0430 \u043f\u0430\u0440\u0442\u043e\u0432\u0430\u0433\u0430 \u043a\u0440\u0430\u043d\u0430<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u0430\u0440 \u0441\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0433\u0430 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u0432\u0443 \u043f\u0440\u044b \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u0456 \u043a\u0440\u0430\u043d\u0430 \u0430\u0446\u044d\u043d\u044c\u0432\u0430\u0435 \u0441\u0456\u043b\u0443, \u043d\u0435\u0430\u0431\u0445\u043e\u0434\u043d\u0443\u044e \u0434\u043b\u044f \u043f\u0435\u0440\u0430\u0430\u0434\u043e\u043b\u0435\u043d\u043d\u044f \u0442\u0440\u044d\u043d\u043d\u044f \u0456 \u043d\u0430\u0445\u0456\u043b\u0443 \u043f\u0443\u0446\u0435\u0439 \u043f\u0440\u044b \u043d\u0430\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u0456. \u0412\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u043e\u045e\u0432\u0430\u044e\u0447\u044b \u043d\u0430\u043c\u0456\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0456 \u045e\u043b\u0430\u0441\u043d\u0443\u044e \u0432\u0430\u0433\u0443 \u043a\u0440\u0430\u043d\u0430, \u0451\u043d \u043f\u0440\u0430\u0432\u044f\u0440\u0430\u0435, \u0446\u0456 \u043c\u043e\u0433\u0443\u0446\u044c \u0440\u0443\u0445\u0430\u0432\u0456\u043a\u0456 \u0456 \u043f\u0440\u044b\u0432\u0430\u0434\u044b \u0440\u0443\u0445\u0430\u0446\u044c \u043a\u0440\u0430\u043d. \u0412\u044b\u043d\u0456\u043a\u0456 \u0434\u0430\u043f\u0430\u043c\u0430\u0433\u0430\u044e\u0446\u044c \u0432\u044b\u0431\u0440\u0430\u0446\u044c \u0430\u0434\u043f\u0430\u0432\u0435\u0434\u043d\u044b\u044f \u0440\u0443\u0445\u0430\u0432\u0456\u043a\u0456, \u0440\u044d\u0434\u0443\u043a\u0442\u0430\u0440\u044b \u0456 \u043a\u043e\u043b\u044b. \u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u0430\u0440 \u0441\u0442\u0430\u0442\u044b\u0447\u043d\u0430\u0433\u0430 \u0441\u0443\u043f\u0440\u0430\u0446\u0456\u0432\u0443 \u043f\u0440\u044b \u043f\u0435\u0440\u0430\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u0456 \u043a\u0440\u0430\u043d\u0430 \u0442\u0430\u043a\u0441\u0430\u043c\u0430 \u0434\u0430\u043f\u0430\u043c\u0430\u0433\u0430\u0435 \u0430\u0446\u0430\u043d\u0456\u0446\u044c \u0440\u044b\u0437\u044b\u043a\u0443 \u043f\u0440\u0430\u0441\u043b\u0456\u0437\u0433\u0432\u0430\u043d\u043d\u044f \u043a\u043e\u043b\u0430\u045e. \u0414\u043b\u044f \u043d\u0430\u0445\u0456\u043b\u044c\u043d\u044b\u0445 \u043f\u0443\u0446\u0435\u0439 \u0440\u0430\u0437\u043b\u0456\u043a \u0430\u0446\u044d\u043d\u044c\u0432\u0430\u0435 \u043c\u0430\u0433\u0447\u044b\u043c\u0430\u0435 \u043f\u0440\u0430\u0441\u043b\u0456\u0437\u0433\u0432\u0430\u043d\u043d\u0435 \u043a\u0440\u0430\u043d\u0430 \u043f\u0430\u0441\u043b\u044f \u043f\u0440\u044b\u043f\u044b\u043d\u043a\u0443, \u043f\u0440\u0430\u0434\u0443\u0445\u0456\u043b\u044f\u044e\u0447\u044b \u043f\u0430\u0448\u043a\u043e\u0434\u0436\u0430\u043d\u043d\u0435 \u043f\u0430\u0434\u0448\u044b\u043f\u043d\u0456\u043a\u0430\u045e, \u0437\u0430\u043a\u0443\u0441\u0432\u0430\u043d\u043d\u0435 \u0440\u044d\u0435\u043a \u0456 \u043f\u0440\u0430\u0431\u043b\u0435\u043c\u044b, \u0437\u0432\u044f\u0437\u0430\u043d\u044b\u044f \u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u045e\u043a\u0430\u0439.","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\/be\/wp-json\/wp\/v2\/posts\/17375"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/comments?post=17375"}],"version-history":[{"count":5,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/posts\/17375\/revisions"}],"predecessor-version":[{"id":17380,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/posts\/17375\/revisions\/17380"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/media\/17373"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/media?parent=17375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/categories?post=17375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/be\/wp-json\/wp\/v2\/tags?post=17375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}