{"id":1669,"date":"2026-03-20T08:13:26","date_gmt":"2026-03-20T08:13:26","guid":{"rendered":"https:\/\/gqlamp.com\/?page_id=1669"},"modified":"2026-03-20T08:27:19","modified_gmt":"2026-03-20T08:27:19","slug":"fixture-spacing-quantity-calculator","status":"publish","type":"page","link":"https:\/\/gqlamp.com\/pt\/facade-architectural-lighting\/facade-linear-light\/fixture-spacing-quantity-calculator\/","title":{"rendered":"Espa\u00e7amento de lumin\u00e1rias e calculadora de quantidade"},"content":{"rendered":"\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-9729f0b\" data-block-id=\"9729f0b\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-9729f0b-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-fffce54\" data-v=\"4\" data-block-id=\"fffce54\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-fffce54-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-fffce54-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-a1f6d73\" data-block-id=\"a1f6d73\"><div class=\"stk-row stk-inner-blocks has-text-align-center stk-block-content stk-content-align stk-a1f6d73-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-11558de\" data-v=\"4\" data-block-id=\"11558de\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-11558de-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-11558de-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-f190a89\" data-block-id=\"f190a89\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-f190a89-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-9bf3035\" data-v=\"4\" data-block-id=\"9bf3035\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-9bf3035-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-9bf3035-inner-blocks\">\n<style>\n\/* \u6a21\u5757\u9876\u5c42\u5bb9\u5668\uff1a\u89e3\u9664\u5b9a\u5bbd\u9650\u5236\uff0c\u8bbe\u7f6e\u6700\u5927\u5bbd\u5ea6\u5e76\u5c45\u4e2d\uff0c\u786e\u4fdd\u8212\u5c55 *\/\n#bx-spacing-calc-v1 {\n  width: 100%;\n  max-width: 1280px;\n  margin: 0 auto;\n  padding: 60px 24px;\n  font-family: inherit;\n  color: #303030;\n  box-sizing: border-box;\n  background-color: transparent;\n}\n\n#bx-spacing-calc-v1 *, #bx-spacing-calc-v1 *::before, #bx-spacing-calc-v1 *::after {\n  box-sizing: border-box;\n}\n\n\/* \u6807\u9898\u5c42\u7ea7 H2-H4 \u89c4\u8303\u5e03\u5c40 *\/\n#bx-spacing-calc-v1 h2.bx-main-title {\n  font-size: 32px !important;\n  font-family: inherit !important;\n  font-weight: 700 !important;\n  color: #183090;\n  margin: 0 0 16px 0;\n  line-height: 1.3;\n  text-align: center; \/* \u5f3a\u5236\u5c45\u4e2d *\/\n}\n\n#bx-spacing-calc-v1 p.bx-subtitle {\n  color: #555;\n  font-size: 16px;\n  margin: 0 auto 48px auto;\n  text-align: center;\n  max-width: 800px; \/* \u907f\u514d\u6587\u5b57\u8fc7\u957f\u5bfc\u81f4\u9605\u8bfb\u75b2\u52b3 *\/\n  line-height: 1.6;\n}\n\n\/* \u6838\u5fc3\u8868\u5355\u7f51\u683c\uff1a\u6781\u5f3a\u81ea\u9002\u5e94\uff0c\u6d88\u706d\u4e0d\u89c4\u5219\u7559\u767d *\/\n#bx-spacing-calc-v1 .bx-form-grid {\n  display: grid;\n  \/* \u5bbd\u5c4f\u81ea\u52a8 3 \u5217\uff0c\u4e2d\u5c4f 2 \u5217\uff0c\u7a84\u5c4f 1 \u5217 *\/\n  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n  gap: 24px 32px;\n  margin-bottom: 40px;\n}\n\n#bx-spacing-calc-v1 .bx-field {\n  display: flex;\n  flex-direction: column;\n}\n\n\/* \u6807\u7b7e\u6837\u5f0f\uff1a\u6241\u5e73\u3001\u514b\u5236 *\/\n#bx-spacing-calc-v1 .bx-label {\n  font-size: 13px;\n  font-weight: 600;\n  color: #303030;\n  margin-bottom: 8px;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n}\n\n#bx-spacing-calc-v1 .bx-label-hint {\n  font-size: 12px;\n  font-weight: 400;\n  color: #888;\n  text-transform: none;\n  letter-spacing: 0;\n}\n\n\/* \u6241\u5e73\u5316\u8f93\u5165\u63a7\u4ef6\uff1a\u53bb\u9664\u7c97\u91cd\u8fb9\u6846\uff0c\u91c7\u7528\u5fae\u7070\u5e95\u8272 *\/\n#bx-spacing-calc-v1 input[type=\"number\"],\n#bx-spacing-calc-v1 select {\n  height: 48px;\n  background-color: #f4f6f9;\n  border: 1px solid #e2e4e8;\n  border-radius: 6px;\n  padding: 0 16px;\n  font-size: 15px;\n  color: #303030;\n  font-family: 'IBM Plex Mono', monospace, inherit;\n  transition: all 0.3s ease;\n  width: 100%;\n  box-shadow: none;\n}\n\n#bx-spacing-calc-v1 select {\n  appearance: none !important;\n  -webkit-appearance: none !important;\n  -moz-appearance: none !important;\n  padding-right: 40px;\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23183090' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'\/%3E%3C\/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 16px center;\n  cursor: pointer;\n  font-family: inherit;\n}\n\n#bx-spacing-calc-v1 input[type=\"number\"]:focus,\n#bx-spacing-calc-v1 select:focus {\n  outline: none;\n  background-color: #ffffff;\n  border-color: #183090;\n  box-shadow: 0 0 0 3px rgba(24, 48, 144, 0.08);\n}\n\n\/* \u8ba1\u7b97\u6309\u94ae\uff1a\u72ec\u7acb\u6210\u884c\uff0c\u89c6\u89c9\u951a\u70b9 *\/\n#bx-spacing-calc-v1 .bx-btn-wrap {\n  grid-column: 1 \/ -1;\n  display: flex;\n  justify-content: center;\n  margin-top: 16px;\n}\n\n#bx-spacing-calc-v1 .bx-btn-calc {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  height: 52px;\n  padding: 0 48px;\n  background: #183090;\n  color: #fff;\n  border: none;\n  border-radius: 6px;\n  font-size: 16px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: all 0.2s ease;\n  font-family: inherit;\n  width: 100%;\n  max-width: 400px; \/* \u63a7\u5236\u6700\u5927\u5bbd\u5ea6\uff0c\u907f\u514d\u6a2a\u8d2f\u5168\u5c4f\u7684\u7b28\u91cd\u611f *\/\n}\n\n#bx-spacing-calc-v1 .bx-btn-calc:hover {\n  background: #0f2070;\n  transform: translateY(-2px);\n  box-shadow: 0 6px 16px rgba(24,48,144,0.15);\n}\n\n#bx-spacing-calc-v1 .bx-btn-calc:active {\n  transform: translateY(0);\n}\n\n\/* \u8f93\u51fa\u533a\u57df *\/\n#bx-spacing-calc-v1 .bx-output {\n  margin-top: 56px;\n  padding-top: 40px;\n  border-top: 1px solid #eaeaea;\n  display: none;\n}\n\n#bx-spacing-calc-v1 h3.bx-output-title {\n  font-family: inherit !important;\n  font-weight: 700 !important;\n  font-size: 24px;\n  color: #303030;\n  margin: 0 0 24px 0;\n  text-align: center;\n}\n\n\/* \u7ed3\u679c\u5361\u7247\u7f51\u683c\uff1a\u6241\u5e73\u5316\u65e0\u8fb9\u6846\u8bbe\u8ba1 *\/\n#bx-spacing-calc-v1 .bx-result-cards {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n  gap: 20px;\n  margin-bottom: 40px;\n}\n\n#bx-spacing-calc-v1 .bx-result-card {\n  background: #f8f9fb;\n  border-radius: 8px;\n  padding: 24px;\n  text-align: center;\n  position: relative;\n  overflow: hidden;\n}\n\n#bx-spacing-calc-v1 .bx-result-card::after {\n  content: '';\n  position: absolute;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 3px;\n  background-color: #183090;\n  opacity: 0;\n  transition: opacity 0.3s ease;\n}\n\n#bx-spacing-calc-v1 .bx-result-card:hover::after {\n  opacity: 1;\n}\n\n\/* H4 \u4f5c\u4e3a\u5361\u7247\u5c0f\u6807\u9898 *\/\n#bx-spacing-calc-v1 h4.bx-rc-label {\n  font-size: 13px;\n  text-transform: uppercase;\n  letter-spacing: 0.5px;\n  color: #555;\n  margin: 0 0 12px 0;\n  font-family: inherit;\n  font-weight: 600;\n}\n\n#bx-spacing-calc-v1 .bx-rc-value {\n  font-family: 'IBM Plex Mono', monospace, inherit;\n  font-size: 32px;\n  font-weight: 700;\n  color: #183090;\n  line-height: 1.2;\n}\n\n#bx-spacing-calc-v1 .bx-rc-unit {\n  font-size: 16px;\n  color: #888;\n  font-weight: 500;\n}\n\n\/* \u56fe\u8868\u4e0e\u5907\u6ce8\uff1a\u5ef6\u7eed\u6241\u5e73\u98ce\u683c *\/\n#bx-spacing-calc-v1 .bx-diagram {\n  background: #ffffff;\n  border: 1px solid #eaeaea;\n  border-radius: 8px;\n  padding: 32px;\n  margin-bottom: 24px;\n}\n\n#bx-spacing-calc-v1 .bx-diagram-title {\n  font-size: 15px;\n  font-weight: 600;\n  color: #303030;\n  margin-bottom: 20px;\n}\n\n#bx-spacing-calc-v1 .bx-diagram-visual {\n  position: relative;\n  height: 80px;\n  background: #f4f6f9;\n  border-radius: 6px;\n  overflow: hidden;\n  margin-bottom: 16px;\n}\n\n\/* \u56fe\u8868\u5185\u90e8\u5143\u7d20\u6837\u5f0f\u4fdd\u7559\u539f\u6837 *\/\n#bx-spacing-calc-v1 .bx-fixture-mark { position: absolute; top: 10px; bottom: 10px; width: 4px; background: #183090; border-radius: 2px; }\n#bx-spacing-calc-v1 .bx-fixture-label { position: absolute; bottom: -18px; font-size: 10px; font-family: 'IBM Plex Mono', monospace; color: #183090; transform: translateX(-50%); white-space: nowrap; }\n#bx-spacing-calc-v1 .bx-spacing-line { position: absolute; top: 50%; height: 1px; border-top: 2px dashed #009048; }\n#bx-spacing-calc-v1 .bx-spacing-label-mid { position: absolute; top: 35%; font-size: 11px; font-family: 'IBM Plex Mono', monospace; color: #009048; transform: translateX(-50%); font-weight: 600; background: #f0f2f8; padding: 0 4px; }\n\n#bx-spacing-calc-v1 .bx-notes {\n  padding: 20px 24px;\n  background: #f8fbf9;\n  border-left: 4px solid #009048;\n  border-radius: 0 6px 6px 0;\n  font-size: 14px;\n  line-height: 1.6;\n  color: #444;\n}\n\n#bx-spacing-calc-v1 .bx-notes strong {\n  color: #009048;\n}\n\n\/* \u9519\u8bef\u63d0\u793a *\/\n#bx-spacing-calc-v1 .bx-error-msg {\n  color: #D81818;\n  font-size: 14px;\n  font-weight: 500;\n  padding: 16px;\n  background: rgba(216, 24, 24, 0.05);\n  border-left: 4px solid #D81818;\n  border-radius: 0 6px 6px 0;\n  margin-bottom: 24px;\n  display: none;\n  text-align: center;\n}\n\n\/* \u5e95\u90e8 CTA\uff1a\u514b\u5236\u7684\u9ad8\u4eae *\/\n#bx-spacing-calc-v1 .bx-cta-wrap {\n  text-align: center;\n  margin-top: 48px;\n  padding-top: 32px;\n  border-top: 1px solid #eaeaea;\n}\n\n#bx-spacing-calc-v1 .bx-cta-link {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  height: 48px;\n  padding: 0 40px;\n  background: #D81818;\n  color: #fff;\n  text-decoration: none;\n  border-radius: 6px;\n  font-size: 16px;\n  font-weight: 600;\n  transition: all 0.2s ease;\n  font-family: inherit;\n}\n\n#bx-spacing-calc-v1 .bx-cta-link:hover {\n  background: #b81414;\n  transform: translateY(-2px);\n  box-shadow: 0 6px 16px rgba(216, 24, 24, 0.2);\n}\n\n#bx-spacing-calc-v1 .bx-cta-sub {\n  font-size: 14px;\n  color: #888;\n  margin-top: 12px;\n}\n\n\/* \u5a92\u4f53\u67e5\u8be2\u4f18\u5316 *\/\n@media (max-width:690px) {\n  #bx-spacing-calc-v1 {\n    padding: 40px 16px;\n  }\n  #bx-spacing-calc-v1 h2.bx-main-title {\n    font-size: 26px !important;\n  }\n  #bx-spacing-calc-v1 .bx-btn-wrap {\n    margin-top: 8px;\n  }\n}\n<\/style>\n\n<section id=\"bx-spacing-calc-v1\">\n  <h2 class=\"bx-main-title\">Fixture Spacing &amp; Quantity Calculator<\/h2>\n  <p class=\"bx-subtitle\">Determine the number of linear fixtures, optimal spacing, total length, and power draw for your facade project.<\/p>\n\n  <div class=\"bx-error-msg\" id=\"bx-error-msg\"><\/div>\n\n  <div class=\"bx-form-grid\">\n    <div class=\"bx-field\">\n      <label class=\"bx-label\" for=\"bx-facade-w\">\n        Facade Width \n        <span class=\"bx-label-hint\">(meters)<\/span>\n      <\/label>\n      <input type=\"number\" id=\"bx-facade-w\" min=\"0.5\" max=\"500\" step=\"0.1\" placeholder=\"e.g. 24\">\n    <\/div>\n    \n    <div class=\"bx-field\">\n      <label class=\"bx-label\" for=\"bx-facade-h\">\n        Facade Height \n        <span class=\"bx-label-hint\">(meters)<\/span>\n      <\/label>\n      <input type=\"number\" id=\"bx-facade-h\" min=\"0.5\" max=\"200\" step=\"0.1\" placeholder=\"e.g. 12\">\n    <\/div>\n    \n    <div class=\"bx-field\">\n      <label class=\"bx-label\" for=\"bx-technique\">Lighting Technique<\/label>\n      <select id=\"bx-technique\">\n        <option value=\"grazing\">Grazing (close-mount, texture reveal)<\/option>\n        <option value=\"washing\">Wall Washing (even illumination)<\/option>\n        <option value=\"accent\">Accent \/ Outline (perimeter highlight)<\/option>\n        <option value=\"media\">Media Facade (pixel-mapped content)<\/option>\n      <\/select>\n    <\/div>\n    \n    <div class=\"bx-field\">\n      <label class=\"bx-label\" for=\"bx-beam\">Beam Angle<\/label>\n      <select id=\"bx-beam\">\n        <option value=\"15\">15\u00b0 (narrow spot)<\/option>\n        <option value=\"30\">30\u00b0 (narrow flood)<\/option>\n        <option value=\"60\" selected>60\u00b0 (flood)<\/option>\n        <option value=\"90\">90\u00b0 (wide flood)<\/option>\n        <option value=\"120\">120\u00b0 (very wide)<\/option>\n      <\/select>\n    <\/div>\n    \n    <div class=\"bx-field\">\n      <label class=\"bx-label\" for=\"bx-led-type\">\n        LED Type \n        <span class=\"bx-label-hint\">(for power estimate)<\/span>\n      <\/label>\n      <select id=\"bx-led-type\">\n        <option value=\"single\">Single Color (3000K\/4000K\/6000K)<\/option>\n        <option value=\"rgb\">RGB<\/option>\n        <option value=\"rgbw\">RGBW<\/option>\n      <\/select>\n    <\/div>\n    \n    <div class=\"bx-field\">\n      <label class=\"bx-label\" for=\"bx-fixture-len\">\n        Fixture Segment Length \n        <span class=\"bx-label-hint\">(meters)<\/span>\n      <\/label>\n      <select id=\"bx-fixture-len\">\n        <option value=\"0.5\">0.5 m<\/option>\n        <option value=\"1\" selected>1.0 m (standard)<\/option>\n        <option value=\"1.2\">1.2 m<\/option>\n        <option value=\"1.5\">1.5 m<\/option>\n        <option value=\"2\">2.0 m<\/option>\n      <\/select>\n    <\/div>\n\n    <div class=\"bx-btn-wrap\">\n      <button type=\"button\" class=\"bx-btn-calc\" id=\"bx-btn-calc\">Calculate Spacing &amp; Quantity<\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"bx-output\" id=\"bx-output\">\n    <h3 class=\"bx-output-title\">Calculation Results<\/h3>\n    \n    <div class=\"bx-result-cards\" id=\"bx-result-cards\">\n      <div class=\"bx-result-card\">\n        <h4 class=\"bx-rc-label\">Total Fixtures<\/h4>\n        <div class=\"bx-rc-value\" id=\"bx-r-fixtures\">\u2014<\/div>\n      <\/div>\n      <div class=\"bx-result-card\">\n        <h4 class=\"bx-rc-label\">Row Spacing<\/h4>\n        <div class=\"bx-rc-value\" id=\"bx-r-spacing\">\u2014<\/div>\n      <\/div>\n      <div class=\"bx-result-card\">\n        <h4 class=\"bx-rc-label\">Total Length<\/h4>\n        <div class=\"bx-rc-value\" id=\"bx-r-meters\">\u2014<\/div>\n      <\/div>\n      <div class=\"bx-result-card\">\n        <h4 class=\"bx-rc-label\">Est. Power<\/h4>\n        <div class=\"bx-rc-value\" id=\"bx-r-power\">\u2014<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"bx-diagram\" id=\"bx-diagram\">\n      <div class=\"bx-diagram-title\">Fixture Layout Preview (side view)<\/div>\n      <div class=\"bx-diagram-visual\" id=\"bx-diagram-visual\"><\/div>\n      <div id=\"bx-diagram-caption\" style=\"font-size:13px;color:#666;margin-top:20px;\"><\/div>\n    <\/div>\n\n    <div class=\"bx-notes\" id=\"bx-notes\"><\/div>\n\n    <div class=\"bx-cta-wrap\">\n      <a href=\"#ct-popup-801\" class=\"bx-cta-link\">Get a Professional Lighting Layout<\/a>\n      <p class=\"bx-cta-sub\">Our engineers will provide a photometric simulation for your facade<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function(){\n  var techniqueConfig = {\n    grazing:  { spacingFactor: 0.4, powerMult: 1.2, note: 'Grazing technique positions fixtures 150-300 mm from the facade surface to reveal texture. Spacing between rows should be tight for uniform coverage.' },\n    washing:  { spacingFactor: 0.8, powerMult: 1.0, note: 'Wall washing provides even illumination from a moderate distance (0.3-1 m offset). Wider beam angles reduce the number of rows required.' },\n    accent:   { spacingFactor: 0, powerMult: 0.7, note: 'Accent\/outline lighting places fixtures along the facade perimeter (top, bottom, and vertical edges). Coverage is linear rather than area-based.' },\n    media:    { spacingFactor: 0.15, powerMult: 1.5, note: 'Media facade requires tight pixel pitch. Typical row spacing is 100-200 mm. Higher LED density and RGBW fixtures recommended for content playback.' }\n  };\n\n  var beamSpacingMult = { '15': 0.35, '30': 0.55, '60': 1.0, '90': 1.3, '120': 1.6 };\n  var powerPerMeter = { single: 14.4, rgb: 18, rgbw: 22 };\n\n  var btn = document.getElementById('bx-btn-calc');\n  btn.addEventListener('click', function(){\n    var w = parseFloat(document.getElementById('bx-facade-w').value);\n    var h = parseFloat(document.getElementById('bx-facade-h').value);\n    var technique = document.getElementById('bx-technique').value;\n    var beam = document.getElementById('bx-beam').value;\n    var ledType = document.getElementById('bx-led-type').value;\n    var segLen = parseFloat(document.getElementById('bx-fixture-len').value);\n\n    var errEl = document.getElementById('bx-error-msg');\n    errEl.style.display = 'none';\n\n    if(!w || w < 0.5 || !h || h < 0.5){\n      errEl.textContent = 'Please enter valid facade dimensions (minimum 0.5 m each).';\n      errEl.style.display = 'block';\n      return;\n    }\n\n    var cfg = techniqueConfig[technique];\n    var bMult = beamSpacingMult[beam];\n    var rows, rowSpacing, fixturesPerRow, totalFixtures, totalMeters;\n\n    if(technique === 'accent'){\n      var topBottom = 2 * w;\n      var sides = 2 * h;\n      totalMeters = topBottom + sides;\n      fixturesPerRow = 0; \n      totalFixtures = Math.ceil(totalMeters \/ segLen);\n      rows = 0;\n      rowSpacing = 0;\n    } else {\n      rowSpacing = cfg.spacingFactor * bMult * h;\n      if(technique === 'media'){\n        rowSpacing = Math.min(rowSpacing, 0.2);\n        rowSpacing = Math.max(rowSpacing, 0.1);\n      } else {\n        rowSpacing = Math.max(rowSpacing, 0.3);\n        rowSpacing = Math.min(rowSpacing, 3.0);\n      }\n      rows = Math.max(1, Math.ceil(h \/ rowSpacing));\n      rowSpacing = h \/ rows;\n      fixturesPerRow = Math.ceil(w \/ segLen);\n      totalFixtures = rows * fixturesPerRow;\n      totalMeters = totalFixtures * segLen;\n    }\n\n    var ppm = powerPerMeter[ledType] * cfg.powerMult;\n    var totalPower = totalMeters * ppm;\n\n    document.getElementById('bx-r-fixtures').innerHTML = totalFixtures + ' <span class=\"bx-rc-unit\">pcs<\/span>';\n    document.getElementById('bx-r-spacing').innerHTML = technique === 'accent' ? 'N\/A' : rowSpacing.toFixed(2) + ' <span class=\"bx-rc-unit\">m<\/span>';\n    document.getElementById('bx-r-meters').innerHTML = totalMeters.toFixed(1) + ' <span class=\"bx-rc-unit\">m<\/span>';\n\n    if(totalPower >= 1000){\n      document.getElementById('bx-r-power').innerHTML = (totalPower \/ 1000).toFixed(2) + ' <span class=\"bx-rc-unit\">kW<\/span>';\n    } else {\n      document.getElementById('bx-r-power').innerHTML = Math.round(totalPower) + ' <span class=\"bx-rc-unit\">W<\/span>';\n    }\n\n    var diagramEl = document.getElementById('bx-diagram-visual');\n    diagramEl.innerHTML = '';\n    var captionEl = document.getElementById('bx-diagram-caption');\n\n    if(technique === 'accent'){\n      diagramEl.style.height = '60px';\n      var rect = document.createElement('div');\n      rect.style.cssText = 'position:absolute;left:10%;right:10%;top:10px;bottom:10px;border:3px solid #183090;border-radius:3px;';\n      diagramEl.appendChild(rect);\n      captionEl.textContent = 'Perimeter layout: ' + totalMeters.toFixed(1) + ' m total around ' + w + ' m x ' + h + ' m facade.';\n    } else {\n      var displayRows = Math.min(rows, 12);\n      diagramEl.style.height = Math.max(80, displayRows * 18 + 30) + 'px';\n      var visH = parseInt(diagramEl.style.height);\n\n      for(var i = 0; i < displayRows; i++){\n        var yPct = ((i + 0.5) \/ displayRows) * 100;\n        var mark = document.createElement('div');\n        mark.className = 'bx-fixture-mark';\n        mark.style.left = '8%';\n        mark.style.right = '8%';\n        mark.style.top = yPct + '%';\n        mark.style.height = '3px';\n        mark.style.width = 'auto';\n        mark.style.bottom = 'auto';\n        diagramEl.appendChild(mark);\n      }\n\n      if(displayRows >= 2){\n        var y1 = (0.5 \/ displayRows) * 100;\n        var y2 = (1.5 \/ displayRows) * 100;\n        var line = document.createElement('div');\n        line.style.cssText = 'position:absolute;right:5%;width:2px;background:#009048;';\n        line.style.top = y1 + '%';\n        line.style.height = (y2 - y1) + '%';\n        diagramEl.appendChild(line);\n\n        var lbl = document.createElement('div');\n        lbl.style.cssText = 'position:absolute;right:1%;font-size:11px;font-family:\"IBM Plex Mono\",monospace;color:#009048;font-weight:600;';\n        lbl.style.top = ((y1 + y2) \/ 2 - 2) + '%';\n        lbl.textContent = rowSpacing.toFixed(2) + 'm';\n        diagramEl.appendChild(lbl);\n      }\n\n      captionEl.textContent = rows + ' rows x ' + fixturesPerRow + ' fixture' + (fixturesPerRow > 1 ? 's' : '') + '\/row (' + segLen + ' m segments). Total: ' + totalFixtures + ' fixtures.';\n    }\n\n    document.getElementById('bx-notes').innerHTML = '<strong>Design Note:<\/strong> ' + cfg.note + ' Power estimate based on ' + ppm.toFixed(1) + ' W\/m (' + ledType.toUpperCase() + '). Actual consumption depends on selected model and dimming level. DC' + (ledType === 'single' ? '24V' : '24V\/48V') + ' power supplies required.';\n\n    document.getElementById('bx-output').style.display = 'block';\n    \n    \/\/ \u589e\u52a0\u4e86\u4e00\u70b9\u504f\u79fb\u91cf\uff0c\u907f\u514d\u9876\u90e8\u88ab\u53ef\u80fd\u5b58\u5728\u7684\u56fa\u5b9a\u5bfc\u822a\u680f\u906e\u6321\n    var yOffset = -40; \n    var element = document.getElementById('bx-output');\n    var y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\n    window.scrollTo({top: y, behavior: 'smooth'});\n  });\n})();\n<\/script>\n<\/div><\/div><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Fixture Spacing &amp; Quantity Calculator Determine the number of linear fixtures, optimal spacing, total length, and power draw for your facade project. Facade Width (meters) Facade Height (meters) Lighting Technique Grazing (close-mount, texture reveal)Wall Washing (even illumination)Accent \/ Outline (perimeter highlight)Media Facade (pixel-mapped content) Beam Angle 15\u00b0 (narrow spot)30\u00b0 (narrow flood)60\u00b0 (flood)90\u00b0 (wide flood)120\u00b0 (very [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":1587,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-1669","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages\/1669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/comments?post=1669"}],"version-history":[{"count":0,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages\/1669\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/pages\/1587"}],"wp:attachment":[{"href":"https:\/\/gqlamp.com\/pt\/wp-json\/wp\/v2\/media?parent=1669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}