{"id":2230,"date":"2026-06-09T10:29:00","date_gmt":"2026-06-09T02:29:00","guid":{"rendered":"https:\/\/wp.unionfab.com\/?page_id=2230"},"modified":"2026-06-09T11:41:23","modified_gmt":"2026-06-09T03:41:23","slug":"why-unionfab-sample-exhibition","status":"publish","type":"page","link":"https:\/\/wp.unionfab.com\/de\/why-unionfab-sample-exhibition\/","title":{"rendered":"Why Unionfab-Sample Exhibition"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2230\" class=\"elementor elementor-2230\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce7971c e-con-full e-flex e-con e-parent\" data-id=\"ce7971c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9211a59 elementor-widget elementor-widget-heading\" data-id=\"9211a59\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PRODUCTION &amp; READY PARTS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f82642 elementor-widget elementor-widget-heading\" data-id=\"0f82642\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">This Is What We've Built.<br>\nWhat Can We Build for You?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05791e0 elementor-widget elementor-widget-text-editor\" data-id=\"05791e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tExplore 2,000+ real parts spanning 80+ materials, 7 industries, and every major<br> manufacturing process.\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3451205 e-con-full e-flex e-con e-child\" data-id=\"3451205\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e77e6c5 e-con-full e-flex e-con e-child\" data-id=\"e77e6c5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f39eb7b elementor-widget elementor-widget-button\" data-id=\"f39eb7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Take a Virtual Factory Tour<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-daeb5c5 e-con-full e-flex e-con e-child\" data-id=\"daeb5c5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dec51be elementor-widget elementor-widget-button\" data-id=\"dec51be\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Get Instant Quote<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-89fab4b e-con-full e-flex e-con e-child\" data-id=\"89fab4b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-ad4bec3 e-con-full e-flex e-con e-child\" data-id=\"ad4bec3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c761db elementor-widget elementor-widget-counter\" data-id=\"9c761db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Completed Projects<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"2000\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">+<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8046e8c e-con-full e-flex e-con e-child\" data-id=\"8046e8c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a37d91 elementor-widget elementor-widget-counter\" data-id=\"8a37d91\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Completed Projects<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"2000\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">+<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f89137b e-con-full e-flex e-con e-child\" data-id=\"f89137b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9079589 elementor-widget elementor-widget-counter\" data-id=\"9079589\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"counter.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-counter\">\n\t\t\t<div class=\"elementor-counter-title\">Completed Projects<\/div>\t\t\t<div class=\"elementor-counter-number-wrapper\">\n\t\t\t\t<span class=\"elementor-counter-number-prefix\"><\/span>\n\t\t\t\t<span class=\"elementor-counter-number\" data-duration=\"2000\" data-to-value=\"2000\" data-from-value=\"0\" data-delimiter=\",\">0<\/span>\n\t\t\t\t<span class=\"elementor-counter-number-suffix\">+<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-85d9972 e-con-full e-flex e-con e-parent\" data-id=\"85d9972\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6fdd28b elementor-widget elementor-widget-html\" data-id=\"6fdd28b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* ===== \u5168\u5c40 ===== *\/\r\n.pg-section {\r\n  max-width: 1600px;\r\n  margin: 0 auto;\r\n  padding: 40px 20px;\r\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;\r\n  background: #eef2f7;\r\n  border-radius: 12px;\r\n}\r\n\r\n.pg-title {\r\n  text-align: center;\r\n  font-size: 26px;\r\n  font-weight: 700;\r\n  color: #1a1a2e;\r\n  margin-bottom: 20px;\r\n}\r\n\r\n\/* ===== \u9876\u90e8 Tab ===== *\/\r\n.pg-tab-nav {\r\n  display: flex;\r\n  justify-content: center;\r\n  gap: 10px;\r\n  margin-bottom: 28px;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.pg-tab-btn {\r\n  padding: 9px 28px;\r\n  border-radius: 50px;\r\n  border: 1.5px solid #c0c8d8;\r\n  background: #fff;\r\n  color: #444;\r\n  font-size: 14px;\r\n  font-weight: 500;\r\n  cursor: pointer;\r\n  transition: all 0.22s;\r\n  outline: none;\r\n}\r\n\r\n.pg-tab-btn:hover {\r\n  border-color: #1a2b4a;\r\n  color: #1a2b4a;\r\n}\r\n\r\n.pg-tab-btn.active {\r\n  background: #1a2b4a;\r\n  border-color: #1a2b4a;\r\n  color: #fff;\r\n  font-weight: 600;\r\n}\r\n\r\n\/* ===== \u4e3b\u4f53\u5e03\u5c40 ===== *\/\r\n.pg-body {\r\n  display: flex;\r\n  gap: 16px;\r\n  border: 1.5px dashed #f0a0a0;\r\n  border-radius: 10px;\r\n  padding: 20px;\r\n  background: #eef2f7;\r\n}\r\n\r\n\/* ===== \u5de6\u4fa7\u5206\u7c7b ===== *\/\r\n.pg-sidebar {\r\n  flex: 0 0 240px;\r\n  min-width: 0;\r\n}\r\n\r\n.pg-sidebar-title {\r\n  font-size: 15px;\r\n  font-weight: 700;\r\n  color: #f5a623;\r\n  margin-bottom: 12px;\r\n  padding-left: 4px;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 6px;\r\n}\r\n\r\n.pg-sidebar-title::after {\r\n  content: '';\r\n  flex: 1;\r\n  height: 1.5px;\r\n  background: #e0c090;\r\n  border-radius: 2px;\r\n}\r\n\r\n.pg-cat-item {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 12px;\r\n  padding: 11px 14px;\r\n  background: #fff;\r\n  border-radius: 8px;\r\n  margin-bottom: 8px;\r\n  cursor: pointer;\r\n  border: 2px solid transparent;\r\n  transition: all 0.2s;\r\n}\r\n\r\n.pg-cat-item:hover {\r\n  border-color: #dde4f0;\r\n  background: #f5f7fc;\r\n}\r\n\r\n.pg-cat-item.active {\r\n  border-color: #f5a623;\r\n  background: #fff8ee;\r\n}\r\n\r\n.pg-cat-icon {\r\n  width: 32px;\r\n  height: 32px;\r\n  flex-shrink: 0;\r\n  object-fit: contain;\r\n}\r\n\r\n\/* SVG \u56fe\u6807\u5360\u4f4d *\/\r\n.pg-cat-icon-svg {\r\n  width: 32px;\r\n  height: 32px;\r\n  flex-shrink: 0;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  background: #e8eaf0;\r\n  border-radius: 6px;\r\n  color: #888;\r\n  font-size: 16px;\r\n}\r\n\r\n.pg-cat-label {\r\n  flex: 1;\r\n  font-size: 14px;\r\n  font-weight: 500;\r\n  color: #333;\r\n}\r\n\r\n.pg-cat-item.active .pg-cat-label {\r\n  color: #f5a623;\r\n  font-weight: 600;\r\n}\r\n\r\n.pg-cat-arrow {\r\n  font-size: 13px;\r\n  color: #bbb;\r\n}\r\n\r\n.pg-cat-item.active .pg-cat-arrow {\r\n  color: #f5a623;\r\n}\r\n\r\n\/* ===== \u53f3\u4fa7\u5185\u5bb9\u533a ===== *\/\r\n.pg-content {\r\n  flex: 1;\r\n  min-width: 0;\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 16px;\r\n}\r\n\r\n\/* \u5361\u7247\u7f51\u683c *\/\r\n.pg-grid {\r\n  display: grid;\r\n  grid-template-columns: repeat(2, 1fr);\r\n  gap: 14px;\r\n}\r\n\r\n\/* \u5361\u7247 *\/\r\n.pg-card {\r\n  background: #fff;\r\n  border-radius: 10px;\r\n  overflow: hidden;\r\n  box-shadow: 0 2px 8px rgba(0,0,0,0.06);\r\n  transition: all 0.22s;\r\n  cursor: pointer;\r\n  text-decoration: none;\r\n  display: block;\r\n}\r\n\r\n.pg-card:hover {\r\n  box-shadow: 0 6px 20px rgba(0,0,0,0.12);\r\n  transform: translateY(-2px);\r\n}\r\n\r\n.pg-card-img {\r\n  width: 100%;\r\n  aspect-ratio: 4\/3;\r\n  object-fit: cover;\r\n  display: block;\r\n  background: #c8cdd5;\r\n}\r\n\r\n\/* \u56fe\u7247\u5360\u4f4d *\/\r\n.pg-card-img-placeholder {\r\n  width: 100%;\r\n  aspect-ratio: 4\/3;\r\n  background: linear-gradient(135deg, #b0b8c8 0%, #8a9ab0 100%);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  color: rgba(255,255,255,0.5);\r\n  font-size: 36px;\r\n}\r\n\r\n.pg-card-body {\r\n  padding: 12px 14px 14px;\r\n}\r\n\r\n.pg-card-title {\r\n  font-size: 14px;\r\n  font-weight: 600;\r\n  color: #1a1a2e;\r\n  line-height: 1.45;\r\n  margin-bottom: 8px;\r\n}\r\n\r\n.pg-card-tag {\r\n  display: inline-block;\r\n  padding: 3px 10px;\r\n  border-radius: 20px;\r\n  border: 1px solid #2d7dd2;\r\n  color: #2d7dd2;\r\n  font-size: 11px;\r\n  font-weight: 500;\r\n}\r\n\r\n\/* ===== \u5206\u9875 ===== *\/\r\n.pg-pagination {\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  gap: 4px;\r\n  flex-wrap: wrap;\r\n  padding-top: 8px;\r\n}\r\n\r\n.pg-page-btn {\r\n  min-width: 32px;\r\n  height: 32px;\r\n  padding: 0 8px;\r\n  border-radius: 6px;\r\n  border: 1px solid #dde2ea;\r\n  background: #fff;\r\n  color: #444;\r\n  font-size: 13px;\r\n  cursor: pointer;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  transition: all 0.18s;\r\n  outline: none;\r\n}\r\n\r\n.pg-page-btn:hover {\r\n  border-color: #f5a623;\r\n  color: #f5a623;\r\n}\r\n\r\n.pg-page-btn.active {\r\n  background: #f5a623;\r\n  border-color: #f5a623;\r\n  color: #fff;\r\n  font-weight: 600;\r\n}\r\n\r\n.pg-page-btn:disabled {\r\n  color: #ccc;\r\n  cursor: default;\r\n  border-color: #eee;\r\n}\r\n\r\n.pg-page-dots {\r\n  font-size: 13px;\r\n  color: #999;\r\n  padding: 0 4px;\r\n}\r\n\r\n\/* \u6bcf\u9875\u6761\u6570 *\/\r\n.pg-per-page {\r\n  margin-left: 10px;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 6px;\r\n  font-size: 13px;\r\n  color: #666;\r\n}\r\n\r\n.pg-per-page select {\r\n  border: 1px solid #dde2ea;\r\n  border-radius: 6px;\r\n  padding: 4px 8px;\r\n  font-size: 13px;\r\n  color: #444;\r\n  outline: none;\r\n  cursor: pointer;\r\n  background: #fff;\r\n}\r\n\r\n\/* ===== \u54cd\u5e94\u5f0f ===== *\/\r\n@media (max-width: 768px) {\r\n  .pg-body {\r\n    flex-direction: column;\r\n  }\r\n\r\n  .pg-sidebar {\r\n    flex: none;\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 8px;\r\n  }\r\n\r\n  .pg-sidebar-title {\r\n    width: 100%;\r\n  }\r\n\r\n  .pg-cat-item {\r\n    flex: 0 0 auto;\r\n    padding: 8px 14px;\r\n    margin-bottom: 0;\r\n  }\r\n\r\n  .pg-grid {\r\n    grid-template-columns: repeat(2, 1fr);\r\n  }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .pg-grid {\r\n    grid-template-columns: 1fr;\r\n  }\r\n}\r\n<\/style>\r\n\r\n\r\n<div class=\"pg-section\">\r\n\r\n  <!-- \u6807\u9898 -->\r\n  <h2 class=\"pg-title\">Products Gallery<\/h2>\r\n\r\n  <!-- \u9876\u90e8 Tab -->\r\n  <div class=\"pg-tab-nav\">\r\n    <button class=\"pg-tab-btn active\" onclick=\"pgSwitchTab(this, 'materials')\">Materials<\/button>\r\n    <button class=\"pg-tab-btn\" onclick=\"pgSwitchTab(this, 'post-process')\">Post-process<\/button>\r\n    <button class=\"pg-tab-btn\" onclick=\"pgSwitchTab(this, 'industry')\">Industry<\/button>\r\n  <\/div>\r\n\r\n  <!-- \u4e3b\u4f53 -->\r\n  <div class=\"pg-body\">\r\n\r\n    <!-- \u5de6\u4fa7\u5206\u7c7b -->\r\n    <div class=\"pg-sidebar\">\r\n      <div class=\"pg-sidebar-title\">By Material<\/div>\r\n\r\n      <div class=\"pg-cat-item active\" onclick=\"pgFilter(this, 'all')\">\r\n        <div class=\"pg-cat-icon-svg\">\r\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#888\" stroke-width=\"2\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"\/><\/svg>\r\n        <\/div>\r\n        <span class=\"pg-cat-label\">All<\/span>\r\n        <span class=\"pg-cat-arrow\">\u203a<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"pg-cat-item\" onclick=\"pgFilter(this, 'metal')\">\r\n        <div class=\"pg-cat-icon-svg\">\r\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#888\" stroke-width=\"2\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\r\n        <\/div>\r\n        <span class=\"pg-cat-label\">Metal<\/span>\r\n        <span class=\"pg-cat-arrow\">\u203a<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"pg-cat-item\" onclick=\"pgFilter(this, 'nylon')\">\r\n        <div class=\"pg-cat-icon-svg\">\r\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#888\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M8 12h8M12 8v8\"\/><\/svg>\r\n        <\/div>\r\n        <span class=\"pg-cat-label\">Nylon<\/span>\r\n        <span class=\"pg-cat-arrow\">\u203a<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"pg-cat-item\" onclick=\"pgFilter(this, 'plastic')\">\r\n        <div class=\"pg-cat-icon-svg\">\r\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#888\" stroke-width=\"2\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><\/svg>\r\n        <\/div>\r\n        <span class=\"pg-cat-label\">Plastic<\/span>\r\n        <span class=\"pg-cat-arrow\">\u203a<\/span>\r\n      <\/div>\r\n\r\n      <div class=\"pg-cat-item\" onclick=\"pgFilter(this, 'resin')\">\r\n        <div class=\"pg-cat-icon-svg\">\r\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#888\" stroke-width=\"2\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\r\n        <\/div>\r\n        <span class=\"pg-cat-label\">Resin<\/span>\r\n        <span class=\"pg-cat-arrow\">\u203a<\/span>\r\n      <\/div>\r\n\r\n    <\/div><!-- \/sidebar -->\r\n\r\n    <!-- \u53f3\u4fa7\u5185\u5bb9 -->\r\n    <div class=\"pg-content\">\r\n\r\n      <!-- \u5361\u7247\u7f51\u683c -->\r\n      <div class=\"pg-grid\" id=\"pgGrid\">\r\n        <!-- JS \u52a8\u6001\u6e32\u67d3 -->\r\n      <\/div>\r\n\r\n      <!-- \u5206\u9875 -->\r\n      <div class=\"pg-pagination\" id=\"pgPagination\"><\/div>\r\n\r\n    <\/div><!-- \/content -->\r\n\r\n  <\/div><!-- \/body -->\r\n\r\n<\/div><!-- \/section -->\r\n\r\n\r\n<script>\r\n\/* =====================\r\n   \u6570\u636e\u914d\u7f6e \u2014 \u66ff\u6362\u4e3a\u771f\u5b9e\u5185\u5bb9\r\n   ===================== *\/\r\nvar pgAllData = [\r\n  \/* \u6bcf\u6761\u683c\u5f0f:\r\n     { img: '\u56fe\u7247URL', title: '\u6807\u9898', tag: '\u6807\u7b7e', category: 'metal\/nylon\/plastic\/resin' } *\/\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'SLA 3D Printing for Custom Auto Parts', tag: 'Automotive', category: 'resin' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'SLA 3D Printing for Custom Auto Parts', tag: 'Automotive', category: 'resin' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'SLA 3D Printing for Custom Auto Parts', tag: 'Automotive', category: 'plastic' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'SLA 3D Printing for Custom Auto Parts', tag: 'Automotive', category: 'plastic' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'Metal 3D Printing for Aerospace Parts',  tag: 'Aerospace',  category: 'metal'  },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'Metal 3D Printing for Aerospace Parts',  tag: 'Aerospace',  category: 'metal'  },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'Nylon SLS Printing for Consumer Products', tag: 'Consumer', category: 'nylon' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'Nylon SLS Printing for Consumer Products', tag: 'Consumer', category: 'nylon' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'SLA 3D Printing for Medical Devices',      tag: 'Medical',   category: 'resin'  },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'SLA 3D Printing for Medical Devices',      tag: 'Medical',   category: 'resin'  },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'Plastic Prototype for Electronics',        tag: 'Electronics', category: 'plastic' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'Plastic Prototype for Electronics',        tag: 'Electronics', category: 'plastic' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'Metal Parts for Industrial Equipment',     tag: 'Industrial', category: 'metal' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'Metal Parts for Industrial Equipment',     tag: 'Industrial', category: 'metal' },\r\n  { img: 'https:\/\/placehold.co\/400x300\/b0b8c8\/ffffff?text=Product', title: 'Resin Casting for Jewelry',               tag: 'Jewelry',   category: 'resin'  },\r\n  { img: 'https:\/\/placehold.co\/400x300\/9aa8b8\/ffffff?text=Product', title: 'Resin Casting for Jewelry',               tag: 'Jewelry',   category: 'resin'  },\r\n];\r\n\r\n\/* ===== \u72b6\u6001 ===== *\/\r\nvar pgCurrentCat  = 'all';\r\nvar pgCurrentTab  = 'materials';\r\nvar pgCurrentPage = 1;\r\nvar pgPerPage     = 8;\r\n\r\n\/* ===== Tab \u5207\u6362 ===== *\/\r\nfunction pgSwitchTab(btn, tab) {\r\n  document.querySelectorAll('.pg-tab-btn').forEach(function(b){ b.classList.remove('active'); });\r\n  btn.classList.add('active');\r\n  pgCurrentTab = tab;\r\n  pgCurrentPage = 1;\r\n  pgRender();\r\n}\r\n\r\n\/* ===== \u5206\u7c7b\u7b5b\u9009 ===== *\/\r\nfunction pgFilter(el, cat) {\r\n  document.querySelectorAll('.pg-cat-item').forEach(function(i){ i.classList.remove('active'); });\r\n  el.classList.add('active');\r\n  pgCurrentCat  = cat;\r\n  pgCurrentPage = 1;\r\n  pgRender();\r\n}\r\n\r\n\/* ===== \u83b7\u53d6\u5f53\u524d\u7b5b\u9009\u6570\u636e ===== *\/\r\nfunction pgGetFiltered() {\r\n  if (pgCurrentCat === 'all') return pgAllData;\r\n  return pgAllData.filter(function(d){ return d.category === pgCurrentCat; });\r\n}\r\n\r\n\/* ===== \u6e32\u67d3\u5361\u7247 ===== *\/\r\nfunction pgRender() {\r\n  var data       = pgGetFiltered();\r\n  var total      = data.length;\r\n  var totalPages = Math.max(1, Math.ceil(total \/ pgPerPage));\r\n  if (pgCurrentPage > totalPages) pgCurrentPage = totalPages;\r\n\r\n  var start  = (pgCurrentPage - 1) * pgPerPage;\r\n  var sliced = data.slice(start, start + pgPerPage);\r\n\r\n  \/* \u5361\u7247 *\/\r\n  var grid = document.getElementById('pgGrid');\r\n  grid.innerHTML = sliced.map(function(d){\r\n    return '<a class=\"pg-card\" href=\"#\">'\r\n      + '<img decoding=\"async\" class=\"pg-card-img\" src=\"'+ d.img +'\" alt=\"'+ d.title +'\" onerror=\"this.style.display=\\'none\\'\">'\r\n      + '<div class=\"pg-card-body\">'\r\n      + '<div class=\"pg-card-title\">'+ d.title +'<\/div>'\r\n      + '<span class=\"pg-card-tag\">'+ d.tag +'<\/span>'\r\n      + '<\/div><\/a>';\r\n  }).join('');\r\n\r\n  \/* \u5206\u9875 *\/\r\n  pgRenderPagination(totalPages);\r\n}\r\n\r\n\/* ===== \u6e32\u67d3\u5206\u9875 ===== *\/\r\nfunction pgRenderPagination(totalPages) {\r\n  var pag = document.getElementById('pgPagination');\r\n  var html = '';\r\n\r\n  \/* \u4e0a\u4e00\u9875 *\/\r\n  html += '<button class=\"pg-page-btn\" onclick=\"pgGoPage('+(pgCurrentPage-1)+')\" '\r\n        + (pgCurrentPage <= 1 ? 'disabled' : '') + '>\u2039<\/button>';\r\n\r\n  \/* \u9875\u7801 *\/\r\n  var pages = pgPageRange(pgCurrentPage, totalPages);\r\n  pages.forEach(function(p){\r\n    if (p === '...') {\r\n      html += '<span class=\"pg-page-dots\">\u00b7\u00b7\u00b7<\/span>';\r\n    } else {\r\n      html += '<button class=\"pg-page-btn '+(p === pgCurrentPage ? 'active' : '')+'\" onclick=\"pgGoPage('+p+')\">'+ p +'<\/button>';\r\n    }\r\n  });\r\n\r\n  \/* \u4e0b\u4e00\u9875 *\/\r\n  html += '<button class=\"pg-page-btn\" onclick=\"pgGoPage('+(pgCurrentPage+1)+')\" '\r\n        + (pgCurrentPage >= totalPages ? 'disabled' : '') + '>\u203a<\/button>';\r\n\r\n  \/* \u6bcf\u9875\u6761\u6570 *\/\r\n  html += '<div class=\"pg-per-page\">'\r\n        + '<select onchange=\"pgChangePerPage(this.value)\">'\r\n        + [4,8,12,16].map(function(n){\r\n            return '<option value=\"'+n+'\"'+(n===pgPerPage?' selected':'')+'>'+n+' \/ page<\/option>';\r\n          }).join('')\r\n        + '<\/select><\/div>';\r\n\r\n  pag.innerHTML = html;\r\n}\r\n\r\n\/* ===== \u9875\u7801\u8303\u56f4\u7b97\u6cd5 ===== *\/\r\nfunction pgPageRange(cur, total) {\r\n  if (total <= 7) {\r\n    var arr = [];\r\n    for (var i = 1; i <= total; i++) arr.push(i);\r\n    return arr;\r\n  }\r\n  var pages = [1];\r\n  if (cur > 3)          pages.push('...');\r\n  for (var p = Math.max(2, cur-1); p <= Math.min(total-1, cur+1); p++) pages.push(p);\r\n  if (cur < total - 2)  pages.push('...');\r\n  pages.push(total);\r\n  return pages;\r\n}\r\n\r\n\/* ===== \u8df3\u8f6c\u9875 ===== *\/\r\nfunction pgGoPage(page) {\r\n  var total = Math.ceil(pgGetFiltered().length \/ pgPerPage);\r\n  if (page < 1 || page > total) return;\r\n  pgCurrentPage = page;\r\n  pgRender();\r\n  \/* \u56de\u5230\u6a21\u5757\u9876\u90e8 *\/\r\n  var sec = document.querySelector('.pg-section');\r\n  if (sec) sec.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n}\r\n\r\n\/* ===== \u6bcf\u9875\u6761\u6570 ===== *\/\r\nfunction pgChangePerPage(val) {\r\n  pgPerPage     = parseInt(val);\r\n  pgCurrentPage = 1;\r\n  pgRender();\r\n}\r\n\r\n\/* ===== \u521d\u59cb\u5316 ===== *\/\r\ndocument.addEventListener('DOMContentLoaded', function(){ pgRender(); });\r\n\/* \u517c\u5bb9 Elementor \u52a8\u6001\u52a0\u8f7d *\/\r\nif (document.readyState !== 'loading') pgRender();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-746d9d5 e-con-full e-flex e-con e-parent\" data-id=\"746d9d5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bb3e731 elementor-widget elementor-widget-html\" data-id=\"bb3e731\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* ===== \u6574\u4f53\u5bb9\u5668 ===== *\/\r\n.vvm-section {\r\n  max-width: 1600px;\r\n  margin: 0 auto;\r\n  padding: 40px 20px;\r\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;\r\n}\r\n\r\n.vvm-wrapper {\r\n  display: flex;\r\n  gap: 12px;\r\n  align-items: stretch;\r\n  background: #fff;\r\n  border: 1.5px dashed #dce1e8;\r\n  border-radius: 10px;\r\n  padding: 16px;\r\n}\r\n\r\n\/* ===== \u5de6\u4fa7\u4e3b\u89c6\u9891\u533a ===== *\/\r\n.vvm-main {\r\n  flex: 1 1 63%;\r\n  min-width: 0;\r\n  position: relative;\r\n}\r\n\r\n.vvm-display {\r\n  width: 100%;\r\n  height: 100%;\r\n  min-height: 380px;\r\n  position: relative;\r\n  background: #b0b8c1;\r\n  border-radius: 8px;\r\n  overflow: hidden;\r\n}\r\n\r\n\/* iframe \/ video \u586b\u6ee1 *\/\r\n.vvm-display iframe,\r\n.vvm-display video {\r\n  position: absolute;\r\n  top: 0; left: 0;\r\n  width: 100%; height: 100%;\r\n  border: none;\r\n  border-radius: 8px;\r\n}\r\n\r\n\/* \u5360\u4f4d\u64ad\u653e\u56fe\u6807 *\/\r\n.vvm-placeholder {\r\n  position: absolute;\r\n  top: 50%; left: 50%;\r\n  transform: translate(-50%, -50%);\r\n  color: rgba(255,255,255,0.6);\r\n  font-size: 56px;\r\n  pointer-events: none;\r\n}\r\n\r\n\/* ===== \u6309\u94ae\u653e\u5728\u89c6\u9891\u5185\u90e8\u5e95\u90e8\u5c45\u4e2d ===== *\/\r\n.vvm-controls {\r\n  position: absolute;\r\n  bottom: 24px;\r\n  left: 50%;\r\n  transform: translateX(-50%);\r\n  display: flex;\r\n  gap: 10px;\r\n  z-index: 10;\r\n  white-space: nowrap;\r\n}\r\n\r\n.vvm-ctrl-btn {\r\n  padding: 9px 26px;\r\n  border-radius: 50px;\r\n  border: 1.5px solid rgba(255,255,255,0.75);\r\n  background: rgba(255,255,255,0.22);\r\n  color: #fff;\r\n  font-size: 14px;\r\n  font-weight: 500;\r\n  cursor: pointer;\r\n  backdrop-filter: blur(6px);\r\n  -webkit-backdrop-filter: blur(6px);\r\n  transition: all 0.25s ease;\r\n  outline: none;\r\n}\r\n\r\n.vvm-ctrl-btn:hover {\r\n  background: rgba(245,166,35,0.75);\r\n  border-color: #f5a623;\r\n}\r\n\r\n.vvm-ctrl-btn.active {\r\n  background: #f5a623;\r\n  border-color: #f5a623;\r\n  color: #fff;\r\n  font-weight: 600;\r\n  box-shadow: 0 3px 12px rgba(245,166,35,0.45);\r\n}\r\n\r\n\/* ===== \u53f3\u4fa7\u5217\u8868 \u2014 \u4e0e\u5de6\u4fa7\u7b49\u9ad8 ===== *\/\r\n.vvm-list {\r\n  flex: 0 0 35%;\r\n  display: flex;\r\n  flex-direction: column;\r\n  gap: 8px;\r\n}\r\n\r\n\/* \u6bcf\u4e2a item \u7b49\u5206\u9ad8\u5ea6 *\/\r\n.vvm-item {\r\n  flex: 1;\r\n  min-height: 56px;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 12px;\r\n  padding: 8px 12px;\r\n  background: #f5f6f8;\r\n  border-radius: 6px;\r\n  cursor: pointer;\r\n  border: 2px solid transparent;\r\n  transition: all 0.2s ease;\r\n  overflow: hidden;\r\n}\r\n\r\n.vvm-item:hover {\r\n  background: #eef2f8;\r\n  border-color: #dde4f0;\r\n}\r\n\r\n.vvm-item.active {\r\n  background: #fff5e6;\r\n  border-color: #f5a623;\r\n}\r\n\r\n\/* \u7f29\u7565\u56fe *\/\r\n.vvm-thumb {\r\n  flex: 0 0 68px;\r\n  height: 48px;\r\n  background: #b0b8c1;\r\n  border-radius: 5px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  overflow: hidden;\r\n  position: relative;\r\n}\r\n\r\n.vvm-thumb img {\r\n  width: 100%;\r\n  height: 100%;\r\n  object-fit: cover;\r\n  border-radius: 5px;\r\n}\r\n\r\n\/* \u64ad\u653e\u56fe\u6807 *\/\r\n.vvm-thumb-play {\r\n  position: absolute;\r\n  width: 24px;\r\n  height: 24px;\r\n  border-radius: 50%;\r\n  background: rgba(255,255,255,0.88);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n.vvm-thumb-play::after {\r\n  content: '';\r\n  display: block;\r\n  width: 0;\r\n  height: 0;\r\n  border-top: 5px solid transparent;\r\n  border-bottom: 5px solid transparent;\r\n  border-left: 9px solid #f5a623;\r\n  margin-left: 2px;\r\n}\r\n\r\n.vvm-item.active .vvm-thumb-play {\r\n  background: #f5a623;\r\n}\r\n\r\n.vvm-item.active .vvm-thumb-play::after {\r\n  border-left-color: #fff;\r\n}\r\n\r\n\/* \u6587\u5b57 *\/\r\n.vvm-item-info {\r\n  flex: 1;\r\n  min-width: 0;\r\n}\r\n\r\n.vvm-item-title {\r\n  font-size: 13px;\r\n  font-weight: 600;\r\n  color: #333;\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  line-height: 1.4;\r\n}\r\n\r\n.vvm-item.active .vvm-item-title {\r\n  color: #f5a623;\r\n}\r\n\r\n.vvm-item-desc {\r\n  font-size: 11px;\r\n  color: #999;\r\n  margin-top: 3px;\r\n  white-space: nowrap;\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n}\r\n\r\n\/* ===== \u54cd\u5e94\u5f0f ===== *\/\r\n@media (max-width: 768px) {\r\n  .vvm-wrapper {\r\n    flex-direction: column;\r\n  }\r\n\r\n  .vvm-list {\r\n    flex: none;\r\n    gap: 8px;\r\n  }\r\n\r\n  .vvm-item {\r\n    flex: none;\r\n    min-height: 64px;\r\n  }\r\n\r\n  .vvm-display {\r\n    min-height: 220px;\r\n  }\r\n\r\n  .vvm-ctrl-btn {\r\n    padding: 8px 18px;\r\n    font-size: 13px;\r\n  }\r\n}\r\n<\/style>\r\n\r\n\r\n<div class=\"vvm-section\">\r\n  <div class=\"vvm-wrapper\">\r\n\r\n    <!-- ===== \u5de6\u4fa7\u89c6\u9891\u533a\uff08\u6309\u94ae\u5728\u89c6\u9891\u5185\u90e8\u5e95\u90e8\u5c45\u4e2d\uff09===== -->\r\n    <div class=\"vvm-main\">\r\n      <div class=\"vvm-display\" id=\"vvmDisplay\">\r\n\r\n        <!-- \u9ed8\u8ba4\u5360\u4f4d\u56fe\u6807 -->\r\n        <div class=\"vvm-placeholder\" id=\"vvmPlaceholder\">\u25b6<\/div>\r\n\r\n        <!-- \u89c6\u9891\/VR \u5185\u5bb9\u52a8\u6001\u63d2\u5165 -->\r\n\r\n        <!-- \u2605 \u6309\u94ae\u5728\u89c6\u9891\u5185\u90e8\u5e95\u90e8\u5c45\u4e2d \u2605 -->\r\n        <div class=\"vvm-controls\">\r\n          <button class=\"vvm-ctrl-btn\" id=\"btnVideo\" onclick=\"vvmMode('video', this)\">Video Show<\/button>\r\n          <button class=\"vvm-ctrl-btn active\" id=\"btnVR\" onclick=\"vvmMode('vr', this)\">VR Show<\/button>\r\n        <\/div>\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- ===== \u53f3\u4fa7\u64ad\u653e\u5217\u8868\uff08\u4e0e\u5de6\u4fa7\u7b49\u9ad8\uff09===== -->\r\n    <div class=\"vvm-list\" id=\"vvmList\">\r\n\r\n      <!-- Item 1 -->\r\n      <div class=\"vvm-item active\" onclick=\"vvmSelect(this)\"\r\n           data-video=\"https:\/\/www.youtube.com\/embed\/VIDEO_ID_1\"\r\n           data-vr=\"https:\/\/YOUR-VR-LINK-1\"\r\n           data-title=\"Our 3D Printing Service\">\r\n        <div class=\"vvm-thumb\">\r\n          <!-- \u66ff\u6362\u4e3a\u771f\u5b9e\u56fe\u7247: <img decoding=\"async\" src=\"thumb1.jpg\" alt=\"\"> -->\r\n          <div class=\"vvm-thumb-play\"><\/div>\r\n        <\/div>\r\n        <div class=\"vvm-item-info\">\r\n          <div class=\"vvm-item-title\">Our 3D Printing Service<\/div>\r\n          <div class=\"vvm-item-desc\">SLA \/ SLS \/ MJF \/ FDM<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Item 2 -->\r\n      <div class=\"vvm-item\" onclick=\"vvmSelect(this)\"\r\n           data-video=\"https:\/\/www.youtube.com\/embed\/VIDEO_ID_2\"\r\n           data-vr=\"https:\/\/YOUR-VR-LINK-2\"\r\n           data-title=\"Our 3D Printing Service\">\r\n        <div class=\"vvm-thumb\">\r\n          <div class=\"vvm-thumb-play\"><\/div>\r\n        <\/div>\r\n        <div class=\"vvm-item-info\">\r\n          <div class=\"vvm-item-title\">Our 3D Printing Service<\/div>\r\n          <div class=\"vvm-item-desc\">Metal 3D Printing<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Item 3 -->\r\n      <div class=\"vvm-item\" onclick=\"vvmSelect(this)\"\r\n           data-video=\"https:\/\/www.youtube.com\/embed\/VIDEO_ID_3\"\r\n           data-vr=\"https:\/\/YOUR-VR-LINK-3\"\r\n           data-title=\"Our 3D Printing Service\">\r\n        <div class=\"vvm-thumb\">\r\n          <div class=\"vvm-thumb-play\"><\/div>\r\n        <\/div>\r\n        <div class=\"vvm-item-info\">\r\n          <div class=\"vvm-item-title\">Our 3D Printing Service<\/div>\r\n          <div class=\"vvm-item-desc\">CNC Machining<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Item 4 -->\r\n      <div class=\"vvm-item\" onclick=\"vvmSelect(this)\"\r\n           data-video=\"https:\/\/www.youtube.com\/embed\/VIDEO_ID_4\"\r\n           data-vr=\"https:\/\/YOUR-VR-LINK-4\"\r\n           data-title=\"Our 3D Printing Service\">\r\n        <div class=\"vvm-thumb\">\r\n          <div class=\"vvm-thumb-play\"><\/div>\r\n        <\/div>\r\n        <div class=\"vvm-item-info\">\r\n          <div class=\"vvm-item-title\">Our 3D Printing Service<\/div>\r\n          <div class=\"vvm-item-desc\">Vacuum Casting<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Item 5 -->\r\n      <div class=\"vvm-item\" onclick=\"vvmSelect(this)\"\r\n           data-video=\"https:\/\/www.youtube.com\/embed\/VIDEO_ID_5\"\r\n           data-vr=\"https:\/\/YOUR-VR-LINK-5\"\r\n           data-title=\"Our 3D Printing Service\">\r\n        <div class=\"vvm-thumb\">\r\n          <div class=\"vvm-thumb-play\"><\/div>\r\n        <\/div>\r\n        <div class=\"vvm-item-info\">\r\n          <div class=\"vvm-item-title\">Our 3D Printing Service<\/div>\r\n          <div class=\"vvm-item-desc\">Post Processing<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Item 6 -->\r\n      <div class=\"vvm-item\" onclick=\"vvmSelect(this)\"\r\n           data-video=\"https:\/\/www.youtube.com\/embed\/VIDEO_ID_6\"\r\n           data-vr=\"https:\/\/YOUR-VR-LINK-6\"\r\n           data-title=\"Our 3D Printing Service\">\r\n        <div class=\"vvm-thumb\">\r\n          <div class=\"vvm-thumb-play\"><\/div>\r\n        <\/div>\r\n        <div class=\"vvm-item-info\">\r\n          <div class=\"vvm-item-title\">Our 3D Printing Service<\/div>\r\n          <div class=\"vvm-item-desc\">Quality Inspection<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div><!-- \/vvm-list -->\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n\r\n<script>\r\nvar vvmCurrentMode = 'vr';\r\nvar vvmCurrentItem = null;\r\n\r\n\/* \u5207\u6362 Video \/ VR \u6a21\u5f0f *\/\r\nfunction vvmMode(mode, btn) {\r\n  vvmCurrentMode = mode;\r\n  document.querySelectorAll('.vvm-ctrl-btn').forEach(function(b) {\r\n    b.classList.remove('active');\r\n  });\r\n  btn.classList.add('active');\r\n  if (vvmCurrentItem) {\r\n    vvmLoadContent(vvmCurrentItem);\r\n  }\r\n}\r\n\r\n\/* \u70b9\u51fb\u5217\u8868\u9879 *\/\r\nfunction vvmSelect(item) {\r\n  document.querySelectorAll('.vvm-item').forEach(function(el) {\r\n    el.classList.remove('active');\r\n  });\r\n  item.classList.add('active');\r\n  vvmCurrentItem = item;\r\n  vvmLoadContent(item);\r\n}\r\n\r\n\/* \u52a0\u8f7d\u89c6\u9891\/VR \u5185\u5bb9 *\/\r\nfunction vvmLoadContent(item) {\r\n  var display     = document.getElementById('vvmDisplay');\r\n  var placeholder = document.getElementById('vvmPlaceholder');\r\n  var controls    = display.querySelector('.vvm-controls');\r\n  var src         = vvmCurrentMode === 'vr'\r\n                    ? item.getAttribute('data-vr')\r\n                    : item.getAttribute('data-video');\r\n\r\n  \/* \u79fb\u9664\u65e7 iframe *\/\r\n  var old = display.querySelector('iframe');\r\n  if (old) old.remove();\r\n  if (placeholder) placeholder.style.display = 'none';\r\n\r\n  \/* \u521b\u5efa\u65b0 iframe *\/\r\n  var iframe = document.createElement('iframe');\r\n  iframe.src = src;\r\n  iframe.setAttribute('allowfullscreen', '');\r\n  iframe.setAttribute('allow', 'autoplay; vr; xr-spatial-tracking; fullscreen');\r\n  iframe.style.cssText = 'position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:8px;';\r\n\r\n  \/* \u63d2\u5728 controls \u4e4b\u524d\uff0c\u4fdd\u8bc1\u6309\u94ae\u59cb\u7ec8\u5728\u6700\u4e0a\u5c42 *\/\r\n  display.insertBefore(iframe, controls);\r\n}\r\n\r\n\/* \u521d\u59cb\u5316\uff1a\u9ed8\u8ba4\u9009\u4e2d\u7b2c\u4e00\u9879\u4f46\u4e0d\u81ea\u52a8\u64ad\u653e *\/\r\nwindow.addEventListener('DOMContentLoaded', function() {\r\n  var first = document.querySelector('.vvm-item');\r\n  if (first) vvmCurrentItem = first;\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-406e1e6 e-con-full e-flex e-con e-parent\" data-id=\"406e1e6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97432d0 elementor-widget elementor-widget-heading\" data-id=\"97432d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Upload Your File.<br>\nGet a Quote in Minutes.<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e502376 elementor-widget elementor-widget-text-editor\" data-id=\"e502376\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tShare your CAD file \u2014 Unionfab engineers will recommend the right process, material,<br> and finishing option for your exact part.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ff35f7 elementor-widget elementor-widget-button\" data-id=\"6ff35f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"#\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Upload File &amp; Get Quote<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PRODUCTION &amp; READY PARTS This Is What We&#8217;ve Built. What Can We Build for You? Explore 2,000+ real parts spanning [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2230","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/pages\/2230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/comments?post=2230"}],"version-history":[{"count":82,"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/pages\/2230\/revisions"}],"predecessor-version":[{"id":2334,"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/pages\/2230\/revisions\/2334"}],"wp:attachment":[{"href":"https:\/\/wp.unionfab.com\/de\/wp-json\/wp\/v2\/media?parent=2230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}