Note that the first expected argument to xcopies() is the spacing argument, so you do not need to supply the spacing= argument name. Similarly, ycopies() makes a line of evenly spaced copies centered ...
Sometimes you want to take a 3D shape like a sphere, and cut it in half. The BOSL2 library provides a number of ways to do this: ...