//Radius of strip Radius = 20; //Width of Strip Width = 10; //Thickness of slice Thickness=0.01; // 0.25 = minimal "mobius"-ness Twist=0.25; //Step size in degrees Step = 10; module slice(i) { rotate([0,0,i]) translate([Radius,0,0]) rotate([0,i*Twist,0]) cube([Width, Thickness, Width], center=true); } module mobius_strip(radius,width,thickness,step=1, halftwist=3,start=90) { for (i = [0:step:360]) hull() { slice(i); slice(i+step); } } intersection() { mobius_strip(Radius, Width, Thickness, Step, Halftwist,Start); cylinder(d=Radius*3, h=Radius); }