Jak dobrać długość wkręta ościeżnicowego
Zasada ogólna: długość wkręta = suma warstw, które przebija wkręt + wymagane zakotwienie w podłożu.
Minimalne zakotwienie (przyjmij do obliczeń):
Beton / cegła pełna:
≥ 40 mm
Pustaki / silikaty:
≈ 50 mm
Beton komórkowy (gazobeton):
≈ 60 mm
Wzór (minimum):
Lₘᵢₙ = grubość ramy + luz montażowy + podkładki/klin + dodatkowe warstwy w osi wkręta + zakotwienie
Praktyka: dodaj 5–10 mm zapasu i wybierz najbliższą dłuższą dostępną długość z oferty.
Przykład: rama 70 mm + luz 10 mm + podkładka 3 mm + zakotwienie 50 mm = 133 mm → wybierz ≥ 152 mm.
Kalkulator zakotwienia
<div class="zk-wrap" id="zakotwienie-app">
<style>
.zk-wrap{max-width:720px;margin:16px auto;padding:16px;border:1px solid #e5e7eb;border-radius:16px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial}
.zk-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:768px){.zk-grid{grid-template-columns:1fr 1fr}}
.zk-card{padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}
.zk-label{font-size:14px;font-weight:600;margin:6px 0}
.zk-input{width:100%;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px}
.zk-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.zk-badge{padding:6px 10px;border:1px solid #cbd5e1;border-radius:999px;font-size:12px;background:#fff}
.zk-badge--active{background:#111;color:#fff;border-color:#111}
.zk-result{font-size:36px;font-weight:800;margin:8px 0}
.zk-small{font-size:12px;color:#6b7280}
.zk-btn{padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer}
</style>
<h2 style="margin:0 0 6px;font-size:22px;font-weight:700">Kalkulator zakotwienia</h2>
<p class="zk-small">Oblicz długość wkręta: <b>L = A + B + C + D</b></p>
<div class="zk-grid">
<div class="zk-card">
<label class="zk-label">Podłoże (ustawia C — zakotwienie)</label>
<select class="zk-input" id="zk-material">
<option>Beton / żelbet</option>
<option>Cegła pełna</option>
<option>Silikat</option>
<option>Cegła drążona / pustak</option>
<option>Gazobeton (YTONG)</option>
</select>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px">
<div>
<label class="zk-label">A — gniazdo w ramie (mm)</label>
<input class="zk-input" id="zk-A" type="number" min="0" value="30">
<div class="zk-small">PVC zwykle 25–35 mm</div>
</div>
<div>
<label class="zk-label">B — szczelina + podkładki (mm)</label>
<input class="zk-input" id="zk-B" type="number" min="0" value="15">
<div class="zk-small">Zwykle 10–20 mm</div>
</div>
<div>
<label class="zk-label">C — zakotwienie w podłożu (mm)</label>
<input class="zk-input" id="zk-C" type="number" min="0" value="50">
<div class="zk-small">Beton/cegła 50 • Pustak/gazobeton 60–70</div>
</div>
<div>
<label class="zk-label">D — zapas (mm)</label>
<input class="zk-input" id="zk-D" type="number" min="0" value="5">
<div class="zk-small">Zalecane 5–10 mm</div>
</div>
</div>
</div>
<div class="zk-card">
<div class="zk-label">Minimalna obliczona długość</div>
<div class="zk-result" id="zk-L">100 mm</div>
<div class="zk-small">Dobór do najbliższej dostępnej długości (≥ L):</div>
<div class="zk-badges" id="zk-badges"></div>
<div style="display:flex;align-items:center;gap:8px;margin-top:8px">
<div>✅ Rekomendujemy: <b id="zk-rec">102 mm</b></div>
<button class="zk-btn" id="zk-copy" type="button">Kopiuj</button>
</div>
<p class="zk-small" style="margin-top:8px">Wartości orientacyjne — sprawdź wytyczne producenta i warunki podłoża.</p>
</div>
</div>
<script>
(function(){
var lengths=[42,52,62,72,82,92,102,112,122,132,152,182,202,212,252,302];
var presets={"Beton / żelbet":50,"Cegła pełna":50,"Silikat":50,"Cegła drążona / pustak":60,"Gazobeton (YTONG)":65};
var material=document.getElementById('zk-material');
var A=document.getElementById('zk-A'), B=document.getElementById('zk-B'), C=document.getElementById('zk-C'), D=document.getElementById('zk-D');
var Lout=document.getElementById('zk-L'), badges=document.getElementById('zk-badges'), recOut=document.getElementById('zk-rec'), copyBtn=document.getElementById('zk-copy');
function compute(){
var a=+A.value||0, b=+B.value||0, c=+C.value||0, d=+D.value||0;
var L=Math.max(0, Math.round(a+b+c+d));
var rec=null; for(var i=0;i<lengths.length;i++){ if(lengths[i]>=L){rec=lengths[i];break;} }
return {L:L, rec:rec};
}
function render(){
var r=compute();
Lout.textContent=r.L+' mm';
badges.innerHTML='';
lengths.forEach(function(len){
var s=document.createElement('span');
s.className='zk-badge'+(r.rec===len?' zk-badge--active':'');
s.textContent=len+' mm';
badges.appendChild(s);
});
recOut.textContent=(r.rec || (r.L + '+')) + ' mm';
}
material.addEventListener('change', function(){ var v=material.value; if(presets[v]!=null){ C.value=presets[v]; } render(); });
[A,B,C,D].forEach(function(el){ el.addEventListener('input', render); });
copyBtn.addEventListener('click', function(){
var r=compute(), txt=String(r.rec || r.L);
if(navigator.clipboard && navigator.clipboard.writeText){ navigator.clipboard.writeText(txt); }
else{ var ta=document.createElement('textarea'); ta.value=txt; document.body.appendChild(ta); ta.select(); try{document.execCommand('copy');}catch(e){} document.body.removeChild(ta); }
});
render();
})();
</script>
</div>
