Topology optimization is a powerful tool to generate mechanical designs that use minimal mass to achieve their function. However, the designs obtained using topology optimization are often not manufacturable using a given manufacturing technique. There exist some modifications to the traditional topology optimization algorithm that are able to impose manufacturing constraints for a limited set of manufacturing methods. These approaches have the drawback that they are based on heuristics to obtain the manufacturability constraint and thus cannot be applied generally to all manufacturing methods. In order to create a general approach to imposing manufacturing constraints on topology optimization, generative adversarial networks (GANs) are used. GANs have the capability to produce samples from a distribution defined by the training data. In this work, the GAN is trained by generating synthetic 3D voxel training data that represents the distribution of designs that can be created by a particular manufacturing method. Once trained, the GAN forms a mapping from a latent vector space to the space of manufacturable designs. The topology optimization is then performed on the latent vector space ensuring that the design obtained is manufacturable. The effectiveness of this approach is demonstrated by training a GAN on designs manufacturable on a 3-axis computer numerically controlled (CNC) milling machine.