{"id":922,"date":"2026-03-03T06:36:47","date_gmt":"2026-03-03T06:36:47","guid":{"rendered":"https:\/\/meitu-engelhardt.com\/?page_id=922"},"modified":"2026-03-03T06:57:08","modified_gmt":"2026-03-03T06:57:08","slug":"injection-molding-tolerance-calculator","status":"publish","type":"page","link":"https:\/\/meitu-engelhardt.com\/es\/plastic-injection-molding\/injection-molding-tolerance-calculator\/","title":{"rendered":"Calculadora de tolerancia al moldeo por inyecci\u00f3n"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns stk-block-columns stk-block stk-4fe6ae4\" data-block-id=\"4fe6ae4\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-4fe6ae4-column\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-eb8ce17\" data-v=\"4\" data-block-id=\"eb8ce17\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-eb8ce17-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-eb8ce17-inner-blocks\"><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-b63f01e\" data-block-id=\"b63f01e\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-b63f01e-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-6d05062\" data-v=\"4\" data-block-id=\"6d05062\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-6d05062-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-6d05062-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-a0a7dea\" data-block-id=\"a0a7dea\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-a0a7dea-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-e4f4c4d\" data-v=\"4\" data-block-id=\"e4f4c4d\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-e4f4c4d-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-e4f4c4d-inner-blocks\">\n<section id=\"bx-tolerance-calc-v1\">\n<style>\n\/* ========================================\n   SCOPED STYLES: #bx-tolerance-calc-v1\n   Optimized for Blocksy & FlyingPress\n   ======================================== *\/\n\n#bx-tolerance-calc-v1 {\n  max-width: 1280px; \/* \u4fee\u6539\uff1a\u6700\u5927\u5bbd\u5ea6\u8c03\u6574\u4e3a 1280px *\/\n  margin: 0 auto;    \/* \u5c45\u4e2d\u663e\u793a *\/\n  padding: 40px 24px 56px;\n  color: #000018;\n  line-height: 1.6;\n  box-sizing: border-box;\n  font-family: inherit; \/* \u4fee\u6539\uff1a\u7ee7\u627f\u4e3b\u9898\u5b57\u4f53 *\/\n  width: 100%;\n}\n\n#bx-tolerance-calc-v1 *,\n#bx-tolerance-calc-v1 *::before,\n#bx-tolerance-calc-v1 *::after {\n  box-sizing: border-box;\n}\n\n\/* \u5f3a\u5236\u8868\u5355\u5143\u7d20\u7ee7\u627f\u5b57\u4f53 *\/\n#bx-tolerance-calc-v1 input,\n#bx-tolerance-calc-v1 select,\n#bx-tolerance-calc-v1 button {\n  font-family: inherit;\n}\n\n\/* --- Typography --- *\/\n#bx-tolerance-calc-v1 h2 {\n  font-weight: 700;\n  color: #000018;\n  margin: 0 0 8px 0;\n  line-height: 1.2;\n}\n\n#bx-tolerance-calc-v1 h3 {\n  font-size: 1.25rem;\n  font-weight: 700;\n  color: #000018;\n  margin: 0 0 16px 0;\n  line-height: 1.3;\n}\n\n#bx-tolerance-calc-v1 h4 {\n  font-size: 1.05rem;\n  font-weight: 600;\n  color: #000018;\n  margin: 0 0 10px 0;\n  line-height: 1.3;\n}\n\n#bx-tolerance-calc-v1 p {\n  margin: 0 0 16px 0;\n}\n\n#bx-tolerance-calc-v1 .tc-subtitle {\n  font-size: 1.05rem;\n  color: #555;\n  margin-bottom: 32px;\n  max-width: 720px;\n}\n\n#bx-tolerance-calc-v1 .tc-mono {\n  font-family: inherit; \/* \u79fb\u9664\u7279\u5b9a\u5b57\u4f53\uff0c\u4fdd\u6301\u4e00\u81f4\u6027 *\/\n  font-variant-numeric: tabular-nums; \/* \u6570\u5b57\u7b49\u5bbd\u5bf9\u9f50 *\/\n}\n\n\/* --- Intro Section --- *\/\n#bx-tolerance-calc-v1 .tc-intro {\n  margin-bottom: 36px;\n  padding-bottom: 28px;\n  border-bottom: 2px solid #E9E7E2;\n}\n\n#bx-tolerance-calc-v1 .tc-standard-ref {\n  display: inline-block;\n  font-size: 0.82rem;\n  color: #0048F0;\n  background: rgba(0,72,240,0.06);\n  padding: 4px 12px;\n  border-radius: 0px;\n  margin-bottom: 12px;\n  letter-spacing: 0.02em;\n  font-weight: 600;\n}\n\n\/* --- Form \/ Input Area --- *\/\n#bx-tolerance-calc-v1 .tc-form-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n  gap: 20px 28px;\n  margin-bottom: 28px;\n}\n\n#bx-tolerance-calc-v1 .tc-field {\n  display: flex;\n  flex-direction: column;\n}\n\n#bx-tolerance-calc-v1 .tc-field label {\n  font-size: 0.88rem;\n  font-weight: 600;\n  color: #000018;\n  margin-bottom: 6px;\n  letter-spacing: 0.01em;\n}\n\n#bx-tolerance-calc-v1 .tc-field label .tc-label-hint {\n  font-weight: 400;\n  color: #777;\n  font-size: 0.82rem;\n}\n\n#bx-tolerance-calc-v1 .tc-field select,\n#bx-tolerance-calc-v1 .tc-field input[type=\"number\"] {\n  height: 44px;\n  min-height: 44px;\n  padding: 0 14px;\n  font-size: 0.95rem;\n  color: #000018;\n  background: #FFFFFF;\n  border: 1px solid #E9E7E2;\n  border-radius: 0px;\n  outline: none;\n  transition: border-color 0.2s;\n  width: 100%;\n}\n\n#bx-tolerance-calc-v1 .tc-field select {\n  appearance: none;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  \/* SVG \u7bad\u5934\u989c\u8272\u66f4\u65b0\u4e3a #000018 (\u6df1\u8272) \u6216 #0048F0 (\u84dd\u8272) *\/\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23000018' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'\/%3E%3C\/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 14px center;\n  padding-right: 38px;\n  cursor: pointer;\n}\n\n#bx-tolerance-calc-v1 .tc-field select option {\n  color: #000018 !important;\n  background: #FFFFFF !important;\n}\n\n#bx-tolerance-calc-v1 .tc-field select:focus,\n#bx-tolerance-calc-v1 .tc-field input[type=\"number\"]:focus {\n  border-color: #0048F0;\n  box-shadow: 0 0 0 2px rgba(0,72,240,0.1);\n}\n\n#bx-tolerance-calc-v1 .tc-field input[type=\"number\"]::-webkit-inner-spin-button,\n#bx-tolerance-calc-v1 .tc-field input[type=\"number\"]::-webkit-outer-spin-button {\n  opacity: 1;\n}\n\n\/* --- Calculate Button --- *\/\n#bx-tolerance-calc-v1 .tc-btn-row {\n  margin-bottom: 36px;\n}\n\n#bx-tolerance-calc-v1 .tc-btn-calc {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  height: 48px;\n  min-width: 260px;\n  padding: 0 32px;\n  font-size: 1rem;\n  font-weight: 600;\n  color: #FFFFFF;\n  background: #0048F0;\n  border: none;\n  border-radius: 0px;\n  cursor: pointer;\n  transition: background 0.2s, transform 0.1s;\n  letter-spacing: 0.01em;\n}\n\n#bx-tolerance-calc-v1 .tc-btn-calc:hover {\n  background: #003ad4;\n}\n\n#bx-tolerance-calc-v1 .tc-btn-calc:active {\n  transform: translateY(1px);\n}\n\n#bx-tolerance-calc-v1 .tc-btn-calc svg {\n  flex-shrink: 0;\n}\n\n\/* --- Results Container --- *\/\n#bx-tolerance-calc-v1 .tc-results {\n  display: none;\n}\n\n#bx-tolerance-calc-v1 .tc-results.tc-visible {\n  display: block;\n  animation: tcFadeIn 0.35s ease;\n}\n\n@keyframes tcFadeIn {\n  from { opacity: 0; transform: translateY(10px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n#bx-tolerance-calc-v1 .tc-results-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 24px;\n  padding-bottom: 16px;\n  border-bottom: 2px solid #0048F0;\n}\n\n#bx-tolerance-calc-v1 .tc-results-header h3 {\n  margin: 0;\n}\n\n#bx-tolerance-calc-v1 .tc-results-header .tc-param-summary {\n  font-size: 0.82rem;\n  color: #555;\n  margin-left: auto;\n  font-weight: 500;\n}\n\n\/* --- Tolerance Value Cards --- *\/\n#bx-tolerance-calc-v1 .tc-values-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n  gap: 16px;\n  margin-bottom: 32px;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card {\n  background: #F6F5F3;\n  border: 1px solid #E9E7E2;\n  border-radius: 0px;\n  padding: 20px;\n  position: relative;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card .tc-vc-label {\n  font-size: 0.82rem;\n  font-weight: 600;\n  color: #555;\n  text-transform: uppercase;\n  letter-spacing: 0.04em;\n  margin-bottom: 8px;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card .tc-vc-value {\n  font-size: 1.75rem;\n  font-weight: 700;\n  line-height: 1.1;\n  margin-bottom: 4px;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card .tc-vc-unit {\n  font-size: 0.82rem;\n  color: #777;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card.tc-card-standard .tc-vc-value {\n  color: #666;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card.tc-card-fine .tc-vc-value {\n  color: #0048F0;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card.tc-card-meitu {\n  background: linear-gradient(135deg, #f0f4ff 0%, #e6efff 100%);\n  border-color: #0048F0;\n  border-width: 2px;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card.tc-card-meitu .tc-vc-value {\n  color: #0048F0;\n}\n\n#bx-tolerance-calc-v1 .tc-value-card.tc-card-meitu .tc-vc-badge {\n  position: absolute;\n  top: 12px;\n  right: 12px;\n  font-size: 0.7rem;\n  font-weight: 700;\n  color: #FFFFFF;\n  background: #0048F0;\n  padding: 3px 10px;\n  text-transform: uppercase;\n  letter-spacing: 0.05em;\n  border-radius: 0px;\n}\n\n\/* --- Extra Metrics Row --- *\/\n#bx-tolerance-calc-v1 .tc-metrics-row {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n  gap: 16px;\n  margin-bottom: 32px;\n}\n\n#bx-tolerance-calc-v1 .tc-metric-item {\n  background: #F6F5F3;\n  border: 1px solid #E9E7E2;\n  border-radius: 0px;\n  padding: 16px 20px;\n  display: flex;\n  align-items: center;\n  gap: 16px;\n}\n\n#bx-tolerance-calc-v1 .tc-metric-item .tc-mi-icon {\n  width: 40px;\n  height: 40px;\n  flex-shrink: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: rgba(0,72,240,0.08);\n}\n\n#bx-tolerance-calc-v1 .tc-metric-item .tc-mi-label {\n  font-size: 0.82rem;\n  color: #555;\n  margin-bottom: 2px;\n}\n\n#bx-tolerance-calc-v1 .tc-metric-item .tc-mi-value {\n  font-size: 1.1rem;\n  font-weight: 600;\n  color: #000018;\n}\n\n\/* --- Tolerance Diagram --- *\/\n#bx-tolerance-calc-v1 .tc-diagram-section {\n  margin-bottom: 32px;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-card {\n  background: #F6F5F3;\n  border: 1px solid #E9E7E2;\n  border-radius: 0px;\n  padding: 24px;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-card h4 {\n  margin-bottom: 20px;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-wrapper {\n  position: relative;\n  width: 100%;\n  padding: 16px 0;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-group {\n  position: relative;\n  margin-bottom: 28px;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-group:last-child {\n  margin-bottom: 0;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-label {\n  font-size: 0.82rem;\n  font-weight: 600;\n  color: #555;\n  margin-bottom: 6px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-label .tc-dbl-val {\n  font-weight: 600;\n  font-size: 0.85rem;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-track {\n  position: relative;\n  height: 36px;\n  background: #eae8e4;\n  overflow: visible;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-fill {\n  position: absolute;\n  top: 0;\n  height: 100%;\n  transition: width 0.5s ease;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-fill.tc-bar-standard {\n  background: #999;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-fill.tc-bar-fine {\n  background: #0048F0; \/* \u84dd\u8272 *\/\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-bar-fill.tc-bar-meitu {\n  background: #003ad4; \/* \u6df1\u84dd\u8272\u8868\u793a\u6700\u4f73 *\/\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-nominal-line {\n  position: absolute;\n  left: 50%;\n  top: -6px;\n  bottom: -6px;\n  width: 2px;\n  background: #FF8C00;\n  z-index: 2;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-nominal-label {\n  position: absolute;\n  left: 50%;\n  transform: translateX(-50%);\n  bottom: -22px;\n  font-size: 0.72rem;\n  font-weight: 600;\n  color: #FF8C00;\n  white-space: nowrap;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-legend {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-top: 28px;\n  padding-top: 16px;\n  border-top: 1px solid #E9E7E2;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-legend-item {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  font-size: 0.82rem;\n  color: #555;\n}\n\n#bx-tolerance-calc-v1 .tc-diagram-legend-item .tc-leg-swatch {\n  width: 16px;\n  height: 10px;\n  flex-shrink: 0;\n}\n\n\/* --- Material Notes --- *\/\n#bx-tolerance-calc-v1 .tc-notes-section {\n  margin-bottom: 32px;\n}\n\n#bx-tolerance-calc-v1 .tc-notes-grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n  gap: 16px;\n}\n\n#bx-tolerance-calc-v1 .tc-note-card {\n  background: #F6F5F3;\n  border: 1px solid #E9E7E2;\n  border-radius: 0px;\n  padding: 18px 20px;\n}\n\n#bx-tolerance-calc-v1 .tc-note-card .tc-nc-header {\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  margin-bottom: 8px;\n}\n\n#bx-tolerance-calc-v1 .tc-note-card .tc-nc-icon {\n  width: 20px;\n  height: 20px;\n  flex-shrink: 0;\n}\n\n#bx-tolerance-calc-v1 .tc-note-card .tc-nc-title {\n  font-size: 0.88rem;\n  font-weight: 600;\n  color: #000018;\n}\n\n#bx-tolerance-calc-v1 .tc-note-card .tc-nc-body {\n  font-size: 0.88rem;\n  color: #444;\n  line-height: 1.55;\n}\n\n#bx-tolerance-calc-v1 .tc-note-card .tc-nc-body strong {\n  color: #000018;\n}\n\n#bx-tolerance-calc-v1 .tc-risk-badge {\n  display: inline-block;\n  font-size: 0.75rem;\n  font-weight: 700;\n  padding: 2px 10px;\n  text-transform: uppercase;\n  letter-spacing: 0.04em;\n}\n\n#bx-tolerance-calc-v1 .tc-risk-low {\n  color: #1a7a32;\n  background: rgba(40,167,69,0.12);\n}\n\n#bx-tolerance-calc-v1 .tc-risk-medium {\n  color: #b37300;\n  background: rgba(255,140,0,0.12);\n}\n\n#bx-tolerance-calc-v1 .tc-risk-high {\n  color: #c0392b;\n  background: rgba(192,57,43,0.12);\n}\n\n\/* --- CTA Section --- *\/\n#bx-tolerance-calc-v1 .tc-cta-section {\n  margin-bottom: 28px;\n}\n\n#bx-tolerance-calc-v1 .tc-cta-card {\n  background: linear-gradient(135deg, #001a5c 0%, #0048F0 100%);\n  padding: 32px;\n  border-radius: 0px;\n  position: relative;\n  overflow: hidden;\n}\n\n#bx-tolerance-calc-v1 .tc-cta-card::before {\n  content: '';\n  position: absolute;\n  top: -40%;\n  right: -10%;\n  width: 280px;\n  height: 280px;\n  background: rgba(255,140,0,0.1);\n  border-radius: 50%;\n  z-index: 0;\n}\n\n#bx-tolerance-calc-v1 .tc-cta-card .tc-cta-text {\n  color: #FFFFFF;\n  font-size: 1.05rem;\n  line-height: 1.55;\n  margin-bottom: 20px;\n  max-width: 680px;\n  position: relative;\n  z-index: 1;\n}\n\n#bx-tolerance-calc-v1 .tc-cta-card .tc-cta-highlight {\n  color: #FF8C00;\n  font-weight: 600;\n}\n\n#bx-tolerance-calc-v1 .tc-cta-link {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  height: 44px;\n  padding: 0 28px;\n  font-size: 0.95rem;\n  font-weight: 600;\n  font-family: inherit;\n  color: #000018;\n  background: #FF8C00;\n  border: none;\n  border-radius: 0px;\n  text-decoration: none;\n  cursor: pointer;\n  transition: background 0.2s;\n  position: relative;\n  z-index: 1;\n}\n\n#bx-tolerance-calc-v1 .tc-cta-link:hover {\n  background: #e67e00;\n}\n\n\/* --- Footer Note --- *\/\n#bx-tolerance-calc-v1 .tc-footer-note {\n  background: #F6F5F3;\n  border: 1px solid #E9E7E2;\n  border-left: 3px solid #0048F0;\n  border-radius: 0px;\n  padding: 20px 24px;\n  font-size: 0.88rem;\n  color: #444;\n  line-height: 1.6;\n}\n\n#bx-tolerance-calc-v1 .tc-footer-note strong {\n  color: #000018;\n}\n\n\/* --- Color-coded tolerance classification --- *\/\n#bx-tolerance-calc-v1 .tc-class-tag {\n  display: inline-block;\n  font-size: 0.72rem;\n  font-weight: 600;\n  padding: 2px 8px;\n  margin-top: 6px;\n  text-transform: uppercase;\n  letter-spacing: 0.04em;\n}\n\n#bx-tolerance-calc-v1 .tc-class-tag-green {\n  color: #1a7a32;\n  background: rgba(40,167,69,0.12);\n}\n\n#bx-tolerance-calc-v1 .tc-class-tag-yellow {\n  color: #b37300;\n  background: rgba(255,140,0,0.12);\n}\n\n#bx-tolerance-calc-v1 .tc-class-tag-red {\n  color: #c0392b;\n  background: rgba(192,57,43,0.12);\n}\n\n\/* --- Validation error --- *\/\n#bx-tolerance-calc-v1 .tc-field-error {\n  border-color: #c0392b !important;\n  box-shadow: 0 0 0 2px rgba(192,57,43,0.15) !important;\n}\n\n#bx-tolerance-calc-v1 .tc-error-msg {\n  font-size: 0.78rem;\n  color: #c0392b;\n  margin-top: 4px;\n  display: none;\n}\n\n#bx-tolerance-calc-v1 .tc-error-msg.tc-show {\n  display: block;\n}\n\n\/* ===== RESPONSIVE: <= 860px ===== *\/\n@media (max-width: 860px) {\n  #bx-tolerance-calc-v1 {\n    padding: 28px 16px 40px;\n  }\n\n  #bx-tolerance-calc-v1 .tc-form-grid {\n    grid-template-columns: 1fr;\n    gap: 16px;\n  }\n\n  #bx-tolerance-calc-v1 .tc-results-header {\n    flex-direction: column;\n    align-items: flex-start;\n    gap: 6px;\n  }\n\n  #bx-tolerance-calc-v1 .tc-results-header .tc-param-summary {\n    margin-left: 0;\n  }\n\n  #bx-tolerance-calc-v1 .tc-btn-calc {\n    width: 100%;\n  }\n\n  #bx-tolerance-calc-v1 .tc-cta-card {\n    padding: 24px 20px;\n  }\n\n  #bx-tolerance-calc-v1 .tc-diagram-legend {\n    gap: 12px;\n  }\n}\n<\/style>\n\n<section id=\"bx-tolerance-calc-v1\">\n\n  <div class=\"tc-intro\">\n    <span class=\"tc-standard-ref\">Based on DIN 16901 \/ ISO 20457<\/span>\n    <h2>Injection Molding Tolerance Calculator<\/h2>\n    <p class=\"tc-subtitle\">Calculate achievable dimensional tolerances for plastic injection molded parts. Select your material, dimensions, and mold type to see standard, fine, and Meitu-achievable precision values.<\/p>\n  <\/div>\n\n  <div class=\"tc-form-grid\">\n\n    <div class=\"tc-field\">\n      <label for=\"tc-material\">Material <span class=\"tc-label-hint\">- Resin type<\/span><\/label>\n      <select id=\"tc-material\">\n        <option value=\"\">-- Select Material --<\/option>\n        <option value=\"ABS\">ABS<\/option>\n        <option value=\"PC\">Polycarbonate (PC)<\/option>\n        <option value=\"PP\">Polypropylene (PP)<\/option>\n        <option value=\"PA6\">Nylon (PA6)<\/option>\n        <option value=\"POM\">POM (Acetal)<\/option>\n        <option value=\"HDPE\">HDPE<\/option>\n        <option value=\"PBT\">PBT<\/option>\n        <option value=\"PCABS\">PC\/ABS<\/option>\n        <option value=\"PEEK\">PEEK<\/option>\n        <option value=\"PMMA\">Acrylic (PMMA)<\/option>\n      <\/select>\n      <span class=\"tc-error-msg\" id=\"tc-err-material\">Please select a material.<\/span>\n    <\/div>\n\n    <div class=\"tc-field\">\n      <label for=\"tc-dimension\">Nominal Dimension <span class=\"tc-label-hint\">- mm<\/span><\/label>\n      <input type=\"number\" id=\"tc-dimension\" min=\"1\" max=\"2000\" step=\"0.1\" placeholder=\"e.g. 50, 100, 200\">\n      <span class=\"tc-error-msg\" id=\"tc-err-dimension\">Enter a dimension between 1 and 2000 mm.<\/span>\n    <\/div>\n\n    <div class=\"tc-field\">\n      <label for=\"tc-wall\">Wall Thickness <span class=\"tc-label-hint\">- Range<\/span><\/label>\n      <select id=\"tc-wall\">\n        <option value=\"\">-- Select Wall Thickness --<\/option>\n        <option value=\"thin\">Thin (0.5 &ndash; 1.0 mm)<\/option>\n        <option value=\"standard\">Standard (1.0 &ndash; 2.5 mm)<\/option>\n        <option value=\"thick\">Thick (2.5 &ndash; 4.0 mm)<\/option>\n        <option value=\"heavy\">Heavy (&gt; 4.0 mm)<\/option>\n      <\/select>\n      <span class=\"tc-error-msg\" id=\"tc-err-wall\">Please select a wall thickness range.<\/span>\n    <\/div>\n\n    <div class=\"tc-field\">\n      <label for=\"tc-mold\">Mold Type <span class=\"tc-label-hint\">- Tooling class<\/span><\/label>\n      <select id=\"tc-mold\">\n        <option value=\"\">-- Select Mold Type --<\/option>\n        <option value=\"standard\">Standard Steel Mold<\/option>\n        <option value=\"precision\">Precision Steel Mold<\/option>\n        <option value=\"aluminum\">Aluminum Prototype Mold<\/option>\n      <\/select>\n      <span class=\"tc-error-msg\" id=\"tc-err-mold\">Please select a mold type.<\/span>\n    <\/div>\n\n  <\/div>\n\n  <div class=\"tc-btn-row\">\n    <button type=\"button\" class=\"tc-btn-calc\" id=\"tc-btn-calculate\">\n      <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"2\" y=\"1\" width=\"14\" height=\"16\" rx=\"1\" stroke=\"#FFFFFF\" stroke-width=\"1.5\" fill=\"none\"\/><line x1=\"5\" y1=\"5\" x2=\"13\" y2=\"5\" stroke=\"#FFFFFF\" stroke-width=\"1.5\"\/><line x1=\"5\" y1=\"8.5\" x2=\"8\" y2=\"8.5\" stroke=\"#FFFFFF\" stroke-width=\"1.2\"\/><line x1=\"10\" y1=\"8.5\" x2=\"13\" y2=\"8.5\" stroke=\"#FFFFFF\" stroke-width=\"1.2\"\/><line x1=\"5\" y1=\"11.5\" x2=\"8\" y2=\"11.5\" stroke=\"#FFFFFF\" stroke-width=\"1.2\"\/><line x1=\"10\" y1=\"11.5\" x2=\"13\" y2=\"11.5\" stroke=\"#FFFFFF\" stroke-width=\"1.2\"\/><line x1=\"5\" y1=\"14.5\" x2=\"8\" y2=\"14.5\" stroke=\"#FFFFFF\" stroke-width=\"1.2\"\/><line x1=\"10\" y1=\"14.5\" x2=\"13\" y2=\"14.5\" stroke=\"#FFFFFF\" stroke-width=\"1.2\"\/><\/svg>\n      Calculate Tolerance\n    <\/button>\n  <\/div>\n\n  <div class=\"tc-results\" id=\"tc-results\">\n\n    <div class=\"tc-results-header\">\n      <h3>Tolerance Analysis Results<\/h3>\n      <span class=\"tc-param-summary\" id=\"tc-param-summary\"><\/span>\n    <\/div>\n\n    <div class=\"tc-values-grid\" id=\"tc-values-grid\">\n      <div class=\"tc-value-card tc-card-standard\">\n        <div class=\"tc-vc-label\">Standard (Commercial)<\/div>\n        <div class=\"tc-vc-value\" id=\"tc-val-standard\"><\/div>\n        <div class=\"tc-vc-unit\">mm tolerance band<\/div>\n        <div class=\"tc-class-tag\" id=\"tc-tag-standard\"><\/div>\n      <\/div>\n      <div class=\"tc-value-card tc-card-fine\">\n        <div class=\"tc-vc-label\">Fine (Precision)<\/div>\n        <div class=\"tc-vc-value\" id=\"tc-val-fine\"><\/div>\n        <div class=\"tc-vc-unit\">mm tolerance band<\/div>\n        <div class=\"tc-class-tag\" id=\"tc-tag-fine\"><\/div>\n      <\/div>\n      <div class=\"tc-value-card tc-card-meitu\">\n        <span class=\"tc-vc-badge\">Best Available<\/span>\n        <div class=\"tc-vc-label\">Meitu Achievable<\/div>\n        <div class=\"tc-vc-value\" id=\"tc-val-meitu\"><\/div>\n        <div class=\"tc-vc-unit\">mm tolerance band<\/div>\n        <div class=\"tc-class-tag\" id=\"tc-tag-meitu\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tc-metrics-row\">\n      <div class=\"tc-metric-item\">\n        <div class=\"tc-mi-icon\">\n          <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"11\" cy=\"11\" r=\"9\" stroke=\"#0048F0\" stroke-width=\"1.5\" fill=\"none\"\/><path d=\"M11 5v6.5l4 2.5\" stroke=\"#0048F0\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg>\n        <\/div>\n        <div>\n          <div class=\"tc-mi-label\">Shrinkage Rate<\/div>\n          <div class=\"tc-mi-value\" id=\"tc-val-shrinkage\"><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"tc-metric-item\">\n        <div class=\"tc-mi-icon\">\n          <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"3\" y=\"7\" width=\"16\" height=\"8\" stroke=\"#0048F0\" stroke-width=\"1.5\" fill=\"none\"\/><line x1=\"7\" y1=\"7\" x2=\"7\" y2=\"15\" stroke=\"#0048F0\" stroke-width=\"1\" stroke-dasharray=\"2 1.5\"\/><line x1=\"15\" y1=\"7\" x2=\"15\" y2=\"15\" stroke=\"#0048F0\" stroke-width=\"1\" stroke-dasharray=\"2 1.5\"\/><\/svg>\n        <\/div>\n        <div>\n          <div class=\"tc-mi-label\">Recommended Wall Thickness<\/div>\n          <div class=\"tc-mi-value\" id=\"tc-val-wallrec\"><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tc-diagram-section\">\n      <div class=\"tc-diagram-card\">\n        <h4>Visual Tolerance Comparison<\/h4>\n        <div class=\"tc-diagram-wrapper\" id=\"tc-diagram-wrapper\">\n          <\/div>\n        <div class=\"tc-diagram-legend\">\n          <div class=\"tc-diagram-legend-item\">\n            <span class=\"tc-leg-swatch\" style=\"background:#999;\"><\/span>\n            Standard (Commercial)\n          <\/div>\n          <div class=\"tc-diagram-legend-item\">\n            <span class=\"tc-leg-swatch\" style=\"background:#0048F0;\"><\/span>\n            Fine (Precision)\n          <\/div>\n          <div class=\"tc-diagram-legend-item\">\n            <span class=\"tc-leg-swatch\" style=\"background:#003ad4;\"><\/span>\n            Meitu Achievable\n          <\/div>\n          <div class=\"tc-diagram-legend-item\">\n            <span class=\"tc-leg-swatch\" style=\"background:#FF8C00; width:3px; height:16px;\"><\/span>\n            Nominal Dimension\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"tc-notes-section\">\n      <h3>Material-Specific Notes<\/h3>\n      <div class=\"tc-notes-grid\" id=\"tc-notes-grid\">\n        <\/div>\n    <\/div>\n\n    <div class=\"tc-cta-section\">\n      <div class=\"tc-cta-card\">\n        <div class=\"tc-cta-text\">\n          Need tolerances tighter than standard? Our precision molding team achieves <span class=\"tc-cta-highlight\">&plusmn;0.02mm<\/span> on critical dimensions. Let us review your part design and recommend the optimal approach for your tolerance requirements.\n        <\/div>\n        <a href=\"#ct-popup-800\" class=\"tc-cta-link\">\n          Discuss Your Tolerance Requirements\n          <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M3 8h10m0 0l-4-4m4 4l-4 4\" stroke=\"#000018\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"tc-footer-note\">\n      <strong>Meitu\/Engelhardt<\/strong> operates 400+ injection machines with servo-hydraulic precision control. IATF 16949 certified quality system ensures dimensional consistency across production runs. Tolerance values shown are calculated estimates based on DIN 16901 \/ ISO 20457 standards and may vary with part geometry, gate design, and processing conditions. Contact our engineering team for a detailed tolerance study on your specific part.\n    <\/div>\n\n  <\/div><\/section><script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  'use strict';\n\n  \/\/ ==================== MATERIAL DATA ====================\n  var MATERIALS = {\n    ABS:   { name: 'ABS', stdPer25: 0.15, finePer25: 0.05, shrinkMin: 0.4, shrinkMax: 0.7, wallMin: 1.2, wallMax: 3.5,\n             shrinkTip: 'Apply uniform shrinkage allowance of 0.5% for initial tool design. ABS has predictable, consistent shrinkage making it ideal for tight-tolerance parts.',\n             warpageRisk: 'Low', warpageNote: 'ABS has excellent dimensional stability with minimal warpage when wall thickness is uniform.',\n             gateSensitivity: 'Moderate. Gate location has limited effect on tolerances, but edge gates are preferred for flatness-critical parts.',\n             stability: 'Excellent post-mold stability. Minimal moisture absorption ensures dimensions remain consistent over time.' },\n    PC:    { name: 'Polycarbonate (PC)', stdPer25: 0.10, finePer25: 0.04, shrinkMin: 0.5, shrinkMax: 0.7, wallMin: 1.5, wallMax: 4.0,\n             shrinkTip: 'PC shrinks uniformly at 0.5-0.7%. Maintain melt temperature above 290\\u00B0C for consistent shrinkage. Mold temperature significantly affects final dimensions.',\n             warpageRisk: 'Low', warpageNote: 'PC exhibits low warpage tendency. Maintain uniform cooling to prevent internal stress-related distortion.',\n             gateSensitivity: 'Low. PC flows well and gate location has minimal impact on tolerance, though direct gating can cause gate blush.',\n             stability: 'Very good. PC absorbs minimal moisture (<0.15%) and maintains tight dimensions in service.' },\n    PP:    { name: 'Polypropylene (PP)', stdPer25: 0.25, finePer25: 0.10, shrinkMin: 1.0, shrinkMax: 2.5, wallMin: 0.8, wallMax: 3.8,\n             shrinkTip: 'PP has high and variable shrinkage (1.0-2.5%). Use glass-filled grades (shrinkage drops to 0.4-0.7%) for tighter tolerances. Always prototype before finalizing tool dimensions.',\n             warpageRisk: 'High', warpageNote: 'Semi-crystalline PP is highly prone to warpage. Uniform wall thickness and proper cooling circuit design are critical.',\n             gateSensitivity: 'High. Gate location strongly affects shrinkage distribution. Use flow simulation to optimize gate position for critical dimensions.',\n             stability: 'Moderate. PP can creep under sustained load and shows dimensional change with temperature variation.' },\n    PA6:   { name: 'Nylon (PA6)', stdPer25: 0.20, finePer25: 0.08, shrinkMin: 0.8, shrinkMax: 1.5, wallMin: 1.0, wallMax: 3.5,\n             shrinkTip: 'PA6 shrinkage varies significantly with crystallinity. Mold temperature above 80\\u00B0C promotes crystallization and more predictable shrinkage. Account for post-mold shrinkage over 24-48 hours.',\n             warpageRisk: 'Medium', warpageNote: 'Nylon has moderate warpage risk due to differential crystallization. Fiber reinforcement reduces warpage significantly.',\n             gateSensitivity: 'High. Flow-direction shrinkage differs from cross-flow by up to 0.5%. Gate design critically affects dimensional outcomes.',\n             stability: 'Poor in humid environments. PA6 absorbs 2.5-3% moisture, causing dimensional growth of 0.2-0.4%. Seal parts in dry packaging after molding.' },\n    POM:   { name: 'POM (Acetal)', stdPer25: 0.15, finePer25: 0.05, shrinkMin: 1.8, shrinkMax: 2.5, wallMin: 1.0, wallMax: 3.5,\n             shrinkTip: 'POM has high but consistent shrinkage (1.8-2.5%). Use copolymer POM for better dimensional stability. Post-mold annealing can stabilize dimensions for precision parts.',\n             warpageRisk: 'Medium', warpageNote: 'POM can warp due to high crystallization. Uniform cooling and balanced flow paths reduce warpage risk.',\n             gateSensitivity: 'Moderate. Sub-gates work well. Avoid direct gating on precision surfaces as gate vestige area shows higher shrinkage variation.',\n             stability: 'Good. POM has low moisture absorption (0.2%) and excellent creep resistance, maintaining dimensions well in service.' },\n    HDPE:  { name: 'HDPE', stdPer25: 0.30, finePer25: 0.12, shrinkMin: 1.5, shrinkMax: 3.0, wallMin: 1.0, wallMax: 4.0,\n             shrinkTip: 'HDPE has the highest shrinkage of common plastics (1.5-3.0%). Expect significant post-mold shrinkage. Not recommended for tight-tolerance applications without glass fill.',\n             warpageRisk: 'High', warpageNote: 'HDPE is highly prone to warpage and sink marks. Design with generous draft angles and uniform walls.',\n             gateSensitivity: 'Very high. HDPE shows large flow-direction vs. cross-flow shrinkage differences. Multiple gates may be needed for uniform dimensions.',\n             stability: 'Moderate. HDPE has excellent chemical and moisture resistance but can creep under load and shows thermal expansion.' },\n    PBT:   { name: 'PBT', stdPer25: 0.15, finePer25: 0.06, shrinkMin: 1.3, shrinkMax: 2.0, wallMin: 1.0, wallMax: 3.5,\n             shrinkTip: 'PBT shrinkage is 1.3-2.0% (lower with glass fill at 0.3-0.7%). Use glass-reinforced grades for dimensional precision. Mold temperature affects crystallinity and final dimensions.',\n             warpageRisk: 'Medium', warpageNote: 'PBT has moderate warpage tendency, especially in unreinforced grades. Glass-filled PBT significantly reduces warpage.',\n             gateSensitivity: 'Moderate. PBT flows well but can show differential shrinkage near gates. Use fan gates for flat parts.',\n             stability: 'Good. PBT absorbs minimal moisture (0.08%) and has excellent dimensional stability under thermal cycling.' },\n    PCABS: { name: 'PC\/ABS', stdPer25: 0.12, finePer25: 0.05, shrinkMin: 0.5, shrinkMax: 0.7, wallMin: 1.2, wallMax: 3.5,\n             shrinkTip: 'PC\/ABS combines the best of both materials with low, predictable shrinkage (0.5-0.7%). Excellent choice for tight-tolerance parts requiring impact resistance.',\n             warpageRisk: 'Low', warpageNote: 'PC\/ABS has excellent resistance to warpage. Its amorphous structure provides uniform and predictable shrinkage.',\n             gateSensitivity: 'Low. PC\/ABS is forgiving of gate location. Standard edge gates and pin gates work well for most applications.',\n             stability: 'Very good. Low moisture absorption and amorphous structure provide excellent long-term dimensional consistency.' },\n    PEEK:  { name: 'PEEK', stdPer25: 0.10, finePer25: 0.03, shrinkMin: 1.0, shrinkMax: 1.5, wallMin: 1.5, wallMax: 4.0,\n             shrinkTip: 'PEEK requires precise mold temperature (175-200\\u00B0C) for proper crystallization. Shrinkage is 1.0-1.5% and varies with crystallinity. Annealing post-mold is recommended for dimensional stability.',\n             warpageRisk: 'Low', warpageNote: 'PEEK has low warpage when processed correctly. Proper mold temperature control is essential for uniform crystallinity.',\n             gateSensitivity: 'Moderate. PEEK\\u2019s high melt viscosity requires generous gate sizing. Gate location affects crystallinity and tolerance near the gate region.',\n             stability: 'Excellent. PEEK maintains dimensions across extreme temperature ranges (-60\\u00B0C to 260\\u00B0C) with minimal creep and near-zero moisture uptake.' },\n    PMMA:  { name: 'Acrylic (PMMA)', stdPer25: 0.12, finePer25: 0.05, shrinkMin: 0.2, shrinkMax: 0.8, wallMin: 1.5, wallMax: 6.0,\n             shrinkTip: 'PMMA has low shrinkage (0.2-0.8%), making it well-suited for precision optical parts. Hold pressure has significant impact on final dimensions and surface quality.',\n             warpageRisk: 'Low', warpageNote: 'PMMA is amorphous with very low warpage tendency. Internal stress can cause crazing but does not typically affect dimensions.',\n             gateSensitivity: 'Moderate. For optical parts, gate location must minimize flow marks. Cashew or submarine gates are preferred for cosmetic surfaces.',\n             stability: 'Good. PMMA absorbs some moisture (0.3%) which can cause slight dimensional change. UV exposure does not affect dimensions.' }\n  };\n\n  var WALL_FACTORS = { thin: 1.3, standard: 1.0, thick: 1.2, heavy: 1.5 };\n  var WALL_LABELS  = { thin: 'Thin (0.5\\u20131.0 mm)', standard: 'Standard (1.0\\u20132.5 mm)', thick: 'Thick (2.5\\u20134.0 mm)', heavy: 'Heavy (>4.0 mm)' };\n  var MOLD_FACTORS = { standard: 1.0, precision: 0.7, aluminum: 1.4 };\n  var MOLD_LABELS  = { standard: 'Standard Steel', precision: 'Precision Steel', aluminum: 'Aluminum Prototype' };\n\n  \/\/ ==================== DOM REFERENCES ====================\n  var root         = document.getElementById('bx-tolerance-calc-v1');\n  var selMaterial  = document.getElementById('tc-material');\n  var inpDimension = document.getElementById('tc-dimension');\n  var selWall      = document.getElementById('tc-wall');\n  var selMold      = document.getElementById('tc-mold');\n  var btnCalc      = document.getElementById('tc-btn-calculate');\n  var elResults    = document.getElementById('tc-results');\n\n  \/\/ ==================== CALCULATE ====================\n  function calculate() {\n    \/\/ Clear previous errors\n    clearErrors();\n\n    var matKey    = selMaterial.value;\n    var dimension = parseFloat(inpDimension.value);\n    var wallKey   = selWall.value;\n    var moldKey   = selMold.value;\n\n    \/\/ Validate\n    var valid = true;\n    if (!matKey) { showError('tc-material', 'tc-err-material'); valid = false; }\n    if (!dimension || dimension < 1 || dimension > 2000 || isNaN(dimension)) { showError('tc-dimension', 'tc-err-dimension'); valid = false; }\n    if (!wallKey) { showError('tc-wall', 'tc-err-wall'); valid = false; }\n    if (!moldKey) { showError('tc-mold', 'tc-err-mold'); valid = false; }\n    if (!valid) {\n      elResults.classList.remove('tc-visible');\n      return;\n    }\n\n    var mat = MATERIALS[matKey];\n    var wallFactor = WALL_FACTORS[wallKey];\n    var moldFactor = MOLD_FACTORS[moldKey];\n    var dimScale   = dimension \/ 25;\n\n    \/\/ Core calculations\n    var tolStandard = mat.stdPer25 * dimScale * wallFactor * moldFactor;\n    var tolFine     = mat.finePer25 * dimScale * wallFactor * moldFactor;\n    var tolMeitu    = mat.finePer25 * dimScale * wallFactor * moldFactor * 0.85;\n\n    \/\/ Ensure minimum tolerance floor\n    tolStandard = Math.max(tolStandard, 0.02);\n    tolFine     = Math.max(tolFine, 0.01);\n    tolMeitu    = Math.max(tolMeitu, 0.008);\n\n    var shrinkAvg = ((mat.shrinkMin + mat.shrinkMax) \/ 2).toFixed(1);\n    var shrinkRange = mat.shrinkMin.toFixed(1) + ' \\u2013 ' + mat.shrinkMax.toFixed(1) + '%';\n\n    \/\/ Update parameter summary\n    document.getElementById('tc-param-summary').textContent =\n      mat.name + ' | ' + dimension + ' mm | ' + WALL_LABELS[wallKey] + ' | ' + MOLD_LABELS[moldKey];\n\n    \/\/ Update value cards\n    document.getElementById('tc-val-standard').textContent = '\\u00B1' + tolStandard.toFixed(3);\n    document.getElementById('tc-val-fine').textContent     = '\\u00B1' + tolFine.toFixed(3);\n    document.getElementById('tc-val-meitu').textContent    = '\\u00B1' + tolMeitu.toFixed(3);\n\n    \/\/ Classification tags\n    setClassTag('tc-tag-standard', tolStandard);\n    setClassTag('tc-tag-fine', tolFine);\n    setClassTag('tc-tag-meitu', tolMeitu);\n\n    \/\/ Metrics\n    document.getElementById('tc-val-shrinkage').textContent = shrinkRange;\n    document.getElementById('tc-val-wallrec').textContent   = mat.wallMin.toFixed(1) + ' \\u2013 ' + mat.wallMax.toFixed(1) + ' mm';\n\n    \/\/ Build diagram\n    buildDiagram(dimension, tolStandard, tolFine, tolMeitu);\n\n    \/\/ Build material notes\n    buildNotes(mat);\n\n    \/\/ Show results\n    elResults.classList.add('tc-visible');\n    elResults.scrollIntoView({ behavior: 'smooth', block: 'start' });\n  }\n\n  \/\/ ==================== TOLERANCE CLASS TAG ====================\n  function setClassTag(elId, tol) {\n    var el = document.getElementById(elId);\n    el.className = 'tc-class-tag';\n    if (tol <= 0.08) {\n      el.textContent = 'Achievable';\n      el.classList.add('tc-class-tag-green');\n    } else if (tol <= 0.25) {\n      el.textContent = 'Possible with care';\n      el.classList.add('tc-class-tag-yellow');\n    } else {\n      el.textContent = 'May need special tooling';\n      el.classList.add('tc-class-tag-red');\n    }\n  }\n\n  \/\/ ==================== TOLERANCE DIAGRAM ====================\n  function buildDiagram(nominal, tolStd, tolFine, tolMeitu) {\n    var wrapper = document.getElementById('tc-diagram-wrapper');\n\n    \/\/ The diagram shows 3 bars, each representing the full tolerance band around nominal\n    \/\/ Bar width = proportional to tolerance magnitude. We normalize to the largest (standard).\n    var maxTol = tolStd;\n\n    var bars = [\n      { label: 'Standard (Commercial)', val: tolStd,  cls: 'tc-bar-standard', color: '#999' },\n      { label: 'Fine (Precision)',      val: tolFine,  cls: 'tc-bar-fine',     color: '#0048F0' },\n      { label: 'Meitu Achievable',      val: tolMeitu, cls: 'tc-bar-meitu',    color: '#28a745' }\n    ];\n\n    var html = '';\n\n    for (var i = 0; i < bars.length; i++) {\n      var b = bars[i];\n      var pct = (b.val \/ maxTol) * 100;\n      \/\/ Bar is centered: left offset = (100 - pct)\/2\n      var leftPct = (100 - pct) \/ 2;\n\n      html += '<div class=\"tc-diagram-bar-group\">';\n      html += '  <div class=\"tc-diagram-bar-label\">';\n      html += '    <span>' + b.label + '<\/span>';\n      html += '    <span class=\"tc-dbl-val\">\\u00B1' + b.val.toFixed(3) + ' mm<\/span>';\n      html += '  <\/div>';\n      html += '  <div class=\"tc-diagram-bar-track\">';\n      html += '    <div class=\"tc-diagram-bar-fill ' + b.cls + '\" style=\"left:' + leftPct.toFixed(2) + '%; width:' + pct.toFixed(2) + '%;\"><\/div>';\n      html += '    <div class=\"tc-diagram-nominal-line\"><\/div>';\n      if (i === 0) {\n        html += '  <span class=\"tc-diagram-nominal-label\">Nominal: ' + nominal + ' mm<\/span>';\n      }\n      html += '  <\/div>';\n      html += '<\/div>';\n    }\n\n    wrapper.innerHTML = html;\n  }\n\n  \/\/ ==================== MATERIAL NOTES ====================\n  function buildNotes(mat) {\n    var grid = document.getElementById('tc-notes-grid');\n\n    var riskClass = 'tc-risk-low';\n    if (mat.warpageRisk === 'Medium') riskClass = 'tc-risk-medium';\n    if (mat.warpageRisk === 'High') riskClass = 'tc-risk-high';\n\n    var cards = [\n      {\n        icon: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M10 2L3 18h14L10 2z\" stroke=\"#0048F0\" stroke-width=\"1.3\" fill=\"none\"\/><line x1=\"10\" y1=\"8\" x2=\"10\" y2=\"12\" stroke=\"#0048F0\" stroke-width=\"1.3\"\/><circle cx=\"10\" cy=\"14.5\" r=\"0.8\" fill=\"#0048F0\"\/><\/svg>',\n        title: 'Shrinkage Compensation',\n        body: mat.shrinkTip\n      },\n      {\n        icon: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M3 14c2-4 5-6 7-2s5-2 7-6\" stroke=\"#FF8C00\" stroke-width=\"1.3\" fill=\"none\"\/><line x1=\"3\" y1=\"17\" x2=\"17\" y2=\"17\" stroke=\"#FF8C00\" stroke-width=\"1.2\"\/><\/svg>',\n        title: 'Warpage Risk',\n        body: '<span class=\"tc-risk-badge ' + riskClass + '\">' + mat.warpageRisk + '<\/span><br>' + mat.warpageNote\n      },\n      {\n        icon: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><circle cx=\"10\" cy=\"10\" r=\"7\" stroke=\"#0048F0\" stroke-width=\"1.3\" fill=\"none\"\/><circle cx=\"10\" cy=\"10\" r=\"2.5\" fill=\"#0048F0\" opacity=\"0.3\"\/><line x1=\"10\" y1=\"3\" x2=\"10\" y2=\"6\" stroke=\"#0048F0\" stroke-width=\"1.2\"\/><\/svg>',\n        title: 'Gate Placement Sensitivity',\n        body: mat.gateSensitivity\n      },\n      {\n        icon: '<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><rect x=\"3\" y=\"5\" width=\"14\" height=\"10\" stroke=\"#0048F0\" stroke-width=\"1.3\" fill=\"none\"\/><path d=\"M3 10h14\" stroke=\"#0048F0\" stroke-width=\"1\" stroke-dasharray=\"2 1.5\"\/><circle cx=\"10\" cy=\"10\" r=\"1.2\" fill=\"#0048F0\"\/><\/svg>',\n        title: 'Post-Mold Dimensional Stability',\n        body: mat.stability\n      }\n    ];\n\n    var html = '';\n    for (var i = 0; i < cards.length; i++) {\n      var c = cards[i];\n      html += '<div class=\"tc-note-card\">';\n      html += '  <div class=\"tc-nc-header\">';\n      html += '    <span class=\"tc-nc-icon\">' + c.icon + '<\/span>';\n      html += '    <span class=\"tc-nc-title\">' + c.title + '<\/span>';\n      html += '  <\/div>';\n      html += '  <div class=\"tc-nc-body\">' + c.body + '<\/div>';\n      html += '<\/div>';\n    }\n\n    grid.innerHTML = html;\n  }\n\n  \/\/ ==================== VALIDATION HELPERS ====================\n  function showError(inputId, errId) {\n    var inp = document.getElementById(inputId);\n    var err = document.getElementById(errId);\n    inp.classList.add('tc-field-error');\n    err.classList.add('tc-show');\n  }\n\n  function clearErrors() {\n    var fields = root.querySelectorAll('.tc-field-error');\n    for (var i = 0; i < fields.length; i++) { fields[i].classList.remove('tc-field-error'); }\n    var msgs = root.querySelectorAll('.tc-error-msg');\n    for (var j = 0; j < msgs.length; j++) { msgs[j].classList.remove('tc-show'); }\n  }\n\n  \/\/ ==================== EVENT BINDING ====================\n  btnCalc.addEventListener('click', calculate);\n\n  \/\/ Allow Enter key on dimension input to trigger calculation\n  inpDimension.addEventListener('keydown', function(e) {\n    if (e.key === 'Enter') {\n      e.preventDefault();\n      calculate();\n    }\n  });\n\n});\n<\/script>\n<\/section>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Based on DIN 16901 \/ ISO 20457 Injection Molding Tolerance Calculator Calculate achievable dimensional tolerances for plastic injection molded parts. Select your material, dimensions, and mold type to see standard, fine, and Meitu-achievable precision values. Material &#8211; Resin type &#8212; Select Material &#8211;ABSPolycarbonate (PC)Polypropylene (PP)Nylon (PA6)POM (Acetal)HDPEPBTPC\/ABSPEEKAcrylic (PMMA) Please select a material. Nominal Dimension &#8211; [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":869,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-922","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/pages\/922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/comments?post=922"}],"version-history":[{"count":0,"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/pages\/922\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/pages\/869"}],"wp:attachment":[{"href":"https:\/\/meitu-engelhardt.com\/es\/wp-json\/wp\/v2\/media?parent=922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}