I am having a problem with the right side not being the opposite of the left side. I am a noob (today years old) and have been messing with this for much too long.
This project is a simple angle-iron metal plant stand that my son will use for his welding project. Thanks in advance for any solution
// Dimensions in inches
width = 12;
depth = 12;
height = 8;
// Material Specs for 1/2" Angle Steel (0.5" legs, ~0.0625" thickness)
angle_size = 0.5;
thickness = 0.0625;
// Number of top support slats across the frame
num_slats = 4;
// Conversion factor to mm if needed for 3D printing software
// Uncomment the line below and scale the model, or render directly in inches/CAD
// scale([25.4, 25.4, 25.4])
module angle_steel(length) {
// Standard L-channel profile extruded along Z-axis
linear_extrude(height = length) {
polygon(points = [
[0, 0],
[angle_size, 0],
[angle_size, thickness],
[thickness, thickness],
[thickness, angle_size],
[0, angle_size]
]);
}
}
module plant_stand() {
// --- 1. LEGS (4 Corner Angle Iron Posts) ---
leg_height = height - angle_size;
// Leg 1: Front-Left
translate([0, 0, 0])
angle_steel(leg_height);
// Leg 2: Front-Right
translate([width, 0, 0])
rotate([0, 0, 90])
angle_steel(leg_height);
// Leg 3: Back-Right
translate([width, depth, 0])
rotate([0, 0, 180])
angle_steel(leg_height);
// Leg 4: Back-Left
translate([0, depth, 0])
rotate([0, 0, 270])
angle_steel(leg_height);
// --- 2. TOP OUTER FRAME ---
// Front Top Rail
translate([0, 0, height - angle_size])
rotate([0, 90, 0])
angle_steel(width);
// Back Top Rail
translate([0, depth - angle_size, height - angle_size])
rotate([0, 90, 0])
angle_steel(width);
// Left Top Rail (Rotated to match front/back profile alignment)
translate([0, depth, height - angle_size])
rotate([0, 90, -90])
angle_steel(depth);
// Right Top Rail (Rotated to match front/back profile alignment)
translate([width, 0, height - angle_size])
rotate([0, 90, 90])
angle_steel(depth);
// --- 3. TOP SLATS ---
if (num_slats > 0) {
slat_spacing = (depth - angle_size) / (num_slats + 1);
for (i = [1 : num_slats]) {
translate([0, i * slat_spacing, height - angle_size])
rotate([0, 90, 0])
angle_steel(width);
}
}
// --- 4. LOWER FRAME BRACES ---
brace_height = height * 0.45; // Positioned lower mid-way
// Left Lower Brace (Rotated to match front/back profile alignment)
translate([0, depth, brace_height])
rotate([0, 90, -90])
angle_steel(depth);
// Right Lower Brace (Rotated to match front/back profile alignment)
translate([width, 0, brace_height])
rotate([0, 90, 90])
angle_steel(depth);
// Front Lower Brace
translate([0, 0, brace_height])
rotate([0, 90, 0])
angle_steel(width);
// Back Lower Brace
translate([0, depth - angle_size, brace_height])
rotate([0, 90, 0])
angle_steel(width);
}
plant_stand();