Konubinix' opinionated web of thoughts

Reinforcement for the Camping Chair

Fleeting

problem

assembly
the frame tubes slide into vaguely cylindrical fabric pockets.
observation
the pockets have a tear where the tube end presses.
cause
the tube presents to the fabric only the ring of its wall, hence a contact pressure concentrated over a few tens of mm².
idea
cap the tube end with an edge-free sleeve that hugs the pocket, to avoid worsening the hole.

dimensions

shape
a straight barrel drilled from below to receive the tube end, which is then pinched up to the crest, that narrow top that goes to the bottom of the pocket.
dimension
inner_diameter is the outer diameter of the chair tube.
dimension
marge is the radial clearance added to its radius to drill the housing, enough to slip it on despite an estimated diameter and a printed part that rarely comes out to size.
dimension
depth is the insertion depth, hence also the height of the straight barrel.
  • why: the pinching only begins above the hole, otherwise the drilling would come out the sides.
dimension
base_width is the width of the barrel.
  • constraint: base_width > inner_diameter + 2 * marge, the difference being the wall remaining on either side of the hole.
dimension
cap_thickness is the material thickness above the hole, hence also the height of the pinching.
dimension
crest_length and crest_width are the two sides of the crest, crest_length also giving the length of the whole part.
dimension
fillet_radius rounds the whole perimeter, a rounding rather than a chamfer so that no edge remains, even obtuse, liable to catch the fabric.
  • constraint: fillet_radius < crest_width / 2, otherwise the two fillets of the crest meet.

inner_diameter = 12
marge = 1
depth = 15
hole_depth = 15
cap_thickness = 15
base_width = 15
crest_length = 25
crest_width = 8
fillet_radius = 2

the sleeve

shape
the whole part is a trapezoid extruded over crest_length, from base_width wide at the bottom to crest_width at the top, drilled from below to receive the tube end.
  • why: the slanted side climbs to the bottom of the pocket, so the fabric has no step to cross.
layout
the other side is vertical and resting on the YZ plane, so the part presents a flat face over its whole height.
fillet
the whole perimeter is rounded except the bottom face, taken by edges("not <Z").
bore
the hole is cylindrical, centered on the bottom face, and stops at z = 0, leaving cap_thickness of material above.

bore_radius = inner_diameter / 2 + marge

trapeze = (
    cq.Workplane("XZ", origin=(0, crest_length / 2, 0))
    .polyline([
        (0, -depth),
        (base_width, -depth),
        (base_width, 0),
        (crest_width, cap_thickness),
        (0, cap_thickness),
    ])
    .close()
    .extrude(crest_length)
    .edges("not <Z")
    .fillet(fillet_radius)
)

bore = (
    cq.Workplane("XY", origin=(base_width / 2, 0, -depth))
    .cylinder(hole_depth, bore_radius, centered=(True, True, False))
)

manchon = trapeze.cut(bore)

tests

[2026-08-12 Wed] 50% infill, honeycomb fill.

installation

[2026-08-24 Mon] failure

[2026-08-27 Thu] 100% infill