Skip to content

Triangulated-Grid

img.png

let model = await SketchUpApi.getActiveModel();
model.performOperation(async (op) => {
await op.createBuilder((builder) => {
const odds = [];
const evens = [];
const softEdges = [];
for (let x = 0; x < 10; x++) {
for (let y = 0; y < 10; y++) {
const scale = 10
const pt1 = [x * scale, y * scale, 0];
const pt2 = [(x + 1) * scale, y * scale, 0];
const pt3 = [(x + 1) * scale, (y + 1) * scale, 0];
const pt4 = [x * scale, (y + 1) * scale, 0];
const face1 = builder.faceCreate([pt1, pt2, pt4]);
const face2 = builder.faceCreate([pt2, pt3, pt4]);
if ((x + y) % 2 == 1) {
odds.push(face1);
odds.push(face2);
} else {
evens.push(face1);
evens.push(face2);
}
softEdges.push(builder.edgeCreate(pt2, pt4));
}
}
return [odds, evens, softEdges];
})
.onPostBuild((converter, [evens, odds, softEdges]) => {
evens.forEach((face) => op.faceSetFrontMaterialName(converter.asRef(face), 'maroon'));
odds.forEach((face) => op.faceSetFrontMaterialName(converter.asRef(face), 'red'));
softEdges.forEach((edge) => op.edgeSetProperties(converter.asRef(edge), {soft: true, smooth: true}));
})
.build(op.model);
}, 'Create triangle grid');