//!OpenSCAD difference() { circle(r=40); circle(r=35); } union(){ square([5, 5], center=true); for (j = [0 : abs(30) : 360]) { rotate([0, 0, j]){ translate([1, 1, 0]){ square([4, 4], center=false); } } } for (i = [0 : abs(30) : 360]) { rotate([0, 0, i]){ translate([18, 18, 0]){ square([10, 10], center=true); } } } }