Calculateur de toiture en polycarbonate compact
Comparez instantanément une installation sur chevrons et une installation sur pannes, puis obtenez les plaques, profils SELECT et accessoires nécessaires.
Profil de jonction recommandé
Profil universel SELECT 45 mm en aluminium brut, livré avec ses joints et compatible avec toutes les épaisseurs proposées. Pour calculer la largeur des plaques, chaque jonction retire 18 mm : languette centrale de 8 mm + jeu de 5 mm de chaque côté. Deux profils F aluminium 10 mm sont ajoutés aux extrémités latérales pour les plaques de 2 à 10 mm, avec joints EPDM pour les épaisseurs de 2 à 8 mm.
Espacements maximaux indicatifs
Repères issus du guide technique PALSUN pour la plus petite dimension supportée. La valeur sélectionnée est utilisée pour les chevrons comme pour les pannes.
2 mm500 mm*
3 mm700 mm
4 mm900 mm
5 mm1 100 mm
6 mm1 300 mm
8 mm1 500 mm
10 mm1 700 mm
12 mm1 900 mm
Important : ces valeurs sont des repères de pré-dimensionnement et ne remplacent pas une étude tenant compte de la pente, du vent, de la neige et des règles locales. *Le 2 mm n’apparaît pas dans le tableau PALSUN pour cette application : 500 mm est une valeur prudente à faire valider. Source fabricant PALSUN.
‘ + diagramSvg(type, data) +
‘ » +
‘
« ;
}
function solutionCard(type, data) {
var isRafter = type === « rafter »;
var title = isRafter ? « Solution 1 — Pose sur chevrons » : « Solution 2 — Pose sur pannes »;
var subtitle = isRafter
? « Les profils SELECT suivent la pente et reposent sur les chevrons. »
: « Les pannes traversent la largeur de la toiture et soutiennent les plaques. »;
var structureName = isRafter ? « Chevrons porteurs » : « Pannes porteuses »;
var structureDimension = isRafter ? fmt(data.depth) + » mm » : fmt(data.wall) + » mm »;
var structureQuantity = isRafter ? data.supportCount + » chevron(s) » : data.supportCount + » panne(s) »;
var rows = « »;
rows += productRow(« Plaques polycarbonate compact » + data.thickness + » mm », fmt(data.panelWidth) + » × » + fmt(data.depth) + » mm », data.panelCount + » plaque(s) », « Format brut maximal : » + fmt(data.maxSheetLength) + » × » + fmt(data.maxSheetWidth) + » mm, orientation libre. Largeur calculée après déduction de » + data.selectDeduction + » mm par profil SELECT (languette 8 mm + jeux latéraux 5 + 5 mm). »);
rows += productRow(structureName, structureDimension, structureQuantity, « Entraxe maximal indicatif : » + fmt(data.span) + » mm. »);
rows += productRow(« Profil universel SELECT 45 mm – aluminium brut », fmt(data.profileLength) + » mm par profil », data.joinerCount + » profil(s) », « Uniquement entre deux plaques : nombre de plaques − 1. Pose dans le sens de la pente. Chaque jonction retire » + data.selectDeduction + » mm à la largeur disponible pour les plaques. »);
if (data.hasEdgeProfiles) {
rows += productRow(« Profils F aluminium 10 mm – finitions latérales », « 2 × » + fmt(data.profileLength) + » mm », « 2 profils F », « Un profil à chaque extrémité de la toiture, toujours dans le sens de la pente. La longueur commerciale choisie couvre au minimum la profondeur de la toiture. »);
}
if (data.hasEdgeSeals) {
rows += productRow(‘Joint EPDM pour profils F‘, « 2 × » + fmt(data.depth) + » mm », data.edgeSealMetres + » m », « Joint à installer dans les deux profils F. Vendu au mètre. »);
}
rows += productRow(« Profil mural aluminium », « 4 000 mm par profil », data.wallProfileCount + » profil(s) », « Raccord entre la toiture et le mur. »);
rows += productRow(« Fixations inox avec rondelle EPDM », « Espacement estimatif 400 mm », data.fixingCount + » fixation(s) », « Pré-perçage obligatoire avec jeu de dilatation. »);
rows += productRow(« Mousse d’étanchéité et de calage », « Rouleau de 10 m », data.foamRolls + » rouleau(x) », « Environ » + data.foamMetres.toFixed(1) + » m nécessaires. »);
return ‘Schéma interactifCliquez sur un élément pour afficher son rôle.
‘ +
« ‘ + title + «
» + subtitle + «
‘ +
‘
» +
‘Largeur par plaque‘ + fmt(data.panelWidth) + » mm
» +
‘Entraxe maximal‘ + fmt(data.span) + » mm
» +
‘Longueur SELECT‘ + fmt(data.profileLength) + » mm
» +
‘Nombre de plaques‘ + data.panelCount + «
» +
« | Produit recommandé | Longueur / dimensions | Quantité |
|---|
Attention au 2 mm : cette épaisseur est très flexible. Une validation technique est indispensable avant toute utilisation en toiture.
‘ : « ») +
« Merci de saisir des dimensions valides d’au moins 300 mm.
‘;
return;
}
var availableSheetLength = maxSheetLength[thickness];
if (depth > availableSheetLength) {
result.innerHTML = ‘Profondeur trop importante pour une plaque en une seule pièce.
En polycarbonate compact ‘ + thickness + » mm, le format maximal disponible est de » + fmt(availableSheetLength) + » × » + fmt(maxSheetWidth) + » mm. La profondeur de la toiture ne peut donc pas dépasser » + fmt(availableSheetLength) + » mm avec ce système, même si la plaque peut être orientée librement. Un projet avec raccord transversal nécessite une étude spécifique.
« ;
return;
}
if (depth > 7000) {
result.innerHTML = ‘En polycarbonate compact ‘ + thickness + » mm, le format maximal disponible est de » + fmt(availableSheetLength) + » × » + fmt(maxSheetWidth) + » mm. La profondeur de la toiture ne peut donc pas dépasser » + fmt(availableSheetLength) + » mm avec ce système, même si la plaque peut être orientée librement. Un projet avec raccord transversal nécessite une étude spécifique.
La profondeur maximale est de 7 000 mm, correspondant à la longueur maximale du profil SELECT.
‘;
return;
}
var span = maxSpan[thickness];
var selectedProfileLength = profileLengthFor(depth);
var wallProfileCount = Math.max(1, Math.ceil(wall / 4000));
var rafterPanelCount = Math.max(1, Math.ceil(wall / span));
var rafterSupportCount = rafterPanelCount + 1;
var rafterJoinerCount = Math.max(0, rafterPanelCount – 1);
var rafterPanelWidth = Math.ceil((wall – (rafterJoinerCount * selectDeductionPerJoin)) / rafterPanelCount);
var rafterFixingCount = rafterSupportCount * (Math.ceil(depth / fixingSpacing) + 1);
var rafterFoamLength = rafterSupportCount * depth + wall;
var purlinMaxPanelWidth = depth = 2 && thickness = 2 && thickness <= 8,
edgeSealMetres: Math.ceil((2 * depth) / 1000)
};
var rafterData = Object.assign({}, common, {
panelCount: rafterPanelCount,
panelWidth: rafterPanelWidth,
supportCount: rafterSupportCount,
joinerCount: rafterJoinerCount,
fixingCount: rafterFixingCount,
foamMetres: rafterFoamLength / 1000,
foamRolls: Math.max(1, Math.ceil(rafterFoamLength / 10000))
});
var purlinData = Object.assign({}, common, {
panelCount: purlinPanelCount,
panelWidth: purlinPanelWidth,
supportCount: purlinSupportCount,
joinerCount: purlinJoinerCount,
fixingCount: purlinFixingCount,
foamMetres: purlinFoamLength / 1000,
foamRolls: Math.max(1, Math.ceil(purlinFoamLength / 10000))
});
result.innerHTML = 'Calcul effectué.
Toiture de ‘ + fmt(wall) + » × » + fmt(depth) + » mm en polycarbonate compact » + thickness + » mm — format maximal disponible : » + fmt(availableSheetLength) + » × » + fmt(maxSheetWidth) + » mm, orientation libre — entraxe maximal indicatif : » + fmt(span) + » mm.
» +
‘Toiture de ‘ + fmt(wall) + » × » + fmt(depth) + » mm en polycarbonate compact » + thickness + » mm — format maximal disponible : » + fmt(availableSheetLength) + » × » + fmt(maxSheetWidth) + » mm, orientation libre — entraxe maximal indicatif : » + fmt(span) + » mm.
‘ + solutionCard(« rafter », rafterData) + solutionCard(« purlin », purlinData) + «
« ;
}
thicknessField.addEventListener(« change », function () {
highlightSpan();
updateDepthWarning();
});
depthField.addEventListener(« input », updateDepthWarning);
button.addEventListener(« click », calculate);
result.addEventListener(« click », function (event) {
var trigger = event.target.closest(« [data-pcs-part], [data-pcs-target] »);
if (!trigger) return;
var solution = trigger.closest(« .pcs-solution »);
if (!solution) return;
var part = trigger.dataset.pcsPart || trigger.dataset.pcsTarget;
var isRafter = solution.querySelector(« .pcs-solution-head h3 »).textContent.indexOf(« chevrons ») !== -1;
var supportName = isRafter ? « Chevrons porteurs » : « Pannes porteuses »;
solution.classList.add(« has-part-selection »);
var descriptions = {
panels: [« Plaques compactes », « Les plaques transparentes couvrent la toiture et reposent sur la structure porteuse. »],
supports: [supportName, isRafter ? « Les chevrons suivent la pente et limitent la portée latérale des plaques. » : « Les pannes sont perpendiculaires à la pente et réduisent la portée des plaques dans le sens de la profondeur. »],
select: [« Profils SELECT », « Les profils universels SELECT assemblent uniquement deux plaques entre elles. Leur nombre correspond toujours au nombre de plaques moins un et ils suivent la pente. La languette de 8 mm et les jeux de 5 mm de chaque côté représentent une déduction totale de 18 mm par jonction. »],
edges: [« Profils F de bord », « Deux profils F aluminium 10 mm ferment les extrémités latérales pour les plaques de 2 à 10 mm. Ils suivent toujours la longueur de la pente. Des joints EPDM sont ajoutés pour les épaisseurs de 2 à 8 mm. »],
wall: [« Profil mural », « Le profil mural assure la finition et l’étanchéité du raccord contre le mur. »]
};
solution.querySelectorAll(« [data-pcs-part], [data-pcs-target] »).forEach(function (element) {
var elementPart = element.dataset.pcsPart || element.dataset.pcsTarget;
element.classList.toggle(« is-active », elementPart === part);
});
if (descriptions[part]) {
solution.querySelector(« .pcs-diagram-info »).innerHTML = « » + descriptions[part][0] + « » + descriptions[part][1];
}
});
[wallField, depthField].forEach(function (field) {
field.addEventListener(« keydown », function (event) {
if (event.key === « Enter ») { event.preventDefault(); calculate(); }
});
});
highlightSpan();
updateDepthWarning();
calculate();
})();

























































































