Perforated Sheet Round Holes In Rows Tile Covering

Perforated Sheet Round Holes In Rows Tile Covering

A tile covering laid on the face you give it, with grout between the tiles. The face the tiles cover, Tiles cut at the edge, whole inside, or overlapping, Pattern size, tile thickness and edge bevel, Joint widths and joint depth, Pattern rotation and offset from the face center, Tile and grout colour

Details

Category: Tiles › Perforation

By Huu Khanh Nguyen · Updated November 8, 2026

Parameters

NameDefaultUnit
Object On Boundariestrim
Pattern rotation0°
Pattern offset X0mm
Pattern offset Y0mm
Hole diameter8mm
Hole pitch12mm
Thickness10mm
Edge bevel radius0.274mm
Edge bevel segments5
Horizontal joint0.9mm
Vertical joint0.9mm
Joint depth5mm
Generate surfacetrue
Tile colour#b8b5ae
Tile roughness0.5
Tile metalness0
Joint colour#d0d0d0
patternX(rings[0].map((p) => p[0]).reduce((m, x) => Math.min(m, x)) + rings[0].map((p) => p[0]).reduce((m, x) => Math.max(m, x))) / 2 + offsetXmm
patternY(rings[0].map((p) => p[1]).reduce((m, x) => Math.min(m, x)) + rings[0].map((p) => p[1]).reduce((m, x) => Math.max(m, x))) / 2 + offsetYmm
wallAMath.sqrt(((sq) => ((R) => R.reduce((m, A, i) => R.reduce((n, B, k) => (k <= i) ? n : A.reduce((q, p) => B.slice(1).reduce((s, b, j) => Math.min(s, sq(p, B[j], b)), q), n), m), 1e300))(tile))((p, a, b) => ((dx, dy) => ((t) => (p[0] - a[0] - t * dx) ** 2 + (p[1] - a[1] - t * dy) ** 2)(Math.max(0, Math.min(1, ((p[0] - a[0]) * dx + (p[1] - a[1]) * dy) / (dx * dx + dy * dy)))))(b[0] - a[0], b[1] - a[1])))mm
wallBMath.sqrt(((sq) => ((R) => R.reduce((m, A, i) => R.reduce((n, B, k) => (k >= i) ? n : A.reduce((q, p) => B.slice(1).reduce((s, b, j) => Math.min(s, sq(p, B[j], b)), q), n), m), 1e300))(tile))((p, a, b) => ((dx, dy) => ((t) => (p[0] - a[0] - t * dx) ** 2 + (p[1] - a[1] - t * dy) ** 2)(Math.max(0, Math.min(1, ((p[0] - a[0]) * dx + (p[1] - a[1]) * dy) / (dx * dx + dy * dy)))))(b[0] - a[0], b[1] - a[1])))mm