{"id":7977,"date":"2026-07-03T08:52:04","date_gmt":"2026-07-03T08:52:04","guid":{"rendered":"https:\/\/bg-filtration.de\/?p=7977"},"modified":"2026-07-03T11:33:50","modified_gmt":"2026-07-03T11:33:50","slug":"einbaufilter-berechnung","status":"publish","type":"post","link":"https:\/\/bg-filtration.de\/en\/einbaufilter-berechnung\/","title":{"rendered":"Einbaufilter-Berechnung"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"7977\" class=\"elementor elementor-7977\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-febc393 e-con-full e-flex e-con e-parent\" data-id=\"febc393\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f1e33c2 elementor-widget elementor-widget-html\" data-id=\"f1e33c2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     Einbaufilter-Auslegung\n     Direkt in Elementor HTML-Widget einf\u00fcgen (kein iframe).\n     Erbt Schriftarten und Farben aus den Elementor Global-Settings.\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n\n<div id=\"ebf\">\n\n<style>\n#ebf {\n  --ebf-accent:  #079CE0;\n  --ebf-primary: var(--e-global-color-primary, #1a3a5c);\n  --ebf-text:    var(--e-global-color-text, #1a1a2e);\n  --ebf-font:    var(--e-global-typography-primary-font-family, inherit);\n\n  font-family: var(--ebf-font);\n  color: var(--ebf-text);\n  line-height: 1.5;\n  width: 100%;\n}\n\n#ebf *, #ebf *::before, #ebf *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n#ebf h2 {\n  font-size: 1.35rem; font-weight: 700;\n  color: var(--ebf-primary);\n  margin-bottom: 4px;\n  font-family: var(--ebf-font);\n}\n#ebf .ebf-sub {\n  font-size: 0.82rem;\n  color: color-mix(in srgb, var(--ebf-primary) 60%, white);\n  margin-bottom: 20px;\n}\n\n#ebf .ebf-layout { display: flex; gap: 14px; flex-wrap: wrap; }\n\n#ebf .ebf-panel {\n  background: color-mix(in srgb, var(--ebf-primary) 4%, white);\n  border: 1px solid color-mix(in srgb, var(--ebf-primary) 12%, white);\n  border-radius: 10px;\n  padding: 18px 20px;\n}\n#ebf .ebf-controls { min-width: 260px; flex: 0 0 260px; }\n#ebf .ebf-right { flex: 1; min-width: 520px; }\n\n#ebf .ebf-lbl {\n  display: block;\n  font-size: 0.72rem; font-weight: 700;\n  text-transform: uppercase; letter-spacing: 0.07em;\n  color: color-mix(in srgb, var(--ebf-primary) 55%, white);\n  margin-bottom: 5px; margin-top: 13px;\n}\n#ebf .ebf-lbl:first-child { margin-top: 0; }\n\n#ebf .ebf-inp {\n  width: 100%; padding: 8px 10px;\n  border: 1.5px solid color-mix(in srgb, var(--ebf-primary) 20%, white);\n  border-radius: 6px;\n  background: #fff; color: var(--ebf-text);\n  font-size: 0.88rem; font-family: var(--ebf-font);\n  outline: none; transition: border-color 0.2s;\n}\n#ebf .ebf-inp:focus { border-color: var(--ebf-accent); }\n\n#ebf .ebf-rg { display: flex; gap: 5px; margin-top: 2px; }\n#ebf .ebf-rb {\n  flex: 1; padding: 8px 4px;\n  border-radius: 6px;\n  border: 2px solid color-mix(in srgb, var(--ebf-primary) 20%, white);\n  background: #fff;\n  color: color-mix(in srgb, var(--ebf-primary) 55%, white);\n  font-size: 0.82rem; font-weight: 600;\n  font-family: var(--ebf-font);\n  cursor: pointer; text-align: center;\n  transition: all 0.15s; user-select: none;\n}\n#ebf .ebf-rb:hover { border-color: var(--ebf-accent); color: var(--ebf-accent); }\n#ebf .ebf-rb.on { background: var(--ebf-accent); border-color: var(--ebf-accent); color: #fff; font-weight: 700; }\n\n#ebf .ebf-btn {\n  width: 100%; margin-top: 14px; padding: 12px;\n  border-radius: 7px; border: none;\n  background: var(--ebf-accent); color: #fff;\n  font-size: 0.95rem; font-weight: 700;\n  font-family: var(--ebf-font);\n  cursor: pointer; letter-spacing: 0.02em;\n  transition: opacity 0.18s;\n}\n#ebf .ebf-btn:hover { opacity: 0.88; }\n\n#ebf .ebf-sep {\n  height: 1px;\n  background: color-mix(in srgb, var(--ebf-primary) 12%, white);\n  margin: 13px 0;\n}\n\n\/* Result cards *\/\n#ebf .ebf-cards { display: block; margin-bottom: 14px; }\n#ebf .ebf-card {\n  border-radius: 10px; padding: 14px 16px;\n  border: 1px solid #d0dce8;\n  border-left-width: 5px;\n  background: #fff;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.07);\n  margin-bottom: 10px;\n}\n#ebf .ebf-card:last-child { margin-bottom: 0; }\n#ebf .ebf-card.C { border-left-color: #2a9a4a; }\n#ebf .ebf-card.M { border-left-color: #e67e22; }\n#ebf .ebf-card.X { border-left-color: #e74c3c; background: #fff8f8; }\n\n#ebf .ebf-badge {\n  display: inline-block;\n  font-size: 0.67rem; font-weight: 700;\n  padding: 4px 11px; border-radius: 20px;\n  text-transform: uppercase; letter-spacing: 0.05em;\n  margin-bottom: 7px;\n}\n#ebf .ebf-bg { background: #2a9a4a; color: #fff; }\n#ebf .ebf-by { background: #e67e22; color: #fff; }\n#ebf .ebf-br { background: #e74c3c; color: #fff; }\n\n#ebf .ebf-ct {\n  display: block;\n  font-size: 1.02rem; font-weight: 700;\n  color: var(--ebf-primary);\n  margin-bottom: 8px;\n  line-height: 1.25;\n}\n#ebf .ebf-cb {\n  font-size: 0.8rem;\n  color: #4a5a7a;\n  line-height: 1.7;\n}\n#ebf .ebf-cb strong { color: var(--ebf-primary); font-weight: 600; }\n#ebf .ebf-nb {\n  display: block;\n  background: #fff8e1; border: 1px solid #e8b800;\n  border-radius: 6px; padding: 8px 11px;\n  font-size: 0.76rem; color: #6a4000; margin-top: 10px;\n  line-height: 1.55;\n}\n#ebf .ebf-nb::before { content: \"\u26a0  \"; font-weight: 700; }\n\n\/* Sketch area *\/\n#ebf .ebf-srow { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; }\n#ebf .ebf-sblk { flex: 1; min-width: 240px; }\n#ebf .ebf-slbl {\n  font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.07em;\n  color: color-mix(in srgb, var(--ebf-primary) 55%, white);\n  margin-bottom: 6px; padding-bottom: 5px;\n  border-bottom: 1px solid color-mix(in srgb, var(--ebf-primary) 12%, white);\n  display: flex; justify-content: space-between; align-items: center;\n}\n#ebf canvas {\n  display: block; width: 100%;\n  border-radius: 7px; background: #f8fafc;\n  border: 1px solid color-mix(in srgb, var(--ebf-primary) 12%, white);\n}\n#ebf .ebf-bexp {\n  padding: 4px 10px; border-radius: 5px;\n  border: 1px solid color-mix(in srgb, var(--ebf-primary) 20%, white);\n  background: #fff; color: var(--ebf-accent);\n  font-size: 0.72rem; font-weight: 600;\n  cursor: pointer; font-family: var(--ebf-font);\n}\n#ebf .ebf-bexp:hover { background: color-mix(in srgb, var(--ebf-accent) 8%, white); }\n\n#ebf .ebf-section-title {\n  font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.07em;\n  color: color-mix(in srgb, var(--ebf-primary) 55%, white);\n  margin-bottom: 10px; padding-bottom: 5px;\n  border-bottom: 1px solid color-mix(in srgb, var(--ebf-primary) 12%, white);\n}\n#ebf .ebf-inf {\n  font-size: 0.69rem;\n  color: color-mix(in srgb, var(--ebf-primary) 45%, white);\n  line-height: 1.6; margin-top: 10px;\n}\n#ebf .ebf-inf strong { color: color-mix(in srgb, var(--ebf-primary) 65%, white); }\n#ebf .ebf-empty {\n  text-align: center; padding: 28px;\n  color: color-mix(in srgb, var(--ebf-primary) 30%, white);\n  font-size: 0.84rem;\n}\n<\/style>\n\n<h2>Einbaufilter-Auslegung<\/h2>\n<p class=\"ebf-sub\">Totalabscheider mit Filteranbau \u00b7 bg filtration GmbH \u00b7 Draufsicht Schnitt<\/p>\n\n<div class=\"ebf-layout\">\n  <div class=\"ebf-panel ebf-controls\">\n    <span class=\"ebf-lbl\">Abscheider-Au\u00dfendurchmesser (mm)<\/span>\n    <input type=\"number\" class=\"ebf-inp\" id=\"d\" value=\"800\" min=\"300\" max=\"3000\" step=\"50\">\n\n    <span class=\"ebf-lbl\">Elementgruppe<\/span>\n    <div class=\"ebf-rg\">\n      <div class=\"ebf-rb on\" id=\"gt\" onclick=\"setG('t')\">Taschen<\/div>\n      <div class=\"ebf-rb\" id=\"gp\" onclick=\"setG('p')\">Platten<\/div>\n    <\/div>\n\n    <div class=\"ebf-sep\"><\/div>\n\n    <span class=\"ebf-lbl\">Abstand Schlitzplatte \u2192 Abscheider, konservativ (mm)<\/span>\n    <input type=\"number\" class=\"ebf-inp\" id=\"sp\" value=\"50\" min=\"0\" max=\"500\" step=\"10\">\n\n    <span class=\"ebf-lbl\">Abstand Schlitzplatte \u2192 Abscheider, maximal (mm)<\/span>\n    <input type=\"number\" class=\"ebf-inp\" id=\"spmax\" value=\"150\" min=\"0\" max=\"500\" step=\"10\">\n\n    <span class=\"ebf-lbl\">Abstand Geh\u00e4usewand \u2192 \u00e4u\u00dferstes Element (mm)<\/span>\n    <input type=\"number\" class=\"ebf-inp\" id=\"sw\" value=\"80\" min=\"10\" max=\"300\" step=\"5\">\n\n    <button class=\"ebf-btn\" onclick=\"calc()\">\u25b6 Berechnen<\/button>\n\n    <div class=\"ebf-sep\"><\/div>\n    <div class=\"ebf-inf\">\n      <strong>Raster:<\/strong> 105 mm Mitte-zu-Mitte<br>\n      <strong>Ungerade:<\/strong> 1 Element in Mitte, dann \u00b1105 mm<br>\n      <strong>Gerade:<\/strong> erstes Element bei \u00b152,5 mm<br>\n      <strong>L\u00e4ngen:<\/strong> Elemente weiter au\u00dfen ggf. k\u00fcrzer (Kreisbegrenzung)<br>\n      <strong>Schlitzplatte:<\/strong> konservativ 50 mm \/ maximal 100 mm unterhalb Abscheider<br>\n      <strong>Max. Schlitzplatten-Breite:<\/strong> 0,9 \u00d7 D\n    <\/div>\n  <\/div>\n\n  <div class=\"ebf-right\">\n    <div class=\"ebf-panel\">\n      <div class=\"ebf-section-title\">Auslegungsergebnis<\/div>\n      <div class=\"ebf-cards\" id=\"cards\"><div class=\"ebf-empty\">Durchmesser eingeben und berechnen<\/div><\/div>\n      <div class=\"ebf-srow\">\n        <div class=\"ebf-sblk\">\n          <div class=\"ebf-slbl\">\n            <span style=\"color:#2a9a4a;font-weight:700\">\u2713 Konservativ<\/span>\n            <button class=\"ebf-bexp\" onclick=\"expPNG('c')\">\u2b07 PNG<\/button>\n          <\/div>\n          <canvas id=\"cc\" width=\"400\" height=\"500\"><\/canvas>\n        <\/div>\n        <div class=\"ebf-sblk\">\n          <div class=\"ebf-slbl\">\n            <span style=\"color:#e67e22;font-weight:700\">\u26a0 Maximal<\/span>\n            <button class=\"ebf-bexp\" onclick=\"expPNG('m')\">\u2b07 PNG<\/button>\n          <\/div>\n          <canvas id=\"cm\" width=\"400\" height=\"500\"><\/canvas>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<\/div><!-- #ebf -->\n\n<script>\nconst PITCH = 105;\nlet grp = 't';\nconst ELEMS = {\n  t: [{l:750,a:.75},{l:850,a:.85},{l:1100,a:1.1},{l:1250,a:1.25},{l:1600,a:1.6},{l:2100,a:2.1}],\n  p: [{l:600,a:1.3},{l:800,a:1.8},{l:1000,a:2.3},{l:1200,a:2.8}]\n};\nlet RES = null;\n\nfunction setG(g) {\n  grp = g;\n  document.getElementById('gt').classList.toggle('on', g==='t');\n  document.getElementById('gp').classList.toggle('on', g==='p');\n}\n\nfunction positions(n) {\n  const p = [];\n  if (n % 2 === 1) { for (let i=0;i<n;i++) p.push((i - Math.floor(n\/2)) * PITCH); }\n  else             { for (let i=0;i<n;i++) p.push((i - n\/2 + 0.5) * PITCH); }\n  return p;\n}\n\nfunction maxAvailLen(xMm, R, spMm, gapMm) {\n  const ax = Math.abs(xMm);\n  if (ax >= R) return 0;\n  const chord = Math.sqrt(R*R - ax*ax);\n  return R + spMm + chord - gapMm;\n}\n\nfunction bestElem(xMm, R, spMm, gapMm) {\n  const avail = maxAvailLen(xMm, R, spMm, gapMm);\n  if (avail <= 0) return null;\n  const sorted = [...ELEMS[grp]].sort((a,b) => b.l - a.l);\n  for (const e of sorted) { if (e.l <= avail) return e; }\n  return null;\n}\n\nfunction countFit(R, spMm, gapMm, maxHW) {\n  let n = 0;\n  for (let try_n = 1; try_n <= 60; try_n++) {\n    const pos = positions(try_n);\n    const outer = Math.max(...pos.map(Math.abs));\n    if (outer > maxHW) break;\n    if (!bestElem(outer, R, spMm, gapMm)) break;\n    n = try_n;\n  }\n  return n;\n}\n\nfunction calc() {\n  const D      = parseFloat(document.getElementById('d').value);\n  const R      = D \/ 2;\n  const spStd  = parseFloat(document.getElementById('sp').value);\n  const spMax  = parseFloat(document.getElementById('spmax').value);\n  const swMm   = parseFloat(document.getElementById('sw').value);\n  const gapMm  = 40;\n  const maxW   = 0.9 * D;\n\n  const maxHW_lateral = R - swMm;\n  const maxHW_plate   = maxW \/ 2 - swMm;\n  const maxHW = Math.min(maxHW_lateral, maxHW_plate);\n\n  const nC = countFit(R, spStd, gapMm, maxHW);\n  const nM = countFit(R, spMax, gapMm, maxHW);\n\n  function build(n, spMm) {\n    return positions(n).map(x => ({ x, el: bestElem(x, R, spMm, gapMm) }));\n  }\n\n  const aC = build(nC, spStd);\n  const aM = build(nM, spMax);\n\n  const areaC = aC.reduce((s,a) => s + (a.el ? a.el.a : 0), 0);\n  const areaM = aM.reduce((s,a) => s + (a.el ? a.el.a : 0), 0);\n\n  const needsAdj = nM > nC || areaM > areaC;\n\n  function minBackGapElem(assign, spMm) {\n    let minGap = Infinity, minElem = null;\n    assign.filter(a=>a.el).forEach(a => {\n      const dxMm = Math.abs(a.x);\n      const chordMm = dxMm < R ? Math.sqrt(R*R - dxMm*dxMm) : 0;\n      const gap = R + spMm + chordMm - a.el.l;\n      if (gap < minGap) { minGap = gap; minElem = a; }\n    });\n    return { gap: Math.round(minGap), elem: minElem };\n  }\n  const bgC = minBackGapElem(aC, spStd);\n  const bgM = minBackGapElem(aM, spMax);\n  const backGapC = bgC.gap;\n  const backGapM = bgM.gap;\n\n  RES = { D, R, spStd, spMax, swMm, nC, nM, aC, aM, areaC, areaM, needsAdj, maxW, backGapC, backGapM };\n\n  renderCards();\n  drawSketch('c');\n  drawSketch('m');\n}\n\nfunction mixStr(assign) {\n  const cnt = {};\n  assign.forEach(a => { if (a.el) { const k = a.el.l+'mm'; cnt[k] = (cnt[k]||0)+1; } });\n  return Object.entries(cnt).map(([k,v]) => v+'\u00d7 '+k).join(', ') || '\u2013';\n}\n\nfunction renderCards() {\n  const r = RES;\n  let h = '';\n\n  if (r.nC === 0) {\n    h += `<div class=\"ebf-card X\">\n      <span class=\"ebf-badge ebf-br\">\u2717 Nicht m\u00f6glich<\/span>\n      <span class=\"ebf-ct\">Konservativ: 0 Elemente<\/span>\n      <div class=\"ebf-cb\">Kein Element passt mit den gew\u00e4hlten Abst\u00e4nden.<\/div>\n    <\/div>`;\n  } else {\n    h += `<div class=\"ebf-card C\">\n      <span class=\"ebf-badge ebf-bg\">\u2713 Konservativ<\/span>\n      <span class=\"ebf-ct\">${r.nC} Elemente \u00b7 ${r.areaC.toFixed(2)} m\u00b2 Filterfl\u00e4che<\/span>\n      <div class=\"ebf-cb\">\n        Belegung: <strong>${mixStr(r.aC)}<\/strong><br>\n        Schlitzplatten-Abstand: <strong>${r.spStd} mm<\/strong> \u00b7 R\u00fcckwandabstand (min.): <strong>${r.backGapC} mm<\/strong><br>\n        \u2192 Kein Anpassungsbedarf am Anbau.\n      <\/div>\n    <\/div>`;\n  }\n\n  if (r.nM === 0) {\n    h += `<div class=\"ebf-card X\">\n      <span class=\"ebf-badge ebf-br\">\u2717 Nicht m\u00f6glich<\/span>\n      <span class=\"ebf-ct\">Maximal: 0 Elemente<\/span>\n      <div class=\"ebf-cb\">Kein Element passt.<\/div>\n    <\/div>`;\n  } else {\n    const same = r.nM === r.nC && Math.abs(r.areaM - r.areaC) < 0.01;\n    let note = '';\n    if (same) note = `<div class=\"ebf-nb\">Identisch mit konservativer Auslegung \u2014 kein Gewinn durch Anpassung.<\/div>`;\n    else note = `<div class=\"ebf-nb\">Anbau um ${r.spMax - r.spStd} mm weiter nach unten versetzt (Schlitzplatten-Abstand ${r.spMax} mm statt ${r.spStd} mm). Pr\u00fcfen ob geometrisch m\u00f6glich!<\/div>`;\n    const bc = same ? 'ebf-by' : 'ebf-by';\n    const bl = same ? '= Identisch' : '\u26a0 Mit Anpassung';\n    h += `<div class=\"ebf-card M\">\n      <span class=\"ebf-badge ${bc}\">${bl}<\/span>\n      <span class=\"ebf-ct\">${r.nM} Elemente \u00b7 ${r.areaM.toFixed(2)} m\u00b2 Filterfl\u00e4che<\/span>\n      <div class=\"ebf-cb\">\n        Belegung: <strong>${mixStr(r.aM)}<\/strong><br>\n        Schlitzplatten-Abstand: <strong>${r.spMax} mm<\/strong> \u00b7 R\u00fcckwandabstand (min.): <strong>${r.backGapM} mm<\/strong>\n        ${note}\n      <\/div>\n    <\/div>`;\n  }\n  document.getElementById('cards').innerHTML = h;\n}\n\nfunction drawSketch(mode) {\n  const r = RES;\n  const cvs = document.getElementById(mode === 'c' ? 'cc' : 'cm');\n  const dpr = Math.min(window.devicePixelRatio || 1, 3);\n  const W = 400, H = 500;\n  cvs.width  = W * dpr;\n  cvs.height = H * dpr;\n  const ctx = cvs.getContext('2d');\n  ctx.scale(dpr, dpr);\n  ctx.clearRect(0,0,W,H);\n  ctx.fillStyle = '#f8fafc';\n  ctx.fillRect(0,0,W,H);\n\n  const assign = mode === 'c' ? r.aC : r.aM;\n  const n      = mode === 'c' ? r.nC : r.nM;\n  const col    = mode === 'c' ? '#1a8a3a' : '#c07000';\n  const lbl    = mode === 'c' ? 'Konservativ' : 'Maximal';\n  const spMm   = mode === 'c' ? r.spStd : r.spMax;\n  const gapMm  = r.gapMm;\n\n  if (n === 0) {\n    ctx.fillStyle = '#8a9aaa'; ctx.font = '13px Segoe UI,Arial'; ctx.textAlign = 'center';\n    ctx.fillText('Keine Elemente m\u00f6glich', W\/2, H\/2); return;\n  }\n\n  const totalH_mm = r.D + spMm + 20;\n  const totalW_mm = r.D;\n\n  const padTop = 34, padBot = 58, padSide = 50;\n  const avW = W - padSide*2;\n  const avH = H - padTop - padBot;\n  const scale = Math.min(avW \/ totalW_mm, avH \/ totalH_mm);\n  const Rpx = r.R * scale;\n  const spPx = spMm * scale;\n\n  const cx = W \/ 2;\n  const cy = padTop + Rpx;\n  const schlitzY = cy + Rpx + spPx;\n\n  \/\/ Vessel circle\n  ctx.beginPath();\n  ctx.arc(cx, cy, Rpx, 0, Math.PI*2);\n  ctx.fillStyle = 'rgba(220,235,250,0.6)';\n  ctx.fill();\n  ctx.strokeStyle = '#cc3333';\n  ctx.lineWidth = 2.5;\n  ctx.stroke();\n\n  \/\/ Center cross\n  ctx.strokeStyle = '#c0d8f0'; ctx.lineWidth = 1; ctx.setLineDash([4,5]);\n  ctx.beginPath(); ctx.moveTo(cx-Rpx, cy); ctx.lineTo(cx+Rpx, cy); ctx.stroke();\n  ctx.beginPath(); ctx.moveTo(cx, cy-Rpx); ctx.lineTo(cx, cy+Rpx); ctx.stroke();\n  ctx.setLineDash([]);\n\n  \/\/ Anbau side walls\n  const outerX_mm = n > 0 ? Math.max(...assign.map(a => Math.abs(a.x))) : 0;\n  const halfBoxW_mm = outerX_mm + r.swMm;\n  const halfBoxW_px = halfBoxW_mm * scale;\n  const boxLeft  = cx - halfBoxW_px;\n  const boxRight = cx + halfBoxW_px;\n\n  function circleBottomY(wallX) {\n    const dxPx = Math.abs(wallX - cx);\n    if (dxPx >= Rpx) return cy + Rpx;\n    return cy + Math.sqrt(Rpx*Rpx - dxPx*dxPx);\n  }\n\n  ctx.beginPath();\n  ctx.moveTo(boxLeft, schlitzY);\n  ctx.lineTo(boxLeft, circleBottomY(boxLeft));\n  ctx.strokeStyle = '#cc3333'; ctx.lineWidth = 2; ctx.stroke();\n\n  ctx.beginPath();\n  ctx.moveTo(boxRight, schlitzY);\n  ctx.lineTo(boxRight, circleBottomY(boxRight));\n  ctx.strokeStyle = '#cc3333'; ctx.lineWidth = 2; ctx.stroke();\n\n  \/\/ Schlitzplatte\n  ctx.beginPath();\n  ctx.moveTo(boxLeft, schlitzY); ctx.lineTo(boxRight, schlitzY);\n  ctx.strokeStyle = '#cc3333'; ctx.lineWidth = 2; ctx.stroke();\n  ctx.fillStyle = '#aa2020'; ctx.font = 'bold 9px Segoe UI,Arial'; ctx.textAlign = 'center';\n  ctx.fillText('Schlitzplatte \/ Flansch', cx, schlitzY + 13);\n\n  \/\/ spMm annotation\n  const spDimX = boxRight + 20;\n  ctx.beginPath(); ctx.moveTo(spDimX, cy + Rpx); ctx.lineTo(spDimX, schlitzY);\n  ctx.strokeStyle = '#079CE0'; ctx.lineWidth = 1; ctx.setLineDash([2,3]); ctx.stroke(); ctx.setLineDash([]);\n  htick(ctx, spDimX, cy + Rpx, '#079CE0');\n  htick(ctx, spDimX, schlitzY, '#079CE0');\n  const spMidY = (cy + Rpx + schlitzY) \/ 2;\n  ctx.fillStyle = '#079CE0'; ctx.font = '8px Segoe UI,Arial'; ctx.textAlign = 'left';\n  ctx.fillText(spMm + ' mm', spDimX + 5, spMidY + 3);\n\n  \/\/ Side-wall gap annotation\n  const leftElemPx = cx - outerX_mm * scale;\n  const swDimY = schlitzY - 10;\n  ctx.beginPath(); ctx.moveTo(leftElemPx, swDimY); ctx.lineTo(boxLeft, swDimY);\n  ctx.strokeStyle = '#c07010'; ctx.lineWidth = 1; ctx.setLineDash([2,2]); ctx.stroke(); ctx.setLineDash([]);\n  vtick(ctx, leftElemPx, swDimY, '#c07010');\n  vtick(ctx, boxLeft, swDimY, '#c07010');\n  ctx.fillStyle = '#c07010'; ctx.font = '8px Segoe UI,Arial'; ctx.textAlign = 'center';\n  ctx.fillText(r.swMm + ' mm', (leftElemPx + boxLeft)\/2, swDimY - 4);\n\n  \/\/ Filter elements\n  assign.forEach(({ x, el }) => {\n    if (!el) return;\n    const ex = cx + x * scale;\n    const startY = schlitzY;\n    const endY   = schlitzY - el.l * scale;\n    ctx.beginPath(); ctx.moveTo(ex, startY); ctx.lineTo(ex, endY);\n    ctx.strokeStyle = col; ctx.lineWidth = 2.2; ctx.stroke();\n    dot(ctx, ex, startY, col, 3);\n    dot(ctx, ex, endY,   col, 3);\n  });\n\n  \/\/ Element length dimensions\n  const DIM_OFFSET = 14;\n  const byLen = {};\n  assign.filter(a=>a.el).forEach(a => {\n    const k = a.el.l;\n    if (!byLen[k] || a.x > byLen[k].x) byLen[k] = a;\n  });\n  Object.values(byLen).forEach(a => {\n    const ex = cx + a.x * scale;\n    const sY = schlitzY;\n    const eY = schlitzY - a.el.l * scale;\n    const dx = ex + DIM_OFFSET;\n    ctx.beginPath(); ctx.moveTo(dx, sY); ctx.lineTo(dx, eY);\n    ctx.strokeStyle = col; ctx.lineWidth = 1; ctx.setLineDash([3,3]); ctx.stroke(); ctx.setLineDash([]);\n    htick(ctx, dx, sY, col); htick(ctx, dx, eY, col);\n    ctx.save();\n    ctx.translate(dx + 11, (sY+eY)\/2);\n    ctx.rotate(-Math.PI\/2);\n    ctx.fillStyle = col; ctx.font = 'bold 9px Segoe UI,Arial'; ctx.textAlign = 'center';\n    ctx.fillText(a.el.l + ' mm', 0, 0);\n    ctx.restore();\n  });\n\n  \/\/ Back gap annotation\n  let minGapPx = Infinity, minGapElem = null;\n  assign.filter(a=>a.el).forEach(a => {\n    const dxPx = Math.abs(a.x) * scale;\n    const bwY = dxPx < Rpx ? cy - Math.sqrt(Rpx*Rpx - dxPx*dxPx) : schlitzY;\n    const tipY_ = schlitzY - a.el.l * scale;\n    const gPx = tipY_ - bwY;\n    if (gPx < minGapPx) { minGapPx = gPx; minGapElem = a; }\n  });\n  if (minGapElem) {\n    const ex = cx + minGapElem.x * scale;\n    const tipY = schlitzY - minGapElem.el.l * scale;\n    const dxPx = Math.abs(minGapElem.x) * scale;\n    const backWallY = dxPx < Rpx ? cy - Math.sqrt(Rpx*Rpx - dxPx*dxPx) : tipY;\n    const actualGapMm = Math.round((tipY - backWallY) \/ scale);\n    const gapX = ex - 14;\n    ctx.beginPath(); ctx.moveTo(gapX, tipY); ctx.lineTo(gapX, backWallY);\n    ctx.strokeStyle = '#c07010'; ctx.lineWidth = 1; ctx.setLineDash([2,2]); ctx.stroke(); ctx.setLineDash([]);\n    htick(ctx, gapX, tipY, '#c07010');\n    htick(ctx, gapX, backWallY, '#c07010');\n    ctx.save();\n    ctx.translate(gapX - 11, (tipY + backWallY) \/ 2);\n    ctx.rotate(-Math.PI \/ 2);\n    ctx.fillStyle = '#c07010'; ctx.font = '8px Segoe UI,Arial'; ctx.textAlign = 'center';\n    ctx.fillText(actualGapMm + ' mm', 0, 0);\n    ctx.restore();\n  }\n\n  \/\/ Pitch dimension\n  if (assign.length >= 2) {\n    const sorted = [...assign].sort((a,b) => a.x - b.x);\n    const p0x = cx + sorted[0].x * scale;\n    const p1x = cx + sorted[1].x * scale;\n    const py = cy - Rpx + 18;\n    ctx.beginPath(); ctx.moveTo(p0x, py); ctx.lineTo(p1x, py);\n    ctx.strokeStyle = 'rgba(80,100,140,.6)'; ctx.lineWidth = 1; ctx.setLineDash([2,3]); ctx.stroke(); ctx.setLineDash([]);\n    vtick(ctx, p0x, py, 'rgba(80,100,140,.6)');\n    vtick(ctx, p1x, py, 'rgba(80,100,140,.6)');\n    ctx.fillStyle = 'rgba(50,80,120,.8)'; ctx.font = '8px Segoe UI,Arial'; ctx.textAlign = 'center';\n    ctx.fillText('105 mm', (p0x+p1x)\/2, py - 4);\n  }\n\n  \/\/ Diameter annotation\n  const dY = schlitzY + 26;\n  ctx.beginPath(); ctx.moveTo(cx-Rpx, dY); ctx.lineTo(cx+Rpx, dY);\n  ctx.strokeStyle = '#079CE0'; ctx.lineWidth = 1; ctx.setLineDash([3,3]); ctx.stroke(); ctx.setLineDash([]);\n  arrowTip(ctx, cx-Rpx, dY, 1, '#079CE0');\n  arrowTip(ctx, cx+Rpx, dY, -1, '#079CE0');\n  ctx.fillStyle = '#079CE0'; ctx.font = 'bold 10px Segoe UI,Arial'; ctx.textAlign = 'center';\n  ctx.fillText('\u00d8 ' + r.D + ' mm', cx, dY + 13);\n\n  \/\/ Top label\n  const totalArea = assign.reduce((s,a) => s + (a.el ? a.el.a : 0), 0);\n  ctx.fillStyle = col; ctx.font = 'bold 10px Segoe UI,Arial'; ctx.textAlign = 'left';\n  ctx.fillText(lbl + ': ' + n + ' El. \u00b7 ' + totalArea.toFixed(2) + ' m\u00b2', 6, 18);\n  ctx.fillStyle = '#5a7a9a'; ctx.font = '9px Segoe UI,Arial';\n  ctx.fillText('Schlitzpl.-Abstand: ' + spMm + ' mm', 6, 29);\n}\n\nfunction dot(ctx, x, y, col, r) {\n  ctx.beginPath(); ctx.arc(x, y, r, 0, Math.PI*2); ctx.fillStyle = col; ctx.fill();\n}\nfunction vtick(ctx, x, y, col) {\n  ctx.beginPath(); ctx.moveTo(x, y-4); ctx.lineTo(x, y+4); ctx.strokeStyle = col; ctx.lineWidth = 1; ctx.stroke();\n}\nfunction htick(ctx, x, y, col) {\n  ctx.beginPath(); ctx.moveTo(x-4, y); ctx.lineTo(x+4, y); ctx.strokeStyle = col; ctx.lineWidth = 1; ctx.stroke();\n}\nfunction arrowTip(ctx, x, y, dir, col) {\n  ctx.beginPath();\n  ctx.moveTo(x, y); ctx.lineTo(x + dir*8, y-4);\n  ctx.moveTo(x, y); ctx.lineTo(x + dir*8, y+4);\n  ctx.strokeStyle = col; ctx.lineWidth = 1.5; ctx.stroke();\n}\n\nfunction expPNG(mode) {\n  if (!RES) return;\n  const cvs = document.getElementById(mode === 'c' ? 'cc' : 'cm');\n  const n = mode === 'c' ? RES.nC : RES.nM;\n  const lnk = document.createElement('a');\n  lnk.download = `Filterauslegung_D${RES.D}mm_${n}El_${mode==='c'?'konservativ':'maximal'}.png`;\n  lnk.href = cvs.toDataURL('image\/png');\n  lnk.click();\n}\n\nwindow.addEventListener('load', calc);\ndocument.getElementById('d').addEventListener('keydown', e => { if (e.key==='Enter') calc(); });\n<\/script>\n\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>Einbaufilter-Auslegung Totalabscheider mit Filteranbau \u00b7 bg filtration GmbH \u00b7 Draufsicht Schnitt Abscheider-Au\u00dfendurchmesser (mm) Elementgruppe Taschen Platten Abstand Schlitzplatte \u2192 Abscheider, konservativ (mm) Abstand Schlitzplatte \u2192 Abscheider, maximal (mm) Abstand Geh\u00e4usewand \u2192 \u00e4u\u00dferstes Element (mm) \u25b6 Berechnen Raster: 105 mm Mitte-zu-Mitte Ungerade: 1 Element in Mitte, dann \u00b1105 mm Gerade: erstes Element bei \u00b152,5 mm L\u00e4ngen: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7977","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.9 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Einbaufilter-Berechnung - bg-filtration<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bg-filtration.de\/en\/einbaufilter-berechnung\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Einbaufilter-Berechnung\" \/>\n<meta property=\"og:description\" content=\"Einbaufilter-Auslegung Totalabscheider mit Filteranbau \u00b7 bg filtration GmbH \u00b7 Draufsicht Schnitt Abscheider-Au\u00dfendurchmesser (mm) Elementgruppe Taschen Platten Abstand Schlitzplatte \u2192 Abscheider, konservativ (mm) Abstand Schlitzplatte \u2192 Abscheider, maximal (mm) Abstand Geh\u00e4usewand \u2192 \u00e4u\u00dferstes Element (mm) \u25b6 Berechnen Raster: 105 mm Mitte-zu-Mitte Ungerade: 1 Element in Mitte, dann \u00b1105 mm Gerade: erstes Element bei \u00b152,5 mm L\u00e4ngen: [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bg-filtration.de\/en\/einbaufilter-berechnung\/\" \/>\n<meta property=\"og:site_name\" content=\"bg-filtration\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-03T08:52:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-03T11:33:50+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#\\\/schema\\\/person\\\/bc6d2254a2a5e3ef61a7ac7fb14f2620\"},\"headline\":\"Einbaufilter-Berechnung\",\"datePublished\":\"2026-07-03T08:52:04+00:00\",\"dateModified\":\"2026-07-03T11:33:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/\"},\"wordCount\":77,\"publisher\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#organization\"},\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/\",\"url\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/\",\"name\":\"Einbaufilter-Berechnung - bg-filtration\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#website\"},\"datePublished\":\"2026-07-03T08:52:04+00:00\",\"dateModified\":\"2026-07-03T11:33:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/einbaufilter-berechnung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/bg-filtration.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Einbaufilter-Berechnung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#website\",\"url\":\"https:\\\/\\\/bg-filtration.de\\\/\",\"name\":\"bg-filtration\",\"description\":\"Industrielle Filtersysteme\",\"publisher\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bg-filtration.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#organization\",\"name\":\"bg filtration gmbh\",\"url\":\"https:\\\/\\\/bg-filtration.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/bg-filtration.de\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/bg-filtration-logo.svg\",\"contentUrl\":\"https:\\\/\\\/bg-filtration.de\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/bg-filtration-logo.svg\",\"width\":713,\"height\":155,\"caption\":\"bg filtration gmbh\"},\"image\":{\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bg-filtration-gmbh\"],\"description\":\"Als Hersteller industrieller Filtersysteme realisieren wir f\u00fcr zahlreiche Branchen L\u00f6sungen zur sicheren Abscheidung von Staub, Sch\u00fcttg\u00fctern, Aerosolen und explosionsf\u00e4higen Stoffen. Individuell ausgelegt auf Ihre Anwendung - f\u00fcr saubere Prozesse und maximale Sicherheit.\",\"email\":\"info@bg-filtration.de\",\"telephone\":\"+49 7159 8069-0\",\"legalName\":\"bg filtration gmbh\",\"foundingDate\":\"1971-01-01\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bg-filtration.de\\\/#\\\/schema\\\/person\\\/bc6d2254a2a5e3ef61a7ac7fb14f2620\",\"name\":\"admin\",\"sameAs\":[\"https:\\\/\\\/bg-filtration.de\"],\"url\":\"https:\\\/\\\/bg-filtration.de\\\/en\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Einbaufilter-Berechnung - bg-filtration","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bg-filtration.de\/en\/einbaufilter-berechnung\/","og_locale":"en_GB","og_type":"article","og_title":"Einbaufilter-Berechnung","og_description":"Einbaufilter-Auslegung Totalabscheider mit Filteranbau \u00b7 bg filtration GmbH \u00b7 Draufsicht Schnitt Abscheider-Au\u00dfendurchmesser (mm) Elementgruppe Taschen Platten Abstand Schlitzplatte \u2192 Abscheider, konservativ (mm) Abstand Schlitzplatte \u2192 Abscheider, maximal (mm) Abstand Geh\u00e4usewand \u2192 \u00e4u\u00dferstes Element (mm) \u25b6 Berechnen Raster: 105 mm Mitte-zu-Mitte Ungerade: 1 Element in Mitte, dann \u00b1105 mm Gerade: erstes Element bei \u00b152,5 mm L\u00e4ngen: [&hellip;]","og_url":"https:\/\/bg-filtration.de\/en\/einbaufilter-berechnung\/","og_site_name":"bg-filtration","article_published_time":"2026-07-03T08:52:04+00:00","article_modified_time":"2026-07-03T11:33:50+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Estimated reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/#article","isPartOf":{"@id":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/"},"author":{"name":"admin","@id":"https:\/\/bg-filtration.de\/#\/schema\/person\/bc6d2254a2a5e3ef61a7ac7fb14f2620"},"headline":"Einbaufilter-Berechnung","datePublished":"2026-07-03T08:52:04+00:00","dateModified":"2026-07-03T11:33:50+00:00","mainEntityOfPage":{"@id":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/"},"wordCount":77,"publisher":{"@id":"https:\/\/bg-filtration.de\/#organization"},"articleSection":["Uncategorized"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/","url":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/","name":"Einbaufilter-Berechnung - bg-filtration","isPartOf":{"@id":"https:\/\/bg-filtration.de\/#website"},"datePublished":"2026-07-03T08:52:04+00:00","dateModified":"2026-07-03T11:33:50+00:00","breadcrumb":{"@id":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bg-filtration.de\/einbaufilter-berechnung\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bg-filtration.de\/einbaufilter-berechnung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/bg-filtration.de\/"},{"@type":"ListItem","position":2,"name":"Einbaufilter-Berechnung"}]},{"@type":"WebSite","@id":"https:\/\/bg-filtration.de\/#website","url":"https:\/\/bg-filtration.de\/","name":"bg-filtration","description":"Industrial filter systems","publisher":{"@id":"https:\/\/bg-filtration.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bg-filtration.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/bg-filtration.de\/#organization","name":"bg filtration gmbh","url":"https:\/\/bg-filtration.de\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/bg-filtration.de\/#\/schema\/logo\/image\/","url":"https:\/\/bg-filtration.de\/wp-content\/uploads\/2025\/11\/bg-filtration-logo.svg","contentUrl":"https:\/\/bg-filtration.de\/wp-content\/uploads\/2025\/11\/bg-filtration-logo.svg","width":713,"height":155,"caption":"bg filtration gmbh"},"image":{"@id":"https:\/\/bg-filtration.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/bg-filtration-gmbh"],"description":"As a manufacturer of industrial filter systems, we realise solutions for the safe separation of dust, bulk materials, aerosols and explosive substances for numerous industries. Customised to your application - for clean processes and maximum safety.","email":"info@bg-filtration.de","telephone":"+49 7159 8069-0","legalName":"bg filtration gmbh","foundingDate":"1971-01-01"},{"@type":"Person","@id":"https:\/\/bg-filtration.de\/#\/schema\/person\/bc6d2254a2a5e3ef61a7ac7fb14f2620","name":"admin","sameAs":["https:\/\/bg-filtration.de"],"url":"https:\/\/bg-filtration.de\/en\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/posts\/7977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/comments?post=7977"}],"version-history":[{"count":13,"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/posts\/7977\/revisions"}],"predecessor-version":[{"id":8010,"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/posts\/7977\/revisions\/8010"}],"wp:attachment":[{"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/media?parent=7977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/categories?post=7977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bg-filtration.de\/en\/wp-json\/wp\/v2\/tags?post=7977"}],"curies":[{"name":"what","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}