我试图从立方体中减去一个多面体,但它不起作用(立方体仍然是实心的)。但是,我可以在预览模式下看到切出的多边形(但不能在完整渲染后看到)。
预览- 多边形切口显示在顶部(和底部)。
渲染- 多边形切口不可见。
Poly Exploded - 将多边形拉到右侧以显示其形状。
代码
size = 30;
wall = 3;
wall_x2 = wall * 2;
nubGap = .125;
nubHeight = 8;
nubOffset = wall + nubGap;
xCutoutSize = size - wall_x2;
yCutoutSize = size - wall_x2;
cutoutLowerY = nubHeight + nubGap;
cutoutUpperOffset = nubOffset + wall;
difference() {
cube([size, size, size]);
translate([wall, wall, 0]) {
polyhedron(
points = [
[0, 0, -10],
[xCutoutSize, 0, -10],
[xCutoutSize, yCutoutSize, -10],
[0, yCutoutSize, -10],
[0, 0, cutoutLowerY],
[xCutoutSize, 0, cutoutLowerY],
[xCutoutSize, yCutoutSize, cutoutLowerY],
[0, yCutoutSize, cutoutLowerY],
[cutoutUpperOffset, cutoutUpperOffset, size],
[xCutoutSize - cutoutUpperOffset, cutoutUpperOffset, size],
[xCutoutSize - cutoutUpperOffset, yCutoutSize - cutoutUpperOffset, size],
[cutoutUpperOffset, yCutoutSize - cutoutUpperOffset, size]
],
faces = [
[0, 1, 2], [2, 3, 0], // bottom
[0, 1, 4], [1, 4, 5], // side A
[1, 2, 5], [2, 5, 6], // side B
[2, 3, 6], [3, 6, 7], // side C
[3, 0, 7], [0, 7, 4], // side D
[4, 5, 8], [5, 8, 9], // slope A
[5, 6, 9], [6, 9, 10], // slope B
[6, 7, 10], [7, 10, 11], // slope C
[7, 4, 11], [4, 11, 8], // slope D
[8, 9, 10], [10, 11, 8] // top
]
);
};
};