Spécialiste des façades, de l'humidité et des toits
Pour bricoleurs & entrepreneurs
Gratis verzending vanaf €500*
Demander un devis
0
0
  • Incl.Excl.
    TVA
  • Spécialiste des façades, de l'humidité et des toits
    Pour bricoleurs & entrepreneurs
    Gratis verzending vanaf €500*

    Pinceaux et rouleaux professionnels pour votre projet

    Découvrez notre outils pour les brosses et rouleaux de peinture, essentiels pour une finition professionnelle des travaux de peinture et de badigeon. Des pinceaux de précision aux rouleaux de peinture durables, nous proposons des outils de haute qualité p

    Découvrez notre outils pour les brosses et rouleaux de peinture, essentiels pour une finition professionnelle des travaux de peinture et de badigeon. Des pinceaux de précision aux rouleaux de peinture durables, nous proposons des outils de haute qualité pour un résultat parfait.

    Filter
    8 produits
    KWAST PRO
    KWAST PRO

    brosse en bloc pour l'application de KALEI CALCIC, etc.

    Deliverytime

    €16,00 Incl. TVA
    BROSSE Small
    BROSSE Small

    petit pinceau pour la finition des peintures, le badigeon de chaux, etc.

    Deliverytime

    €6,00 Incl. TVA
    Spalter de 100mm
    Spalter de 100mm

    Pinceau fin et large pour de belles finitions

    Deliverytime

    €8,95 Incl. TVA
    Brosse à radiateur
    Brosse à radiateur

    convient parfaitement pour peindre les endroits difficiles d'accès tels que derrière les radiateurs et les coins étroits

    Deliverytime

    €4,90 Incl. TVA
    Grille de peinture
    Grille de peinture

    assure une répartition uniforme de la peinture en éliminant l'excès de peinture du rouleau

    Deliverytime

    €1,90 Incl. TVA
    Rouleau PRO
    Rouleau PRO

    Poignée réutilisable robuste + rouleau de peinture 18cm

    Deliverytime

    €12,50 Incl. TVA
    Brosse ronde 'blue line'
    Brosse ronde 'blue line'

    Brosse ronde 'blue line' avec des poils de haute qualité et un design ergonomique

    Deliverytime

    €16,00 Incl. TVA
    Rouleau de peinture universel
    Rouleau de peinture universel

    Rouleau de peinture polyvalent en polyester, adapté à divers travaux de peinture

    Deliverytime

    €7,50 Incl. TVA

    Overige categorieën in Outils

    Pinceaux et rouleaux professionnels pour votre projet

    Découvrez notre outils pour les brosses et rouleaux de peinture, essentiels pour une finition professionnelle des travaux de peinture et de badigeon. Des pinceaux de précision aux rouleaux de peinture durables, nous proposons des outils de haute qualité pour un résultat parfait.

    Pinceaux et rouleaux professionnels pour votre projet
    /* Do it Pro – Universele Rekenhulp (simplified) */ /* 0) Token -> marker shim (zorgt dat [[calc-enable: …]] omgezet wordt naar een onzichtbare ) */ (function(){ function parsePairs(s){ const out = {}; (s||"").split(";").forEach(pair=>{ const p = pair.trim(); if(!p) return; const m = p.match(/^([a-z0-9_-]+)\s*=\s*"(.*)"$|^([a-z0-9_-]+)\s*=\s*([^"]+)$/i); if(!m) return; const k = (m[1]||m[3]||"").trim(); const v = (m[2]||m[4]||"").trim(); if(k) out[k] = v; }); return out; } function tokenToMarker(root){ try{ const walker = document.createTreeWalker(root||document.body, NodeFilter.SHOW_TEXT, null, false); const nodes = []; while (walker.nextNode()) { const t = walker.currentNode.nodeValue; if (t && /\[\[\s*calc-enable\s*:\s*.+\]\]/i.test(t)) nodes.push(walker.currentNode); } nodes.forEach(node=>{ const txt = node.nodeValue; const m = txt.match(/\[\[\s*calc-enable\s*:\s*(.+?)\s*\]\]/i); if (!m) return; const cfg = parsePairs(m[1]); const span = document.createElement("span"); span.className = "calc-enable"; span.style.display = "none"; Object.keys(cfg).forEach(k=>{ const camel = k.replace(/-([a-z])/g, (_,c)=>c.toUpperCase()); span.dataset[camel] = cfg[k]; }); node.parentNode.insertBefore(span, node); node.nodeValue = txt.replace(m[0], ""); // token weghalen uit zichtbare tekst }); }catch(e){} } function bootShim(){ tokenToMarker(document.body); const obs = new MutationObserver(()=>tokenToMarker(document.body)); obs.observe(document.body, {childList:true, subtree:true}); } if (document.readyState==='loading') document.addEventListener('DOMContentLoaded', bootShim); else bootShim(); })(); /* 1) Styles */ (function(){ if (document.getElementById("calc-global-styles")) return; const style = document.createElement("style"); style.id = "calc-global-styles"; style.textContent = ` .calc-card { background:#EFEFEF; border:1px solid #e0e0e0; border-radius:10px; padding:12px; margin:0 0 10px; max-width:560px; font-family:inherit; } .calc-title { margin:0 0 6px; font-size:15px; font-weight:700; line-height:1.2; } .calc-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; } .calc-field { display:flex; flex-direction:column; gap:3px; } .calc-label { font-size:13px; color:#222; line-height:1.1; margin:0; } .calc-label::after { content: ":"; margin-left:3px; } .calc-input, .calc-select { padding:8px 10px; border:1px solid #d2d2d2; border-radius:8px; font:inherit; height:36px; width:100%; box-sizing:border-box; background:#fff; line-height:1.2; } .calc-input:focus, .calc-select:focus { border-color:#4FB1DE; box-shadow:0 0 0 2px rgba(79,177,222,0.15); outline:none; } .calc-btn { margin-top:8px; padding:10px 12px; border:0; border-radius:8px; cursor:pointer; font-weight:700; width:100%; color:#fff; background:#4FB1DE; transition:filter .15s ease; height:40px; } .calc-btn:hover { filter:brightness(0.97); } .calc-result { margin-top:8px; } .calc-resgrid { display:grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap:8px; } .calc-pill { background:#fff; border:1px solid #dcdcdc; border-radius:8px; padding:8px 10px; display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:600; } .calc-pill span, .calc-pill b { line-height:1; display:inline-block; } .calc-pill b { color:#d35400; margin-left:8px; } .calc-note { margin-top:6px; font-size:11px; color:#666; line-height:1.2; } @media (max-width:560px){ .calc-grid { grid-template-columns:1fr; } .calc-resgrid { grid-template-columns:1fr; } } `; document.head.appendChild(style); })(); /* 2) Calculator */ (function(){ const HOST_SELECTORS = ".product__buy, .product-actions, #product-actions, .product__purchase, .buy-block, .product-info__buy, form[action*='cart']"; const OPTIONS_ANCHOR_SELECTORS = [ ".product__options", ".product-variants", ".product-form__options", ".product__choices", ".product-configurator", ".product-custom-fields", "[data-product-options]", "[id*='product-options']" ]; const toNumber = (v) => { if (typeof v !== "string") v = (v||0).toString(); v = v.trim().replace(/\s/g,'').replace(',', '.'); const n = parseFloat(v); return isNaN(n) ? 0 : n; }; const pctFactor = (pct) => 1 + ((parseInt(pct||"0",10)||0)/100); const detectLang = (forced)=>{ if (forced === "nl" || forced === "fr") return forced; const htmlLang = (document.documentElement.lang || "").toLowerCase(); const href = location.href.toLowerCase(); if (htmlLang.startsWith("fr") || /\/fr(\/|[-_])/.test(href) || /[-_.]fr\./.test(href)) return "fr"; return "nl"; }; const STR = (L)=>({ nl:{ t:{strips:"Rekenhulp: steenstrips",boards:"Rekenhulp: stuks per m²",coverage:"Rekenhulp: verbruik",range:"Rekenhulp: verbruik (min–max)"}, f:{m2:"Oppervlakte (m²)", lm:"Buitenhoeken (lm)", placing:"Plaatsing", with:"Met voeg", without:(f)=>`Zonder voeg (${f>=1?"+":"−"}${Math.round(Math.abs((f-1)*100))}%)`, waste:"Reserve"}, b:"Bereken", o:{flat:"Vlakke stenen", corner:"Hoekstenen", boxes:"dozen", noteStrips:(a,c,f,aj,jm)=> aj?(jm==="normal"?`* Vlak: ${a} m²/doos • Hoek: ${c} lm/doos • Zonder voeg = +${Math.round((f-1)*100)}%`:`* Vlak: ${a} m²/doos • Hoek: ${c} lm/doos • Met voeg = −${Math.round((1-f)*100)}%`):`* Vlak: ${a} m²/doos • Hoek: ${c} lm/doos • Plaatsing zonder voeg`} }, fr:{ t:{strips:"Calculateur : parement",boards:"Calculateur : pièces par m²",coverage:"Calculateur : consommation",range:"Calculateur : consommation (min–max)"}, f:{m2:"Surface (m²)", lm:"Angles extérieurs (ml)", placing:"Pose", with:"Avec joint", without:(f)=>`Sans joint (${f>=1?"+":"−"}${Math.round(Math.abs((f-1)*100))}%)`, waste:"Réserve"}, b:"Calculer", o:{flat:"Pierres plates", corner:"Pierres d’angle", boxes:"boîtes", noteStrips:(a,c,f,aj,jm)=> aj?(jm==="normal"?`* Face : ${a} m²/boîte • Angle : ${c} ml/boîte • Sans joint = +${Math.round((f-1)*100)}%`:`* Face : ${a} m²/boîte • Angle : ${c} ml/boîte • Avec joint = −${Math.round((1-f)*100)}%`):`* Face : ${a} m²/boîte • Angle : ${c} ml/boîte • Pose sans joint`} } })[L]; function buildStrips(marker, host){ const ds = marker.dataset; const LANG = detectLang((ds.lang||"").toLowerCase()); const T = STR(LANG); const areaPerBox = parseFloat(ds.areaPerBox||0.5); const cornerPerBox = parseFloat(ds.cornerPerBox||1); const allowJoint = (ds.allowJoint||"true").toLowerCase() !== "false"; const noJointFactor= parseFloat(ds.nojointFactor||1.2); const jointMode = (ds.jointMode||"normal").toLowerCase(); const reserveOpts = (ds.reserve||"0,5,10,15,20").split(",").map(s=>s.trim()).filter(Boolean); let optionsAnchor = null; for (const sel of OPTIONS_ANCHOR_SELECTORS) { const el = host.querySelector(sel); if (el) { optionsAnchor = el; break; } } const placing = allowJoint ? (jointMode==="normal" ? `` : ``) : `
    ${T.f.without(noJointFactor)}
    `; const waste = ``; const html = `

    ${T.t.strips}

    ${placing}
    ${waste}
    ${T.o.noteStrips(areaPerBox, cornerPerBox, noJointFactor, allowJoint, jointMode)}
    `; const wrap = document.createElement("div"); wrap.innerHTML = html; const card = wrap.firstElementChild; if (optionsAnchor && optionsAnchor.parentNode) optionsAnchor.parentNode.insertBefore(card, optionsAnchor); else host.insertBefore(card, host.firstChild); function setResults(pills){ const grid = document.getElementById("calc-resgrid"); grid.style.display = "grid"; grid.innerHTML = pills.map(p=>`
    ${p.label}${p.value}
    `).join(""); } function calc(){ const m2 = toNumber(document.getElementById("calc-m2").value); const lm = toNumber(document.getElementById("calc-lm").value); const reservePct = parseInt(document.getElementById("calc-reserve").value||"0",10); const rF = pctFactor(reservePct); let f = 1; if (allowJoint) f = parseFloat(document.getElementById("calc-place").value)||1; else f = parseFloat(document.getElementById("calc-place").getAttribute("data-fixed"))||1; const boxesFlat = Math.ceil(((m2 * f) / areaPerBox) * rF); const boxesCorner = lm>0 ? Math.ceil(((lm * f) / cornerPerBox) * rF) : 0; const out = [{label:T.o.flat, value:`${boxesFlat} ${T.o.boxes}`}]; if (lm>0) out.push({label:T.o.corner, value:`${boxesCorner} ${T.o.boxes}`}); setResults(out); } document.getElementById("calc-btn").addEventListener("click", calc); } function init(){ const host = document.querySelector(HOST_SELECTORS); const marker = document.querySelector(".calc-enable"); if (!host || !marker) return; const type = (marker.dataset.calcType||"").toLowerCase(); if (type === "strips") buildStrips(marker, host); // (Andere types kun je later inschakelen—dit houdt het nu simpel en stabiel) } function boot(){ init(); const obs = new MutationObserver(()=>init()); obs.observe(document.body, {childList:true, subtree:true}); } if (document.readyState==='loading') document.addEventListener('DOMContentLoaded', boot); else boot(); })();