SCAD (3 lines)
translate([0,0,0]) cube([60,60,10], center=true);
translate([0,0,10]) cube([40,40,10], center=true);
translate([0,0,20]) cube([20,20,10], center=true); claude-sonnet-5 7 run / 累計 46.6s / 累計 $0.0492
// 3段階段状ピラミッド
// 1段目 60x60x10
translate([0, 0, 0])
cube([60, 60, 10], center=true);
// 2段目 40x40x10
translate([0, 0, 10])
cube([40, 40, 10], center=true);
// 3段目 20x20x10
translate([0, 0, 20])
cube([20, 20, 10], center=true); OpenSCAD で、底辺 60mm × 60mm × 高さ 10mm の正方形の板の中央に、それより一回り小さい 40mm × 40mm × 高さ 10mm の板を載せ、さらにその中央に 20mm × 20mm × 高さ 10mm の板を 載せた、3 段の階段状ピラミッドを作ってください。各段は中心を揃えて積み上げます。 完成したコード全体を ```openscad ... ``` のフェンスで囲んで出力してください。コードのみで、追加の説明は不要です。
effort
translate([0,0,0]) cube([60,60,10], center=true);
translate([0,0,10]) cube([40,40,10], center=true);
translate([0,0,20]) cube([20,20,10], center=true);
// 3段の階段状ピラミッド
module step_pyramid() {
// 1段目: 60mm x 60mm x 10mm
translate([-30, -30, 0])
cube([60, 60, 10]);
// 2段目: 40mm x 40mm x 10mm
translate([-20, -20, 10])
cube([40, 40, 10]);
// 3段目: 20mm x 20mm x 10mm
translate([-10, -10, 20])
cube([20, 20, 10]);
}
step_pyramid();
// 3段の階段状ピラミッド
// 各段は中心を揃えて積み重ねる
height = 10; // 各段の高さ
sizes = [60, 40, 20]; // 各段の一辺の長さ(下から上へ)
module step(size, z_pos) {
translate([0, 0, z_pos])
cube([size, size, height], center = true);
}
for (i = [0 : len(sizes) - 1]) {
step(sizes[i], height * i + height / 2);
}
// 3段の階段状ピラミッド
// 1段目: 60mm x 60mm x 10mm
translate([0, 0, 0])
cube([60, 60, 10], center = true);
// 2段目: 40mm x 40mm x 10mm
translate([0, 0, 10])
cube([40, 40, 10], center = true);
// 3段目: 20mm x 20mm x 10mm
translate([0, 0, 20])
cube([20, 20, 10], center = true); thinking
// 3段の階段状ピラミッド
module step_pyramid() {
// 1段目: 60mm x 60mm x 10mm
translate([-30, -30, 0])
cube([60, 60, 10]);
// 2段目: 40mm x 40mm x 10mm
translate([-20, -20, 10])
cube([40, 40, 10]);
// 3段目: 20mm x 20mm x 10mm
translate([-10, -10, 20])
cube([20, 20, 10]);
}
step_pyramid();
// 3段の階段状ピラミッド
// 各段は中心を揃えて積み重ねる
height = 10; // 各段の高さ
sizes = [60, 40, 20]; // 各段の一辺の長さ(下から上へ)
module step(size, z_pos) {
translate([0, 0, z_pos])
cube([size, size, height], center = true);
}
for (i = [0 : len(sizes) - 1]) {
step(sizes[i], height * i + height / 2);
}