Skip to content

Instantly share code, notes, and snippets.

@patmood
Last active July 14, 2026 11:21
Show Gist options
  • Select an option

  • Save patmood/50c8ee94dfe53116f57fe915fc188756 to your computer and use it in GitHub Desktop.

Select an option

Save patmood/50c8ee94dfe53116f57fe915fc188756 to your computer and use it in GitHub Desktop.
[fiddlecad] Modern Ladder-Back Chair
// Parametric modern dining chair
$fn = 48;
seat_w = 48; seat_d = 46; seat_h = 45; seat_t = 4;
leg = 4.2; back_h = 42; back_t = 3.2;
module rounded_box(size=[10,10,10], r=2) {
hull() {
for (x=[r,size[0]-r], y=[r,size[1]-r])
translate([x,y,r]) sphere(r=r);
for (x=[r,size[0]-r], y=[r,size[1]-r])
translate([x,y,size[2]-r]) sphere(r=r);
}
}
module tapered_leg(x,y,lean_x=0,lean_y=0) {
hull() {
translate([x,y,1.5]) cube([leg-1.2,leg-1.2,3],center=true);
translate([x+lean_x,y+lean_y,seat_h-seat_t/2])
cube([leg,leg,3],center=true);
}
}
module chair() {
tapered_leg(-seat_w/2+5,-seat_d/2+5, 1.8, 1.8);
tapered_leg( seat_w/2-5,-seat_d/2+5,-1.8, 1.8);
tapered_leg(-seat_w/2+5, seat_d/2-5, 1.8,-1.8);
tapered_leg( seat_w/2-5, seat_d/2-5,-1.8,-1.8);
translate([0,-seat_d/2+5,seat_h-5]) cube([seat_w-10,3,5],center=true);
translate([0, seat_d/2-5,seat_h-5]) cube([seat_w-10,3,5],center=true);
translate([-seat_w/2+5,0,seat_h-5]) cube([3,seat_d-10,5],center=true);
translate([ seat_w/2-5,0,seat_h-5]) cube([3,seat_d-10,5],center=true);
translate([-seat_w/2,-seat_d/2,seat_h-seat_t])
rounded_box([seat_w,seat_d,seat_t],2.2);
for (x=[-seat_w/2+5,seat_w/2-5])
hull() {
translate([x,seat_d/2-4,seat_h-1]) cube([leg,back_t,4],center=true);
translate([x,seat_d/2+3,seat_h+back_h]) cube([leg,back_t,5],center=true);
}
for (z=[seat_h+13,seat_h+24,seat_h+35])
hull() {
translate([-seat_w/2+5,seat_d/2+(z-seat_h)*0.16,z]) sphere(r=2.2);
translate([ seat_w/2-5,seat_d/2+(z-seat_h)*0.16,z]) sphere(r=2.2);
translate([0,seat_d/2+(z-seat_h)*0.16-1.5,z+1])
cube([seat_w-12,back_t,5],center=true);
}
hull() {
translate([-seat_w/2+5,seat_d/2+7,seat_h+back_h]) sphere(r=2.7);
translate([ seat_w/2-5,seat_d/2+7,seat_h+back_h]) sphere(r=2.7);
translate([0,seat_d/2+5.5,seat_h+back_h+1])
cube([seat_w-11,back_t,5],center=true);
}
}
// FiddleCAD uses Y as the vertical axis.
rotate([-90,0,0]) chair();
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment