{"id":2249,"date":"2026-02-12T07:08:45","date_gmt":"2026-02-12T07:08:45","guid":{"rendered":"https:\/\/zxweldingrobot.com\/?page_id=2249"},"modified":"2026-02-13T07:22:35","modified_gmt":"2026-02-13T07:22:35","slug":"welding-time-efficiency-estimator","status":"publish","type":"page","link":"https:\/\/zxweldingrobot.com\/pt\/products\/gantry-welding-robot-workstation\/welding-time-efficiency-estimator\/","title":{"rendered":"Tempo de soldagem e estimador de efici\u00eancia"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns stk-block-columns stk-block stk-19a5433\" data-block-id=\"19a5433\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-19a5433-column\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-c7a24dc\" data-v=\"4\" data-block-id=\"c7a24dc\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-c7a24dc-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-c7a24dc-inner-blocks\">\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-cbdd083\" id=\"boost-welding-efficiency-with-our-production-planning-tool\" data-block-id=\"cbdd083\"><h1 class=\"stk-block-heading__text has-text-align-center\">Boost Welding Efficiency with Our Production Planning Tool<\/h1><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-9fa86d9\" data-block-id=\"9fa86d9\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-9fa86d9-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-2e38168\" data-v=\"4\" data-block-id=\"2e38168\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-2e38168-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-2e38168-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"breadcrumbs\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Home<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-9337616\" data-block-id=\"9337616\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-9337616-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-4aa0f68\" data-v=\"4\" data-block-id=\"4aa0f68\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-4aa0f68-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-4aa0f68-inner-blocks\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Bebas+Neue&#038;family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n:root{\n  --primary:#184890;--primary-dark:#0e2d5c;--primary-light:#2a6bc7;\n  --accent:#FFD800;--accent-dark:#d4b400;\n  --text:#1a1a2e;--text-sec:#4a4a6a;--text-muted:#8a8aaa;\n  --bg:#f4f6fa;--white:#ffffff;--dark:#0a1628;--border:#e2e6ef;\n  --green:#16a34a;--blue:#3b82f6;--orange:#f59e0b;--purple:#8b5cf6;\n  --shadow:0 8px 32px rgba(24,72,144,0.10);\n  --radius:16px;\n  --font-d:'Bebas Neue',sans-serif;--font-b:'DM Sans',sans-serif;\n  --ease:cubic-bezier(0.25,0.46,0.45,0.94);\n}\n\n.tool-shell{width:100%;max-width:1260px;margin:0 auto;}\n\n\/* \u2500\u2500 Header \u2500\u2500 *\/\n.tool-header{\n  background:linear-gradient(135deg,var(--dark) 0%,var(--primary-dark) 50%,var(--primary) 100%);\n  padding:40px 48px 36px;border-radius:var(--radius) var(--radius) 0 0;position:relative;overflow:hidden;\n}\n.tool-header::before{\n  content:'';position:absolute;inset:0;\n  background-image:\n    linear-gradient(rgba(255,216,0,0.02) 1px,transparent 1px),\n    linear-gradient(90deg,rgba(255,216,0,0.02) 1px,transparent 1px);\n  background-size:48px 48px;\n}\n.header-badge{\n  display:inline-flex;align-items:center;gap:8px;padding:5px 14px;\n  background:rgba(255,216,0,0.1);border:1px solid rgba(255,216,0,0.2);border-radius:20px;\n  font-family:var(--font-d);font-size:0.7rem;letter-spacing:3px;color:var(--accent);\n  margin-bottom:12px;position:relative;\n}\n.tool-header h2{\n  font-family:var(--font-d);font-size:clamp(1.5rem,3.2vw,2.3rem);color:var(--white);\n  letter-spacing:1px;position:relative;\n}\n.tool-header h2 span{color:var(--accent)}\n.tool-header p{color:rgba(255,255,255,0.5);font-size:0.88rem;margin-top:6px;max-width:600px;position:relative}\n\n\/* \u2500\u2500 Main Grid \u2500\u2500 *\/\n.tool-main{\n  background:var(--white);border-radius:0 0 var(--radius) var(--radius);\n  box-shadow:var(--shadow);overflow:hidden;\n}\n\n.config-section{\n  display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border);\n}\n\n.config-panel{padding:36px 40px}\n.config-panel:first-child{border-right:1px solid var(--border)}\n.config-panel h3{\n  font-family:var(--font-d);font-size:1rem;letter-spacing:2px;color:var(--primary-dark);\n  margin-bottom:20px;display:flex;align-items:center;gap:10px;\n}\n.config-panel h3 .dot{width:4px;height:18px;border-radius:2px;background:var(--accent)}\n\n\/* \u2500\u2500 Form Controls \u2500\u2500 *\/\n.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}\n.form-field{display:flex;flex-direction:column;gap:5px}\n.form-field label{font-size:0.78rem;font-weight:600;color:var(--text-sec);letter-spacing:0.3px}\n.form-field select,\n.form-field input[type=\"number\"]{\n  padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;\n  font-family:var(--font-b);font-size:0.9rem;color:var(--text);outline:none;transition:0.2s;\n}\n.form-field select:focus,\n.form-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(24,72,144,0.08)}\n.form-field input[type=\"number\"]{-moz-appearance:textfield}\n.form-field input::-webkit-inner-spin-button{opacity:1}\n\n.unit-hint{font-size:0.68rem;color:var(--text-muted)}\n\n\/* \u2500\u2500 Workpiece Preview SVG \u2500\u2500 *\/\n.preview-container{\n  display:flex;flex-direction:column;align-items:center;justify-content:center;\n  padding:36px 40px;background:var(--bg);position:relative;\n}\n.preview-title{\n  font-family:var(--font-d);font-size:0.85rem;letter-spacing:2px;color:var(--text-muted);\n  margin-bottom:16px;text-align:center;\n}\n.preview-svg{width:100%;max-width:380px}\n\n\/* \u2500\u2500 Results Section \u2500\u2500 *\/\n.results-section{padding:36px 40px}\n.results-header{\n  display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;\n}\n.results-header h3{\n  font-family:var(--font-d);font-size:1.1rem;letter-spacing:2px;color:var(--primary-dark);\n  display:flex;align-items:center;gap:10px;\n}\n.results-header h3 .dot{width:4px;height:18px;border-radius:2px;background:var(--green)}\n\n.recalc-indicator{\n  font-size:0.72rem;color:var(--green);font-weight:600;display:flex;align-items:center;gap:4px;\n  opacity:0;transition:opacity 0.3s;\n}\n.recalc-indicator.show{opacity:1}\n\n\/* \u2500\u2500 Metric Cards Grid \u2500\u2500 *\/\n.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}\n\n.metric-card{\n  background:var(--bg);border-radius:12px;padding:20px 18px;\n  border:1px solid var(--border);transition:all 0.3s var(--ease);position:relative;overflow:hidden;\n}\n.metric-card::before{\n  content:'';position:absolute;top:0;left:0;width:100%;height:3px;\n  background:var(--primary);border-radius:3px 3px 0 0;\n}\n.metric-card:nth-child(1)::before{background:var(--accent)}\n.metric-card:nth-child(2)::before{background:var(--blue)}\n.metric-card:nth-child(3)::before{background:var(--green)}\n.metric-card:nth-child(4)::before{background:var(--purple)}\n\n.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(24,72,144,0.08)}\n\n.metric-icon{\n  width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;\n  margin-bottom:12px;\n}\n.metric-card:nth-child(1) .metric-icon{background:rgba(255,216,0,0.1)}\n.metric-card:nth-child(2) .metric-icon{background:rgba(59,130,246,0.08)}\n.metric-card:nth-child(3) .metric-icon{background:rgba(22,163,74,0.08)}\n.metric-card:nth-child(4) .metric-icon{background:rgba(139,92,246,0.08)}\n\n.metric-value{\n  font-family:var(--font-d);font-size:1.8rem;color:var(--primary-dark);line-height:1.1;\n}\n.metric-label{font-size:0.75rem;color:var(--text-muted);margin-top:4px;letter-spacing:0.3px}\n\n\/* \u2500\u2500 Detailed Breakdown \u2500\u2500 *\/\n.breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}\n\n.breakdown-card{\n  background:var(--bg);border-radius:12px;padding:22px 20px;border:1px solid var(--border);\n}\n.breakdown-card h4{\n  font-family:var(--font-d);font-size:0.85rem;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:14px;\n}\n.bk-item{\n  display:flex;justify-content:space-between;align-items:center;\n  padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.04);font-size:0.85rem;\n}\n.bk-item:last-child{border-bottom:none}\n.bk-item span:first-child{color:var(--text-sec)}\n.bk-item span:last-child{font-weight:600;color:var(--primary)}\n\n\/* \u2500\u2500 Time Breakdown Donut \u2500\u2500 *\/\n.donut-section{display:flex;align-items:center;gap:28px;margin-bottom:24px}\n.donut-svg{width:140px;height:140px;flex-shrink:0}\n.donut-legend{display:flex;flex-direction:column;gap:8px;flex:1}\n.legend-row{display:flex;align-items:center;gap:10px;font-size:0.82rem}\n.legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}\n.legend-val{margin-left:auto;font-family:var(--font-d);font-size:1rem;color:var(--primary)}\n\n\/* \u2500\u2500 Gantt-Style Timeline \u2500\u2500 *\/\n.timeline-section{\n  background:linear-gradient(135deg,var(--dark),var(--primary));border-radius:14px;\n  padding:28px;position:relative;overflow:hidden;margin-bottom:24px;\n}\n.timeline-section::before{\n  content:'';position:absolute;inset:0;\n  background:radial-gradient(circle at 80% 20%,rgba(255,216,0,0.06),transparent 50%);\n}\n.timeline-title{\n  font-family:var(--font-d);font-size:0.85rem;letter-spacing:2px;color:rgba(255,255,255,0.45);\n  margin-bottom:16px;position:relative;\n}\n.timeline-bars{display:flex;flex-direction:column;gap:10px;position:relative}\n.tl-row{display:flex;align-items:center;gap:12px}\n.tl-label{width:80px;font-size:0.72rem;color:rgba(255,255,255,0.5);text-align:right;flex-shrink:0;font-weight:600}\n.tl-track{flex:1;height:24px;background:rgba(255,255,255,0.04);border-radius:6px;overflow:hidden;position:relative}\n.tl-fill{\n  height:100%;border-radius:5px;display:flex;align-items:center;padding-left:10px;\n  font-size:0.7rem;font-weight:700;color:var(--white);transition:width 0.8s var(--ease);\n}\n.tl-fill.welding{background:linear-gradient(90deg,var(--accent),#f59e0b)}\n.tl-fill.positioning{background:linear-gradient(90deg,var(--blue),#60a5fa)}\n.tl-fill.cleaning{background:linear-gradient(90deg,var(--green),#4ade80)}\n.tl-fill.other{background:linear-gradient(90deg,var(--purple),#a78bfa)}\n\n\/* \u2500\u2500 CTA Row \u2500\u2500 *\/\n.tool-cta{\n  display:flex;gap:10px;justify-content:flex-end;padding-top:16px;\n  border-top:1px solid var(--border);margin-top:8px;\n}\n.btn{\n  display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:none;\n  border-radius:8px;font-family:var(--font-d);font-size:0.9rem;letter-spacing:2px;\n  cursor:pointer;transition:0.3s var(--ease);text-transform:uppercase;\n}\n.btn-accent{background:var(--accent);color:var(--primary-dark);font-weight:700}\n.btn-accent:hover{box-shadow:0 6px 20px rgba(255,216,0,0.3);transform:translateY(-1px)}\n.btn-ghost{background:transparent;color:var(--primary);border:1px solid var(--border)}\n.btn-ghost:hover{border-color:var(--primary)}\n\n@media(max-width:800px){\n  .config-section{grid-template-columns:1fr}\n  .config-panel:first-child{border-right:none;border-bottom:1px solid var(--border)}\n  .metrics-grid{grid-template-columns:1fr 1fr}\n  .breakdown-grid{grid-template-columns:1fr}\n  .form-row{grid-template-columns:1fr}\n  .tool-header,.config-panel,.results-section,.preview-container{padding:24px}\n  .donut-section{flex-direction:column}\n}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"tool-shell\">\n  <!-- Header -->\n  <div class=\"tool-header\">\n    <div class=\"header-badge\">\n      <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 6v6l4 2\"\/><\/svg>\n      PRODUCTION PLANNING TOOL\n    <\/div>\n    <h2>WELDING TIME &#038; EFFICIENCY <span>ESTIMATOR<\/span><\/h2>\n    <p>Input your workpiece parameters and joint details to estimate welding cycle time, throughput, and production scheduling for your gantry welding robot workstation.<\/p>\n  <\/div>\n\n  <div class=\"tool-main\">\n    <!-- Configuration -->\n    <div class=\"config-section\">\n      <div class=\"config-panel\">\n        <h3><span class=\"dot\"><\/span>WORKPIECE PARAMETERS<\/h3>\n\n        <div class=\"form-row\">\n          <div class=\"form-field\">\n            <label>Workpiece Type<\/label>\n            <select id=\"wp-type\" onchange=\"estimate()\">\n              <option value=\"hbeam\">H-Beam \/ Column<\/option>\n              <option value=\"plate\">Plate Unit \/ Panel<\/option>\n              <option value=\"box\">Box Column \/ Section<\/option>\n              <option value=\"tplatform\">T-Platform \/ Corbel<\/option>\n              <option value=\"pipe\">Pipe \/ Cylinder<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"form-field\">\n            <label>Material Thickness (mm)<\/label>\n            <input type=\"number\" id=\"wp-thickness\" value=\"16\" min=\"3\" max=\"60\" onchange=\"estimate()\">\n          <\/div>\n        <\/div>\n\n        <div class=\"form-row\">\n          <div class=\"form-field\">\n            <label>Workpiece Length (mm)<\/label>\n            <input type=\"number\" id=\"wp-length\" value=\"6000\" min=\"500\" max=\"24000\" step=\"100\" onchange=\"estimate()\">\n          <\/div>\n          <div class=\"form-field\">\n            <label>Workpiece Width \/ Height (mm)<\/label>\n            <input type=\"number\" id=\"wp-width\" value=\"800\" min=\"100\" max=\"5000\" step=\"50\" onchange=\"estimate()\">\n          <\/div>\n        <\/div>\n\n        <div class=\"form-row\">\n          <div class=\"form-field\">\n            <label>Number of Weld Seams<\/label>\n            <input type=\"number\" id=\"wp-seams\" value=\"8\" min=\"1\" max=\"100\" onchange=\"estimate()\">\n          <\/div>\n          <div class=\"form-field\">\n            <label>Average Seam Length (mm)<\/label>\n            <input type=\"number\" id=\"wp-seamlen\" value=\"5800\" min=\"100\" max=\"24000\" step=\"100\" onchange=\"estimate()\">\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"config-panel\">\n        <h3><span class=\"dot\"><\/span>WELDING PARAMETERS<\/h3>\n\n        <div class=\"form-row\">\n          <div class=\"form-field\">\n            <label>Weld Joint Type<\/label>\n            <select id=\"wj-type\" onchange=\"estimate()\">\n              <option value=\"fillet\">Fillet Weld<\/option>\n              <option value=\"butt\">Butt Weld<\/option>\n              <option value=\"lap\">Lap Joint<\/option>\n              <option value=\"groove\">Groove Weld<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"form-field\">\n            <label>Fillet \/ Leg Size (mm)<\/label>\n            <input type=\"number\" id=\"wj-size\" value=\"6\" min=\"3\" max=\"20\" onchange=\"estimate()\">\n          <\/div>\n        <\/div>\n\n        <div class=\"form-row\">\n          <div class=\"form-field\">\n            <label>Welding Speed (m\/min)<\/label>\n            <select id=\"wj-speed\" onchange=\"estimate()\">\n              <option value=\"0.3\">0.3 (multi-pass thick)<\/option>\n              <option value=\"0.4\" selected>0.4 (standard)<\/option>\n              <option value=\"0.5\">0.5 (single-pass thin)<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"form-field\">\n            <label>Robot Configuration<\/label>\n            <select id=\"wj-robots\" onchange=\"estimate()\">\n              <option value=\"1\">Single Robot<\/option>\n              <option value=\"2\">Twin Robot (Gantry)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n\n        <div class=\"form-row\">\n          <div class=\"form-field\">\n            <label>Batch Quantity (pcs)<\/label>\n            <input type=\"number\" id=\"wp-batch\" value=\"10\" min=\"1\" max=\"500\" onchange=\"estimate()\">\n          <\/div>\n          <div class=\"form-field\">\n            <label>Shift Hours per Day<\/label>\n            <select id=\"wp-shift\" onchange=\"estimate()\">\n              <option value=\"8\">Single Shift (8h)<\/option>\n              <option value=\"16\" selected>Double Shift (16h)<\/option>\n              <option value=\"24\">Triple Shift (24h)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Results -->\n    <div class=\"results-section\">\n      <div class=\"results-header\">\n        <h3><span class=\"dot\"><\/span>ESTIMATED RESULTS<\/h3>\n        <div class=\"recalc-indicator\" id=\"recalcBadge\">\n          <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"\/><polyline points=\"22,4 12,14.01 9,11.01\"\/><\/svg>\n          Updated\n        <\/div>\n      <\/div>\n\n      <!-- Hero Metrics -->\n      <div class=\"metrics-grid\">\n        <div class=\"metric-card\">\n          <div class=\"metric-icon\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--accent-dark)\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 6v6l4 2\"\/><\/svg>\n          <\/div>\n          <div class=\"metric-value\" id=\"m-cycletime\">18.5 min<\/div>\n          <div class=\"metric-label\">Cycle Time per Piece<\/div>\n        <\/div>\n        <div class=\"metric-card\">\n          <div class=\"metric-icon\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--blue)\" stroke-width=\"2\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg>\n          <\/div>\n          <div class=\"metric-value\" id=\"m-throughput\">26 pcs\/day<\/div>\n          <div class=\"metric-label\">Daily Throughput<\/div>\n        <\/div>\n        <div class=\"metric-card\">\n          <div class=\"metric-icon\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--green)\" stroke-width=\"2\"><path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"\/><polyline points=\"22,4 12,14.01 9,11.01\"\/><\/svg>\n          <\/div>\n          <div class=\"metric-value\" id=\"m-batchtime\">6.3 hrs<\/div>\n          <div class=\"metric-label\">Batch Completion<\/div>\n        <\/div>\n        <div class=\"metric-card\">\n          <div class=\"metric-icon\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--purple)\" stroke-width=\"2\"><path d=\"M12 20V10M18 20V4M6 20v-4\"\/><\/svg>\n          <\/div>\n          <div class=\"metric-value\" id=\"m-arctime\">72%<\/div>\n          <div class=\"metric-label\">Arc-On Rate<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Detailed Breakdown -->\n      <div class=\"breakdown-grid\">\n        <div class=\"breakdown-card\">\n          <h4>WELD CALCULATION<\/h4>\n          <div class=\"bk-item\"><span>Total Weld Length<\/span><span id=\"bk-totallen\">46.4 m<\/span><\/div>\n          <div class=\"bk-item\"><span>Estimated Passes<\/span><span id=\"bk-passes\">1 pass<\/span><\/div>\n          <div class=\"bk-item\"><span>Net Welding Time<\/span><span id=\"bk-weldtime\">13.3 min<\/span><\/div>\n          <div class=\"bk-item\"><span>Wire Consumption (est.)<\/span><span id=\"bk-wire\">2.8 kg<\/span><\/div>\n          <div class=\"bk-item\"><span>Gas Usage (est.)<\/span><span id=\"bk-gas\">280 L<\/span><\/div>\n        <\/div>\n        <div class=\"breakdown-card\">\n          <h4>NON-WELD TIME<\/h4>\n          <div class=\"bk-item\"><span>3D Scan &#038; Positioning<\/span><span id=\"bk-scan\">1.5 min<\/span><\/div>\n          <div class=\"bk-item\"><span>Robot Travel (between seams)<\/span><span id=\"bk-travel\">1.8 min<\/span><\/div>\n          <div class=\"bk-item\"><span>Torch Cleaning<\/span><span id=\"bk-clean\">0.8 min<\/span><\/div>\n          <div class=\"bk-item\"><span>Loading \/ Unloading<\/span><span id=\"bk-load\">3.0 min<\/span><\/div>\n          <div class=\"bk-item\"><span>Total Non-Weld Overhead<\/span><span id=\"bk-overhead\">7.1 min<\/span><\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Time Breakdown Donut + Timeline -->\n      <div style=\"display:grid;grid-template-columns:260px 1fr;gap:20px;margin-bottom:24px\">\n        <div style=\"background:var(--bg);border-radius:12px;padding:20px;border:1px solid var(--border)\">\n          <div style=\"font-family:var(--font-d);font-size:0.8rem;letter-spacing:1px;color:var(--text-muted);margin-bottom:12px\">TIME DISTRIBUTION<\/div>\n          <div class=\"donut-section\" style=\"margin-bottom:0;flex-direction:column\">\n            <svg class=\"donut-svg\" viewBox=\"0 0 140 140\" id=\"donutChart\">\n              <circle cx=\"70\" cy=\"70\" r=\"54\" fill=\"none\" stroke=\"var(--border)\" stroke-width=\"14\"\/>\n            <\/svg>\n            <div class=\"donut-legend\" id=\"donutLegend\"><\/div>\n          <\/div>\n        <\/div>\n\n        <!-- Gantt Timeline -->\n        <div class=\"timeline-section\">\n          <div class=\"timeline-title\">CYCLE BREAKDOWN PER WORKPIECE<\/div>\n          <div class=\"timeline-bars\" id=\"timelineBars\"><\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Manual Comparison -->\n      <div style=\"background:var(--bg);border-radius:12px;padding:20px 24px;border:1px solid var(--border);margin-bottom:20px\">\n        <div style=\"font-family:var(--font-d);font-size:0.8rem;letter-spacing:1px;color:var(--text-muted);margin-bottom:14px\">ROBOT vs MANUAL COMPARISON<\/div>\n        <div style=\"display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px\" id=\"comparisonGrid\"><\/div>\n      <\/div>\n\n      <!-- CTA -->\n      <div class=\"tool-cta\">\n        <button class=\"btn btn-ghost\" onclick=\"window.print()\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 9V2h12v7M6 18H4a2 2 0 01-2-2v-5a2 2 0 012-2h16a2 2 0 012 2v5a2 2 0 01-2 2h-2\"\/><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"\/><\/svg>\n          PRINT\n        <\/button>\n        <a class=\"btn btn-accent\" href=\"#ct-popup-1791\">\n          GET A CUSTOM ESTIMATE \u2192\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\nfunction estimate() {\n  \/\/ \u2500\u2500 Gather Inputs \u2500\u2500\n  const wpType     = document.getElementById('wp-type').value;\n  const thickness  = +document.getElementById('wp-thickness').value;\n  const wpLength   = +document.getElementById('wp-length').value;\n  const wpWidth    = +document.getElementById('wp-width').value;\n  const numSeams   = +document.getElementById('wp-seams').value;\n  const seamLen    = +document.getElementById('wp-seamlen').value;\n  const jointType  = document.getElementById('wj-type').value;\n  const legSize    = +document.getElementById('wj-size').value;\n  const weldSpeed  = +document.getElementById('wj-speed').value; \/\/ m\/min\n  const numRobots  = +document.getElementById('wj-robots').value;\n  const batchQty   = +document.getElementById('wp-batch').value;\n  const shiftHours = +document.getElementById('wp-shift').value;\n\n  \/\/ \u2500\u2500 Calculations \u2500\u2500\n  const totalWeldLen = numSeams * seamLen \/ 1000; \/\/ meters\n\n  \/\/ Passes: based on leg size vs single pass capability (~6mm single pass)\n  let passes = 1;\n  if(legSize > 8) passes = 2;\n  if(legSize > 12) passes = 3;\n  if(jointType === 'groove' || jointType === 'butt') passes = Math.max(passes, Math.ceil(thickness \/ 10));\n\n  const effectiveWeldLen = totalWeldLen * passes;\n  const netWeldTime = effectiveWeldLen \/ weldSpeed \/ numRobots; \/\/ minutes\n\n  \/\/ Non-weld times\n  const scanTime = 0.8 + (wpLength \/ 6000) * 0.8; \/\/ base + scale\n  const travelTime = numSeams * 0.15 + (wpLength \/ 1000) * 0.1; \/\/ inter-seam + gantry travel\n  const cleanTime = Math.ceil(numSeams * passes \/ 6) * 0.4; \/\/ clean every ~6 seams\n  const loadTime = 2.0 + (wpLength > 6000 ? 1.5 : 0) + (wpWidth > 1500 ? 1.0 : 0);\n  const overheadTime = scanTime + travelTime + cleanTime + loadTime;\n  const cycleTime = netWeldTime + overheadTime;\n\n  \/\/ Throughput\n  const availableMin = shiftHours * 60 * 0.85; \/\/ 85% utilization\n  const dailyPcs = Math.floor(availableMin \/ cycleTime);\n  const batchHours = (cycleTime * batchQty) \/ 60;\n\n  \/\/ Arc-on rate\n  const arcOnRate = (netWeldTime \/ cycleTime) * 100;\n\n  \/\/ Wire consumption: ~0.06 kg\/m for 6mm fillet (scale with leg size)\n  const wireRate = 0.06 * Math.pow(legSize \/ 6, 2);\n  const wireKg = effectiveWeldLen * wireRate;\n\n  \/\/ Gas: ~15 L\/min during welding\n  const gasL = netWeldTime * 15;\n\n  \/\/ \u2500\u2500 Update Metric Cards \u2500\u2500\n  document.getElementById('m-cycletime').textContent = cycleTime < 60 ? cycleTime.toFixed(1) + ' min' : (cycleTime\/60).toFixed(1) + ' hrs';\n  document.getElementById('m-throughput').textContent = dailyPcs + ' pcs\/day';\n  document.getElementById('m-batchtime').textContent = batchHours < 24 ? batchHours.toFixed(1) + ' hrs' : (batchHours\/24).toFixed(1) + ' days';\n  document.getElementById('m-arctime').textContent = Math.round(arcOnRate) + '%';\n\n  \/\/ \u2500\u2500 Breakdown \u2500\u2500\n  document.getElementById('bk-totallen').textContent = totalWeldLen.toFixed(1) + ' m' + (passes > 1 ? ' \u00d7 '+passes+' = '+effectiveWeldLen.toFixed(1)+' m' : '');\n  document.getElementById('bk-passes').textContent = passes + (passes > 1 ? ' passes' : ' pass');\n  document.getElementById('bk-weldtime').textContent = netWeldTime.toFixed(1) + ' min';\n  document.getElementById('bk-wire').textContent = wireKg.toFixed(1) + ' kg';\n  document.getElementById('bk-gas').textContent = Math.round(gasL) + ' L';\n  document.getElementById('bk-scan').textContent = scanTime.toFixed(1) + ' min';\n  document.getElementById('bk-travel').textContent = travelTime.toFixed(1) + ' min';\n  document.getElementById('bk-clean').textContent = cleanTime.toFixed(1) + ' min';\n  document.getElementById('bk-load').textContent = loadTime.toFixed(1) + ' min';\n  document.getElementById('bk-overhead').textContent = overheadTime.toFixed(1) + ' min';\n\n  \/\/ \u2500\u2500 Donut Chart \u2500\u2500\n  const segments = [\n    {label:'Welding', pct: netWeldTime\/cycleTime*100, color:'var(--accent)'},\n    {label:'Positioning', pct: (scanTime+travelTime)\/cycleTime*100, color:'var(--blue)'},\n    {label:'Cleaning', pct: cleanTime\/cycleTime*100, color:'var(--green)'},\n    {label:'Load\/Unload', pct: loadTime\/cycleTime*100, color:'var(--purple)'},\n  ];\n\n  const donut = document.getElementById('donutChart');\n  \/\/ Keep base circle, remove old segments\n  donut.innerHTML = '<circle cx=\"70\" cy=\"70\" r=\"54\" fill=\"none\" stroke=\"#e2e6ef\" stroke-width=\"14\"\/>';\n  const circumference = 2 * Math.PI * 54;\n  let offset = 0;\n  segments.forEach(s => {\n    const dash = circumference * s.pct \/ 100;\n    const gap = circumference - dash;\n    donut.innerHTML += `<circle cx=\"70\" cy=\"70\" r=\"54\" fill=\"none\" stroke=\"${s.color}\" stroke-width=\"14\"\n      stroke-dasharray=\"${dash} ${gap}\" stroke-dashoffset=\"${-offset}\" transform=\"rotate(-90 70 70)\"\n      style=\"transition:all 0.6s\"\/>`;\n    offset += dash;\n  });\n  \/\/ Center text\n  donut.innerHTML += `<text x=\"70\" y=\"66\" text-anchor=\"middle\" font-family=\"Bebas Neue,sans-serif\" font-size=\"22\" fill=\"#184890\">${cycleTime.toFixed(0)}<\/text>`;\n  donut.innerHTML += `<text x=\"70\" y=\"80\" text-anchor=\"middle\" font-family=\"DM Sans,sans-serif\" font-size=\"8\" fill=\"#8a8aaa\">MINUTES<\/text>`;\n\n  const legend = document.getElementById('donutLegend');\n  legend.innerHTML = '';\n  segments.forEach(s => {\n    legend.innerHTML += `<div class=\"legend-row\">\n      <span class=\"legend-dot\" style=\"background:${s.color}\"><\/span>\n      <span>${s.label}<\/span>\n      <span class=\"legend-val\">${s.pct.toFixed(0)}%<\/span>\n    <\/div>`;\n  });\n\n  \/\/ \u2500\u2500 Timeline Bars \u2500\u2500\n  const tlEl = document.getElementById('timelineBars');\n  const tlData = [\n    {label:'Scan\/Pos', time:scanTime, cls:'positioning'},\n    {label:'Welding', time:netWeldTime, cls:'welding'},\n    {label:'Travel', time:travelTime, cls:'positioning'},\n    {label:'Clean', time:cleanTime, cls:'cleaning'},\n    {label:'Load\/Unl', time:loadTime, cls:'other'},\n  ];\n  const maxTime = cycleTime;\n  tlEl.innerHTML = '';\n  tlData.forEach(t => {\n    const pct = Math.max(5, (t.time \/ maxTime) * 100);\n    tlEl.innerHTML += `<div class=\"tl-row\">\n      <div class=\"tl-label\">${t.label}<\/div>\n      <div class=\"tl-track\"><div class=\"tl-fill ${t.cls}\" style=\"width:${pct}%\">${t.time.toFixed(1)} min<\/div><\/div>\n    <\/div>`;\n  });\n\n  \/\/ \u2500\u2500 Manual vs Robot Comparison \u2500\u2500\n  const manualSpeed = 0.15; \/\/ m\/min average for manual welder\n  const manualCycle = (effectiveWeldLen \/ manualSpeed) + overheadTime * 2.5;\n  const manualDaily = Math.floor((shiftHours * 60 * 0.65) \/ manualCycle);\n  const speedup = (manualCycle \/ cycleTime).toFixed(1);\n\n  const compGrid = document.getElementById('comparisonGrid');\n  const compData = [\n    {label:'Cycle Time', manual: manualCycle.toFixed(0)+' min', robot: cycleTime.toFixed(1)+' min', highlight: speedup+'\u00d7 faster'},\n    {label:'Daily Output', manual: manualDaily+' pcs', robot: dailyPcs+' pcs', highlight: (dailyPcs>0 ? (dailyPcs\/Math.max(1,manualDaily)).toFixed(1) : '\u2014')+'\u00d7 more'},\n    {label:'Consistency', manual: '\u00b12\u20135mm', robot: '\u00b10.05mm', highlight: '40\u2013100\u00d7 better'},\n  ];\n  compGrid.innerHTML = '';\n  compData.forEach(c => {\n    compGrid.innerHTML += `<div style=\"background:var(--white);border-radius:10px;padding:16px;border:1px solid var(--border)\">\n      <div style=\"font-size:0.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px\">${c.label}<\/div>\n      <div style=\"display:flex;justify-content:space-between;font-size:0.82rem;padding:6px 0;border-bottom:1px solid var(--border)\">\n        <span style=\"color:var(--text-muted)\">Manual<\/span><span style=\"color:#ef4444;font-weight:600\">${c.manual}<\/span>\n      <\/div>\n      <div style=\"display:flex;justify-content:space-between;font-size:0.82rem;padding:6px 0;border-bottom:1px solid var(--border)\">\n        <span style=\"color:var(--text-muted)\">Robot<\/span><span style=\"color:var(--green);font-weight:600\">${c.robot}<\/span>\n      <\/div>\n      <div style=\"text-align:center;margin-top:8px;font-family:var(--font-d);font-size:1.05rem;color:var(--primary)\">${c.highlight}<\/div>\n    <\/div>`;\n  });\n\n  \/\/ Flash recalc indicator\n  const badge = document.getElementById('recalcBadge');\n  badge.classList.add('show');\n  setTimeout(() => badge.classList.remove('show'), 1500);\n}\n\n\/\/ Initial calc\nestimate();\n<\/script>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Boost Welding Efficiency with Our Production Planning Tool PRODUCTION PLANNING TOOL WELDING TIME &#038; EFFICIENCY ESTIMATOR Input your workpiece parameters and joint details to estimate welding cycle time, throughput, and production scheduling for your gantry welding robot workstation. WORKPIECE PARAMETERS Workpiece Type H-Beam \/ ColumnPlate Unit \/ PanelBox Column \/ SectionT-Platform \/ CorbelPipe \/ Cylinder [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":2030,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2249","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/pages\/2249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/comments?post=2249"}],"version-history":[{"count":0,"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/pages\/2249\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/pages\/2030"}],"wp:attachment":[{"href":"https:\/\/zxweldingrobot.com\/pt\/wp-json\/wp\/v2\/media?parent=2249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}